Plugin personnaliser l’espace privé par rubriques

Cette contribution surcharge des fichiers et/ou des fonctions de SPIP : il n’est donc pas garanti qu’elle fonctionne avec d’autres contributions surchargeant lesdits fichiers et/ou fonctions. Sa compatibilité avec les versions de SPIP est donc assez restreinte.

Ce plugin permet de reprendre une partie des options de configurations du site (activer les brèves, la syndication, les mots clés, etc.) et de les adapter en fonction des rubriques.
De même il est possible de personnaliser les champs de saisie de l’espace privé pour les objets éditoriaux.

Présentation

Ce plugin permet de reprendre une partie des options de configurations du site et de les adapter en fonction des rubriques. Par défaut SPIP permet de configurer pour l’ensemble du site si l’on souhaite ou non utiliser les brèves, les sites syndiqués, les types de champs à utiliser pour les articles (surtitre, sous-titre, chapeau, date de rédaction antérieure, etc) ou les rubriques (descriptif rapide). Ces informations sont stockées dans la table spip_metas de la base de données. Une précédente contribution permettait de personnaliser ces options (cf. Personnaliser les champs de l’espace privé) en fonction de la rubrique. Cette contribution est reprise ici sous forme de plugin.

Le plugin installe un nouvel onglet « Privé perso » sous le menu configuration.

Cet onglet permet de créer de nouvelles personnalisations à l’aide d’un formulaire de saisie et de gérer les personnalisations déjà crées (modifier, supprimer activer/désactiver).

Fonctionnalités

Un formulaire de saisie permet de choisir quelle rubrique l’on souhaite personnaliser, si la personnalisation doit s’appliquer aux sous-rubriques, et si l’on souhaite personnaliser le texte des champs de saisie.

Choix des objets éditoriaux et de leurs champs :
Voici la liste des objets que l’on peut choisir d’afficher/utiliser en fonction des rubriques :

-  Pour les articles :

  • les activer ou non
  • Surtitre
  • Sous-titre
  • Descriptif rapide
  • Texte
  • Chapeau
  • Post-scriptum
  • Date de rédaction antérieure
  • Liens url

-  Pour les rubriques :

  • Autoriser ou non la création de sous-rubriques
  • Descriptif rapide
  • Texte

-  Les brèves

  • Les activer ou non (y compris dans les sous-rubriques à partir de la version 0.5)

-  Syndication de sites

  • L’activer ou non.

-  Utilisation des mots clés

  • L’activer ou non.

Modification des intitulés des champs de saisie :

Aspect technique

Nouvelles tables

Le plugin installe deux nouvelles tables dans la base de données :
-  spip_priveperso
-  spip_priveperso_texte
La première table permet de stocker les options de configuration pour chaque rubrique tandis que la deuxième stocke les textes des champs de saisie.

Le plugin récupère l’id_rubrique en cours et en fonction de celui-ci surcharge $GLOBALS[’meta’]. Cette surcharge est effectuée lors de l’appel au pipeline ’exec_init’.
Pour ce qui est des articles et des sous-rubriques (les activer ou non), le plugin passe par le pipeline ’autoriser’

Pipelines

Les pipelines utilisées par ce plugin :
-  declarer_tables_principales
-  declarer_tables_interfaces
-  exec_init
-  autoriser

Surcharges

Pour le texte, un fichier local_fr.php permet de surcharger les chaines de langue.

Les formulaires d’édition des articles, breves et rubriques ont aussi du être surchargés... en effet ces formulaires utilisent souvent une même chaine de langue (par exemple <:titre :>) à plusieurs endroits, ce qui ne permettait pas par exemple de personnaliser l’intitulé du champs titre pour les articles sans modifier celui des rubriques et des brèves.

De nouvelles chaines de langue ont donc été introduites dans editer_article.html, editer_rubrique.html et editer_breves.html.

A partir de la version 0.5, l’extension des brèves aux sous-rubriques implique la surcharge de deux fichiers supplémentaires : ecrire/action/editer_breves.php et prive/formulaires/editer_breves.php.

Cette surcharge peut être problématique si les fichiers ci-dessus sont déjà surchargés par ailleurs. Si la surcharge a lieu après ce plugin, on perd une partie de la personnalisation des champs de saisie (modifier le champs « Titre : » des articles modifiera aussi par exemple les champs « Titres : » des url, des brèves et des rubriques).

Multilinguisme

A partir de la version 0.4, on peut saisir le texte des champs que l’on souhaite modifier à l’aide des balises multi <multi>[fr]Mon texte[en]My text[es]Mi texto </multi>.

Du coup, lorsque l’on change la langue de navigation dans l’espace privé, les nouveaux champs s’affichent dans la bonne langue.

Exemple : un site avec trois secteurs.

