WP Idea Stream, la renaissance.

Publié le

par

J’ai le plaisir de vous présenter l’aboutissement d’un travail initié le 16 juillet dernier (le jour où je vieillis d’une unité à chaque année) : la réécriture complète du plugin WP Idea Stream, un de mes rares plugins jusqu’à présent « solo » WordPress. Pourquoi « m’infliger » un tel chantier ? J’y reviens dans la seconde partie de cet article, mais d’abord, parlons des changements introduits par la version 2.0.0 !

Quoi de neuf dans la 2.0.0 ?

D’abord, lorsque vous aurez activé le plugin, un nouvel écran d’accueil vous proposera de découvrir les évolutions les plus visibles de cette nouvelle version. L’avantage de cet écran est qu’il me permet d’intégrer à cet article des captures consultables dans les deux langues qui sont supportées par le plugin :

Personnalisations avancées

WP Idea Stream utilise énormément la WordPress Plugin API. Vous disposez de 80 hooks de type action et 231 de type filtre pour laisser libre court à votre créativité. Vous pouvez, bien entendu, utiliser le fichier functions.php de votre thème pour les entreposer..

/wp-content/plugins/

.. Ou pour plus d’indépendance vis à vis de votre thème, vous pouvez utiliser un fichier spécifique que vous appellerez wp-idea-stream-custom.php et que vous positionnerez dans votre dossier des plugins comme illustré ci-contre.

Vous pourriez, par exemple, ajouter un bouton de partage vers Twitter, par email, neutraliser le système d’évaluation des idées ou encore ajouter très simplement un nouveau champ personnalisé.

Voici une petite collection de snippets qui pourra vous permettre de modifier un certain nombre de comportements du plugin.

Le plugin utilise un mécanisme similaire (mais pas aussi élaboré!) à bbPress ou BuddyPress pour améliorer son adaptation dans votre thème. Pour faire simple, WP Idea Stream va chercher le template page.php, puis index.php (s’il ne trouve pas le premier) pour y injecter ses portions de templates qui sont disponibles dans le répertoire /wp-content/plugins/wp-idea-stream/templates.

Toutefois, il se peut que vous n’aimiez pas mon « style » et/ou le markup de mes portions de template, ou encore que vous vouliez que le plugin injecte ses portions de template dans un autre template que le page.php.

/wp-content/themes/tontheme/wp-idea-stream

Si vous voulez changer le css, créez un dossier wp-idea-stream dans votre thème, et copier/coller y le fichier style.css du plugin que vous trouverez dans le répertoire /wp-content/plugins/wp-idea-stream/templates. Une fois en place, éditer le style depuis le fichier copié dans votre thème. Il remplacera automatiquement celui prévu par défaut par le plugin. D’ailleurs, vous pouvez faire la même chose avec chacune des portions de template ‘php’ qui sont dans ce répertoire, le tout est de ne pas toucher aux templates tags.

Pour éviter d’utiliser le template page.php, vous pouvez créer, depuis votre thème, un nouveau template que vous appellerez ideastream.php, y mettre un loop classique de WordPress, le markup de votre choix et c’est lui qui sera utilisé pour accueillir les portions de template du plugin.

Je me suis amusé à faire une branche spécifique de mon « thaim » pour expérimenter la chose, vous pouvez vous en inspirer pour construire votre « very own » ambiance.

Les raisons de la « renaissance » du plugin.

WP Idea Stream est un de mes tous premiers plugins, aussi lorsque j’ai re-consulté son code source, je me suis dit « ah ouai.. J’ai fait ça comme ça à l’époque! ». Après une succession de ce type d’exclamation au fur et à mesure que j’avançais dans les lignes de code, j’ai trouvé que ce regard dans le passé était intéressant car on mesure beaucoup mieux le chemin parcouru en quelques années dans la conception de plugins WordPress. Aussi, étant donné que ce plugin tutoyait différents terrains que j’avais besoin de creuser, j’ai pensé qu’il serait un bon laboratoire pour mettre en pratique mes explorations.

Ensuite, c’est un plugin particulier. Je l’ai créé au moment où j’ai quitté mon ancien job (dans le domaine de l’innovation participative) et j’ai toujours eu un sentiment d’inachevé à son sujet. Partagez des idées dans WordPress c’est génial, les commentaires enrichissent progressivement l’idée, et si on y ajoute les évaluations (ou votes), on peut rapidement identifier les plus populaires, celles qui émergent du « brouillon créatif ». Mais, en entreprise, tout n’est pas ouvert à tous.. Et certains collaborateurs ont besoin de partager leurs idées dans des cercles restreints, presque secrètement ! Et ça, je n’avais jamais pris/eu le temps d’y répondre. Au delà du fait qu’avec cette version, je profite des statuts et niveaux de visibilité proposés nativement par WordPress (privé ou protégé par un mot de passe), j’ai pris le temps de concevoir des mécanismes d’intégration avec mon plugin préféré, le meilleur ami de WP Idea Stream :

Crédits: BuddyPress.org

Grâce à BuddyPress, WP Idea Stream est en mesure de s’inviter dans le composant des groupes et de faire correspondre le niveau de visibilité de ces derniers au statut des idées qui leurs seront attachées. N’est-ce pas génial ?

Il y a aussi ce ticket (ces deux en fait) qui m’obsède(nt), et je voudrais vraiment trouver le moyen le plus simple de profiter du mécanisme d’écoute des articles de blog de BuddyPress (lequel automatise la publication d’une activité) pour les custom post types créés par un plugin. Alors, pour les plus curieux d’entre vous, ceux qui s’aventureront dans les fichiers /wp-idea-stream/includes/buddypress/activity.php et /wp-idea-stream/includes/buddypress/groups.php, vous remarquerez que c’est d’ores et déjà possible, mais il faut que ça soit plus simple. Et ce plugin me permettra de tester les prochains patches au sujet des fameux tickets.

Pour terminer, je vous dis :

