WP Idea Stream

Publié le

par

En novembre 2009, à l’occasion d’un de mes tous premiers articles sur ce blog je vous expliquais comment j’avais bricolé un outil de gestion de l’Innovation Participative à partir de WordPress dans le cadre de mon taf.

Après presque 2 ans à explorer WordPress, je vous propose aujourd’hui un Plugin qui vous permet de disposer d’un « Idea Management System » light.

Les caractéristiques produit 😉

  1. Dépôt d’idées depuis le front end (tinyMCE) pour les membres de votre blog
  2. Système de vote/notation des idées inclu et personnalisable
  3. 4 Widgets pour simplifier la navigation
  4. Intégration de raccourcis dans la WP Admin Bar
  5. Chaque membre dispose de sa page de contributeur avec possibilité de personnaliser ses infos persos
  6. Fonctions de partage des idées (email et twitter)
  7. Fonction de mise en vedette des idées depuis l’admin ou directement depuis le formulaire de commentaire pour des membres choisis
  8. Possibilité de définir IdeaStream comme page d’accueil du blog
  9. Une zone d’administration pour manager le comportement du plugin

Voyons tout cela de plus prêt!

1. Déposer une idée

Formulaire de dépôt

Le formulaire de dépôt d’idée intègre l’éditeur WYSIWYG (en passant merci à wordpress wiki plugin qui a largement inspiré cette partie) de WordPress et permet de ranger son idée dans les catégories proposées par l’administrateur et dans les tags de son choix. Ce formulaire n’est accessible qu’aux membres, il faut donc être inscrit pour pouvoir déposer une idée.

Important : L’administrateur devra depuis son admin WordPress définir au moins une catégorie pour permettre le dépôt d’idée.

Ajout d’une catégorie d’idée

2. Voter/Noter une idée

Le système de votes

Les membres peuvent voter pour une idée, un ajax stockant leurs votes et la moyenne des votes est réévaluée après chaque vote. Depuis l’administration IdeaStream, Il est possible de définir l’échelle des valeurs des étoiles et leur nombre. Exemple : « pas mal, intéressant, génial » affichera 3 étoiles qui au survol afficheront ces valeurs.

3. Quatre widgets pour aider à la navigation

Les widgets inclus dans le plugin

La navigation IdeaStream, les catégories, le nuage de tags et bien entendu les Idées les mieux notées (avec possibilité de filtrer les résultats sur le mois en cours) sont disponibles.

4. Raccourcis Admin Bar WP

Ajout d’un menu dans la WP Admin Bar

Ces raccourcis reprennent les éléments du Widget Navigation d’IdeaStream.

5. La page du contributeur

Chaque contributeur a le droit à sa page ‘author’

Chaque membre dispose d’une page « auteur » dans lequel il retrouve les idées qu’il a déposées. Il peut donc suivre leur notation et commentaires. Depuis cette page il peut également personnaliser son champ « A propos de » pour indiquer quelques éléments le concernant.

6. La diffusion de l’idée

Boutons de partage des idées

Des liens sous l’idée permettent de la diffuser par email ou twitter. Depuis l’administration IdeaStream, il est possible de neutraliser cette fonctionnalité ou ne garder que le partage par email. En passant, si l’auteur d’une idée a renseigné son champ « A propos de », alors, il est repris juste au dessus de cette zone de partage.

7. Idées distinguées – « Featured »

Possibilité de mettre à la une l’idée depuis le formulaire de commentaire.

Si depuis l’adminitration d’IdeaStream, l’administrateur a renseigné une liste d’identifiants utilisateurs dits « experts » des domaines abordés, alors ces experts seront à même depuis le formulaire de commentaire, de promouvoir l’idée dans la liste des idées distinguées. Il sera nécessaire qu’ils expliquent via leur commentaire en quoi cette idée a retenu leur attention.

Autrement, l’administrateur peut neutraliser cette fonction et se charger seul de cette mise en lumière en ajoutant le postmeta « idea_stream_featured » en lui affectant la valeur 1

8. IdeaStream en page d’accueil du blog!

La liste des idées en page d’accueil du blog!

Depuis les réglages de lecture de l’administration WordPress, il suffit de sélectionner la page IdeaStream dans la liste déroulante.

9. Zone de configuration IdeaStream

Les settings de WP Idea Stream

