Plugin SPIP.icio.us

Plugin permettant l’ajout simple de mots clefs (« tags ») via l’interface publique de SPIP.

Le nom et le principe d’interface de ce plugin sont inspirés du site anglo-saxon de partage de signets (bookmarks) del.icio.us

Il permet l’ajout aisé de mots clefs aux articles, documents et rubriques ; cela depuis l’interface publique de spip.

Ces mots clefs appartiennent à un groupe de mots clefs à choisir lors du paramètrage.

On peut choisir quel profil d’utilisateur aura la possibilité d’ajouter ces « tags » : administrateurs et/ou rédacteurs et/ou visiteurs.

Enfin, ce plugin propose une autocomplétion lors de l’ajout de mots clefs.

Prérequis

Spipicious Jquery nécessite :

  • SPIP 2.x (révision minimale svn : 11000) ou SPIP 3.x
  • le plugin Sélecteur Générique de Fil (utilisé pour l’autocomplétion)
  • le plugin Saisies (pour la génération du formulaire)

Pour SPIP 2.x :

  • le plugin CFG de marcimat (pour le paramètrage aisé du plugin)

Installation

  • Décompressez le contenu de l’archive du plugin dans le répertoire /plugins situé à la raçine de votre site.
  • Activez le plugin via le sous menu « gestion des plugins » du menu « configuration »

cf : l’article « installer un plugin » sur spip.net

Paramètrage

Le paramètrage du plugin se fait via le sous-menu « CFG » du menu « configuration »

La page de configuration du plugin permet de choisir :

  • Le ou les type(s) d’utilisateurs pour qui ces formulaires apparaîtront dans l’espace public. (on peut choisir plusieurs types d’utilisateurs en maintenant la touche Ctrl appuyée lors de la sélection).
  • Le groupe de mot clef qui sera utilisé par les formulaires spipicious d’ajout de mots clefs dans l’espace public.

Intégration dans les squelettes : codes à insérer

Ce plugin fournit une nouvelle balise et une noisette (fragment de squelette), à insérer dans son propre squelette, qui permettent l’affichage :

  • du formulaire de sélection de mots clef
  • de la liste des mots clef déjà associés, ainsi que l’identité de l’utilisateur qui l’a inséré.

Formulaire public de sélection de mots clef :

Pour ajouter des mots clefs aux articles, ajoutez le code suivant au sein d’une boucle article :

