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..
.. 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
.
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 :
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.”
Merci Mathieu pour cette mise à jour. Je vais encore passer des nuits décortiquer ton code et apprendre…
😉
Merci pour ton commentaire Thierry 🙂 S’il y a un point particulier que je peux éclairer, n’hésites pas.
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 !
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.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 😉
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.
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+
[…] la sortie de WP Idea Stream 2 par imath qui m’a incité à utilisé ce très bon plugin. Initialement […]
[…] iMath a refait son extension WP Idea Stream. […]
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
Thanks for your comment Raimund. I’ve replied on your support topic:
https://wordpress.org/support/topic/hide-ideastream-from-logged-out-users-and-redirect?replies=3#post-6340977
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.
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.
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/
Hello imath,
Thank you for responding so fast!
Not really opens the text box to enter text comment!
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.
[…] 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 […]
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/
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