Différents réglages sont personnalisables :

  • boutons d’ajout d’images et de liens de l’éditeur tinyMCE.
  • Status de l’idée suite à son dépôt (en attente de modération ou publiée directement)
  • Certains messages d’information.
  • les composants de partage / notation / distinction

J’ai développé cette extension depuis WP 3.1.3 et WP 3.2 Beta 2, elle est optimisée pour les deux thèmes respectifs de ces versions : twentyten et twentyeleven. Cependant, si vous utilisez un thème différent, vous pouvez « overrider » les templates du plugin en les copiant dans votre thème depuis /wp-content/plugins/wp-idea-stream/templates. Une fois la copie dans votre thème, vous pouvez la modifier pour l’adapter à votre design.

Enfin pour ceux qui aime regarder sous le capot, vous découvrirez un certains nombre de hooks auxquels vous vous pouvez vous accrocher pour éventuellement ajouter des champs au formulaire de dépôt, des services de partage, etc..


MàJ : Le 5/06/2011, la version 1.0.1 corrige les bugs suivants :

  1. Le Lien Modifier description (lorsque le membre n’a pas déposé une idée) est désormais fonctionnel,
  2. Ajout de filtres à wp_title et bp_page_title (BuddyPress) afin d’ajouter un header correct au browser
  3. Ajout du support du template des commentaires de BuddyPress pour la distinction des idées.

MàJ : Le 10/12/2011, la version 1.0.2 corrige les bugs suivants :

  1. Lorsque l’auteur de l’idée n’a pas la capacité d’éditer les commentaires, la notification mail qu’il reçoit n’intègre plus les liens pour mettre en spam ou à la corbeille.