19 réponses à “WP Idea Stream, la renaissance.”

  1. Avatar de Thierry Pigot

    Merci Mathieu pour cette mise à jour. Je vais encore passer des nuits décortiquer ton code et apprendre…
    😉

    1. Avatar de imath

      Merci pour ton commentaire Thierry 🙂 S’il y a un point particulier que je peux éclairer, n’hésites pas.

  2. Avatar de Sylvain
    Sylvain

    Hello Mathieu!

    Je me doute que ce n’est pas vraiment ton problème, mais j »obtiens un Warning

    Warning: preg_replace() [function.preg-replace]: Unknown modifier '#' in /wp-content/plugins/hashbuddy/includes/hashbuddy.php on line 91

    dû à Hashbuddy. J’ai signalé le problème également sur la page support du plugin Hashbuddy,

    peut-être aurais-tu déjà une idée de la solution ?

    Bien à toi !

    1. Avatar de imath

      Salut Sylvain,

      J’ai effectivement reçu une notification. En fait je pense que hashbuddy devrait revoir son pattern car si dans n’importe quel article de blog tu ajoutes un lien de ce type <a href="http://site.url/#ancre">Lien avec ancre</a>, alors tu obtiens le warning dont tu parles.
      Pour résoudre, tu peux parcourir le chapitre persos avancées de cet article en t’attardant sur le moment où je parle du fichier wp-idea-stream-custom.php et utiliser ce morceau de code à l’intérieur : https://gist.github.com/imath/cca1ce09f38243364269.

  3. Avatar de Sylvain
    Sylvain

    Super, je vais étudier ça calmement 🙂

    En ce qui concerne le pattern de Hashbuddy, ils ont prévu le pattern des ancres pour que le #Hashtag ne s’active que s’il y a un espace avant le dièse. Donc pas de souci dans les liens ancrés.
    Peut être parfois dans des styles embarqués dans une balise du genre

    Par contre le système de etiviti et r-a-y, lui, déraille complètement dès qu’il y a des ancres dans les liens ou des hexa dans les styles. C’est dommage, car c’est chouette de pouvoir lister les tags.

    Enfin merci pour ton gist et je vais étudier tout ça 😉

  4. Avatar de Grégoire Noyelle

    Merci Mathieu. Notre échange d’hier m’incite à tester ton plugin. Je viens de l’ajouter à ma liste de plugin. J’ignorais qu’il marchait aussi sur une installation sans BuddyPress.

    1. Avatar de imath

      Merci pour ton commentaire et ta review super sympa sur le repo du plugin 🙂

      Effectivement, j’insiste beaucoup sur le fait que WP Idea Stream a pour meilleur ami BuddyPress, mais c’est avant tout un plugin WordPress! D’ailleurs, avec quelques hooks bien placés, tu peux le transformer pour faire carrément autre chose que gérer des idées et profiter de sa manière de s’interfacer avec BuddyPress 😉

      A+

  5. […] la sortie de WP Idea Stream 2 par imath qui m’a incité à utilisé ce très bon plugin. Initialement […]

  6. Avatar de Raimund

    Hello Mathieu!
    Thanks for Ideastream – I think I love it…
    Since my french ist quite bad, I’m not sure if the answer to my question is in the above text or not.
    I placed a support ticket to the Ideastream-Plugin Page but I got no help so far – so maybe you can help me directly.
    On my page http://stanzbook.at I try to use Ideastream alongside with Buddypress.
    As I said in my support-ticket ( https://wordpress.org/support/topic/hide-ideastream-from-logged-out-users-and-redirect?replies=2 ) I want not logged in users to be redirected to a specific page.
    This works (via functions.php) with all the links in my menu except with the Ideastream main page link.
    Do you know what to do?

    Thanks, Raimund

  7. Avatar de Adilson

    Hello,

    Excellent your work!

    I am looking to use the IdeaStream, but doing tests I realized that is not working the comments!

    This problem is already known? You will release a fix version?

    Sds.

    1. Avatar de imath

      Hello, thanks for your feedback, could you develop what’s going wrong with comments? I’m currently working on an upgrade but not aware of any problems.

      1. Avatar de Adilson

        Hello imath,

        Thank you for responding so fast!

        Not really opens the text box to enter text comment!

        See this test site I’m creating: http://tisystem.com.br/meubrasilmelhor.com.br/ideastream/

      2. Avatar de Adilson

        Hello imath,

        Thank you for responding so fast!

        Not really opens the text box to enter text comment!

        1. Avatar de imath

          Hi Adilson,

          I think it’s a specific javascript your theme is requiring that is not loaded on the single views of ideas. I’ve replied here https://wordpress.org/support/topic/idea-comments

          Thanks for your interest in this plugin.

  8. […] 2014, j’ai mis sur orbite la version 2.0 de ce plugin, l’aboutissement d’un travail de réécriture énorme et surtout le début […]

  9. Avatar de JC

    Hey I am having trouble with the comments showed up. I tried to follow the directions here https://wordpress.org/support/topic/idea-comments , but I ended up doing some damage that I had to repair. Can you tell me in a detailed but simply step by step way to fix this issue, please and thank you. Heres the link to the page on my site, http://www.agolon.com/ideastream/

    1. Avatar de imath

      From what i’ve seen, possible reasons can be:
      – you deactivated comments on your blog
      – you deactivated comments for ideas of this particular group.

      By default WP IdeaStream is following your preferences about comments for any posts. In the group’s manage screen you can disable comments for the group.

      Next possible reason could be your page.php template doesn’t include the comments template tag. Then you can look at this to see how to try to fix it : https://github.com/imath/wp-idea-stream/wiki/Ways-to-customize-the-plugin-from-your-theme