Des mots clefs partout

Voici une nouvelle interface pour ajouter des mots clefs sur les tables spip que l’on veut.

Des mots clefs sur tout ce qu’on veut

Cette contrib fournit une nouvelle page pour l’interface privée permettant d’ajouter facilement des mots sur les éléments spip que l’on veut.

Pour illustrer la contrib, on va prendre comme exemple l’extension de la base de donnée spip pour ajouter des mots clefs sur les documents.

Nouvelles tables

Le première chose à faire est de créer une nouvelle table dans la base de donnée SPIP. Pour suivre les règles de nomage des tables spip, on va l’appeler spip_mots_documents (pensez à remplacer spip_ par le préfixe de vos tables).

Il faut donc, depuis phpMyAdmin ou autre, déclarer une table qui fait un mapping des id_documents vers les id_mots :

CREATE TABLE <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9tb3RzX2RvY3VtZW50czwvY29kZT4="></span> (
<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWRfZG9jdW1lbnQ8L2NvZGU+"></span> BIGINT( 21 ) NOT NULL ,
<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+aWRfbW90PC9jb2RlPg=="></span> BIGINT( 21 ) NOT NULL
);

Il faut ensuite déclarer cette table à SPIP en ajoutant le code suivant dans votre fichier mes_fonctions :

global $tables_principales;
$tables_principales['spip_mots_documents']['field'] = array(
        "id_mot"    => "BIGINT (21) DEFAULT '0' NOT NULL",
        "id_document"    => "BIGINT (21) DEFAULT '0' NOT NULL");

$tables_principales['spip_mots_documents']['key'] = array(
        "KEY id_mot"    => "id_mot",
        "KEY id_document"    => "id_document");

global $tables_relations;
$tables_relations['mots']['id_document'] = 'mots_documents';
$tables_relations['documents']['id_mot'] = 'mots_documents';

On doit ensuite ajouter une colonne à la table des groupes de mots clefs pour qu’on puisse permettre l’ajout de mots clefs sur les documents :

ALTER TABLE <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9ncm91cGVzX21vdHM8L2NvZGU+"></span> ADD <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZG9jdW1lbnRzPC9jb2RlPg=="></span> CHAR( 3 ) NOT NULL DEFAULT 'non';

bientôt intégré à l’interface de cette contrib :
Il faut aussi modifier cette colonne dans la table pour le groupe de mots qui nous intéresse (e.g. « Photos) » puisse être ajouté aux documents :

UPDATE spip_groupes_mots SET documents='oui' WHERE titre='Photos';

Interface d’ajout

Une nouvelle page pour l’interface privée, permettant d’ajouter des mots sur à peu près n’importe quoi a été développée.

archive d’installation SPIP 1.8

pour les versions 1.8.2, il faut télécharger les fichiers disponibles ici puis les installer comme indiquer ci dessous.

Installation

  1. décompresser l’archive,
  2. placer mots_partout.php dans le répertoire ecrire,
  3. placer les fichiers motspartout_*.php dans le répertoire ecrire/lang,

Utilisation

Il faut se rendre sur la page de l’espace privé : ecrire/mots_partout.php, puis :

-  On peut limiter les documents affichés en spécifiant une liste — séparée par des virgules — de numéros de rubriques, d’articles ou de brèves.

Les mots sont affichés sur la gauche :
-  Les mots en vert sont ceux associés à tous les documents qui sont actuellement affichés.
-  Les mots en bleu sont ceux associés à une partie des documents affichés.

-  On peut voir les documents associés à des mots en les sélectionnant et en faisant « voir ». On verra alors les documents avec au moins un de ces mots.
Si on veut voir les documents qui ont au moins tous ces mots, il faut alors cocher la case « stricte ».
-  On peut exclure les documents associés à certains mots en cochant la case « sans » de ces mots.
-  On peut voir les mots associés à certains documents en sélectionnant les documents et faisant « voir ».

-  On peut ajouter des mots en les sélectionnant et en sélectionnant les documents. On fait ensuite « ajouter ».
-  On peut enlever des mots en les sélectionnant et en sélectionnant les documents. On fait ensuite « enlever ».


Internationalisation

La contrib vient avec 3 fichiers de localisation :
-  motspartout_fr.php pour l’interface en français,
-  motspartout_en.php pour l’interface en anglais,
-  motspartout_it.php pour l’interface en italien.