MàJ : Le 14/06/2012, la version 1.0.3 corrige un bug apparu suite à la version 3.4 de WP :

  1. le bug portait sur l’éditeur wysiwyg. (Dés que j’aurai un moment, je modifierai ce quick fix par l’utilisation de la fonction wp_editor
  2. bug lié à la non redirection suite à dépôt d’idée sur un blog enfant d’un multisite résolu
  3. ajout de status header pour les templates posant problème

99 réponses à “WP Idea Stream”

  1. Avatar de Gabriel

    Bonjour, et avant toute chose merci pour ton plugin. Je viens de l’installer sur un site web interne pour le management des idées, ça tombe bien 🙂 il fonctionnait très bien, mais depuis la MAJ de WordPress en 3.4 je ne peux plus saisir de nouvelles idées.
    Lorsque je clique sur nouvelle idée, le formulaire de saisie n’apparaît plus : http://yfrog.com/0hmz1lp

    1. Avatar de imath

      Bonjour Gabriel,

      Merci pour ce retour. Je vais travailler à rapidement mettre en ligne un upgrade pour ajouter un correctif. Il me semblait avoir fait des tests sous la RC de la 3.4 🙁 En attendant, comme la difficulté est uniquement liée à l’éditeur, je te propose de le neutraliser en éditant le fichier wp-content/plugins/wp-idea-stream/wp-idea-stream.php : il suffit de commenter les lignes 344 et 346.
      A+

  2. Avatar de imath

    Gabriel et tou(te)s,

    J’ai identifié la difficulté et trouver un quick fix. Je mettrai une version mineure corrective ce soir sur le WordPress repo.
    A+

  3. Avatar de Martin
    Martin

    Hi, great plugin. One question: Is there no way to display the number of ratings underneath an idea? An idea with 1000 votes and a rating of 4 surely has greater weight than one with 2 votes and a rating of 4.

    Thanks
    Martin

  4. Avatar de imath

    Hi @ Martin,

    Thanks for your comment. In the functions.php script of your active theme, you can try to add this code to display the number of votes.


    function martin_count_votes( $post_meta ) {
      $total_votes = 0;
      if( count( $post_meta ) >= 1) {
        foreach($post_meta as $vote => $array_ids){

          $total_votes += count($array_ids);
        
        }
      }
      
      return $total_votes . ' vote(s) so far';
      
    }

    function martin_display_count_votes() {
      
      if( !function_exists('wp_idea_stream_ratings_single') )
        return false;
      
      if( is_single() ) {
        $the_votes = get_post_meta(get_the_ID(),"_ideastream_rates", true);
        
        $total_votes = martin_count_votes( $the_votes );
        
        ?>
        <script type="text/javascript">
          jQuery(document).ready(function($){
            $('.rating-info').html('<?php echo $total_votes;?>');
          });
        </script>
        <?php
      }
    }

    add_action('wp_footer', 'martin_display_count_votes');

    1. Avatar de error500
      error500

      Hello imath,
      Merci pour ton plugin très pratique !!
      Sauf erreur, j’ai modifié le comptage ci dessus pour compter les votes et non le nombre de notes
      function martin_count_votes :
      $total_votes += count($array_ids);
      a corriger par
      $total_votes += count($array_ids[« user_ids »]);

      T’es OK avec ça ?

      J’ai fait une correction aussi dans wp_idea_stream_vote_callback pour l’imbrication des traitements if/else. suite au test suivant :
      Utilisateur 1 vote 4
      Utilisateur 2 vote 5
      utilisateur 3 vote 4 (écrase le vote de utilisateur 1)

      function wp_idea_stream_vote_callback(){
      global $current_user;
      $user_id = $current_user->ID;
      $idea_id = $_POST[‘idea’];
      FB::info(‘$_POST[« vote »]’.$_POST[‘vote’]);
      if(strlen($_POST[‘vote’]) >1 ){
      $vote_user = substr($_POST[‘vote’], 0, 1);
      $vote_user +=1;
      }
      else $vote_user = $_POST[‘vote’];
      $the_votes = get_post_meta($idea_id, »_ideastream_rates », true);
      FB::info(‘$vote_user vote utilisateur :’.$vote_user);
      if($the_votes!= » » && count($the_votes)>0){
      foreach($the_votes as $vote => $array_ids){
      if(!in_array($user_id, $array_ids[« user_ids »])){
      foreach ($array_ids[« user_ids »] as $key => $value){
      }
      if($vote == $vote_user){
      $the_votes[$vote][« user_ids »] = array_merge($array_ids[« user_ids »], array($user_id));
      }
      }
      }
      if (!isset($the_votes[$vote_user])) {
      $the_votes[$vote_user][« user_ids »] = array($user_id);
      }

      }
      else {
      $the_votes[$vote_user][« user_ids »] = array($user_id);
      }
      update_post_meta($idea_id, « _ideastream_rates », $the_votes);
      $average_rate = wp_idea_stream_count_ratings($the_votes);

      update_post_meta($idea_id, « _ideastream_average_rate », $average_rate);
      echo $average_rate;
      die();
      }

      Qu’en penses tu ?

      1. Avatar de imath

        Salut!

        Pour l’instant, je ne suis pas en mesure de répondre à ta question, il faudrait que je me replonge dans le plugin 😉
        Il est un peu vieillot et mériterait un bon ravalement.
        En tout cas merci pour ta contribution que je garde sous le coude et qui me sera utile lorsque je me repencherai sur ce plugin.

        A+

  5. Avatar de Guillaume

    Bonjour imath,
    J’ai utilisé ton plugin pour mon site, mais comme j’avais besoin de permettre aux anonymes de proposer des idées, j’ai du trouver un contournement.
    Ce serait pas mal d’offrir cette possibilité en natif, non ?
    Merci en tout cas.
    Bonne journée
    Guillaume

    1. Avatar de imath

      Salut Guillaume,

      Merci pour ton commentaire et ta suggestion, cela pourrait effectivement être une option du plugin.

      A+

    2. Avatar de Peter

      I don’t currently allow members to register on the site so I would very much like to be able to allow non-members to suggest an idea.

      Thanks

      Peter

  6. Avatar de Claudio

    Hello himat
    I’m very interessed to you plugin that I would liek use instead of Uservoice

    There is an italian translation?
    or can we translate it?

    Thanks

    1. Avatar de imath

      Hi Claudio,

      Thanks for your interest in this plugin, there’s no italian translation, but you can add one.
      To do so, you’ll need poEdit software (check this tuto http://www.farinspace.com/wordpress-plugin-i18n/) to add the wp-idea-stream-it_IT.po file in the plugin languages directory.

  7. Avatar de Tina
    Tina

    I’ve just added this plugin to my site and entered a test idea, which I’ve chosen to be held until a moderator approves it. However, there doesn’t seem to be any kind of notification so the admin/moderator actually knows there is something there awaiting their attention?

    1. Avatar de imath

      I see, Like a notification mail. I’ll keep it in mind for next version, meanwhile u can see all pending ideas in ideastream admin page.
      Thanks for your comment.

  8. Avatar de maiyonaise
    maiyonaise

    Bonjour !

    J’ai découvert ton super outil ! (même si c’est un peu tard).

    J’ai une question au sujet des modifications d’une idée. Étant admin, je n’avais pas constaté qu’une fois l’idée déposée, elle n’est plus modifiable par l’utilisateur lambda qui l’a envoyée. Le bouton « modifier » n’apparaît pas pour ses idées. Est-ce une erreur de ma part ? :s où il n’y était pas à la base.
    J’avoue avoir un peu touché au code mais je ne me souviens pas avoir supprimé de ligne… ni d’ »edit-link ».

    Une idée? :s
    Merci d’avance !

    1. Avatar de imath

      Hello,
      Merci pour ton commentaire. Il n’y a pas d’erreur de ta part, la modification d’une idée n’est effectivement pas dispo pour un utilisateur lambda pour le moment. Je regarderai cette fonctionnalité prochainement.

  9. Avatar de maiyonaise
    maiyonaise

    Merci pour la réponse !

    Ceci m’est venu lorsque quelqu’un a eu un bug et a envoyé 5 fois un message incomplet. Il a essayé de le supprimer mais impossible. Donc je l’ai fait moi même. Ça ne me dérange pas, mais apparemment ça gêne quelques personnes.
    (Je modère après les envois pour plus de « direct » et d’interaction, d’où le fait qu’il y a parfois des erreurs de frappes dans les messages ou des abus d’envois).

    Je pense qu’utiliser la pratique qu’il y a sur les forum pourrait être sympa. Pouvoir éditer uniquement ses messages avec « xxxx a édité 1 fois son message le 9/11/12 ».

    Après, c’est toi qui vois, c’est déjà un énorme et super boulot 😉

    1. Avatar de imath

      Merci 🙂 je garde l’idée.

  10. Avatar de TJ

    I read that the IdeaStream is not compatible with themes other then 20/20. Has anyone tested / used this plugin with the Salutation theme of Parallelus? Please advise, TJ

    1. Avatar de imath

      hi tj,

      i havent tested with the 2 themes you are mentionning. I advise you to test on a local machine first. In the templates directory of the plugin, you’ll find all the template files the plugin is using. If you copy these files in your theme’s folder, they will override the ones in the plugins folder, then you’ll be able to modify them to suits your need.

  11. Avatar de TJ

    Hi IMATH,

    thanks for your quick reply. It seems that it will definitely be necessary to modify my theme. This raises the question what will happen next time the theme will be updated. Any suggestions?

    TJ

    1. Avatar de imath

      Actually, only the ideastream templates.

  12. Avatar de TJ

    can someone share actual websites using the plugin?

  13. […] de ces échanges pour structurer une idée et la déposer à l’aide d’un de mes plugins WP Idea Stream. Ici Laurent illustre l’utilisation de BuddyPress dans le cadre des préoccupations de […]

  14. Avatar de Caroline
    Caroline

    Hi 😀
    Great great plugin, thank you very much. Works very good.

    Just one question. Would it be possible to let non registered people send in ideas?
    I have a website with many visitors that are not registered users and I would like them to give ideas for future posts…
    Thanks for the great work.

    Caroline

    1. Avatar de imath

      Hi thks for your feedback, i’ll see what i can do in next upgrade 😉

  15. Avatar de Mahmod

    Hello iMath, what a great plugin, is there a possibility to upload image or post thumbnail in the editor too? Merci!!!

    1. Avatar de imath

      Thanks 🙂

      It’s been a while i haven’t worked on this one. I’ll try to find time to see what i can do about it.

  16. Avatar de alex

    Hello,

    Great work, and great thanks.
    I am from China, and I have tested Idea stream for several months, and it works stable.
    I am just thinking about whether you need Chinese tranlantion, if you need I will do it.
    Also I can put your website on our sites to show thanks credit for your work if you like.

    Please feel free to let me know what you think, thanks again, nice day.

    Alex

    please let me know what you think.

    1. Avatar de imath

      Hi,

      Thanks for your comment. You can contribute to the Chinese translation of WP Idea Stream from there: https://translate.wordpress.org/projects/wp-plugins/wp-idea-stream

      Thanks in advance for it 🙂