1er secteur : « Légumes »

Pour ce secteur on souhaite publier des légumes. Pour chaque légume seules 3 informations sont demandées :
-  le nom latin (surtitre)
-  le nom commun (titre)
-  l’espèce (sous-titre).

On ne veut dans ce secteur ni brèves ni sites, et une application aux sous rubriques (hiver, printemps, été, automne).

2e secteur : Fruits

Pour ce secteur, les champs à renseigner seront à nouveau :
-  le nom latin (surtitre)
-  le nom commun (titre)
-  l’espèce (sous-titre)
et on rajoute :
-  recette associée (texte).

3e secteur : blogue du jardin

On garde toutes les fonctionnalités possibles (tous les champs des articles + sites + brèves).

La navigation dans la rubrique « Légume » donnera par exemple :

et en cliquant sur « Ecrire un nouveau légume » on obtient :

Pour savoir comment installer des plugins :Installer un plugin

Attention : Pour la version 0.3, j’utilisai très mal le pipeline autoriser... Le plugin passait outre les autorisations par défaut de spip de créer des sous-rubriques ou des articles.

La version 0.4 corrige cela et de plus vérifie si les fonctions concernées sont déjà définies par ailleurs (mes_options, autres plugins). Du coup le plugin redevient compatible avec le plugin Autorité par exemple (mais on perd l’autorisation par rubrique pour les articles et les sous-rubriques).

Version 0.5 : Les brèves peuvent être utilisées dans les sous-rubriques (moyennant la surcharge de deux fichiers de spip : ecrire/action/editer_breves.php et prive/formulaires/editer_breves.php)

