- 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;,
}}}
Au final, rediriger vers l'accueil plutot que de l'appeler directement, sinon le '''import_all''' qui reste dans la barre de navigation est malvenue si on veut recharger.
Tant qu'à faire, introduire la fonction '''redirige_url_ecrire''' qui abrège les appels les plus fréquents à '''redirige_par_entete'''.
'''ATTENTION''': toutes les tables avec le préfixe seront détruites, même celles non déclarées par la distribution standard de SPIP. C'est souvent ce que l'on veut (sinon, on aurait pas utilisé ce préfixe pour ces tables supplémentaires) mais c'est un changement par rapport à avant. Les boutons radio sont justement là pour permettre le comportement antérieur, moyennant une lecture attentive.
Cette fonctionnalité repose sur un nouvelle fonction d'abstraction, qui s'ajoute
à celle définies dans [10154][10131][10146] et [10113]:
{{{
'showbase' => fonction d'abstraction de la liste des tables en base
}}}
Par défaut, elle retourne les tables avec le préfixe standard, mais avec un argument supplémentaire elle les retourne toutes (attention en cas de mutualisation par changement de préfixe).
Interface: cette fonction reçoit comme premier argument un nom et demande la création d'un répertoire déduit de ce nom et de l'heure, et relance le script. Si le répertoire existe déjà (au 2e appel normalement) elle mémorise dans la table spip_meta le $REQUEST ayant provoqué l'appel, cette méta étant nommée également par le premier argument. Elle effectue ensuite un charger_fonction sur ce nom et le répertoire {{{base}}} (car ces actions concernent toujours la base de donnnées: upgrade, delete_all, convert_utf8, admin_repair). En cas d'interruption du script, tester la présence de telles variables au niveau de ecrire/index.php permet de s'apercevoir de l'interruption, et de reprendre le travail avec les valeurs transmises dans $_REQUEST lors du premier appel (n'est utilisé actuellement que pour import_all). Lorsque la fonction chargée a fini le travail, la meta et le repertoire sont supprimés.
La fonction inc_admin admet 3 arguments supplémentaires optionnels: le titre de la page, un texte preliminaire expliquant l'action entreprise après création du répertoire, et une URL de retour.
Au passage, ajout de la destruction du cache du menu des rubriques dans l'action de purge des caches, sinon on croit que l'action convert_utf8 n'a pas marché.
La rationnalisation des noms induit donc que la meta "debut_restauration" se nomme à présent "import_all", et "conversion_charset" se nomme "convert_utf8; cet arbitraire ne devrait avoir aucune conséquence.
Il reste un cas d'appel de debut_admin en dehors de ce schéma, lié au passage inachevé en plugin de la gestion du vieux htpassword.
renomme_en_exec_et_en_php ()
{
mv index.php3 i3;
mv index.php i;
mv forum.php3 f;
mv statistiques.php3 s;
for i in *.php*;
do
if [ -f inc_${i%3} ]; then
$MVCOMMAND inc_${i%3} exec_${i%3};
else
if [ -f inc_$i ]; then
$MVCOMMAND inc_$i exec_${i%3};
fi;
fi;
done;
mv i3 index.php3;
mv i index.php;
mv f forum.php3;
mv s statistiques.php3;
$MVCOMMAND inc_auth.php3 exec_auth.php;
$MVCOMMAND inc_accueil.php exec_accueil.php;
for i in inc_spip_action*;
do
$MVCOMMAND $i exec_${i#inc_};
done;
for i in inc_*.php3;
do
$MVCOMMAND $i ${i%3};
done;
$MVCOMMAND exec_config-contenu.php exec_config_contenu.php;
$MVCOMMAND exec_config-multilang.php exec_config_multilang.php;
$MVCOMMAND exec_config-fonctions.php exec_config_fonctions.php;
$MVCOMMAND exec_config-lang.php exec_config_lang.php
}
unification des tables d'indexation (spip_index), ce qui permet de rendre
le moteur de recherche plus générique, et donc éventuellement de l'étendre
à d'autres tables, ou de changer les poids, ou de faire des calculs portant sur
l'ensemble des mots indexés, voire des boucles sur l'ensemble des objets indexés
... (cf. http://zone.spip.org/trac/spip-zone/changeset/1724 )