[spip-dev] Tr: Re: Syntaxe pour squeletisation complete de SPIP [était] Débuter en CSS

Je passe ça sur SPIP-devel qui me semble plus approprié.

Antoine wrote:

Histoire de recentrer le débat, il me semble que la requête exprimée
(et récurente dans ce groupe), c'est de pouvoir avoir la complète
maitrise sur les éléments qui actuellement ne sont pas du ressort
des squelettes.
Sont concernés :
- les images <imgn°|position>
- les documents <docn°|position>
- les formulaires (forum, pétitions, sites, login)

[...]

Par exemple, pour une image, ceci reviendrait à avoir un
<INCLURE(spip_images.php3){align=left}> au cours de la génération de
la page.

Est-ce réaliste ?

Ca ne me semble pas idiot. La première chose à faire serait une
proposition de syntaxe pour cette "personnalisation".

Amicalement

Je me suis donc pencher sur la question aujourd'hui (excellente occasion de
relire la doc SPIP)
Voici le résultat de mes cogitations

Étude des éléments non squeletisés de SPIP
L'objectif de cette étude est de déterminer ce qu'il faudrait avoir dans des
squelettes (couple .php3/.html) pour que les élémens de SPIP qui sont
actuellement mis en forme par le c?ur de SPIP puisse l'être par squelette
(quite à ce que ces squelettes contiennent massivement du php).
Il y a déjà 2 balises de formulaire qui fonctionnent ainsi : #LOGIN_PRIVE et
#LOGIN_PUBLIC.
En regardant le fichier spip_login.php3, il est intéressant de voir que le
délais est à 3600, mais qu'il y a une variable $flag_dynamique = true;
#FORMULAIRE_RECHERCHE
· Garder la syntaxe #FORMULAIRE_RECHERCHE
· Rajouter la syntaxe alternative
<INCLURE(spip_formulaire_recherche.php3){recherche}> et l'utiliser
préférentiellement.
· Mettre le php qui va bien dans la zone de saisie du formulaire
(value="<?php echo ; ?>") pour qu'elle affiche le texte recherché.
· Ou variante : value="#RECHERCHE" avec un cache pour le squelette à
0 (zéro)
#FORMULAIRE_FORUM
Squeletisation possible
· Garder l'appel par #FORMULAIRE_FORUM
· Rajouter la syntaxe alternative
<INCLURE(spip_formulaire_forum.php3){id_article}> et l'utiliser
préférentiellement.
#FORMULAIRE_SIGNATURE
Squeletisation possible
· Garder l'appel par #FORMULAIRE_ SIGNATURE
· Rajouter la syntaxe alternative <INCLURE(spip_formulaire_
signature.php3){id_article}> et l'utiliser préférentiellement.
#FORMULAIRE_SITE
Squeletisation possible
· Garder l'appel par #FORMULAIRE_ SITE
· Rajouter la syntaxe alternative <INCLURE(spip_formulaire_
site.php3){id_rubrique}> et l'utiliser préférentiellement.
#FORMULAIRE_ECRIRE_AUTEUR
Squeletisation possible
· Garder l'appel par #FORMULAIRE_ ECRIRE_AUTEUR
· Rajouter la syntaxe alternative <INCLURE(spip_formulaire_
ecrire_auteur.php3){id_auteur}> et l'utiliser préférentiellement.
#FORMULAIRE_INSCRIPTION
Squeletisation possible
· Garder l'appel par #FORMULAIRE_ INSCRIPTION
· Rajouter la syntaxe alternative <INCLURE(spip_formulaire_
inscription.php3) > et l'utiliser préférentiellement.
#LOGIN_PRIVE et #LOGIN_PUBLIC
Squeletisation possible
· Garder l'appel par #LOGIN_PRIVE et #LOGIN_PUBLIC
· Rajouter la syntaxe alternative
<INCLURE(spip_login.php3){prive|public}{mapage.php3} > et l'utiliser
préférentiellement.
Le cas des images et documents
On peut inclure une image ou un document avec son numéro (j'utiliserais le
n°12 dans les exemples) et :
· img
· doc
· embed
Pour chacun des 3, on peut avoir 4 alignements disponibles
· left
· right
· center
· rien du tout
Par exemple, pour img, on pourra avoir :
· <img12|left>
· <img12|right>
· <img12|center>
· <img12>

Par ailleurs, le back-office de SPIP permet de préciser :
· Titre
· Descriptif

Squeletisation
Il me semble que le plus simple est de partir de l'étude de la boucle
document et de ses possibilités (La boucle DOCUMENTS - SPIP).
De plus, avec le filtre fichier, il est possible d'obtenir le chemin vers le
document/image concerné.
Donc, l'appel à un image/document/embed pourrait se résumer à l'inclusion d'
un squelette utilisant la boucle document pour faire l'affichage.
Syntaxe :
<INCLURE(spip_pieces_jointes){id_document}{img|doc|embed|logo}{link=oui|non}

Compatibilité avec la boucle DOCUMENTS
· #LOGO_DOCUMENT à INCLURE(spip_pieces_jointes){id_document}{logo}>
· [(#LOGO_DOCUMENT|#URL_DOCUMENT)] à
(spip_pieces_jointes){id_document}{logo}{link=oui}>
· #EMBED_DOCUMENT à <INCLURE(spip_pieces_jointes){id_document}{embed}

· [(#EMBED_DOCUMENT|autostart=true)] à
<INCLURE(spip_pieces_jointes){id_document}{embed}{params=autostart=true} >

Cordialement,