- encoding (utf8)
- eof_ending (saut le ligne en fin de fichier)
- elseif (pas else if)
- function_call_space (espaces sur fonctions)
- function_declaration (pareil)
- function_typehint_space (pareil)
Je profite de cette écriture massive pour normaliser quelque chose de trompeur lorsqu'on compare deux versions, savoir l'usage de " ou ' dans le premier argument de define et defined. Comme les chaînes entre apostrophes sont plus rapidement analysées que celles entre guillemets, je choisis l'apostrophe.
Dépot obtenu avec le script Shell:
{{{
a=$(find . -name "*.php" |grep -v extensions/ | grep -v /config/ | grep -v index.php | grep -v public.php | grep -v prive.php )
echo -n "Fichiers: "
echo $a|wc -w
for i in $a
do
sed -f ~/Sites/spip/spip.sed $i > /tmp/f.php
if diff -q $i /tmp/f.php
then
:
else
diff $i /tmp/f.php
# echo $i; php /tmp/f.php
# mv /tmp/f.php $i
fi
done
}}}
et le script Sed:
{{{
s/Copyright (c) 2001-20../Copyright (c) 2001-2011/
s,\(if [(]!*\)*\(defined* *[(]\)"\([^"]*\)"\(.*\);[[:space:]]*[#/]*.*$,\1\2'\3'\4;,
}}}
et permettra aussi de gerer les liens auteur sur n'importe quel objet. On a en plus un champ vu sur la table de liaison, qui est utilise dans la messagerie.
On pourra avoir plus tard un champ role permettant de distinguer les roles des auteurs.
Ce premier commit met a jour toutes les requetes SQL, et prend en charge l'upgrade de la base.
Mais il n'est pas encore totalement fonctionnel.
debug a suivre.
{{{
[(#FORMULARE_MAL_ECRIT)]
}}}
avec, dans mes_options:
{{{
function balise_formulare_mal_ecrit($p) {return calculer_balise_dynamique($p, 'formulare_mal_ecrit', array());}
}}}
Au passage, je trouve anormal qu'une squelette contenant:
{{{
[(#FORMULAIRE_INEXISTANT)]
}}}
ne déclenche pas d'erreur de la part de la fonction générique {{{formulaire_}}},
c'est exprès ?
Cette fonctionnalité a nécessité de revenir encore une fois sur le deuxième argument des balises dynamiques, tombé en désuétude en [14194], ressuscité en [14213] sur la suggestion de #1728: ce tableau est finalement composé d'abord de 5 valeurs issues du contexte de compilation (nom du squelette, nom du fichier compilé, nom de la boucle éventuelle où figure la balise, numéro de ligne, langue) suivis éventuellement des éléments du tableau optionnel fourni par la fonction principale de la balise dynamique comme 4e argument de la fonction {{{calculer_balise_dynamique}}}. Introduction aussi d'une nouvelle structure pour contenir ces informations, qui n'est peut-être pas très intuitive mais facilite leur propagation.
Ce dépot s'accompagne d'un modification sémantique du libellé des erreurs concernant ces balises: elles ne sont pas nécessairement à utiliser dans une boucle (sinon on pourrait réperer l'erreur à la compilation et on n'aurait pas tout ce problème de contexte à trimbaler), il faut seulement que le {{{id_*}}} idoine soit présent (par exemple dans l'URL).
Musée des horreurs ayant servi de tests pour les derniers dépôts:
{{{
[(#FORMULAIRE_ECRIRE_AUTEUR)]
[(#FORMULAIRE_SITE)]
[(#FORMULAIRE_SIGNATURE)]
<BOUCLE_coucou(AUTEURS){#ID_AUTEUR}>
CHEMIN
#INCLURE{expo, #X}
</div>
</BOUCLE_coucou>
<//B_coucou>
<BOUCLE2(AUTEURS){id_auteur} />
<BOUCLE2(ARTICLES){id_auteur} />
<BOUCLE3(ARTICLES){id_auteur} >
[(#NOM&&&)]
[(#NOM{,,,,,,,,,})]
}}}
En conséquence, l'annonce de [9852] est modifiée: '''spip_fetch_array''' est remplacée par '''sql_fetch'''. Rien de modifié en revanche en ce qui concerne le fait que spip_fetch_array avec un deuxième argument égal à SPIP_NUM n'a pas d'équivalent et doit être réécrit si on éviter le recours à vieilles_def.php.
Dépot obtenu par le script suivant:
{{{
grep -v '// http://doc.spip.org/@spip_abstract_' base/abstract_sql.php > b
mv b base/abstract_sql.php
for i in $(grep -l "spip_abstract_" */*p|grep -v vieilles_def)
do
sed "s/spip_abstract_/sql_/g" $i > x; mv x $i
done
}}}
et intervention manuelle sur vieilles_def.php.
Ce dépot résulte donc du retrait des deux définitions de '''spip_fetch_array''' présentes dans source:spip/ecrire/base/db_mysql.php et source:spip/ecrire/base/db_pg.php (qui peuvent donc être chargés simultanément à présent si nécessaire) et de l'application du script suivant dans le répertoire '''ecrire''':
{{{
for i in $(grep -l spip_fetch_array */*p|grep -v vieilles_def)
do
sed s/spip_fetch_array/spip_abstract_fetch/g $i > x
mv x $i
done
}}}
Il y avait beaucoup de variables et d'arguments inutiles dans menu_lang et menu_lang_ecrire, dont l'un avait le gros défaut de faire boucler la nouvelle API
(la balise menu_lang a besoin de la valeur de menu_lang qui n'est pas forcement
une variable d'URL mais, sait-on jamais, une balise. A eviter). Il y a peut-etre une simplification excessive, pourtant le multi-linguisme semble toujours marcher.