SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Outils pour squelettes > Tutoriaux pour squelettes > Archives Tutoriaux squelettes

Placer les squelettes dans des sous répertoires

mardi 5 avril 2005, par Pierre Bressy. Dernier ajout dimanche 25 février 2007


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.

Documents joints


Répondre à cet article

  • > Placer les squelettes dans des sous répertoires

    12 juillet 2005 12:54, par Léon

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

    Répondre à ce message

    Retour au début des forums

  • 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...

    Répondre à ce message

    • de les remarques... 23 août 2005 08:40, par DoriaN

      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

    Retour au début des forums

  • > Placer les squelettes dans des sous répertoires

    5 août 2005 00:30, par 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é ?

    Voir en ligne : Mobcustom

    Répondre à ce message

    Retour au début des forums



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net