A cette occasion, on rationalise les nommages :
- les fonction nommees image_xxx prennent toutes en entree une image et rendent une image (dans un squelette, les filtres peuvent s'appliqer aussi sur du #TEXTE)
Elles sont chainables.
- les fonctions nommees couleur_xxx prennent toutes en entree une couleur et rendent une couleur (hexa sur 6 caracteres)
Elles sont chainables.
Toutes les fonctions commencant par image_ ou couleur_ et ne correspondant pas a cette description sont prefixees par un _ et deplacees dans
inc/filtres_images_lib_mini.php
qui est la librairie mini de fonctions image et couleur non utilisables dans les squelettes
La compatibilite des anciens nommages pourra etre obtenue avec le plugin des filtres images du _core_
"
Introduction de 2 pipelines pour cela :
-* affichage_entetes_final() reçevant le tableau php d'entêtes de la page et permettant d'agir dessus.
-* configurer_liste_metas() reçevant le tableau des valeurs par défaut des metas de SPIP et permettant d'agir dessus (et servant à la sauvegarde des fichiers de configurations actuels de SPIP)
Reste à corriger :
-* le formulaire d'administration,
-* les images,
-* les chaines de langues,
-* les bugs non vus...
* retrait de code mort et de code redondant en fusionnant forulaires/login.php et inc/identifier_login qui maigrissent de 20%.
* Centralisation dans inc/session de l'envoi du cookie de session qui était spécifié 2 fois auparavant.
* simplification du nom des fonctions d'authenfication, qui se nomment à présent {{{auth_spip}}} et {{{auth_ldap}}}, car situées dans un répertoire {{{auth}}} spécifique à de telles fonctions, afin de faciliter l'adjonction de nouvelles méthodes d'authentication à terme (openID etc).
En tout cas, quand on déballe tout on voit qu'il y a un tripotée de classes
({editer_titre editre_surtitre etc) qui sont utilisées dans les squelettes
de formulaires mais définies nulle part; de nouveau tout ça paraît excessivement bricolé.
Par ailleurs, depuis [9649], il n'est plus nécessaire de vérifier que les variables de personnalisation n'ont pas été passées par l'URL, sauf s'il est explicitement dit que c'est fait pour cause de compatibilité php3.
En conséquence:
* on met le tableau des raccourcis en statique;
* on déporte l'init de ces variables dans inc_version;
* on enrichit la fonction de contrôle d'URL avec cette liste de variables;
* on met cette fonction de contrôle dans un fichier à part pour alléger le fichier d'init qui ne l'appelle qu'en mode register_global=on donc rarement.
prive/style_prive_plugin_xxx.html
elles sont toutes ajoutees a style_prive lors de son calcul
+quelques styles de base pour les plugins qui squeletisent elur interface privee
on retablit l'appel des actions sans changement de repertoire, c'est definitivement le plus simple pour les ecritures du type
generer_url_action($action,$args,,self())
ou
#URL_ACTION_AUTEUR{action,arg,#SEFL}
et on corrige les quelques ecritures qui le necessitaient, sans vilain hack dans la fonction generer_url_action
la fonction generer_form_public est renommee generer_form_action puisque c'est de cela qu'il s'agit
code mort autour du traitement des actions qui etait reste du debut de la mise en CVT de l'espace prive
les traitements derogatoires sont regroupes dans public/aiguiller appeles identiquement par le public et le prive
- public/parametrer determine le squelette, applique son code compilé et retourne la page (seul changement: il ne détermine plus le nom)
- public/composer determine le nom de la fonction principale du code compilé, le charge et retourne en valeur un tableau formé de ce nom et ce code.
Par ailleurs, les fonctions d'appel à SQL présentes dans le code compilé sont mises dans un nouveau fichier, public/quete.
Tout ça devrait permettre aux modèles de charger ces fonctions sans charger les fonctions de détermination de squelette, et de charger les deux fichiers ci-desss par charger_fonction uniquement.
- on garde la denomination originelle informer_auteur car il ne s'agit pas d'une authentification
- inc-logo_auteur.html doit etre dans prive/ et non dans dist/
- le filtre ad-hoc pour le squelette va dans un fichier fonctions associe plutot qu'alourdir inc/filtres
- un jeton avec la date est passe a informer_auteur pour empecher la mise en cache par les navigateurs (FF3 notamment) ou proxy malgre le header
La fabrication des URL publiques des entités a toujours été modulable, mais pas dans un même processus, ce qui posait deux limitations:
- la production de ces URLs publiques à partir de l'espace privé oblige à passer par un script de redirection, couteux, obscur et peu extensible;
- dans le cas du multi-site, impossible d'avoir autant de nommages différents que de sites, les fonctions produisant les URLs portant le même nom dans tous les système de nommage.
Cette restriction est à présent levée, apparamment sans problème de compatibilité:
Les fonctions {{{generer_url_{article, auteur, breve, mot, rubique, site} }}} sont déclarées obsolètes et remplacées par:
{{{ function generer_url_entite($id='', $entite='', $args='', $ancre='', prive='', $type='') }}}
un appel comme {{{ generer_url_article(id, arg, ancre) }}} s'écrit à présent {{{{ generer_url_entite(id, 'article', arg, ancre) }}}. Cette transformation étant prise en charge par {{{vieilles_def.php}}}, tandis que le code de SPIP a déjà évacué ces appels.
Le 5e argument permet de forcer la production d'une URL de lecture alors qu'on est dans l'espace d'écriture et inversement. Le 6e argument permet de forcer l'utilisation d'un jeu d'URL différent de celui spécifié par la meta {{{type_urls}}}. Ces argument rend superflu la fonction {{{charger_generer_url}}} qui disparait complètement.
La fonction {{{generer_url_entite}}} ne fait que lire le fichier X ainsi spécifier puis passe la main soit aux fonctions {{{generer_url_ecrire_article}}} etc dans le cas des URLs en écriture, soit sinon à la fonction {{{urls_}}}X{{{_dist}}}. Celle-ci a un double rôle: si son deuxième argument est numérique (ou une chaîne interprétable ainsi) elle produit l'URL de l'entité SQL ainsi désignée, à sa manière (propre, arbo, html...); si son deuxième argument est une chaîne, c'est une URL à partir de laquelle la fonction retrouve la table SQL et le numéro de l'entité (comme auparavant).
Pour ceux qui ont des jeux de fonctions {{{generer_url_...}}} personnels, il est normalement pas nécessaire de le réécrire pour en disposer, mais c'est préférable pour qu'il puisse co-exister avec les autres au besoin.
A noter qu'on ne peut actuellement faire co-exister Propre et Arbo car elles déclarent le même pipeline ({{{creer_chaine_url}}}), il faudrait revoir ce code.
Je laisse en test un moment avant de basculer sur la branche 2, d'autant qu'il faudrait statuer sur le fichier {{{tourner}}} qui au bord du fork.