Plugin « Initialiser Zcore »

Suite à l’article Créer des squelettes avec Zcore, ce plugin voit le jour. Il permet de créer pour tous les objets éditoriaux le squelette nécessaire pour fonctionner avec l’architecture « Z » et plus précisément avec Zcore.

Installation

Le plugin est répertorié dans le dépôt proposé par défaut : « SPIP-Zone - Plugins ». Aussi, il est installable depuis la page Gestion des plugins, onglet Ajouter des plugins si vous avez activé ce dépôt. Pour le retrouver dans la liste des plugins, il suffit de rechercher par son préfixe "zinit".

En cas de besoin, référez-vous à l’article dédié à l’installation de plugins sur spip.net.

Présentation

Ce plugin reprend les principes dans l’article "Créer des squelettes avec Zcore« et vous aide à faire ces différentes opérations depuis l’espace privé. Après activation, un lien est ajouté dans le menu »Squelettes«  : »Squelettes Zcore". Il vous amènera sur la page suivante :

Sur cette dernière, vous avez 3 tableaux :

  • Les contrôles ;
  • Les répertoires ;
  • Les objets éditoriaux.

Les contrôles

Dans la version 0.2 du plugin, il n’y a qu’un contrôle qui est fait : la détection de la présence de la globale « z_blocs ».
Le plugin ne crée pas à votre place la globale.

Les répertoires

Si la globale « z_blocs », utilisée par le plugin Zcore, est définie, le plugin listera les répertoires (ou plutôt blocs). Dans le cas contraire, la liste minimum de répertoires est la suivante :

  • content (obligatoire) ;
  • head ;
  • head_js.

Ces répertoires sont les blocs minimum attendus par les fichiers structure.html et body.html fournis par le plugin Zcore.
La première colonne donne les noms des répertoires, la seconde vérifie la présence de ces répertoires dans squelettes_zcore. Ce répertoire étant créé par le plugin.
La troisième colonne liste la présence des répertoires dans le répertoire squelettes.
Un bouton « Mise à jour » est présent sous la deuxième et troisième colonnes.

Mise à jour
Ce bouton permet de créer les répertoires définis par z_blocs. Si des répertoires présents dans le dossier « squelettes_zcore » ne font pas partis de la liste minimum de répertoires de z_blocs, ils seront supprimés s’ils sont vides.
Le principe est le même si vous cliquez sur le bouton « Mise à jour » de la colonne « squelettes ».

Les objets éditoriaux

Nous avons là encore le principe de 3 colonnes :

  • Le nom des objets éditoriaux ;
  • Leur présence dans « squelettes_zcore » avec le nom du fichier html ;
  • Leur présence dans « squelettes » avec le nom du fichier html.

Comme pour chaque détection, on aura une icône « rouge » si le fichier est absent, et une icône « verte » si le fichier est présent.

Mise à jour
Lorsqu’on clique sur le bouton « Mise à jour », le plugin va créer les fichiers dans le répertoire adéquate.

Détection des objets éditoriaux
La liste des objets est déterminée par la description des tables dans SPIP. Chaque descriptif de table possède la valeur « page ». Si cette valeur est vide, l’objet est ignoré dans la liste. Cet objet n’est donc pas prévu par son concepteur pour être visible dans l’espace public de SPIP.
De ce fait, si vous ne voyez pas un objet éditorial précis, une piste est à voir de ce côté-là.

