SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 241 visiteurs en ce moment

Accueil > Rédaction > Édition publique > Étiquettes > Étiquettes

Étiquettes

18 avril 2008 – par RastaPopoulos – 61 commentaires

21 votes

Générer des formulaires pour ajouter facilement des mots-clés à tout et n’importe quoi.

Présentation

Le plugin Étiquettes permet de créer facilement des formulaires publics pour ajouter/modifier des mots-clés « à la volée » sur n’importe quel élément les acceptant (articles, forums, etc, et plus encore suivant la configuration de votre site).

Il propose donc une balise #FORMULAIRE_ETIQUETTES qui va générer un formulaire pour taper les mots-clés, et éventuellement une aide qui pourra être de différente sorte suivant les plugins disponibles.

Note : Étiquettes ne modifie (normalement :-) pas les autorisations du système en place. Il ne fait que produire des formulaires clé-en-main, faciles à intégrer (ce qui est déjà pas mal). Ce sera à vous de bien faire attention à qui aura le droit d’ajouter des mots-clés à tel ou tel élément, sur la page de configuration des groupes de mots, ou avec le plugin Autorité, ou autre.

Mise en place rapide

  • Choisissez un type d’objet acceptant les mots-clés. Prenons les articles par exemple.
  • Faîtes une boucle de ce type.
  • Insérer la balise #FORMULAIRE_ETIQUETTES dedans.
  • Et c’est tout, ça marche !
  • Par défaut, le formulaire ajoute les mots dans le groupe « tags ».

Ça donne cela :

Et pour un formulaire AJAX (qui ne recharge pas toute la page) :

Les aides

Afin de faciliter l’ajout d’étiquettes à un élément, le plugin propose d’intégrer une aide pour afficher à l’utilisateur les mots-clés déjà existants sur le site. Cela permet notamment de minimiser le risque de synonymes qui vont nuire à la navigation. Voici comment ça marche :

-  Les mots les plus fréquents

PNG - 13.8 ko
Cliquez pour voir

Si vous avez le plugin Nuage, sous le champ texte viendra une liste des mots les plus fréquemment utilisés, sous forme de Nuage (la grosseur des mots est pondérée en fonction de la fréquence).

-  Une liste déroulante en fonction de ce que vous tapez

PNG - 8.8 ko
Cliquez pour voir

Si vous avez le plugin Sélecteur générique, une liste déroulante apparaîtra lorsque vous commencerez à écrire dans le champ texte, proposant des mots déjà existants en fonction des premières lettres tapées. Par exemple si vous tapez « or », il pourra y avoir dans la liste « ornithorynque ».

-  Uniquement une liste à cliquer

PNG - 8.2 ko
Cliquez pour voir

Aucun plugin n’est nécessaire. Cela va masquer le champ texte et afficher uniquement une liste de mots à cliquer. Au niveau ergonomique, ça fait comme une liste de cases à cocher.

Note : par défaut, l’aide est activée automatiquement. Si aucun des plugins n’est installé, il n’y aura pas d’aide, tout simplement. Si vous avez ces plugins mais que vous voulez forcer un choix particulier : utilisez les paramètres.

Installation

Zip - 28.7 ko
Version 0.6.5

Le plugin s’installe avec la procédure classique : vous récupérez le ZIP, et vous décompressez le dossier « etiquettes » dans le dossier « plugins » de votre SPIP. Ensuite vous l’activez dans l’espace privé, et vous jouez avec.

Si vous désirez les aides décrites précédemment il vous faudra installer le plugin Nuage et/ou le plugin Sélecteur générique.

Documentation complète de #FORMULAIRE_ETIQUETTES

-  Ça fait quoi ?

#FORMULAIRE_ETIQUETTES va insérer un formulaire de modification des mots-clés d’un élément quelconque de SPIP.

Il est composé d’un champ de texte et éventuellement d’une aide.
Dans le champ texte, on devra taper une liste de mots-clés que l’on veut voir liés à un objet, séparés par des espaces. Pour créer des étiquettes ayant plusieurs mots, il suffit de les entourer de guillemets. On pourra par exemple écrire : SPIP CMS "gestion de contenu" internet "web 2.0".

Tous les comportements par défaut sont modifiables avec des paramètres.

-  Où mettre la balise ?

La balise doit normalement être insérée à l’intérieur d’une boucle qui va définir quel objet sera touché. On pourra par exemple écrire ceci :

Ce qui va générer un formulaire pour modifier les étiquettes de l’article en cours (par exemple dans le squelette des articles).

-  Mais les mots-clés sont séparés en groupes, non ?

Par défaut, le formulaire gère les mots du groupe « tags ». Ce groupe peut être modifié dans les paramètres.

-  Et si je veux seulement qu’on puisse ajouter des étiquettes ?

Par défaut, le formulaire demande de modifier les mots. Ce qui signifie que le champ texte sera pré-rempli avec les mots qui sont déjà liés à l’objet que l’on veut modifier. Si l’on supprime des mots de la liste, cela les déliera de l’objet. Si l’on ajoute des mots, cela créera les mots le cas échéant, et les liera à l’objet.
Une option permet de ne pas modifier mais de seulement ajouter. Dans ce cas, le formulaire est toujours vide, et tous les mots tapés dedans seront rajoutés en plus de ceux déjà liés à l’élément.

Intégrer Étiquettes dans un formulaire à vous

-  À quoi ça sert ?

Si vous êtes développeur et que vous fabriquez vous-même des formulaires, cela va vous permettre d’intégrer le champ texte (et les aides éventuelles) à l’intérieur de votre code. Il suffit pour cela d’ajouter le paramètre uniquement_champ=true.

L’utilisation repose sur le même principe, sauf que cela ne va générer que le champ texte et les aides éventuelles. Le but est de pouvoir facilement intégrer un champ de type « tags » (même si c’est pour une autre utilisation) à l’intérieur d’un autre formulaire. Elle est donc essentiellement destiné aux créateurs de plugins.

-  Attention la balise n’est alors plus un formulaire, donc elle ne vérifie aucune autorisation. C’est à vous de faire le nécessaire dans votre propre formulaire/balise/etc.

-  Dans un formulaire de création

Si vous utilisez uniquement_champ dans un formulaire de création d’objet, et bien.... l’objet n’existe pas encore ! Donc vous ne pouvez ni placer la balise dans une boucle, ni préciser explicitement l’objet dans les paramètres.
Heureusement, avec cette balise on peut dire « aucun objet » dans les options (cf plus bas).

-  Et après, comment je traite ?

Effectivement, vu que c’est un formulaire à vous, c’est à vous de traiter le résultat du champ texte.
Par défaut, la balise génère un champ avec pour name : etiquettes-groupe-type-id. Mais vu que ce n’est pas forcément très pratique tous les jours, on peut facilement imposer un nom de champ dans les paramètres !
Une fois que vous avez récupéré le champ, vous devez utiliser la fonction ajouter_mots() de la librairie tag-machine.php.

-  Un petit exemple ?

Bien sûr, alors dans le formulaire d’abord :

Puis dans le traitement de votre formulaire :

Pour plus d’informations sur les fonctions, ouvrez le fichier en question (tag-machine.php), c’est bien documenté dedans.

-  Et on peut l’utiliser pour faire des contrôleurs de crayons ?

On peut aussi. C’est un peu particulier mais ça marche très bien !

D’abord il faut rajouter ceci avant la balise :
<input type="hidden" disabled="disabled" name="#ENV{name_tags}" />
Ensuite vous forcez le nom du champ avec #ENV{name_tags} puis dans la vue, vous récupérez #ENV*{tags} et vous appliquez le filtre |ajouter_etiquettes{} qui prend les mêmes paramètres que la fonction ajouter_mots() décrite précédemment.

Exemple. Imaginons que vous faîtes un crayon pour modifier les tags d’un auteur. Dans le contrôleur on aura :

Et dans la vue, on pourrait avoir :

Les paramètres

Il existe un grand nombre de paramètres permettant de modifier le comportement de #FORMULAIRE_ETIQUETTES. Ne vous affolez surtout pas : ils sont tous optionnels. Voici la liste complète des options.

#FORMULAIRE_ETIQUETTES{parametre=valeur, autre_param=autre_valeur, truc=etc}. Dans l’ordre que vous voulez !
Paramètre Description Valeurs Par défaut
groupe nom du groupe de mots-clés auxquels seront rajoutées les étiquettes une chaîne de caractère, tout est possible, y compris avec des espaces et des accents tags
remplacer booléen indiquant si le formulaire va modifier (true) ou seulement ajouter (false) les mots true, false true
objet indique explicitement à quel objet seront rajoutés les étiquettes ; lorsqu’il est utilisé, la balise ne fait plus attention au contexte où elle est, ce sont ces paramètres qui sont prioritaires une chaîne de la forme type-id, càd un type d’objet ayant des mots-clés, et un numéro d’objet existant
ex : document-3, ou article-#ID_ARTICLE, ou « aucun » si on en veut pas
prend le contexte où est placé la balise
aide type de l’aide, tel que décrit un peu plus haut ; si on force l’aide à « nuage » et que le plugin n’est pas là... bah il n’y aura rien nuage = que le nuage
autocompletion = que la liste déroulante
liste = une liste de mots à cliquer
aucune, aucun, rien = ...
aide activée suivant les plugins installés
proposer_login booléen (true / false) indiquant si l’on propose le formulaire de login, lorsque la balise détecte que le visiteur n’a pas les bons droits pour ajouter/modifier les étiquettes ; par défaut la balise n’affiche strictement rien si le visiteur n’a pas les bons droits true, false false
uniquement_champ booléen permetant de ne générer que le champ et les aides true, false false
name force le nom du champ des étiquettes (name= ?) une chaîne de caractères sans espace etiquettes-groupe-type-id
explication permet de supprimer ou modifier le petit texte d’explication qui est mis par défaut false ou une chaîne de caractère pour remplacer un petit texte expliquant comment remplir le champ
label permet de modifier le contenu de la légende affectée à l’étiquette, utile par exmple lorsqu’on utilise des étiquettes multiples sur une même page une chaîne de caractère pour remplacer un titre de formulaire remplaçable

Voir aussi

-  Etiquette succède et remplace le plugin « tag machine ».
-  Le plugin Spipicious réalise à peu près la même fonction, à ceci prêt que dans spipicious, les motclés créés sont propres à l’auteur qui les a créé alors que dans Etiquette, ils sont communs à tous les auteurs.

Voir en ligne : http://plugins.spip.net/etiquettes

Dernière modification de cette page le 16 octobre 2016

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 11 juillet à 21:29, par Sylvain Nogues En réponse à : Étiquettes

    bonjour,

    il y a un (petit) conflit avec le plugin GIS, la fonction removeAllMarkers de GIS retourne une erreur :
    TypeError: this.geojsons[i].clearLayers is not a function

    Cette erreur n’apparaît que lorsque le plugin Etiquettes est activé.

    Qui est « coupable » : GIS ou Etiquettes ???

    Merci,
    Sylvain

    • Le 12 juillet à 13:44, par RastaPopoulos En réponse à : Étiquettes

      lol, je vois pas du tout le rapport…

      Ce ne serait pas plutôt parce qu’il y a une autre erreur javascript en amont, qui empêche GIS de se lancer et qui fait que ça n’existe pas ?

    • Le 22 juillet à 11:55, par Sylvain Nogues En réponse à : Étiquettes

      Oui, c’est bien étonnant, et n’a sans doute aucun rapport direct avec Etiquettes, mais un site spip 3.1 de base, avec juste GIS, affichage minimal d’une carte, ça marche, j’ajoute Etiquettes (sans même l’utiliser), boum erreur javascript, je l’enlève ça remarche...
      J’en reste bien au niveau du symptôme, je reconnais.

      b_b dit que cette fonction removeAllMarkers est un vieux truc qui traîne pour rétrocompatibilité, mais je n’ai pas réussi à faire sans.

      (je n’ai pas compris pourquoi ton message a mis 10 jours à s’afficher sur le site ?)
      MErci,
      Sylvain

    • Le 22 juillet à 12:05, par RastaPopoulos En réponse à : Étiquettes

      Mais la question que je posais n’est pas répondue : as-tu regardé dans la console javascript du navigateur pour voir si une erreur JS s’affichait ? Quand il y a une « fatal error » JS, tous les prochains trucs JS sont bloqués, ça s’arrête.

    • Le 22 juillet à 14:57, par Sylvain Nogues En réponse à : Étiquettes

      non, pas d’erreur javascript visible dans la console avant celle mentionnée.

    • Le 25 juillet à 10:15, par Sylvain Nogues En réponse à : Étiquettes

      non, pas d’erreur javascript dans la console

    Répondre à ce message

  • Le 24 août à 10:39, par Teenoo En réponse à : Étiquettes

    Bonjour,

    le sélecteur générique ne fonctionne pas, ni en privé ni en public ! Je souhaitais juste obtenir les mots clés du groupe « tags ». Je pensais à un conflit JS mais ça devrait fonctionner en privé logiquement ce qui n’est pas le cas. Après peut être un conflit avec les plugins suivant :

    Agenda
    Autorité
    Compositions
    Enluminures typographiques
    Formulaire upload
    GIS
    Icônes sémantiques
    Imprimer document
    Intranet/extranet
    Lim
    Mailshot
    Mailsubscribers
    Mini Calendrier
    minibando
    Newsletter
    Notation
    Statut d’articles par lots
    Todo

    Avez-vous déjà vu ce cas de figure ? J’utilise également Bootstrap, j’ai essayé d’épurer et ça ne fonctionnait toujours pas...

    merci pour vos retours car là c’est un peu désespérant.

    Répondre à ce message

  • Le 27 octobre 2015 à 10:15, par Mist. GraphX En réponse à : Étiquettes

    Bonjour,

    le selecteur fourni avec le plugin ne fonctionne pas dans mon cas d’utilisation, en changeant le header par contre c’est ok.

    1. #HTTP_HEADER{Content-Type: text/plain; charset=#CHARSET}
    2. #CACHE{0}
    3. #SET{plusieurs,1}
    4. [(#SET{cherche,#ENV{q}})]
    5. [(#GET{cherche}|etiquettes_position_quot|!={100000}|?{' '})
    6. [(#GET{cherche}|etiquettes_position_quot|=={0}|?{' '})
    7. #SET{plusieurs,0}
    8. [(#SET{cherche,[(#GET{cherche}|substr{6})]})]
    9. ]
    10. ]
    11. #SET{resultats, #LISTE}
    12. <BOUCLE_s(MOTS){titre LIKE (#GET{cherche})%}{type=#ENV{groupe}}{0,20}{par titre}{doublons}>
    13. #SET{resultats, #GET{resultats}|array_merge{#LISTE{#TITRE*|textebrut}}}
    14. </BOUCLE_s>
    15. <BOUCLE_s1(MOTS){titre LIKE %(#GET{cherche})%}{type=#ENV{groupe}}{0,20}{par titre}{doublons}>
    16. #SET{resultats, #GET{resultats}|array_merge{#LISTE{#TITRE*|textebrut}}}
    17. </BOUCLE_s1>
    18. <//B_s>
    19. [(#GET{resultats}|json_encode)]
    20. #FILTRE{tim}

    Télécharger

    Quelqu’un reproduit ce problème ? je commit et met a jour le selecteur ?

    Répondre à ce message

  • Le 13 janvier 2014 à 04:38, par mj En réponse à : Étiquettes

    bonjour,

    J’utilise étiquette mais je souhaiterais que l’utilisateur ne puisse pas créer de tag (donc de mot-clefs).
    J’ai utilisé pour cela l’aide « liste » qui présente donc une liste des mots-clefs utilisés dans mon groupe, mais étrangement, il crée des mots-clefs « concaténatoires.... »

    Si les mots valides sont « t1 » et « t2 », et que l’utilisateur reclique sur « t2 » ou clique sur « tx » le plugin génère un nouveau mot genre « t1 t2 tx ».... ce qui ne m’arrange bien sur pas du tout.

    Un pb de virgules dans le javascript de la tagmachine ?

    Merci !
    MJ

    • Le 13 janvier 2014 à 05:27, par mj En réponse à : Étiquettes

      Je me réponds à moi même.

      soit un groupe de mots applicable aux objets A mais pas aux objets B

      soit un #FORMULAIRE_ETIQUETTES qui arrive dans une boucle sur l’objet B

      La tag machine génère tout, sans réaliser que c’est illégal... et on se retrouve avec des mots-clefs appliqués à l’objet B, ce qui ne se voit pas dans l’espace privé (puisque justement, il ne peut pas avoir de mots de ce groupe....)

      C’était la cause du Bug.

      Je pense qu’il vaut mieux corriger, mais je ne vois pas comment faire !

    Répondre à ce message

  • Le 16 septembre 2013 à 12:38, par milsabor En réponse à : Étiquettes

    Bonjour,

    J’utilise Etiquettes, combiné avec le plugin nuage, en l’insérant dans un formulaire à moi, danslequel je l’appelle comme ceci :

    <fieldset class="etiquette">
    #FORMULAIRE_ETIQUETTES{uniquement_champ=true, objet=aucun, name=tags, env}
    </fieldset>

    Côté traitement du formulaire, l’insertion en base se fait correctement avec l’appel suivant :

    $etiquettes = _request('tags');
    ajouter_mots($etiquettes, $id_article, 'tags', 'articles', 'id_article');

    Lors du chargement par contre, je n’arrive pas à récupérer dans le champs la liste des mots déjà affectés.

    include_spip('formulaires/etiquettes');
    $etiquettes = formulaires_etiquettes_charger_dist( 'tags', '15', 'tags', true, true, true, true, 'article', $cle_objet, $id_article, '', true, '', '', '');
    $valeurs['tags'] = $etiquettes['tags'];

    Le code ci-dessus, produit bien la variable d’environnement #ENV{tags} qui donne le résultat agriculture, semences, OGM,. Mais pourtant rien ne s’affiche dans le champs.

    Je ne sais pas si c’est lié, mais lorsque je sélectionne les mots par le nuage, une fois sur deux ils s’ajoutent bien correctement dans le champs, mais souvent les mots du nuage ne sont pas cliquable et ne s’ajoutent pas dans le champs.

    Je ne trouve pas la source du problème. Merci pour les suggestions ou pour les pistes de résolution.

    • Le 16 septembre 2013 à 13:43, par RastaPopoulos En réponse à : Étiquettes

      objet=aucun c’est seulement si c’est au moment d’une création, sinon il faut plutôt mettre objet=article-#UN_ID (ou autre suivant le besoin).

    • Le 16 septembre 2013 à 14:23, par milsabor En réponse à : Étiquettes

      c’était bien ça, merci !!

      Par contre,

      Je ne sais pas si c’est lié, mais lorsque je sélectionne les mots par le nuage, une fois sur deux ils s’ajoutent bien correctement dans le champs, mais souvent les mots du nuage ne sont pas cliquable et ne s’ajoutent pas dans le champs.

      c’est un autre problème apparemment.

    • Le 16 septembre 2013 à 16:25, par RastaPopoulos En réponse à : Étiquettes

      Pour le nuage pour l’instant je ne sais pas, ça fait vraiment trop longtemps que je n’ai pas touché à ce code. :(

    Répondre à ce message

  • Le 31 août 2011 à 11:26, par Shnoulle En réponse à : Étiquettes

    Bonjour,

    Un petit problème avec l’ajax et l’aide en liste.

    Après avoir cliqué sur valider, un nouveau clic sur l’étiquette ne permet pas de resélectionner une nouvelle étiquette.

    L’appel se fait comme ceci :

    1. <div class="ajax">
    2. #FORMULAIRE_ETIQUETTES{remplacer=true,aide=liste}
    3. </div>

    Télécharger

    J’ai regardé sur fonds/etiquettes_aide_liste.html , il y a bien un onAjaxLoad ...

    Une idée ?

    Merci :)

    Répondre à ce message

  • Le 3 août 2011 à 11:47, par Shnoulle En réponse à : Étiquettes

    Une question,

    J’arrive bien à ajouter des mots, par contre pas à en retirer.

    En regardant dans formulaires/etiquettes.php, je ne vois pas la fonction pour retirer les mots, est ce que cela est prévu ou j’ai fait une erreur dans mon implémentation ?

    Merci

    • Le 3 août 2011 à 12:09, par Shnoulle En réponse à : Étiquettes

      Si je passe les noms de tables avec spip_ plutot que spip2_ cela fonctionne :)

      Merci

    • Le 31 août 2011 à 11:21, par Shnoulle En réponse à : Étiquettes

      Oups,

      Un ptit oubli, corrigé le 16/08 ( changeset 50503 )

      Merci :)

    Répondre à ce message

  • Le 13 juin 2011 à 21:16, par Miguel En réponse à : Étiquettes

    (Excusez mon mauvais français, svp)

    Je voudrais utiliser ce plugin sur mon SPIP2.1

    J’ai installé Nuage et Selecteur Generique. Tout va bien, tout marche.

    Un seule « ptit problem » : quand j’installe le Selecteur, il change la selection de Rubriques dans l’espace privé.

    Mes redacteurs sont habitués a l’ancienne selecteur (menu depliant). Ils trouvaint pas les rubriques comme ça, maintenant.

    Ma question :

    Est-ce je peux fair le selecteur fonctioner seulement pour le mots-clef et pas por les rubriques dans l’espace privée ??

    Ça serait parfait !

    Merçi Beaucoup pour le plugin, c’est genial quand meme.

     : )

    Répondre à ce message

  • Le 23 mars 2010 à 20:28, par Nicolas En réponse à : Plugin Étiquettes

    J’aimerais utiliser ce plugin pour modifier la partie « ajouter un mot-clé » de l’espace privé dans l’édition d’un article. Est-ce que cela est faisable facilement ?

    Si quelqu’un pouvait me donner une piste, ce serait bien apprécié.

    Merci

    • Le 15 décembre 2010 à 04:43, par Med_ En réponse à : Étiquettes

      Si jamais ça intéresse un jour quelqu’un, il suffit d’inclure la balise
      #FORMULAIRE_ETIQUETTES dans le fichier voulu.

      Par exemple, dans ./prive/contenu/article.html, à l’intérieur de la boucle article.

      Si vous souhaitez l’inclure dans la page d’édition du contenu de l’article, il faudra utiliser le paramètre uniquement_champ=true pour ce formulaire, car l’insertion aura lieu en dehors d’une boucle article.

      Med.

    Répondre à ce message

  • Le 19 février 2009 à 15:47, par ? En réponse à : Plugin Étiquettes -ou regler les parametres ?

    Bjr,
    Je ne vois pas ou régler les paramètres dans la partie privé.
    Rien dans les mots clés, rien dans cfg , rien dans les plugins.

    Suis-je distrait ?

    Beru

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Adaptive Images

    15 novembre 2013 – 69 commentaires

    Un plugin pour permettre aux sites responsive d’adapter automatiquement les images de la page à l’écran de consultation. Adaptive Images, que l’on pourrait traduire par Images adaptatives, désigne la pratique qui vise à adapter les taille, (...)

  • Social tags

    8 septembre 2008 – 428 commentaires

    Le plugin Social Tags permet d’ajouter des icônes de partage de liens vers les sites tels que Digg, Facebook, Delicious.... Une fois le plugin installé et activé (voir doc.), le choix des sites se fait via un menu de configuration. Insertion (...)

  • Module de Paiement Stripe

    17 octobre – commentaires

    Stripe est un prestataire de paiement externe https://stripe.com/fr qui propose une API moderne et une interface de paiement extrêmement conviviale et efficace. Ce module permet les paiements à l’acte et les paiement récurrents. Configuration (...)

  • Métas

    8 août 2009 – 50 commentaires

    Ce petit plugin permet l’ajout, depuis l’espace privé, de metatags aux articles et rubriques de SPIP, ainsi que la mise en exergue de mots importants.

Ça spipe par là