Si vous localisez ces fichiers dans d’autres langues, merci de me les faire parvenir (NdA : ou de les envoyer aux admins si vous n’avez pas de réponse de l’auteur, avec une petite explication), ils seront ajoutés à la contrib.

Des mots sur autre chose

En fait cette interface est faite pour mettre des mots sur n’importe quel objet spip.

On a pris l’exemple des documents et vous remarquerez qu’on peut déjà l’utiliser pour mettre des mots clefs sur les articles aussi.

On peut facilement étendre cette interface en ajoutant d’autres tables mots_documents comme expliqué plus haut. Il faut ensuite déclarer dans votre fichier mes_options certaines informations. Par exemple pour les brèves :

$choses_possibles['breves'] = array(
                                      'titre_chose' => 'breves',
                                      'id_chose' => 'id_breve',
                                      'table_principale' => 'spip_breves',
                                      'table_auth' => 'spip_auteurs_breves',
                                      'tables_limite' => array(
                                                               'breves' => array(
                                                                                   'table' => 'spip_breves',
                                                                                   'nom_id' => 'id_breve'),
                                                               'rubriques' => array(
                                                                                    'table' => 'spip_articles',
                                                                                    'nom_id' =>  'id_rubrique'),
                                                               'documents' => array(
                                                                                    'table' => 'spip_documents_breves',
                                                                                    'nom_id' =>  'id_document'))
                                                               )
                                      );
  • L’index dans la table choses_possibles doit être le nom présent dans la table mots correspondante, par exemple : spip_mots_breves
  • titre_chose est le nom de la chose sur laquelle on veut ajouter des mots, on peut localiser cette variable,
  • id_chose est le nom de la colonne contenant l’id de la chose sur laquelle on veut ajouter des mots,
  • table_principale est la table contenant toutes les choses sur lesquelles on veut ajouter des mots,
  • table_auth est facultative. C’est la table qui lie les auteurs du site et la chose sur laquelle on veut ajouter des mots,
  • tables_limite est un tableau de table que l’on peut utiliser pour limiter l’affichage (par exemple : les brèves de certaines rubriques, les brèves ayant certain documents) :
    • table est le nom de la table,
    • nom_id est le nom de la colonne sur laquelle on impose la limite.

affichage personnalisé

Au départ, l’interface va juste afficher une liste des identifiant, puisqu’elle ne sait pas comment afficher les nouveaux objets.

Si on veut un affichage adapté à l’objet sur lequel on travail, il faut ajouter dans mes_options sa propre fonction afficher_liste_choses choses est le nom de la chose à afficher (i.e. le nom utilisé dans l’index de la table choses_possibles). Cette fonction prend un paramètre la liste des identifiant des choses à afficher.

Vous pouvez vous inspirer des articles ou des documents pour lesquels la table choses_possibles et les fonctions d’affichage sont fournies.

Version de développement

Cette contrib est gérée sur spip-zone, on peut récupérer la dernière version de développement grâce à :

svn checkout svn://zone.spip.org/spip-zone/_contrib_/_ecrire_/mots_partout/trunk/

Discussion