[(#FORMULAIRE_SPIPICIOUS_AJAX{#ID_ARTICLE,'article'})]

Pour les documents, ajoutez le code suivant au sein d’une boucle document :

[(#FORMULAIRE_SPIPICIOUS_AJAX{#ID_DOCUMENT,'document'})]

Pour les rubriques, ajoutez le code suivant au sein d’une boucle rubrique :

[(#FORMULAIRE_SPIPICIOUS_AJAX{#ID_RUBRIQUE,'rubrique'})]

Liste des mots clefs / auteurs :

De la même manière, ajoutez :

au sein d’une boucle article :

<INCLURE{fond=inc-tags}{id_article} />

au sein d’une boucle document :

<INCLURE{fond=inc-tags}{id_document} />

au sein d’une boucle rubrique :

<INCLURE{fond=inc-tags}{id_rubrique} />

Utilisation

Ce plugin fournit un formulaire dans vos articles, documents ou rubriques.

L’utilisation est simple. Si en tapant au moins deux lettres, un mot clé existant correspond à ce qui est inséré dans l’input du formulaire, le sélecteur générique vous propose alors les choix possible. Si vous n’êtes pas satisfait des choix proposés, vous pouvez taper votre mot en entier.

Il est possible d’ajouter plusieurs mot clés en une fois en les séparant par un point virgule et un espace « ; ».

Ici le sélecteur générique a détecté le mot clé « Bluetooth » existant au préalable.

Voir aussi

Le plugin Etiquette 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.

Discussion

11 discussions

  • Le plugin fonctionne en 3.2 (changé dans le paquet). Il fonctionne bien avec -tag- (groupe de mots 13)
       [(#FORMULAIRE_SPIPICIOUS_AJAX{#ID_ARTICLE,'article'})]
    J’ai aussi le plugin cmots et j’y fais apparaitre les mots avec possibilité de choix des mots-clés de -tag- : #FORMULAIRE_CMOTS{13,'article',#ID_ARTICLE}
    Dans la documentation de spipicious il est écrit que les mots générés appartiennent à l’auteur or lorsque je fais afficher le groupe -tag- je vois tous les mots créés, de tous les auteurs.

    Mon besoin serait que dans une rubrique restreinte, spipicious et cmots affichent uniquement ce qui est relatif à l’auteur.
    Pour chaque auteur j’ai créé un groupe de mots du même nom.
    Avec MOTUS j’ai lié ce groupe de mots à la rubrique restreinte de l’auteur.
    Comment faire une boucle avec {id_auteur=#SESSION{id_auteur}} pour faire afficher uniquement les mots du groupe de l’auteur ? Est-ce dans spipicious que cela se passe (en générant des mots dans le groupe de mots de l’auteur ou dans CMOTS en filtrant le groupe -tag-

    J’ai mis une boucle auteur avec {id_auteur=#SESSION{id_auteur}} autour des 2 formulaires mais cela ne donne rien. Je ne sais pas comment faire le lien entre l’auteur branché et son groupe de mots.

    Répondre à ce message

  • Bonsoir,

    ce plugin à l’air de correspondre à mes besoins, est ce qu’il est prévu d’en faire une version pour SPIP 3.1 ?

    bien à vous

    Répondre à ce message

  • 3

    Bonjour !
    j’ai trouvé Spipicious pour SPIP3 sur la zone,
    mais je ne parviens pas à faire fonctionner les formulaires.
    la syntaxe a changé ? est-elle documentée quelques part ?
    je cherche à faire ajouter des mots-clés à des documents uploadés depuis l’espace public (via le plugin Formulaire Upload)
    merci beaucoup
    Eric

    • Non la syntaxe n’a pas bougée, elle est la même. Quelle syntaxe utilises tu ?

      J’en ai profité ce matin pour faire une revue de code mais rien n’a bougé normalement au niveau de l’appel du formulaire. J’ai mis le zip actuel aussi en lien avec cet article.

      Tu l’appelle bien comme ça

      [(#FORMULAIRE_SPIPICIOUS_AJAX{#ID_DOCUMENT,document})]
    • Alors je l’utilise mal. je cherche à l’afficher sous les « documents joints » d’un article dans la partie publique – l’idéal dans mon cas serait même de l’afficher au moment de l’upload d’un ficher par #FORMULAIRE_UPLOAD
      mais mes bidouilles amateurs n’ont pas marché.
      Merci de ta réponse.

    • donc il faut que tu appelles le formulaire comme je te l’ai indiqué dans la boucle document.

      Mais tant que l’on ne verra pas ce que tu fais, on ne pourra aller plus loin dans l’explication.

      Pour ce qui est de l’intégration au formulaire upload, si tu sais coder un peu tu peux regarder comment Diogene et son extension SPIP.icio.us font (ici pour diogene : http://zone.spip.org/trac/spip-zone/browser/_plugins_/diogene/diogene et ici pour son extension http://zone.spip.org/trac/spip-zone/browser/_plugins_/diogene/diogene_complements/diogene_spipicious)

    Répondre à ce message

  • 1
    Didier

    Bonjour,
    Je ne vois pas le zip du plugin sur cette page ...
    Ou se trouve-t-il ?

    Didier

    Répondre à ce message

  • Ce plugin marche bien, mais il y a un petit probleme javascript à l’appel d’une page, même si elle n’affiche rien qui vienne du plugin.
    L’erreur est « spipicious.autocomplete is not a function ». C’est le code javascript suivant qui la provoque, sur la ligne return data[1]; :

    	spipicious.autocomplete('http://ndd.ext/spip.php?page=selecteurs_tags',
    				{
    					extraParams:{
    						id_objet:id_objet,
    						type:type
    					},
    					delay: 200,
    					autofill: false,
    					minChars: 1,
    					multiple:true,
    					multipleSeparator:";",
    					formatItem: function(data, i, n, value) {
    						return data[0];
    					},
    					formatResult: function(data, i, n, value) {
    						return data[1];
    					}
    				}
    			);

    Répondre à ce message

  • très peu de messages récents dans cet article, spipicious est il obsolète dans spip2.1ou tellement bien stabilisé qu’il n’y a plus aucune question ;-)

    Voici la mienne
    Spipicious permet de tagger des articles, des documents et des rubriques ...

    Mais pour les brèves, les sites syndiqués et les articles des sites syndiqués est ce aussi possible ? Mes premiers tests ne confirment pas, et je le regrette ;-)

    Répondre à ce message

  • Bonjour,
    j’ai petit problème d’utilisation pour ce plugin qui m’a l’air formidable et carément indispensable !

    Les tags ne s’affichent tout bonnement pas, y’a t’il autre chose à faire en plus de placer ce code  ?
    Les mots clé sont pourtant bien affichés dans monsite/ecrire lorsque je regarde le détail de mon article.
    Quelqu’un aurait une solution ?

    Merci par avance

    Répondre à ce message

  • 2

    Salut !

    J’ai voulu installer ce plugin génial sur mon spip 1.9.2 mais comme indiqué, ça ne fonctionne pas...

    J’ai alors seulement modifié le fichier formulaire_spipicious_ajax.php avec un morceau de code trouvé dans le plugin Gribouille, dans la page compat_gribouille.php qui permet d’utiliser certaines requêtes inconnues dans la 1.9.2

    Dans formulaire_spipicious_ajax.php, juste après (ligne 3)

    if (!defined(« _ECRIRE_INC_VERSION »)) return ; #securite

    Rajouter :

    define(’_COMPAT_192’, true) ;

    /* fichier de compatibilite vers spip 1.9.2 */
    if (version_compare($GLOBALS[’spip_version_code’], ’1.9300’, ’<’)
    AND $f = charger_fonction(’compat_192’, ’inc’))
    $f() ;

    function inc_compat_192_dist($quoi = NULL)
    if (!function_exists($f = ’compat_192_defs’)) $f .= ’_dist’ ;
    $defs = $f() ;

    if (is_string($quoi))
    $quoi = array($quoi) ;
    else if (is_null($quoi))
    $quoi = array_keys($defs) ;

    foreach ($quoi as $d)
    if (!function_exists($d)
    AND isset($defs[$d]))
    eval ("function $d".$defs[$d]) ;


    function compat_192_defs_dist()
    $defs = array(
    ’sql_fetch’ =>
    ’(
    $res,
    $serveur=\’\’
    )
    return spip_fetch_array($res) ;
    ’,

    ’sql_query’ =>
    ’($res, $serveur=\’\’)
    return spip_query_db($res) ;
    ’,

    // n’existe pas en 1.9.2
    ’sql_alter’ =>
    ’($res, $serveur=\’\’)
    return spip_query_db(\’ALTER \’ . $res) ;
    ’,

    // n’existe pas en 1.9.2
    // on cree la requete directement
    ’sql_delete’ =>
    ’($table, $where=\’\’, $serveur=\’\’)
    if (!is_array($table)) $table = array($table) ;
    if (!is_array($where)) $where = array($where) ;
    $query = \’DELETE FROM \’
    . implode(\’,\’, $table)
    . \’ WHERE \’
    . implode(\’ AND \’, $where) ;
    return spip_query_db($query) ;
    ’,

    // sql_quote : _q directement
    ’sql_quote’ =>
    ’(
    $val,
    $serveur=\’\’
    )
    return _q($val) ;
    ’,

    ’sql_select’ =>
    ’(
    $select = array(),
    $from = array(),
    $where = array(),
    $groupby = array(),
    $orderby = array(),
    $limit = \’\’,
    $having = array(),
    $serveur=\’\’
    )
    return spip_abstract_select(
    $select,
    $from,
    $where,
    $groupby,
    $orderby,
    $limit,
    $limit,
    $sousrequete = \’\’,
    $having,
    $table = \’\’,
    $id = \’\’,
    $serveur) ;
    ’,

    // n’existe pas en 1.9.2
    // on cree la requete directement
    ’sql_update’ =>
    ’(
    $table,
    $champs,
    $where=\’\’,
    $desc=array(),
    $serveur=\’\’
    )
    if (!is_array($table)) $table = array($table) ;
    if (!is_array($champs)) $champs = array($champs) ;
    if (!is_array($where)) $where = array($where) ;

    $query = $r = \’\’ ;
    foreach ($champs as $champ => $val)
    $r .= \’,\’ . $champ . « =$val » ;
    if ($r = substr($r, 1))
    $query = \’UPDATE \’
    . implode(\’,\’, $table)
    . \’ SET \’ . $r
    . (empty($where) ? \’\’ :\’ WHERE \’ . implode(\’ AND \’, $where)) ;
    if ($query)
    return spip_query_db($query) ;
    ’,

    ’sql_updateq’ =>
    ’(
    $table,
    $champs,
    $where=\’\’,
    $desc=array(),
    $serveur=\’\’
    )
    if (!is_array($champs)) $exp = array($champs) ;

    foreach ($champs as $k => $val)
    $champs[$k] = sql_quote($val) ;

    return sql_update(
    $table,
    $champs,
    $where,
    $desc,
    $serveur
    ) ;
    ’,

    // n’existe pas en 1.9.2
    // on cree la requete directement
    ’sql_insertq’ =>
    ’(
    $table,
    $champs
    )
    if (!is_array($champs)) $exp = array($champs) ;

    foreach ($champs as $k => $val)
    $champs[$k] = sql_quote($val) ;

    $query = « INSERT INTO $table ( ».implode(« , », array_keys($champs)).« ) VALUES ( ».implode(« , », $champs).« ) » ;
    return sql_query($query) ;
    ’,

    ’sql_showtable’ => ’($table, $serveur=\’\’)
    return spip_abstract_showtable($table, \’mysql\’, true) ;
    ’,

    ’sql_count’ =>
    ’(
    $res,
    $serveur=\’\’
    )
    return spip_mysql_count($res) ;
    ’,

    ’sql_selectdb’ =>
    ’(
    $res,
    $serveur=\’\’
    )
    $GLOBALS[\’spip_mysql_db\’] = mysql_select_db($res) ;
    return $GLOBALS[\’spip_mysql_db\’] ;
    ’,

    ) ;
    return $defs ;

    Et wouala ! chez moi ça fonctionne (SPIP 1.9.2d [11132] et Spipicious 0.3)

    Le quote ci-dessus ne garde pas la mise en page de ma page php donc je peux envoyer directement la bonne page modifiée, par email, à l’auteur du plugin si vous êtes intéressés

    • Bonjour,

      Je suis en train de monter un site en spip 1.9.2d et j’aimerai y implanter spipicious.
      Pourrais tu me faire parvenir le code que tu as utilisé à l’adresse suivante : gryohm+spip@gmail.com ?

      Merci !!

    • Salut je bosse sur la compatibilité d’un plugin vers Spip1.9.2, je serais très intéressé par ton code modifié, pour essayer de l’adapter à un autre plugin.

      -  Si tu peux me l’envoyer sur ma messagerie,
      ou le poster sur ce forum entre les balises <code> et < /code> (supprimer l’espace entre < et /code>)

      D’avance merci !

    Répondre à ce message

  • 1

    SPIP2 , plugin installé, sélecteur générique, toujours nécessaire aussi ...

    Configuration rapide, je garde le groupe -tags-, je place le code kivabien dans le squelette article et je teste.

    Je vois que je peux saisir un tag qui n’étais pas auparavent plcé en mot clef, et le retrouver disponible dans un autre article. ok c’est beau.

    Je vais voir les mots clefs du site et je ne retrouve ni le groupe de mots clefs -tags- ni le tag saisi.

    Ils sont stockés ou ???

    Répondre à ce message

  • D’abord bravo et merci à Kent et Nicolas pour ce plugin qui marche du tonnerre !

    Une remarque pour ceux qui ont renommé leur préfixe de table lors de l’installation de la base. Dans les fichiers

    -  spipicious_del_article-html
    -  spipicious_del_document.html

    pensez à modifier le préfixe de table dans la boucle en remplaçant « SPIP » par le vôtre. Sinon, vous aurez une erreur sql (j’ai perdu quelques heures à éplucher le plugin avant de comprendre d’où venait l’erreur ! Economisez votre temps...)

    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