Le besoin
J’ai récemment mis en ligne un site sous SPIP 1.9.1 avec les contraintes suivantes :
nombreux rédacteurs à priori
plusieurs types d’articles traités différemment dans les squelettes par des choix de mots clés.
Il est apparu très vite que les champs par défaut de l’espace privé (Sur-titre, Titre, Chapeau, etc.) ne seraient pas assez explicites, surtout lorsque l’on commence à detourner les champs Surtitre et Titre pour entrer Prénom et Nom par exemple.
D’autre part, suivant les rubriques les types et le nombre des données à entrer sont différents : pour une rubrique annuaire, on désirera par exemple créer des articles avec des champs Nom, Prénom, Tel, email, etc. Par contre pour une autre rubrique on ne désirera peut être pour les articles que deux champs seulement, et pour d’autres les champs classiques de SPIP.
Dans mon exemple particulier je désirais en particulier avoir une rubrique Annuaire, dans laquelle chaque personne est entrée sous la forme d’un article, une rubrique Publications, une rubrique Séminaires, etc. Lorsque un utilisateur lambda arrive sur l’interface privée du site, s’il désire entrer une nouvelle Publication par exemple, il faut qu’il puisse entrer sans avoir à se poser de questions les différents champs clairement identifiés.
La seule chose que j’ai pu trouver sur le sujet est présenté dans cet article Personnaliser son espace privé en fonction de la rubrique [1]. Elle présente cependant quelques désavantages, notamment sur l’utilisation d’un seul et même fichier de langue pour espace privé et public (on ne peut pas avoir la double fonctionnalité)
Une solution
La solution que j’ai utilisé pour répondre à ces différents impératifs est largement basée sur l’article suscité :
Détournement des fichiers langues
Un peu de bidouille...
Avec deux améliorations majeures :
On garde la possibilité d’utiliser local_fr.php pour la définition des balises multilingues de l’espace public
On peut de plus choisir quels champs afficher
Dans le dossier squelettes je crée un premier fichier local_fr.php avec mes définitions habituelles des balises cf multilinguisme et un deuxième, local_prive_fr.php dans lequel je vais définir mes champs.
La première chose à faire est de surcharger le fichier de langue en faisant trouver à spip le fichier local_prive_fr.php. Pour cela il faut ajouter à la fin de local_fr.php les lignes suivantes :
Ensuite dans le fichier local_prive_fr.php il faut redéfinir les titres des champs en fonction des rubriques (ou des articles, des brèves, etc.). Ce sera par exemple :
Evolutions possibles
Tout cela est bien sur personnalisable pour une rubrique donnée plutôt qu’un secteur, pour les brèves, etc.
Je suis sûr que tout ça devrait pouvoir se mettre sous forme de plugin, mais je sèche un peu. J’ai déjà eu du mal à aller récupérer les différentes infos dans les fichiers de spip ... Pour le texte des champs, il faut fouiller dans /ecrire/lang/ecrire_fr.php et /ecrire/lang/prive_fr.php. J’ai découvert quels champs afficher dans /ecrire/inc_articles_edit.php
À faire :
Récupérer l’ensemble des variables qui permettent l’affichage dans l’espace privé.
Faire un plugin ?