Ignorer des objets éditoriaux
Le plugin permet en plus de la détection citée précédemment, d’exclure des objets précis. Actuellement, le plugin ne prend pas en compte l’objet « éditorial » Plugin, Dépôt et Paquet, qui en soit ne sont pas des objets éditoriaux pour des sites internets classiques. Ils ont pourtant une page de vue pour l’espace public (cf. http://plugins.spip.net/?plugin12). Ils sont exclus grâce à $GLOBALS['zinit_tables_exclues']. Voici les valeurs dans le plugin :

$GLOBALS['zinit_tables_exclues'] = array('spip_jobs', 'spip_types_documents', 'spip_messages', 'spip_depots', 'spip_plugins', 'spip_paquets');

Si vous désirez rajouter des tables à exclure, il vous suffit de personnaliser cette globale dans votre fichier mes_options.php.

Aller plus loin

Il est possible de personnaliser le nom du répertoire qui recevra les templates de base grâce à la constante _ZINIT_DIR_SQUELETTES. Par défaut, sa valeur est : _DIR_RACINE.'squelettes_zcore/' soit « ../squelettes_zcore ».
Il n’est pas recommandé de changer cette valeur.

De plus, il est aussi possible de personnaliser le répertoire dans lequel copier ces templates grâce à la constante _DIR_SQUELETTES. Par défaut, sa valeur est _DIR_RACINE.'squelettes/' soit le répertoire « squelettes » de votre site.
Si vous désirez par exemple créer un plugin offrant des squelettes à base de Zcore, il vous suffit de renseigner le chemin vers votre plugin dans le fichier mes_options.php

Discussion

4 discussions

  • Bonjour et merci pour ce plugin... Y a-t-il un retour pour l’utilisation de ce plugin sous spip 4.2 ? Quelqu’un a-t-il déjà essayé en modifiant les bornes de version ?

    Répondre à ce message

  • 3

    Hello Teddy ! :)

    Bon, en vrai j’ai peur d’avoir compris de travers l’intérêt de ce plugin.
    Ce nouveau répertoire /squelettes_zcore en fait c’est quoi ? un fallback intermédiaire spécifique à Zcore entre /squelettes et /squelettes-dist au cas où il te manque des fichiers de base dans /squelettes ? C’est ça ?

    Que faut-il fairer ensuite, ces fichiers sont-ils automatiquement pris en compte par SPIP ou bien est-ce une « pré création », à reporter ensuite manuellement dans /squelettes ?

    Je pensais avoir compris la moulinette et le pourquoi du comment mais apparemment, pas du tout, en fait ... ?

    • Hello l’ami !

      L’intérêt de ce plugin est bien cela :

      • un répertoire intermédiaire.

      Il crée selon ta sélection dans le BO des templates (dans /squelettes_zcore) que tu pourras copier dans ton répertoire squelettes/ et ainsi les modifier sans avoir peur de perdre tes modifications à un prochain clic dans le BO.

      Astuce, si tu indiques dans _DIR_SQUELETTES l’url vers un répertoire plugin, c’est ce répertoire qui sera « analysé » dans le BO.

      Oui, /squelettes_zcore est intermédiaire. Mais je ne sais pas si on utilise ici ce terme de la même façon… :-/
      Je pense à « temporaire » en fait, ou « mémoire tampon »…

    • Merci de ta réponse rapide :-)

      Il crée selon ta sélection dans le BO des templates (dans /squelettes_zcore) que tu pourras copier dans ton répertoire squelettes/

      ok jusqu’ici on est bon

      les modifier sans avoir peur de perdre tes modifications à un prochain clic dans le BO.

      Il y a risque ? J’avais cru comprendre que si un fichier existait déjà à priori, il était safe ?

      Astuce, si tu indiques dans _DIR_SQUELETTES l’url vers un répertoire plugin, c’est ce répertoire qui sera « analysé » dans le BO.

      Ben... avec skeleditor ca va faire des étincelles ça, non ? _DIR_SQUELETTES je l’aime bien branchée sur le répertoire /squelettes quand même dans le principe...

      Je pense à « temporaire » en fait, ou « mémoire tampon »…

      et je pense que c’est effectivement ça qui m’a échappé.

      En tout cas merci de tes lanternes ;)

    • Hello,

      J’étais connecté, alors j’en ai profité pour te répondre rapidement :-D

      Il y a risque ? J’avais cru comprendre que si un fichier existait déjà à priori, il était safe ?

      Non justement, il écrase l’existant. C’est bien pour cela que j’ai mis en place le répertoire tampon : /squelettes_zcore
      Il ne sert vraiment que de sauvegarde dans le cas d’une mauvaise manipulation dans le répertoire /squelettes (exemple : une boucle qui ne fonctionne pas, une parenthèse en trop, une variable manquante, etc.)
      Il ne faut pas oublier qu’il ne crée pas de fichier /content/objet.html. Pour 2 raisons :

      • Le contenu de ces fichiers est propre à chacun et son utilisation. Un blog ? Un magazine ? Un portfolio ? etc. Sous quel type de construction ? Bootstrap ? Foundation ? SPIP-dist ?
      • Ben, à cette période, honnêtement, je n’avais aucune idée de comment faire techniquement pour créer ces fichiers « templatés ».

      Ben... avec skeleditor ca va faire des étincelles ça, non ? _DIR_SQUELETTES je l’aime bien branchée sur le répertoire /squelettes quand même dans le principe...

      Je n’ai pas testé avec Skeleditor. Il faut dire que j’utilise zinit qu’en phase de développement et pas en production…
      C’est « comme » si tu me disais que tu activais le plugin « Dev » en production. ;-)
      En tout cas, c’était le concept que j’avais en tête à la création de ce présent plugin.

      Voilà :-*

    Répondre à ce message

  • 3

    Bonjour,

    il y a un petit problème sur l’usage du flux RSS avec HTTPS avec ce squelette seul (ou avec d’autres) en plugin (appel de /spip.php ?page=backend) (installation https suivant mode d’emploi https://contrib.spip.net/Passer-un-site-SPIP-sous-https) , la page renvoyée n’est pas au format et cela génère un erreur sur le navigateur « Aucune information de style ne semble associée à ce fichier XML. L’arbre du document est affiché ci-dessous. »

    Vos squelettes utilisent-ils la balise #CHEMIN comme recommandé ?
    De où cela pourrait-il bien venir ?
    merci d’avance.

    Répondre à ce message

  • 1

    Merci pour ce plugin très utile ! C’était pénible de faire ça à la main, et partir d’un jeu de squelettes Z existant pose d’autres problèmes…

    Je me permet quand même une petite remarque : je trouverais utile qu’il génère aussi une page pour le sommaire.

    • Bonjour,

      Désolé pour la réponse très tardive

      Pour sommaire.html, il n’est pas nécessaire de créer ce fichier à la racine du répertoire squelettes/ car Z-core utilise le fichier page.html pour la gestion de cette page non éditoriale (cf. ce n’est pas une table de la base de données).

    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