Placer les squelettes dans des sous répertoires

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Comment organiser de façon hiérarchique ses squelettes dans un site sous SPIP, en plaçant des squelettes à la racine de SPIP mais également dans des sous-répertoires.

Un besoin de hiérarchiser le site…
Lorsqu’un site devient important en terme de contenu, il devient indispensable
de hiérarchiser ses données et tout particulièrement les
squelettes à l’intérieur du site.

Réorganisation et position des squelettes
La hiérarchisation passe par une réorganisation du site avec la
création de sous-répertoires, typiquement pour des images, des
fichiers à télécharger… mais également pour
les squelettes. Or l’utilisation de sous-répertoire à l’intérieur
du site pour y placer les squelettes est assez difficile à réaliser.
On peut lire diverses articles sur le sujet mais je n’ai trouvé
aucune réponse satisfaisante à mon problème, à savoir
une solution simple à mettre en place, facile à maintenir. Un
site non hiérarchisé utilisant SPIP contient, à la racine
du site, un répertoire ‘SPIP’ dans lequel on place normalement
les couples (.php3 / .html) formant les squelettes. Un site réorganiser
doit pouvoir accueillir les squelettes dans des sous-répertoires, n’importe
où dans le site.

Base de la solution
J’ai basé ma solution sur l’utilisation du fichier ecrire/mes_options.php3
qui permet de définir de manière statique et figée pour
le site l’unique répertoire contenant tous les squelettes du site.

Exemple de fichier mes_options.php3
 :

< ?php
$dossier_squelettes="./squelettes" ;
 ?>

Dans ce fichier, on définit le répertoire contenant les squelettes
SPIP, de manière unilatérale. D’une manière pratique,
les couples (.php3 / .html) sont séparés. Les fichiers .php3 sont
maintenus à la racine du site, les fichiers .html étant quant
à eux dans le répertoire ‘squelettes’.

J’ai trouvé l’idée intéressante et fort de
mon expérience j’ai décidé d’y apporter quelques
modifications, afin d’ajouter la possibilité de spécifier
des répertoires différents pour chaque squelette. Je garde les
fichiers .php3 à la racine du site et je place mes fichiers .html n’importe
où dans le site.

Evolution
L’idée est de spécifier l’emplacement des fichiers
.html dans les .php3 correspondants (ceux qui restent à la racine du
site). Dans ce .php3, je positionne une variable PHP appelée $dossier_location
qui contient le répertoire du fichier .html correspondant.

Exemple de fichier myarticle.php3 :

< ?php

$dossier_location="sous_rep_my" ;

$fond = "myarticle" ;
$delais = 24 * 3600 ;

include ("inc-public.php3") ;

 ?>

Je crée donc un répertoire ‘sous_rep_my’ sous la
racine de SPIP et j’y place mon fichier myarticle.html.

Le fichier ecrire/mes_options.php3 est modifié très légèrement
de manière à prendre en compte la spécification de l’emplacement
du squelette (.html).

Le fichier mes_options.php3 modifié :

< ?php
// test si un dossier spécifique est précise dans le .php3 du
squelette
// si oui, on force $dossier_squelette à cette valeur
// si non, on met la valeur par défaut
if($dossier_location)

$dossier_squelettes=$dossier_location ;

else

$dossier_squelettes="./" ;

 ?>

Arborescence :
/ ( racine du site)
/SPIP (répertoire contenant
SPIP et contenant ‘myarticle.php3’)
/SPIP/sous_rep_my (répertoire
contenant mon squelette ‘myarticle.html’)
/SPIP/ecrire (répertoire
contenant la partie admin de SPIP et mes_options.php3)

Extension :
Il est possible par extension de placer les fichiers .html dans des répertoires
imbriqués. Par exemple un squelette ’articles_publics.html’ pourra être
placé dans le répertoire /SPIP/mes_squelettes/publics. Le .php3
correspondant sera de la forme suivante :

Exemple de fichier articles_publics.php3 :

< ?php

$dossier_location="mes_squelettes/publics" ;

$fond = "articles_publics" ;
$delais = 24 * 3600 ;

include ("inc-public.php3") ;

 ?>

Arborescence étendue :
/ ( racine du site)
/SPIP (répertoire contenant
SPIP et contenant ‘articles_publics.php3’)
/SPIP/mes_squelettes
/SPIP/mes_squelettes/publics (répertoire
contenant mon squelette ‘articles_publics.html’)
/SPIP/mes_squelettes/prives (répertoire
contenant mon squelette ‘articles_prives.html’)
/SPIP/ecrire
(répertoire contenant la partie admin de
SPIP et mes_options.php3)

A télécharger sur cet article
J’ai créé un fichier ’article_sous_rep.zip’ qui contient les fichiers
dont je parle plus haut.

Bilan
En ajoutant une ligne dans le fichier .php3 des squelettes pour spécifier
le sous-répertoire contenant le .html correspondant, et en prenant exemple
sur le fichier mes_options.php3 décrit ci-dessus, il est possible de
placer ses squelettes de manière hiérarchisée dans un site
en SPIP.

Discussion

3 discussions

  • 1

    mais d’origine y’a pas le fichier : ecrire/mes_options.php3 ???

    Répondre à ce message

  • 1

    Comme beaucoup d’articles dans ce forum, on ne sait pas avec quelle version de SPIP cela fonctionne.
    De plus, certains auteurs parlent de l’emplacement des squelettes a indiquer dans les fichiers « mes_options.php3 » et/ou « mes_fonctions.php3 » ce qui sème, encore une fois, la confusion...
    Doit-on indiquer l’emplacement de ces squelettes dans « mes_options.php3 » qui est dans le repertoire « ecrire » ? Doit-on le faire dans le fichier « mes_fonctions.php3 » qui, lui, est situe a la racine du site ? Doit-on le faire dans les 2 fichiers ??? On ne sait pas, comme d’hab...
    Ce qui fait que des trucs et astuces super comme celui donne ici, passent pour une prise de tete du fait qu’ils ne sont pas assez souvent clairement expliques...

    • Bonjour, ce site est géré bénévolement par une équipe d’administrateurs, et les commentaires pour améliorer le site sont en général bienvenus, s’ils sont exprimés cordialement ;-)

      Concernant cette contribution proprement dite, elle se trouve dans la rubrique « bidouilles » et comme le précise le texte d’avertissement, son fonctionnement n’est pas assuré. En gros la contrib est intéressante, donc autant la publier, mais pas vraiment aboutie au sens que les admins y donne sur spip-contrib. Elle n’est donc pas pour les débutants, mais pour ceux qui connaissent déjà bien spip.

      Un groupe de mots-clés (au sens de spip) permet de connaitre les versions compatibles avec la contrib, il est affiché dans la colonne de droite si besoin.

      La variable dossier_squelette peut être précisé soit dans mes_fonctions.php3 soit dans ecrire/mes_options.php3, cela peut paraitre troublant (?) moi ça ne me gène pas au contraire

      Les autres questions j’ai oublié...

    Répondre à ce message

  • Mobcustom

    J’ai essayé avec la version 1.8, ça n’a pas l’aire de fonctionner. - :(

    Est ce que quelqu’un y est arrivé ?

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom