WP Idea Stream

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 commentaires sur “WP Idea Stream

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

  7. 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. 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. 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. 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. 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 😉

  10. 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. 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. 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

  12. 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

  13. 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.

Les commentaires sont fermés.