SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

280 Plugins, 197 contribs sur SPIP-Zone, 78 visiteurs en ce moment

Accueil > Auteurs, authentification et autorisations > Archives Auteurs et Authentification > Un annuaire bien rangé avec #ENV

Un annuaire bien rangé avec #ENV

21 août 2005 – par Christian.Mercat – commentaires

2 votes

On présente la base de données des auteurs sous forme d’annuaire qu’on trie suivant des critères passés en argument

Faire un annuaire

Le squelette auteur est bien utile pour contacter un auteur sans dévoiler son courriel, voir ce qu’il a écrit et tout ça.

Cette contribution ajoute quelques lignes à ce squelette de base pour faire afficher également la liste de tous les auteurs, éventuellement filtrée suivant des critères passés en paramètre ex :

auteur.php3?nom=christian

vous donnera tous les Christian et

auteur.php3?tri=statut

vous triera les auteurs suivant leur statut (qui c’est l’chef ici ?!).

Voici par exemple les pilotes de ligne des pédibus de l’Hérault et (plus sophistiquée) la liste des enseignants au département de mathématiques de Montpellier II.


On va faire un tableau donc il faut utiliser un peu de php pour colorer les lignes mais ne vous inquiétez pas, ça ne fait même pas mal. Il s’agit donc de modifier auteur.html. Si vous n’avez pas fait de modifications, il vous faut copier ce fichier depuis le sous-dossier dist/ dans le dossier racine.

Nous allons faire la boucle sur l’auteur principal plus tard et s’il n’y a pas d’auteur, nous afficherons autre chose : l’annuaire proprement dit.

En fait [1] il y a un trou de sécurité dans l’utilisation de #ENV tel quelle dans le critère par : un petit malin pourrait potenitellement forger un critère bien senti qui lui ferait manipuler la base comme il veut. Pour éviter ces déboires [2] il est nécessaire d’ajouter quelques petites lignes dans auteur.php3 pour éliminer les mauvaises surprises :

Voilà, c’est tout. Si vous voulez simplement avoir une liste alphabétique ou autre de vos auteurs, n’allez pas plus loin. Si vous voulez ajouter des informations qui ne sont pas prévues en version dist, il faut un peu plus de travail, expliqué dans la section qui suit :


Enrichissement de l’annuaire

Ceci étant fait, la table des auteurs contient relativement peu d’informations, on est obligé de quicher toutes les informations en vrac dans le champs #BIO, que tout auteur lambda peut modifier (i.e. trifouiller) à sa guise, ce qui ne permet pas d’y stocker des informations permettant un traitement automatique (c’est du vécu).

Personnellement j’ai enrichi la base de données avec d’autres champs spécifiques à mon site : #EQUIPE, #EMPLOI, #BUREAU, #TELEPHONE que j’ai exploité dans ce squelette. On peut préférer utiliser le champs EXTRA, j’ai choisi d’ajouter plutôt des champs à la base. C’est un peu une affaire de religion, le champs extra vous permet d’avoir une interface simple à l’intérieur de spip pour les ajouter et pour les remplir, comme n’importe quel autre champs de la base auteurs.

J’ai préféré laisser ça à un super-administrateur ayant un accès direct à la base. L’administrateur moyen n’a donc pas moyen de modifier les informations dans ces champs. Voici comment j’ai fait pour ajouter ces champs :

J’ail lu cet excellent wiki et j’ai fait ce qu’il y avait marqué :

-  J’ai rajouté des champs equipe, emploi, bureau et telephone (évitez les accents) à la table spip_auteurs avec phpMyAdmin (ou autre manipulateur de base), j’ai bien noté le type de chaque champs VARCHAR, ENUM, BIGINT etc. J’ai été ici très directif avec des ENUMérations, c’est-à-dire qu’il n’y a que certains choix très limités dans la valeur des champs. De cette manière je peux utiliser ces valeurs ailleurs dans le site de manière automatique. Mais vous pouvez rajouter simplement des VARCHAR(50) si vous voulez laisser un peu de liberté à vos valeurs si elles ne sont qu’informatives.

-  J’ai édité ecrire/inc_serialbase.php3 et j’ai ajouté


Conclusion

Rajouter une fonction d’annuaire de base est donc très simple. L’enrichir en ajoutant des champs à la base auteurs est un peu plus compliqué ; en particulier seul un administrateur mySQL (par opposition à un administrateur spip) peut remplir ces champs (c’est en fait ce que je recherchais). Mais pour l’instant je ne sais pas trop les remplir autrement qu’à la main avec phpMyAdmin (un script php en fait). J’ai entendu des bruits sur des squelettes de formulaires d’édition (quelque-chose comme un ecrire/auteurs_infos.html), que tous les webmestres appellent de leurs voeux pour simplifier (particulariser) la tâche pour leurs rédacteurs malcomprenants, qui seraient dans des cartons, donc ne deséspérons pas...

Petit détail technique : J’avais tout d’abord essayé de rajouter la structure de la base à ecrire/mes_options.php3 et aussi de créer un fichier /auteur_fonctions.php3 où je mettais

mais avec la 1-8 ça ne marche pas encore... Il faudra donc que j’édite une nouvelle fois inc_serialbase.php3 à la prochaine mise à jour, à moins que les ajouts dans auteur_fonctions.php3 soient pris en compte (ça va venir).