Version 0.6 : Ajout des items de date dans la personnalisation (« DATE DE PUBLICATION EN LIGNE : » et « DATE DE CRÉATION DE L’ARTICLE : »

Discussion

19 discussions

  • 4

    Bonjour,

    Pour mes besoins en SPIP 3, j’ai effectué une adaptation du plugin. Cette adaptation est minimale, car je n’ai pas essayé l’ensemble des fonctions, mais la personnalisation d’un formulaire d’article d’une rubrique particulière fonctionne. Il y a certainement plus de modifs à faire pour être conforme aux principes de SPIP 3, que Sébastien Zamith me pardonne et soit remercié pour son plugin.

    • Dans squelettes/images , j’ai copié l’image creer.gif qui n’existe plus dans SPIP 3 en la récupérant dans une version SPIP2 ( prive/images ).
    • Dans les fichiers exec/priveperso.php et exec/priveperso_edit, à la ligne 46, j’ai remplacé icone_inline qui n’existe plus en SPIP 3, par icone_verticale.
    • J’ai remplacé le fichier plugin.xml par paquet.xml dont le code est ci-dessous. Pour la mise en page sur ce forum, j’ai du couper en 2 l’url de la balise , recollez les morceaux !.

    Cordialement.

    Henri


    <paquet
    	prefix="priveperso"
    	categorie="maintenance"
    	version="0.6.1"
    	etat="experimental"
    	compatibilite="[3.0.0;3.0.*]"
    	logo="images/priveperso-24.png"
    	documentation="http://www.spip-contrib.net/
    Plugin-personnaliser-l-espace-prive-par-rubriques"
    >
    <nom>PrivePerso</nom>
    <auteur>Sébastien Zamith</auteur>
    <licence 
    	lien="http://www.gnu.org/licenss/gpl-3.0.html"
    	>GNU/GPL</licence>
    <menu
    	nom="priveperso"
    	titre="priveperso:Prive_perso"
    	parent="bando_configuration"
    	icone="images/priveperso-24.png"
    	></menu>	
    <pipeline
    	nom="declarer_tables_principales"
    	inclure="base/pipelines_priveperso.php"
    	action="init_tables_principales"
    	></pipeline>
    <pipeline
    	nom="declarer_tables_interfaces"
    	inclure="base/pipelines_priveperso.php"
    	action="init_tables_interfaces"
    	></pipeline>
    <pipeline
    	nom="exec_init"
    	inclure="base/pipelines_priveperso.php"
    	></pipeline>
    <pipeline
    	nom="autoriser"
    	inclure="inc/priveperso_autoriser.php"
    	></pipeline>
    
    </paquet>
    • Un petit complément en attendant que le travail soit parachevé par plus compétent.

      Il manque un icône pour les menus de la page de configuration de SPIP.

      • créer les répertoires : prive/themes/spip/images et y mettre l’image priveperso-16.png qui est jointe à ce post ;
      • modifier le fichier paquet.xml comme ci-dessous :

      Cordialement.
      Henri


      <menu
      	nom="priveperso"
      	titre="priveperso:Prive_perso"
      	parent="menu_configuration"
      	icone="images/priveperso-16.png"
      	></menu>
    • Jérémy

      Bonjour

      J’ai voulu moi aussi intégrer le plugin à Spip 3.0.16.
      En me basant sur les infos de hdeb, j’ai du supprimer le pipeline autoriser, ça dépassait le temps de calcul de mon site.
      J’ai aussi modifier le code pour que les tables se crée correctement et 2-3 autres adaptations.
      Je vais aller m’inscrire sur Spip-Zone pour y mettre le code.
      Si quelqu’un a des idées pourquoi le pipeline autoriser ne fonctionne plus (ça semble être un problème de requête SQL), je suis preneur.

      Cordialement

    • Bonjour,

      Pour informations, il y a le plugin « Diogène » qui a été développé en SPIP 3 et qui est un peu le remplaçant du plugin « Privé Perso ». ;-)

    • ça m’a l’air intéressant. Je vais tester quand j’aurais du temps en novembre.

    Répondre à ce message

  • 2

    Salut !

    Avez-vous le plan pour développer le plugin pour SPIP 3 ?

    Serge

    • oui, mais pas dans l’immédiat... mais le plugin est sur spip-zone et ne demande qu’à être amélioré, continué, etc.

    • Bonjour,

      Je relance le sujet.
      N’ayant pas assez de connaissance pour faire évoluer moi-même le plugin, j’aurais aimé savoir si vous pensiez consacrer du temps au portage vers SPIP 3 ou si cela n’était toujours pas d’actualité ?

      Merci d’avance :)

    Répondre à ce message

  • 1

    Bonjour !

    Tout d’abord merci pour le boulot !

    Une petite question tout de même !

    Le plugin fonctionne très bien lorsque l’on est dans l’arborescence du site par contre, en cliquant sur écrire un nouvel article depuis le menu édition, comme il n’y a pas d’id rubrique, les champs ne sont pas modifiés.

    Est-il possible de palier à cela ?

    Merci d’avance

    • J’ai bien peur que non... Il est nécessaire d’avoir un id_rubrique en amont pour pouvoir personnaliser.
      Ceci dit s’il s’agit de changer l’intitulé des champs quelle que soit la rubrique, il est toujours possible de surcharger directement le fichier de langue idoine.

    Répondre à ce message

  • 3

    Il semblerait qu’il y ait un conflit avec le plugin crayons. SPIP 2.1.12.
    Plugin personnaliser l’espace privé installé seul :je demande l’affichage de certains champs et le masquage des autres dans les articles : OK, ça fonctionne au poil.
    Crayons 1.13.3 activé : la personnalisation ne fonctionne plus.
    Constaté en local et en distant

    Quelqu’un reproduit ?

    • Euh, je précise... quand les crayons sont activés pour l’espace privé

    • Oui effectivement je reproduis... et je n’ai pas de solution !
      Visiblement le plugin Crayons recalcule la page sans prendre en compte les personnalisations...
      Ceci dit si les champs ont été remplis avant d’activer les Crayons, ils ont bien modifiables par les Crayons.

    • ... Peut-être serait-il intéressant d’avoir le point de vue de Fil ? Forcément, il connaît « ses crayons » sur le bout de la mine et il pourra sans doute fixer une piste. Je te laisse faire ?

    Répondre à ce message

  • 5

    Bonjour et merci pour ce plugin, simple et efficace ! !
    J’ai l’impression que ce n’est pas prévu : est-il possible avec ce plugin d’avoir également une personnalisation des libellés « date de publication » ?

    • Non ce n’est effectivement pas prévu dans la version actuelle... y’a plus qu’à...
      Bon, là, dans l’immédiat je ne pourrais pas me pencher dessus. Mais si tu es motivé, le plugin est sur la zone et ne demande qu’à être modifié/amélioré.

    • Juste pour préciser, c’est bien « DATE DE PUBLICATION EN LIGNE : » qui doit être personnalisé (DATE DE PUBLICATION EN LIGNE :) ?

    • Oui, oui ! c’est à ce libellé là que je pensais.

    • Bon, la version 0.6.0 devrait le faire. Bonne personnalisation !

    • Ah, on dira ce qu’on voudra, mais SPIP et sa communauté, c’est tout de même quelque chose ! Du coup, j’ai essayé la nouvelle version de ton plugin et, miracle !, à la place de date de publication en ligne j’ai maintenant droit à un un magnifique « date de projection prévue » !
      Le bonheur, quoi ! MERCI !

    Répondre à ce message

  • 3

    est-ce le même plugin qui est présenté par xdreamweb ?

    • Oui, c’est bien le même (le nom a été changé et l’interface légèrement reprise).

    • Ok... mais maintenant, c’est bien développe sur la zone ? et c’est bien ici qu’il y a le forum de suivi et les dernières version... (j’espère)
      en tout cas merci pour plugin : son interface simplifie le travail quand on utilise Spip pour autre chose que de la publication éditoriale et qu’on veut adapter un temps soit peu l’espace privé en conséquence. Il est dans mes plugins favoris et je l’utilise sur de plus en plus de sites !

    • Oui, oui, c’est le bon lieu pour les dernières versions et le forum. Et le plugin est sur la zone.

      (Le plugin de xdreamweb est une copie, à l’interface et au nom près, d’une des premières versions du plugin présenté ici)

    Répondre à ce message

  • 2

    I Had a Dream that one day, all this would be possible et tu l’as fait crénomdidjiû !!! :D

    Partis comme on est partis, un jour il sera enfin possible de choisir pour chaque rubrique quels groupes de mot-clés peuvent être utilisés et lesquels peuvent rester au placard. On y est presque ^^

    (Comment ça « message subliminal » ? :D )

    Répondre à ce message

  • 1
    Yohooo

    Merci pour ce plugin.

    Ce qui serait super intéressant, ce serait :
    -  de rendre compatible ce plugin avec le plugin « Champs Extra »
    -  de pouvoir configurer un paramétrage par défaut (de toutes les rubriques non configurées via ce plugin.).

    Si ces 2 ajouts étaient effectués, on pourrait configurer nos sites à volonté !

    • Le plugin est compatible avec « Champs Extra » (les deux peuvent fonctionner ensemble). Par contre si vous faîtes référence au fait de pouvoir limiter les champs extra à certaines rubriques, le mieux est sans doute de passer par le plugin « Champs Extra » qui propose cette possibilité via son API simplifiée de restrictions d’affichage des champs (cf http://www.spip-contrib.net/Champs-...).

      Pour ce qui est du paramétrage par défaut... s’il s’agit des objets éditoriaux, spip permet déjà une configuration par défaut de toutes les rubriques. S’il s’agit des champs de saisie, le mieux est de réécrire les fichiers de langue directement.

    Répondre à ce message

  • 3

    J’ai testé et ça a l’air pas mal, bravo !
    Il ne manque plus que les Champs extra :)

    • Oui, ça a l’air pas mal. Je me demande comment les textes sont pris en compte lorsque le site est multilingue par contre !

      Dans le fonctionnement du plugin, il me semble également que #FORMULAIRE_EDITER_ARTICLE ou autre appliqué dans l’interface publique n’aura pas connaissance des modifications apportées, car les modifications des champs sont faites par le pipeline exec_init, uniquement présent dans le privé. Pour le coup, modifier la globale ['meta'] à la volée ne me semble pas une solution idéale non plus. Cela dit, c’est certainement le plus simple sans modifier SPIP pour du court terme.

      Mais dans le long terme, ce fonctionnement ne me parait pas pérenne. Il faudrait mieux demander (à spip-dev) des pipelines manquants éventuels pour pouvoir réaliser cela sans passer par exec_init. C’est vraiment le moment vu que la 2.3-dev doit passer l’utilisation des rubriques de l’interface privée en squelettes.

    • « Je me demande comment les textes sont pris en compte lorsque le site est multilingue par contre ! »

      Ben... très mal ! J’y ai pensé, mais pas trouvé de solutions.Si tu as une idée...

      Conceranant #FORMULAIRE_EDITER_ARTICLE et l’utilisation de la pipeline exec_init : Le plugin n’est censé qu’intervenir sur l’espace privé et pas sur le site public, je ne crois donc pas que ce soit un problème.

      « vu que la 2.3-dev doit passer l’utilisation des rubriques de l’interface privée en squelettes. »
      Dans ce cas le plugin devient inutile, non ? Il suffira de réécrire les squelettes avec les boucles qui vont bien en fonction des rubriques non ?

    • Oui, mais même sous SPIP 3.0 faudra bien un superbe plugin dans le genre de celui-ci pour gérer les squelettes et changements de formulations des titrages... sans oublier les liens de parentés entre les rubriques, sous-rubriques et articles....

      Et encore merci pour ce plugin qui ajoute enfin LA fonctionnalité manquante à SPIP depuis fort longtemps et espérée par nombre de personnes (débat lors du Troglo-SPIP 2010) !

    Répondre à ce message

  • 1

    Bon encore une idée pour mon plug favori, outres le fait de pouvoir « Utiliser les mots clés ? » ce serait de pouvoir Utiliser seulement certains groupe de mots dont on aurait la liste.

    « Utiliser les mots clés » bug chez moi, en cochant le oui, le non reste coché.

    • Utiliser certains groupes de mots clés en fonction des rubriques est, hélas, hors de portée du plugin.

      Par contre les bug sur « Utiliser les mots clés » qui reste à non devrait être corrigé dans la nouvelle révision du plugin [47280].

    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