Le kit pour créer les sites internet des laboratoires du CNRS


Accueil > FAQ

FAQ squelettes

par Equipe web, pverrier - publié le , mis à jour le

Conseils relatifs aux squelettes SPIP du Kit labos et à leur personnalisation.

Puis-je modifier directement un fichier du Kit labos ?

Le contenu d’un plugin ne doit jamais être modifié directement.

Si vous avez besoin d’adapter certains squelettes à vos besoins, il suffit de copier ceux-ci dans votre dossier /squelettes, dans la même sous-arborescence relative ; par exemple, si vous souhaitez personnaliser le fichier css/charte-2/inc/inc-p-rubrique.html du kit labos, il doit être copié dans /squelettes avec le même chemin, ici /squelettes/css/charte-2/inc/inc-p-rubrique.html.

Modifier directement les fichiers d’un plugin est une très mauvaise pratique ; par ailleurs, SPIP 3 vous permet de mettre à jour automatiquement un plugin ; dans ce cas, tous les fichiers du plugin sont automatiquement remplacés, vos adaptations pourraient ainsi disparaître en un clic de souris. En plaçant vos fichiers adaptés dans le dossier /squelettes, vous êtes également sûrs que SPIP les préservera...

La page Où placer les fichiers de squelettes ? présente le dossier /squelettes et le principe de surcharge du code et la notion de “SPIP_PATH” dans le paragraphe “Priorité des dossiers de squelettes”.

Puis-je copier l’intégralité des fichiers du Kit labos dans mon dossier /squelettes, en vue de modifier certains fichiers ?

Vous vous dites que vous allez adapter le Kit labos à vos besoins, et pour cette raison vous copiez tous ses fichiers dans /squelettes : en procédant ainsi, vous verrouillez toute mise à jour ultérieure du Kit labos, les squelettes situés dans /squelettes étant toujours prioritaires sur ceux du dossier du plugin : même si vous faites des mises à jour du plugin, celles-ci seront inopérantes, car vous avez figé dans le temps votre version et empêché le chargement des fichiers plus récents du plugin. Non seulement, il ne faut copier QUE les fichiers que vous personnalisez, mais également, à chaque fois que vous faites une mise à jour du plugin, il faut mettre à niveau les copies dont vous disposez dans /squelettes pour y reporter les dernières évolutions.

Comment faciliter la maintenance de mes modifications ?

Commentez, toujours, les sections de code que vous modifiez.

Il est indispensable de pouvoir repérer facilement les adaptations que vous réalisez sur un fichier du kit labos ; en effet, lorsque vous mettrez à jour ce plugin, il faudra reporter les adaptations que vous aurez réalisées sur la nouvelle version des fichiers afin de bénéficier de leurs évolutions.

Par exemple, si vous disposez d’un fichier /squelettes/inc/inc-p-auteur.html, et que le fichier inc/inc-p-auteur.html fourni avec la nouvelle version du kit a évolué, vous devrez copier ce nouveau fichier dans votre dossier squelettes et y reporter les modifications que vous aviez réalisées ; vous bénéficierez ainsi de vos adaptations et des dernières évolutions de ce fichier. Pour faciliter la comparaison des différents fichiers un outil de comparaison tel que Beyond Compare peut vous être très utile.

Nous vous conseillons de repérer chaque modification que vous réalisez dans un squelette avec des commentaires SPIP :

  • une ligne introduisant la modification comme par exemple :
    [(#REM) Modif Pascal Verrier le 17/2/14: 3 actualités affichées au lieu de 5]
  • pour une suppression, une ligne comme :
    [(#REM) Modif Pascal Verrier le 17/2/14: Supprimé 5 lignes]
  • une ligne avant + un ligne après un bloc ajouté ou modifié :
    [(#REM) Début ajout Pascal Verrier le 17/2/14: Liste des mots-clés]
    ...
    [(#REM) Fin ajout Pascal Verrier]

Vous pourrez ainsi facilement retrouver vos modifications et leur justification dans votre comparateur de fichiers.

Je souhaite modifier un squelette du Kit labos, que faire ?

Vous avez repéré le fichier concerné, par exemple : css/charte-2/inc/inc-rubrique-corps.html.

→ Copiez ce fichier, en conservant sa sous-arborescence dans le kit labos, dans votre dossier /squelettes : pour cet exemple, /squelettes/css/charte-2/inc/inc-rubrique-corps.html.

Vous pouvez alors adapter à vos besoins cette copie située dans /squelettes, à l’aide d’un éditeur texte compatible UTF-8 ; pensez à commenter les portions de code que vous modifiez, comme indiqué ci-dessus.
Le fichier original ne doit jamais être modifié.

J’ai créé une variante de squelette mais elle n’est pas appelée

Vous avez créé un fichier rubrique=22.html ou article-22.html mais il n’est jamais appelé.

→ Avez-vous pensé à placer le fichier générique correspondant (article.html ou rubrique.html) dans votre dossier /squelettes ? Sa présence est obligatoire, autrement votre variante ne sera pas prise en charge. Plus d’informations sur spip.net : Les variantes de squelette.

Comment déboguer un squelette SPIP ?

→ SPIP offre beaucoup d’options qui peuvent être très utiles en développement : http://www.spip.net/fr_article4453.html
→ Vous pouvez obtenir le phpinfo de votre serveur, à savoir sa configuration, en utilisant l’URL http://url_de_votre_site/ecrire/?exec=info (il faut être connecté en adminstrateur)
→ Ce document, pour les utilisateurs plus avancés, présente le débug PHP et XDebug : http://blog.spip.net/IMG/pdf/bugetdebug-php.pdf

Notez que durant la phase de tests, votre fichier php.ini doit être configuré pour afficher les erreurs ; sur un site en production, leur affichage à l’écran doit être masqué. Pensez donc à afficher les erreurs, en particulier sur votre serveur de développement. Sachez que le php.ini fournit généralement des exemples de valeurs de configuration et toutes les explications nécessaires (ici exemple des trois options principales, provenant de Wamp) :

; display_errors
;   Default Value: On
;   Development Value: On
;   Production Value: Off

; error_reporting
;   Default Value: E_ALL & ~E_NOTICE
;   Development Value: E_ALL | E_STRICT
;   Production Value: E_ALL & ~E_DEPRECATED

; log_errors
;   Default Value: Off
;   Development Value: On
;   Production Value: On

Les constantes qui peuvent être utilisées pour l’“error reporting” sont décrites ici ; notez également que l’emploi de la valeur -1 active l’affichage de toutes les sortes d’erreurs.

Si vous ne pouvez pas agir sur le php.ini (c’est généralement le cas avec un hébergement externalisé), vous pouvez mettre ce code dans le fichier /config/mes_options.php (à créer s’il n’existe pas) :

  1. <?php
  2. // mode debug
  3. $debug_vars = array(
  4. 'error_reporting' => -1,
  5. 'display_startup_errors' => '1',
  6. 'display_errors' => '1',
  7. );
  8. foreach($debug_vars as $var=>$val)
  9. if (ini_set($var,$val)===FALSE) print '<p class="debug">Impossible de modifier <em>'.$var.'</em></p>'."\n";
  10. unset($debug_vars);

Télécharger

N’oubliez pas de supprimer ce code une fois le problème résolu, l’affichage d’erreurs à l’écran devant toujours être désactivé sur un site de production car il pourrait aider à son piratage (et cela ne fait pas très sérieux...). Les erreurs sont par ailleurs “loguées” (si log_errors est activé) dans un fichier texte sur le serveur, qu’il faut consulter régulièrement.

Voir aussi sur spip.net : Les aides au débuggage de squelettes - Obtenir encore plus d’informations pour le debuggage.

Comment personnaliser l’habillage graphique (CSS) ?

→ Pour personnaliser l’habillage graphique, vous devez créer une feuille de styles de surcharge ; informations dans l’article Option : personnaliser les bandeaux-images (Kit labos v5.x pour SPIP 2 ou 3) ;
→ Les Cahiers techniques proposent des solutions à des besoins fréquents de personnalisations CSS.