SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

185 visiteurs en ce moment

fontsizeup fontsizedown
[40 commentaires]

Personnaliser les champs de l’espace privé

mercredi 7 février 2007, par Sébastien Zamith

  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati
1 vote

Comment choisir le type de champ et le texte des champs dans l’espace privé en fonction des rubriques.

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 ?

P.-S.

Cette contrib marche toujours aussi bien en SPIP 1.9.2a.

Notes

[1] Nota SPIP-Contrib : pour la documentation officielle concernant la définition de fichiers de langue personnels (pour redéfinir les noms des champs), voir les articles concernant le multilinguisme et particulièrement Internationaliser les squelettes > Méthode des fichiers de langue

Retour en haut de la page

40 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4

  • Répondre à ce message

    11 septembre 2008 17:17

    Bonjour, aprés avoir lu les posts, et n’ayant pas trouvé mon info, j’aurai voulu savoir s’il existe une maniére pour interdire aux admins restreint l’accés aux plugins ?

    Du genre qu’il ne puisse modifier des tables ou formulaires, des abonnés aux lettres etc ....

    Qu’ils ne puissent se contenter que d’écrire des articles dans des rubriques bien à eux.

    Merci

    Cordialement

  • Répondre à ce message

    27 août 2008 04:55 , par mano

    Après coup, la modif pour Spip 1.9.2d est bien plus simple.

    les fichiers de langue personnalisées sont à mettre dans un sous répertoire /lang du dossier squelettes.

    là c’est propre.

  • Répondre à ce message

    23 août 2008 00:40 , par mano

    j’ai trouvé une parade qui marche avec la version SPIP 1.9.2d, pour le choix des champs à afficher.

    il suffit de mettre les deux lignes :

    if ($f = chercher_module_lang('local_prive_fr'))
    surcharger_langue($f);

    dans ecrire/ecrire_fr.php, plutôt que dans local_fr.php.

    pas très propre, mais ça marche.

  • Répondre à ce message

    1er avril 2008 19:17

    Bonjour merci pour ces infos. Est-il possible de créer une liste de choix pour le titre par exemple, avec trois valeurs possible ( maths, physique, chimie par exemple) ? merci d’avance

  • Répondre à ce message

    14 mars 2008 22:33

    Bonsoir j’ai spip 1.9.2.d et je ne trouve pas le fichier lang_privé. Est-il nommé autrement ? d’avance merci

  • Répondre à ce message

    5 février 2008 13:17 , par Charles

    Ce serait vraiment bien qu’il y est un plugin. Ne connaissant pas le php j’ai un peu peur de faire des erreurs. Merci pour ta contrib en tous cas. Elle est très utile et complète.

  • Répondre à ce message

    6 janvier 2008 15:32 , par Teddy Payet

    Bonjour,

    Merci beaucoup pour ta contrib ! C’est exactement ce dont j’ai besoin. Mais j’ai testé chez moi et ça ne marche pas. Mes mot-clés sont composés et un comporte un accent.
    Peux-tu me dire si les accents, les majuscules, et mots composés d’un mot clés sont à écrire d’une façon spécifique dans le fichier local_prive_fr.php stp ?

    Merci d’avance pour ta réponse !

  • Répondre à ce message

    20 septembre 2007 17:26 , par luc

    Le conditionnement d’affichage des champs me manquait trop. Et comme je ne trouvais pas de solution au problème, j’ai bricolé une solution de dépannage, en attendant de savoir faire/prendre le temps d’un plugin pour gérer ça.

    Pour info, j’ai modifier le ecrire/inc/editer_article (et placer en surcharge dans le dossier squelettes) en passant $id_secteur à toutes les fonctions du genre editer_articles_surtitre (....) et dans ces fonctions je conditionne l’affichage dans le test :

    if (($config[’articles_surtitre_.$id_secteur] == ’non’) AND !$surtitre)

    il m’a ensuite fallu ajouter à la table spip_metas des enregistrements articles_surtitre_5 par exemple pour le secteur 5 avec une valeur à non.

    ça me dépanne en partie en attendant. Peut-être un jour je reviendrai sur quelque chose de plus propre.

  • Répondre à ce message

    17 septembre 2007 13:54 , par luc

    Fausse piste, mais correction nécéssaire de cette contrib’ comme indiqué un peu plus bas dans le forum : http://www.spip-contrib.net/Personnaliser-les-champs-de-l#forum391158

    si on ne fait pas cette modif’, pour chaque page de l’espace privé ou public qui ne possède ni id_article, ni id_rubrique, spip fait une (ou plusieurs) requêtes inutiles et erronées (voir votre spip.log ou mysql.log pour vous en rendre compte).

    Bref, je ne sais toujours pas comment reconditionner l’affichage des champs :-(

  • Répondre à ce message

    17 septembre 2007 11:37 , par luc

    En regardant les fichiers spip.log et mysql.log, je constate une foison de

    Voilà, derrière cette erreur se cache à coup sûr mon problème. Si quelqu’un trouve avant moi, qu’il n’hésite pas à laisser un message ici.

Pages 1 | 2 | 3 | 4

Répondre à cet article

Retour en haut de la page

Ça discute par ici