37 discussions

  • 6

    Auteur d’un site propriétaire, je compte migrer vers SPIP. Par contre vu la façon dont SPIP a été fait, impossible pour moi d’intégrer proprement toutes les données que mon site doit gérer.
    Pour bien faire, j’ai besoin de mettre des tags sur des tags.
    Exemple :
    Article A1, tagué avec les tags T1,T2,T3 du groupe de tags GT1.

    J’ai besoin de taguer le tag T1, avec par exemples les tags T15 et T27 du même groupe de tags GT1.

    Le but de la manip, c’est de faire en sorte qu’un rédacteur tague les articles uniquement avec T1, et qu’automatiquement, avec le squelette qui va bien, on voit aussi les tags T15 et T27 qui soient associés à l’article.

    Avant de me lancer dans des tests périlleux, est-ce que qqun pourrait m’indiquer si j’ai une chance de pouvoir faire ce que je veux avec ce plugin ?

    Merci d’avance.

    • Malheureusement, ce plugin ne permet pas de mettre des mots clefs sur les mots clefs. Je ne sais pas comment tu pourrais faire. Tu pourrais proposer ton problème sur la liste spip@rezo.net, peut être que quelqu’un aura une idée.

    • C’est vraiment dommage car cette fonction m’aurait moi aussi tout particulièrement intéressé (ajouter des mots-clés aux mots-clés).

      Elle aurait permis de résoudre élégamment les problèmes de hiérarchie de mots-clés, et de faire passer le système de mots-clés de Spip à la gamme au dessus.

      J’avais écrit une page de wiki sur Spip-contrib là dessus : Mots clés de mots-clés... Elle a été peu lue, et surtout cette fonction ne semble pas attirer beaucoup de gens (son intérêt me paraît pourtant illimité).

    • ivandps

      mots clés de mots-clés : le lien ne marche plus ?

      moi aussi je suis intéressé.

      faîtes moi signe si cela évolue.

      merci

    • Voilà !

      Des années plus tard, je viens de mettre en ligne le plugin pour attacher des mots-clés aux mots-clés : http://plugins.spip.net/momo.html

      N’hésitez pas à tester...

    • Cafard Naum

      Oooh, excellente nouvelle !!
      Je ne suis actuellement qu’en SPIP 2.0.11, mais je pense que je testerai ça lors de ma prochaine montée de version.

      En tout cas merci déjà pour le travail effectué !

    • Je n’ai pas testé, mais peut-être bien que ce plugin pourrait fonctionner avec Spip 2.0... À tester ! (en changeant dans le plugin.xml la borne inférieure en 2.0.0 au lieu de 2.1.0).

      Si ça marche je changerai la borne inférieure sur la zone.

    Répondre à ce message

  • Hello,
    est-ce que ce plugin continue d’être mis à jour ?

    A l’installation (2.1) 2 lignes d’erreur ;
    j’ai essayé de « rentrer dans le code » mais je manque d’explications / doc sur la notion de « choses » et des méthodes de déclaration utilisées ;
    il semblerait que ce soit la déclaration dans mots_partout_fonctions qui soit l’origine de la 1re erreur : (l30)

    $choses=array_values($tables_installees);

    et l’appel à la boucle pour la 2è erreur qq lignes plus loin (l34) :

    foreach ($choses as $chose){

    Qui aurait des infos supplémentaires ?

    Répondre à ce message

  • Bonjour,
    Je souhaiterais attacher des mots sur les courriers. J’ai installer le nécessaire dans « mots_partout_choses.php ». le plugin a bien créé la table « spip_mots_courriers » et signifier dans les métas que cette table existait. Cependant, il m’est impossible de cocher la case correspondante dans la configuration des groupes de mots de spip.
    Est-ce que quelqu’un aurait une idée pour cela ?

    Merci

    Répondre à ce message

  • Dans la version 192, il y a un commentaire « on ne peut pas mettre des mots sur les mots », et de plus la déclaration pour mettre des mots sur les forums est aussi commentée.

    Quels problemes cela pose t il de mettre de mots sur les forums ?

    Répondre à ce message

  • Bonjour,
    Que doit-on exactement installer sur une 1.9.2d, et où le trouver ?
    Merci pour vos lumières !

    Répondre à ce message

  • 1
    Philippe Giron

    Bonjour,

    Sur un site en 192d, version des mots partout 0.3, je n’arrive pas à ajouter des mots clés sur des documents (j’y arrive bien pour les auteurs).

    J’ai bien configuré a priori le plugin (Configuration / Configurer Mots partout) mais quand j’affiche un document je ne vois pas du tout la possibilité d’ajouter un mot clé. Et je ne vois pas comment Edition / mots partout peut m’aider...

    Qu’est-ce que j’ai loupé ???

    Merci d’avance !

    Répondre à ce message

  • Bonsoir,

    J’ai installé la version stable du plugin sur un spip svn, ce qui donne ceci :

    Fatal error: Cannot redeclare http_script() (previously declared in /home/user/site.tld/www/ecrire/inc/utils.php:517) in /home/user/site.tld/www/plugins/mots_partout_1_9_2/inc/layer.php on line 273

    Est-ce qu’il existe une version de ce plugin adaptée à la version de dev de SPIP ?

    Merci

    Répondre à ce message

  • Bonjour
    je prépare un site où il y aura de nombreux administrateurs de rubriques ( des profs). Ils ont besoin de mots clés différents propre à leur matière. Je voudrais que dans le choix des groupes de mots clés à attacher à l’article lors de son enregistrement n’apparaisse qu’un groupe de mots clés associé à l’auteur. Est-ce possible ?
    d’avance merci

    Répondre à ce message

  • 9

    salut,
    juste pour signaler que depuis quelques jorus il existe un plugin ( la suite de celui-ci ) qui intégre le principe d’arborescence des groupes de mots clefs.
    vous pouvez trouver le zip a cette adresse http://files.spip.org/spip-zone/mots-partout_arbo_1_9_2.zip

    • Salut,

      c’est cool, ça serait peut être le bon moment pour refaire un article à jour sur le plugin.

    • Nicolas Hoizey

      J’essaie justement d’utiliser ce plugin avec SPIP 1.9.2c, et je ne trouve pas comment associer mes mots clefs à des auteurs.

      Faut-il reproduire la manipulation décrite dans cet article, ou y-a-t-il une interface pour le faire ?

      Merci.

    • salut , la discussion devrait plutot être la : mot clefs partout

      mais la page edition/mots_partout n’est pas super fonctionnelle et faudrait lui redonner un bon coup de jeune , mais sinon c’est sur cette page que ca se passe

    • salut , la discussion devrait plutot être la : mot clefs partout

      mais la page edition/mots_partout n’est pas super fonctionnelle et faudrait lui redonner un bon coup de jeune , mais sinon c’est sur cette page que ca se passe

    • Nicolas Hoizey

      la discussion devrait plutot être la : Groupe de mots arborescents

      Comme commenté sur cet autre article, c’est vraiment pas clair. Dans la page de gestion des plugins, le nom est « Mots partout », d’où ma confusion.

      Une arborescence de mots pourrait m’intéresser, mais pas une arborescence de groupes. Sauf que je ne comprends vraiment pas quel plugin je dois prendre.

      la page edition/mots_partout n’est pas super fonctionnelle et faudrait lui redonner un bon coup de jeune , mais sinon c’est sur cette page que ca se passe

      Quand je sélectionne « auteurs » dans le bloc « Ajouter des mots clefs sur : » et que je clique sur « Voir », je vois bien mes auteurs, mais la liste des mots clefs disparaît...

    • arborescence de mots ca n’existe pas encore ... mais j’y travaille dessus
      arborescence de groupes de mots : plugin mots_partout_arbo ( qui effectivement s’appelle dans la page de gestion des plugins mots_partout je n’ai pas changé l’archive list qui génére le zip )

      par contre pour la page edition /mots_partout faudrait y refaire un tour dans le code ... vraiment... je n’utilise pas les mots clefs sur d’autres objets que rubriques , doc et articles donc du coup je ne m’en sert pas ....

      les discussions devraient plutot se faire sur la liste de la zone...
      je ferais un reporting dans l’article des discussions pour pourraient interesser.

    • Merci pour les infos ci-dessous

      Le lien vers la version 1.9.2 de « mots partout » dont parle Zerax n’est plus fonctionnel, est-ce normal ? C’est dû à une révision du plugin à cause de la 1.9.2c ou alors c’est qu’il s’est envolé ;) ou alors c’est une autre raison ?

      Merci pour tout renseignements à ce propos.

      Tom

    • Je me répond à moi-même.

      Le nouveau lien pour obtenir « mots partout » est

      http://files.spip.org/spip-zone/mots-partout-stable_1_9_2.zip

      Comme quoi c’était pas si dur de trouver ;)

    • j’ai juste oublié d’enlever le lien, j’avais pourtant bien rajouter le POSTSCRIPTUM :pendant quelques jours le zip ne sera pas dispo car les modifications en cours sont trop importante et donc le plugin n’est plus fonctionnel.

    Répondre à ce message

  • fpradignac

    Bonjour,

    je viens d’installer mots_partout_arbo_1_9_2 en SPIP 1.9.2c et c’est super surtout en parallèle avec gestion_documents.

    Cependant, quand on déplit les infos d’un document joint à un article, apparaissent bien la liste des mots clés et la listes des mots assignables, mais même si l’on peut cocher des mots assignés, on ne peut pas les supprimés. Ou alors j’ai loupé quelque chose.

    Des idées, une info ?

    merci.
    françois.

    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