Voilà, en vous souhaitant d’exploiter au mieux toutes ces incroyables améliorations qui font de SPIP un CMS vraiment chouette.

Notes

[1merci Fil

[2comme expliqué par Pierre et Emmanuel

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 25 juillet 2013 à 15:43, par jbonlinea En réponse à : Un annuaire bien rangé avec #ENV

    Bonjour

    Les exemples que vous proposez correspondent tout à fait à ce que je souhaite faire sur mon site.

    Cependant, j’ai un certain nombre de problèmes dont je ne connais l’origine, mais je suppose que certaines sont lié à des changement de version de spip depuis la publication de votre post, notamment car je suis sous spip 2.19.

    Dans mon cas, j’ai 4 fichiers intitulé « auteur.html » :
    -  un dans le dossier « /squelette-dist/ »,
    -  un dans le dossier « /prive/editer/ »,
    -  un dans le dossier « /prive/info/ »
    -  et un 4e que j’ai place dans le dossier racine du site.

    J’ai suivi les modifications que vous proposez en déplaçant celui qui était dans le dossier « /squelette-dist » vers la racine et changeant le code comme vous l’indiquez, mais cela ne marche pas

    j’ai également essayé de modifié tout les fichiers « auteur.html » mentionné ci-avant comme vous le proposez, mais ça ne marche pas non plus.

    Auriez vous une idée de comment faire marché votre technique sous spip 2.19 ?

    Dans le cas contraire connaitriez-vous une autre technique pour obtenir un résultat similaire ?

    Merci milles fois

    jo

    Répondre à ce message

  • Le 15 juin 2006 à 17:29, par Andi En réponse à : Un annuaire bien rangé avec #ENV

    Bonjour,
    Quelqu’un pourrait t il m’aider ? J’ai installé un annuaire, j’aimerais ajouter une autre colonne « contact » , j’ai ajouté un extra « contact » qui s’affiche bien dans la partie privée, mais les informations ne sont pas recuperés dans le tableau !il doit manquer quelquechose quelquepart mais je ne sais pas quoi ! Pourtant, on saisissant directement dans php myadmin les informations ( dans le champ contact) ça s’affiche... Merci pour votre aide !!!!

    Répondre à ce message

  • Le 6 octobre 2005 à 11:21, par michael En réponse à : Un annuaire bien rangé avec #ENV

    très tentant, ton annuaire christian, très tentant.

    et pourtant j’ai un mal de chien à le mettre en place.

    j’ai bien un fichier auteur.html avec ton code et un fichier auteur.php3 modifié selon tes indications... mais ça ne tourne pas bien du tout : sur les environ 70 auteurs que compte mon site, trois seulement apparaissent dans le tableau. j’ai beau retourner le problème dans tous les sens, ça ne veut pas aller au-delà.

    une idée de ce qui pourrait se passer ?

    (au fait, j’ai testé en local sur ma machine comme sur le serveur et j’obtiens le même résultat.)

    • Le 7 octobre 2005 à 11:05, par Christian Mercat En réponse à : Un annuaire bien rangé avec #ENV

      Cet annuaire ne fait apparaitre que les auteurs actifs, ceux qui ont effectivement écrit des articles. Pour les faire afficher tous, il faut ajouter le critère tout :

      Voili voilou.

    • Le 18 octobre 2005 à 15:48, par Christian Mercat En réponse à : .* et pas .

      En fait les filtres que j’ai mis ne sélectionne que les « bons auteurs », c’est-à-dire ceux qui ont tout bien rempli leurs champs. Si vous voulez pouvoir visualiser ceux qui

      -  N’ont rien publié
      -  N’ont pas de page perso
      -  Ne se sont pas présentés (champs bio)

      alors il faut mettre :

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • À propos des plugins actifs

    13 novembre 2010 – 21 commentaires

    À propos des plugins actifs affiche dans la partie publique de votre site la version de SPIP utilisée et la liste des Plugins activés avec affichage de l’icône, le nom, la version, l’état et une introduction de sa fonction. Si le Plugin n’a pas (...)

  • Fusion de SPIP

    21 janvier – 25 commentaires

    Importer et fusionner tout le contenu d’un autre site : textes, images, auteurs, liens, et sans se mélanger les pinceaux. Ce plugin permet d’importer tous les contenus d’un site source, en évitant les conflits d’identifiants qu’une simple copie (...)

  • Calendrier Mini 2.0

    19 mai 2012 – 181 commentaires

    Ce plugin ajoute la balise #CALENDRIER_MINI qui insère un petit widget de navigation par mois dans les dates des évènements. Fonctionnement du mini calendrier Le mini calendrier présente un mois à la fois. Les jours du mois comportant des (...)

  • Un sommaire pour vos articles

    12 août 2007 – 187 commentaires

    Une fonctionnalité du Couteau Suisse qui repère les intertitres des textes de vos articles ou de vos rubriques, et permet même plusieurs niveaux, puis en fabrique automatiquement un sommaire.

  • Jappix Mini

    24 janvier 2011 – 39 commentaires

    Jappix Mini est un mini-chat à embarquer facilement sur votre site. Ce plugin facilite son intégration et sa configuration dans le contexte d’un site développé sous SPIP. Qu’est-ce que Jappix Mini ? Jappix Mini est un script à embarquer dans le code (...)