Plugin Mots Objets

Ce plugin fonctionnel pour SPIP 2.1 permet d’ajouter des mots clé à d’autres objets SPIP que les articles ou les rubriques : auteurs, documents...

Cette fonction est intégrée à la Gestion des Groupes de Mots-clés dans SPIP 3.

Fonctionnement

Après installation du plugin, vous disposez de nouvelles case à cocher sur les pages de gestion des mots-clé, permettant de spécifier à quel type d’objets peuvent être attachés tel ou tel groupe de mot clé :

Ensuite, sur les pages de vues de ces objets (par exemple la page de vue auteurs) vous disposez du bloc de choix des mots clé que vous avez l’habitude de voir sur les pages articles ou rubriques :

Exemple sur la vue « documents » [1] (avec le plugin « Médiathèque ») :

Dans les squelettes

Désormais vous pouvez effectuer dans vos boucles auteurs ou documents [2], les mêmes sélections par mots clé que vous pouviez déjà faire sur les articles et rubriques ; ainsi par exemple pour n’afficher que les auteurs auxquels le mot clé N°8 a été attribué :

<BOUCLE_auteur(AUTEURS){id_mot=8}>
<p>#NOM</p>
</BOUCLE_auteur>

Avec les tables auteurs étendues

Le plugin Mots Objets peut être utilisé avec le plugin Contacts et Organisations, et permet d’attribuer des mots clé aux contacts ou organisations, via l’auteur lié.

Évolutions

Ce plugin a été développé en attendant l’arrivée de SPIP 3.0 (toujours en développement) qui intègre une nouvelle gestion des mots. Cette future version dispose d’une table de liaison spip_mots_liens et de formulaires pour appliquer des mots à l’objet (déclaré) que l’on souhaite. Et figurez vous que le formulaire de mots apparait même dans la pop-in de documents qui plus est ! (mieux que ce plugin donc !).

Questions / réponses

Q. J’ai bien installé le plugin « mots objets », mais je ne peux pas attribuer de mot-clé aux documents ?

R. Avez-vous configuré les groupes de mots ?
Par défaut, les groupes de mots clé ne peuvent pas être attribués aux auteurs et au documents, il faut donc aller sur la page de configuration des mots clé, choisir un groupe de mots clé, puis spécifier par les cases à cocher, que tel groupe de mot peut bien être attribué à tel objet.

Notes

