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

  • 1

    Une autre option qui rendrai ce plugin parfait serait l’ajout des breves ou non dans les rubriques de premier niveau ou non, ça réglerait cette insupportable restriction des brèves désactivées au dela du premier niveau...
    Je me répète mais encore Merci pour cet excellent plugin qui rentre directement dans mon top 3 de mes plugins favoris.

    • C’est possible, mais cela demande de surcharger deux fichiers de plus de spip (ecrire/action/editer_breves.php et prive/formulaires/editer_breves.php). Pas génial pour les mises à jour futures (d’un autre côté, je suis pas sur que ce plugin vaille le coup d’être maintenu pour la prochaine version de spip, à voir).
      Il y a en plus le problème des autorisations (voir les problèmes de compatibilité déjà évoqués sur ce forum avec le plugin autorite par exemple).
      Mais bon, je peux facilement rajouter cette fonctionnalité au plugin (déjà testée et fonctionnelle en local chez moi en fait) ou en créer un autre avec juste la fonction étendre les brèves aux sous-rubriques.

      Qu’est ce qui te (vous) semble le mieux ?

    Répondre à ce message

  • Une petite idée en passant : pouvoir appliquer une personnalisation à plusieurs rubriques.

    Répondre à ce message

  • 2

    D’un coup, avec ce plugin, acces_restreint, champ_extra2, notifications... SPIP2 prend une dimension nouvelle pour le webmestre et pour ses contributeurs ! SPIP3 en germe ?

    • J’ai vu signalé ceci : http://core.spip.org/projects/spip/repository/revisions/17412

      Alors question (j’ai besoin d’un dessin...) : si dans la prochaine version de SPIP, tout l’espace privé est en squelette, est ce que cela supprime l’intérêt de ce plugin ou est ce que cela en simplifie la conception ?

    • Heu... je ne sais pas. Spontanément j’aurais dit que le passage aux squelettes devrait simplifier énormément les choses... mais je n’ai pas eu le temps de regarder plus en détails à quoi ressemblent les squelettes en question.
      Par contre j’ai testé le plugin avec SPIP 2.3.0-dev [17416] et tout a l’air encore fonctionnel tel quel.
      A suivre...

    Répondre à ce message

  • 1

    Ha j’ai effectivement une incompatibilité avec le plugin autorité sur un site en construction

    Fatal error : Cannot redeclare autoriser_rubrique_creerrubriquedans() (previously declared in /home/gilleskl/public_html/r...com/plugins/auto/autorite/inc/autoriser.php:323) in /home/gilleskl/public_html/r....com/plugins/auto/priveperso/inc/priveperso_autoriser.php on line 46

    • J’avais également une incompatibilité avec le plugin bandeau dans l’espace privé au moment de poster un message dans le forum d’un article (on voyait le menu principal se dédoubler). Cette version 0.4 semble bien régler le problème.

      Je mesure combien les modifications des scripts mêmes de SPIP2 compliquent le développement de ce plugin pour ne pas entrer en collision avec d’autres plugins... Encore merci pour ce travail d’équilibriste... ;-)

    Répondre à ce message

  • 2

    Pour les bréves,

    Est-ce qu’il sera possible dans une prochaine version de modifier aussi ces éléments :

    « Cette brève doit-elle être publiée ? »
    Et « brève proposée », « brève validée », « brève refusée »

    En fait, c’est le mot « brève » qui me gène car j’utilise les brèves pour autre chose.

    Du coup je pense à un truc, je devrais, en attendant, pouvoir le faire en surchargeant manuellement le fichier langue ???

    • Oui, je mets ça sur ma liste.

      Sinon, oui, on peut passer directement par une redéfinition des chaînes de langue dans votre fichier de langue local.fr par exemple (surtout si seul le mot brève est à changer, c’est même le mieux).
      Vous pouvez aussi consulter http://www.spip-contrib.net/Personn....

    • Merci pour cette contrib, je n’en avais pas connaissance

      Vivement la sortie de la version 0.4 :)

    Répondre à ce message

  • 4
    fractale

    Bonjour,

    Excellente idée de plugin qui manquait à Spip depuis ses débuts et qui apporte bcp de possibilités.
    Malheureusement cela ne fonctionne pas avec spip 2.1.8 (avec plugins cfg / couteau suisse et google analytics)...

    la modification en plus suivant les rubriques fonctionne (ajout-suppression de postscriptum/chapo etc... dans une rubrique) mais pas les changements de texte (remplacer titre par ’mon titre’ par ex.)
    de plus apparition de nombreux msgs d’erreurs, suppression de la css de base, obligation de cliquer pour continuer...

    En espérant que ce plugin réussisse à être fonctionnel (l’idéal serait de l’ajouter au noyau de spip) car cela modifierait grandement les possibilités de SPIP...
    fractale

    • J’ai testé de mon côté avec spip 2.1.8 + couteau suisse v1.8.36.01 + cfg v1.16.0 + google anlytics v0.4.0 ... aucun message d’erreur, pas de suppression de css etc. Bref ça marche.

      Quels outils du couteau suisse sont activés ? Le pb vient peut être de là.

      Concernant le champs « Titre : » des articles qui n’est pas modifié, c’est un léger bug que je corrigerai dans la soirée (les autres modifications de texte des champs doit fonctionner).

      Sébastien

    • fractale

      Sébastien,

      outils du couteau suisse activé :
      -  spip et le cache
      -  blocs depliables
      -  supprime le numéro
      -  orientation des images

      bon courage pour l’amélioration du plugin. si je peux aider en quoi que ce soit...

      fractale

    • fractale

      j’ai également testé en désactivant puis réactivant le couteau suisse.
      cela semble fonctionner (plus de bugs 302, ni css déficiente)

      sinon j’ai toujours ce message lorsque je valide un article :
      Si votre navigateur n’est pas redirigé, cliquez ici pour continuer.

    • Le problème de redirection 302 vient peut être de sauts à la ligne après la balise ?> dans les fichiers php du plugin. Le zip du plugin incluant la correction devrait être généré d’ici une heure.

    Répondre à ce message

  • 6

    Bonjour et merci pour ce super plugin, c’est exactement ce que je cherchais :)
    En revanche il provoque chez moi une erreur assez embêtante : dès l’activation de se plugin, j’ai systématiquement des erreurs HTTP 302, les pages de spip ne se rechargent jamais seule.

    Avez-vous une idée pour solutionner ce probleme ?
    Merci d’avance et désolé si je n’ai pas été bien clair.

    • Je n’ai pas réussi à reproduire ce comportement de mon côté avec spip 2.1.8 (le plugin a été développé avec cette version de spip, et je n’ai jamais eu cette erreur).

      Avez vous d’autres plugins installés ?

    • Re-bonjour,

      Je suis sous SPIP 2.1.8 également et j’utilise les plugins suivants :
      - Bandeau
      - CFG
      - Critère suivant / Précédent
      - Formulaires & Tables
      - Langues préférée par l’internaute
      - Le couteau suisse
      - Médiathèque
      - minibando
      - SEO
      - Spip Bonux

      En espérant que cela vous aide... :)

    • Vous est il possible de désactiver les plugins un à un afin d’identifier lequel pourrait eventuellement poser problème ? (Je suis désolé je n’ai pas le temps de tester toutes les configurations possibles...)

      Sébastien

    • Et bien j’ai le problème avec seulement ce plugin d’activé :’(
      J’ai pourtant refait une installation de SPIP en local et On-line :x

    • Les 302, parfois, c’est des espaces ou sauts de lignes avant les <?php ou après les ?> dans les fichiers PHP. Il faut vérifier les fichiers du plugin.

    • J’ai enlevé des retours à la ligne qui trainaient après ?>.
      Par contre si c’est bien la solution au problème, pourquoi ne rencontre-t-on pas la redirection 302 systématiquement ? Chez moi j’ai jamais eu le cas.

    Répondre à ce message

  • Idem pour moi : j’attendais ce plugin depuis un sacré moment ! Il répond à un véritable besoin.

    Bravo !

    Répondre à ce message

  • 2
    chrisgaillard

    J’attend ce plugin depuis que je connais spip (2004), c’est un véritable bond en avant pour mon CMS préféré. Mille mercis et félicitations Sébastien, si tu passes par Grenoble je t’invite au restau !!!
    Je vais vite tester....

    • chrisgaillard

      Je viens de tester, c’est génial, j’en saute de joie, ça marche nickel !
      Une petite suggestion : Avoir la possibilité de supprimer le bouton « créer une sous-rubrique ».

    • Ca marche pour le restau.

      J’ai fait une petite correction de bug dans la version 0.2 : l’autorisation ou non des articles était pas très bien gérée. Du coup j’en ai profité pour rajouter la gestion des sous-rubriques dans la version 0.3 du plugin.

    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