afin d'éviter un Warning: Undefined variable $primary in ecrire/public/assembler.php on line 577 qui génère des erreurs de squelettes du type `modeles/doc : Paramètre d’inclusion incorrect : id`
fix#4905
trim() n’est pas multibytes : on doit donc utiliser preg si on veut enlever un éventuel `\u{a0}`.
Cela dit ce caractère n’est pas présent dans les chaines de langues SPIP, mais ça permet d’utiliser
peut être label_nettoyer() pour d’autres utilisations dont on connait moins la source.
On robustifie la fonction avec controle en amont et en aval, en preferant ne rien faire si on a un doute plutot que de risquer de casser la requete sql.
On en profite pour rendre encore moins plausible la presence des sequences d'echappement dans la chaine
Et on modernise le code dans query_reinjecte_textes() en utilisant un argument splat
On modifie aussi l'usage dans req/mysql en privilegiant de garder la requete initiale intacte si il n'y a rien a faire dessus
+ 1 renommage de fonction pour être cohérent
+ 1 utilisation de spread operator.
Il eut fallu basculer tant qu’à faire sur du typage directement sur les arguments, mais ça sera un autre jour...
On introduit la fonction sql_in_quote() plus complete, qui accepte un type, et n'accepte plus non plus de string pour valeurs
La fonction sql_in() continue d'exister comme un shorthand ou pour les cas ou valeurs est une string (et donc explicitement une liste de valeurs numeriques)
Pour corriger l'erreur :
Erreur d’exécution plugins/alphamosa/modeles/picture.html | File […]/ecrire/public/fonctions.php Line 534 : Call to undefined function image_graver()
Lorsque l'on utiliser 'appliquer_filtre' sur une image.
Lors de l'inscription d'un·e auteuerice ou de la regénération de son
mot de passe, l'appel à la fonction `creer_pass_aleatoire()` doit tenir
compte de la valeur de la constante `_PASS_LONGUEUR_MINI`. En effet,
lorsque le mot de passe généré (de taille 16 par défaut) est plus petit
que `_PASS_LONGUEUR_MINI` (ce qui arrive si cette constante est définie
à une valeur strictement supérieure à 16), alors la fonction
`auth_spip_modifier_pass()` refuse de mettre le mot de passe ainsi
généré dans la base de données (la fonction `auth_spip_verifier_pass()`
renvoie une erreur car le mot de passe est trop court).
Prendre le `max(_PASS_LONGUEUR_MINI, 16)` ici permet de conserver le
comportement par défaut lorsque `_PASS_LONGUEUR_MINI` est inférieure
à 16, tout en permettant de supporter des valeurs plus élevées de
`_PASS_LONGUEUR_MINI`.
Par ailleurs si un rang_lien est fourni lors de l'appel a objet_associer() il est directement pris en compte pour l'insertion du lien plutot que de calculer un rang automatique, inserer avec ce rang, puis modifier ensuite
Enfin, dans ce dernier cas, on appelle pas lien_ordonner() immediatement apres l'insertion, mais on laisse d'abord lien_set() faire son job (a savoir eventuellement mettre le meme rang sur les autres liens id_xx/objet/id_objet identiques mais avec un role different), et finalement finir par un lien_ordonner()
Additionnellement, la fonction lien_ordonner() ne presume plus du mode de comptage des rangs :
- elle se repose aussi sur la fonction lien_rang_where()
- elle utilise les infos des liens trouves
- elle note les liens deja ordonnes pour eviter un double recomptage (notamment si on l'appelle avec plusieurs objets/id_objets qui sont tous comptes en une seule fois parce que c'est le primary qui sert de regroupement)
(finger crossed)
* Passe 1 : le Spacing générique et les déclarations de classes et de fonctions 1217 fixes dans 158 fichiers
* Passe 2 : Structures de contrôle (if, for, etc.) 967 fixes dans 168 fichiers
* Passe 3 : Appels de fonctions, instanciations de classes 1810 fixes dans 128 fichiers
* Passe 4 : Quotes, Double-quotes 3179 fixes dans 174 fichiers
* Passe 5 : Short Array syntax 2697 fixes dans 248 fichiers
Co-authored-by: JamesRezo <james@rezo.net>
Reviewed-on: #4868
Co-authored-by: JamesRezo <jamesrezo@noreply.git.spip.net>
Co-committed-by: JamesRezo <jamesrezo@noreply.git.spip.net>
- Introduction de PHP_CodeSniffer en tant qu'outil de développement
- Mise en place du fichier de configuration par défaut (phpcs.xml.dist)
- Mise à jour du fichier .gitignore
- Introduction du fichier composer.json
- ATTENTION!: Il ne s'agit en aucun cas de l'introduction de composer en tant qu'outil de développement pour SPIP!
- Son seul ojectif, pour le moment, est de permettre l'installation et la mise à jour d'outils de développement annexes et
des règles de codage.
- Bonus: configuration pour la fabrication du fichier zip destiné à files.spip.net
- Ex: composer archive --format=zip --dir=tmp --file=spip -> tmp/spip.zip
Voir : https://discuter.spip.net/t/coding-standards/155150/24
- le bouton 'vider le cache' vide les caches, et donc les contextes ajax
- la redirection apres action de purge se fait en ajax, mais plus de contexte, donc erreur 400
- l'erreur etait bien traitee sur les simples liens ajax, mais pas sur les boutons actions ajax, ce qu'on corrige donc ici
En sus, on ajoute un style sur les .ajaxbloc.invalid ce qui permet d'avoir un retour visuel pendant que la redirection non ajax se fait