[1les traductions des légendes « Créer un nouveau mot-clé et l’attribuer à cet auteur » et « Créer un nouveau mot-clé et l’attribuer à ce document » ont été obtenues en modifiant légèrement le core (voir forum ci-dessous).

[2la syntaxe simple (AUTEURS){id_mot=8} est fonctionnelle depuis la version 0.2.1 r41268

Discussion

26 discussions

  • 2

    Bonjour,

    Si j’ai bien compris, ce plugin a été porté nativement dans la version 3 de SPIP. e rencontre cependant un problème. Voici une copie du message que j’ai laissé sur le forum de SPIP (http://forum.spip.net/fr_245828.html) :

    A mon grand étonnement, la boucle documents avec le critère id_mot ne fonctionne plus lors de la mise à jour de SPIP vers la v3. Celle-ci fonctionnait dans SPIP 2 gràce au plugin « Mots Objets ». La boucle suivante fonctionnait :

    <BOUCLE_test(DOCUMENTS){id_mot=16}>#TITRE<br /></BOUCLE_test>

    En SPIP3 bien que l’interface admin permet d’associer un mot-clé à un document, cette boucle ne renvoie rien comme résultat.

    En cherchant un peu des exemples dans les fichiers de l’application, j’ai trouvé ceci :

    <BOUCLE_eng(spip_mots_liens){id_mot=16}{objet !IN article,rubrique}>	[(#INFO_TITRE{#OBJET,#ID_OBJET}|sinon{<:info_sans_titre:>})]
    </BOUCLE_eng>

    Je trouce cela assez étonnant car si je comprends bien la boucle pour afficher les documents liés à un mot-clé, elle demandent d’afficher tous les objets liés au mot clé en excluant les article et les rubriques.

    S’agit-il d’un bug de SPIP 3 ?

    Merci d’avance de votre aide

    Répondre à ce message

  • Bonjour,

    Je viens de mettre à jour le plugin Mots Objet et, dans l’espace privé, lorque je vais voir mes plugins, 1 fois sur trois je reçois l’erreur suivante :

    Fatal error : Call to undefined function gouverneur_de_mots() in /var/alternc/html/a/aqoci/www/aqoci.qc.ca/plugins/auto/mots_objets/mots_objets_autorisations.php on line 16

    Avez-vous une idée de ce que ça peut-être ?

    Merci

    Zaa

    Répondre à ce message

  • 2

    Bonjour,

    J’ai développé un plugin qui crée un nouvel objet, et j’ai pu très facilement étendre les mots clés à ce nouvel objet. Par contre, je rencontre plus de difficulté à étendre les mots clés aux documents, mais sans passer par le plugin Médiathèque.

    Pour l’instant, j’ai fait ça :

    function documents_declarer_liaison_mots($liaisons){
    $liaisons['documents'] = new declaration_liaison_mots('documents', array(
    	'exec_formulaire_liaison' => "je_met_quoi_ici",
    	'singulier' => "mon_plugin:document",
    	'pluriel'   => "mon_plugin:documents",
    	'libelle_objet' => "mon_plugin:objet_document",
    	'libelle_liaisons_objets' => "mon_plugin:item_mots_cles_association_document",
    ));
    return $liaison;
    }

    Mais je ne sais quoi mettre en face de ’exec_formulaire_liaison’

    Merci d’avance

    • Après (bcp de) réflexion, il ne semble pas nécessaire de déclarer la fonction comme dans mon précédent post. Mais j’avoue que je suis perdu là...

    • Bon, en surchargeant le fichier legender.php, juste avant le return de la fonction inc_legender_dist() avec le code suivant, ca fonctionne !

      $editer_mot = charger_fonction('editer_mots', 'inc');
      	$corps.= $editer_mot('document', $id_document, "", "", true,'oui');

    Répondre à ce message

  • 1

    J’essaie de lister les mots clés associé à un auteur mais le critère id_auteur dans une boucle mots ne semble pas fonctionner. Il y a une combine pour contourner le problème ou est-ce normal

    • j’ai trouvé :

      <BOUCLE_groupes(GROUPES_MOTS){id_groupe IN 10,224,25,26,27} {par titre}>
                    <h3>#TITRE</h3>
                    <BOUCLE_mots(MOTS mots_liens){id_groupe}{id_auteur}{par titre}{" - "}>
                      #TITRE
                    </BOUCLE_mots>
                  </BOUCLE_groupes>

      Il suffisait de préciser la jointure entre la table auteur et la table mot avec l’ajout de mot_liens
      Malheureusement il n’est pas possible par ce biais de faire la même chose avec la boucle GROUPE_MOTS le plugin permettant ajoutant les mots clés sur les mots et non sur les groupes, d’où la précision des groupes de mots.
      Peut être avec SPIP3

    Répondre à ce message

  • 4

    Bonjour,

    Dans le plugin il y a un pipeline : declarer_liaison_mots

    Celui ci est il sensé pouvoir être utiliser dans un autre plugin ajoutant un objet quelconque ( par exemple un chat :) ).

    C’est prévu pour plus tard , ou c’est actif dès maintenant ? ( ou non )

    Merci

    En fait la question se résume : peut on utiliser ce plugin pour ajouter des mots à n’importe quel objet, ou bien faut il fabriquer son plugin pour chaque objet.

    • Hello,

      Voici un exemple de déclarations permettant d’attribuer les mots clé de SPIP à un objet « composant » (à adapter pour un chat ;-)) une fois le plugin mots_objets installé :

      1. déclarer le pipeline

      Dans le fichier /plugins/nom_du_plugin/plugin.xml :

      	<pipeline>
      		<nom>declarer_liaison_mots</nom>
      		<inclure>composants_pipelines.php</inclure>
      	</pipeline>

      2. déclarer la fonction

      Dans le fichier /plugins/nom_du_plugin/nom_du_plugin_pipelines.php :

      /**
       * Pouvoir mettre des mots-cle sur les composants
       *
      **/
      function composants_declarer_liaison_mots($liaisons){
      	$liaisons['composants'] = new declaration_liaison_mots('composants', array(
      		'exec_formulaire_liaison' => "composant",
      		'singulier' => "composants:composant", //"mediatheque:un_document",
      		'pluriel'   => "composants:composants", //"mediatheque:des_documents",
      		'libelle_objet' => "composants:objet_composant",
      		'libelle_liaisons_objets' => "composants:item_mots_cles_association_composant",
      	));
      
      	return $liaisons;
      }

      3. Ajouter les chaines de langue pour la gestion des groupes de mots

      Dans le fichier plugins/nom_du_plugin/lang/nom_du_plugin_fr.php :

      	// A
      	'item_mots_cles_association_composant' => 'aux composants d\'un projet',
      	
      	// C
      	'composant' => 'Composant',
      	'composants' => 'Composants',
      	
      	// O
      	'objet_composant' => 'Composant',

      Bonne utilisation ;-)

    • Merci énormément,

      J’avais repris l’idée pour un plugin fonctionnel, par contre comme je ne vois toujours pas comment c’est géré, je n’avais pas tenté le coup en minimisant le code.

      Voudrais tu que je fasse une contrib pédagogique pour l’utilisation du pipeline sur le plugin chat ?

      Cela serait un plaisir.

    • Bonsoir,

      J’ai mis en place le plugin et apporté les modifications proposées par Cyril Marion pour ajouter la gestion des mots clés à un nouvel objet éditorial spip (ce sont des structures). Mais je n’arrive pas à trouver comment proposer la sélection des mots clés dans mon formulaire « structures » comme on l’obtient par exemple dans médiathèque ou dans auteur.
      Mon plugin structure est inspiré de l’excellent exemple « chats » de Marcimat.

      Si quelqu’un pouvait me dire quel pipeline ou bout de code je dois ajouter pour obtenir le selecteur des mots clés cela serait cool ;-)

      D’avance merci pour votre aide

      Pascal

    • Bonjour,

      Je me réponds, après quelques heures de sommeil.. j’ai trouvé ma boulette

      le ’exec_formulaire_liaison’ => « ressource », devait être en fait
      ’exec_formulaire_liaison’ => « ressource_voir »,

      Avec uniquement cette correction tout est TOP.
      Encore bravo pour ce Plugin

      Pascal

    Répondre à ce message

  • La version 1.0.0 du plugin apporte une petite nouveauté.

    Si un squelette prive/listes/mots_XX.html existe, tel que mots_auteurs.html, la page de visualisation d’un mot affiche la liste des XX en question. Ainsi, on voit maintenant la liste des auteurs ainsi que la liste des documents, ayant un mot donné, sur la page du mot.

    Le plugin fournit de quoi lister les auteurs et les documents.
    On utilise pour cela le plugin « afficher_objets » (http://files.spip.org/spip-zone/afficher_objets.zip).

    Répondre à ce message

  • 3

    Bonjour,

    Comment autoriser les visiteurs enregistrés à rajouter et modifier des mots sur leur fiche auteur ?

    Je réalise une interface de saisie publique à partir des formulaires de la dist.

    Les visiteurs ont accès aux mots clés des articles et des documents, mais pas à ceux des auteurs.

    Merci pour votre aide.

    • bonjour Vero, j’ai le même besoin, as tu solutionné ? merci d’avance

    • Alors, oui ... mais on a mis les mains dans le cambouis.

      Nous sommes partis du plugin Etiquettes et nous avons « Intégrer Étiquettes dans un formulaire à nous » (cf doc)

      Le formulaire a été rajouté à celui de la dist. Et je suis intervenue sur le fichier d’autorisation du plugin Etiquettes -> inc/etiquettes_autoriser.php

      // Teste si on à le droit d'ajouter des mots à un objet. Ajouter = sans toucher aux mots qui sont déjà liés
      function autoriser_ajouteretiquettes_dist($faire, $type, $id, $qui, $opt) {
      	return autoriser('modifier', $type, $id, $qui, $opt);
      }
      
      // Teste si on peut remplacer la liste des mots liés à l'objet par une autre liste de mots
      function autoriser_remplaceretiquettes_dist($faire, $type, $id_groupe, $qui, $opt) {
      	return autoriser('modifier', $type, $id, $qui, $opt);
      }

      remplacé par

      // Teste si on à le droit d'ajouter des mots à un objet. Ajouter = sans toucher aux mots qui sont déjà liés
      function autoriser_ajouteretiquettes_dist($faire, $type, $id, $qui, $opt) {
      	return true;
      }
      
      // Teste si on peut remplacer la liste des mots liés à l'objet par une autre liste de mots
      function autoriser_remplaceretiquettes_dist($faire, $type, $id_groupe, $qui, $opt) {
      	return true;
      }

      Voilà, sous réserve que tout me soit revenu en mémoire.

      En gros, j’ai contourné le problème des autorisations via Étiquettes.

      Espérant t’avoir aidé, bon dev !

    • wooo, merci pour ta réactivité, je vais regarder ça ;)

    Répondre à ce message

  • Bonjour,
    Depuis l’abandon du plugin mot partout, je cherche son semblable qui permettrait d’ajouter des mots clés à des articles syndiqués. Est-ce du domaine du possible avec ce plugin ?
    Cordialement,
    BS

    Répondre à ce message

  • 3

    Bonjour,

    j’utilise un script jquery pour afficher des images. Et cette boucle ne fonctionne pas pour celles qui sont attachées à un mot clé (OK pour des documents joints à un article).

    slides :  	[//Slideshow Images
    <BOUCLE_fond(DOCUMENTS){id_mot}{0,10}>
    {image : '#URL_DOCUMENT', title : '#TITRE'},  
    </BOUCLE_fond>]

    Erreur : Erreur SQL 1146
    1146Table ’glisse.CONDITION’ doesn’t exist
    SHOW CREATE TABLE CONDITION

    Par contre la boucle :
    <BOUCLE_fond(DOCUMENTS){id_mot}{0,10}>#TITRE</BOUCLE_fond>

    dans le squelette de la page fonctionne.

    c’est sur une SPIP 2.1.10 et (DOCUMENTS documents_liens mots types_documents) n’est pas pris non plus ; Est-ce la bonne syntaxe d’ailleurs ?

    dd

    • erratum : la boucle fonctionne

      mais l’erreur « CONDITION » est toujours là.

      dd

    • as tu mis à jour le plugin bonux ?

    • après moult tests l’erreur n’a rien à voir avec le plugin mots objets : elle apparait quand le plugin menus est activé.

    Répondre à ce message

  • 6

    Il manque un genie / taches_generales_cron lorsque l’objet sur lequel est attaché le mot est supprimé ou c’est juste fonctionnel et ça vient de chez moi ? (par exemple, suppression d’un document rattaché à un mot). La base peut vide être remplie de liens invalides si on ne gère pas le nettoyage à la suppression de l’objet.

    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