Un plugin Movable Type pour identifier un auteur de commentaire

| 10 Commentaires

Vous aurez peut-être remarqué que les commentaires que je poste sur mon blog apparaissent dans une autre couleur. Si vous vous demandez comment j'ai fait ça sous movable-type et bien c'est grâce à un plugin maison.

Le but de ce plugin est de permettre d'identifier un auteur de commentaire à partir de son adresse email. A quoi ça sert ? Par exemple à ajouter une classe dans le code HTML afin de changer la couleur et ainsi reconnaître un auteur du blog.

Ce plugin est en fait ma première réalisation technique pour Movable Type. Jusqu'à présent j'avais surtout bidouillé les modèles mais je n'avais pas trouvé de solution miracle pour changer la couleur de mes commentaires, sauf à passer par un intermédiaire PHP (ce qui est réaliste pour mon site puisqu'il utilise PHP).

Ce plugin ajoute une nouvelle balise conditionnelle <MTIfCommenterEmailIs> qui accepte deux paramètres : email et trusted. email est un paramètre obligatoire qui correspond à l'adresse email à reconnaître. Si trusted="1" alors non seulement l'adresse email doit correspondre mais en plus le commentaire doit avoir été posté dans un mode authentifié (typekey par exemple). On peut bien entendu utilisé la balise <MTElse> dans sa page pour ajouter du code en cas de commentaire non reconnu.

package MT::Plugin::ZeGuigui;

use strict;
use warnings;

use vars qw( $VERSION );
$VERSION = 1.0;

eval { use MT::Plugin };
unless ($@) {
    my $static_path = MT::ConfigMgr->instance->StaticWebPath;
    my $about = {
             key         => __PACKAGE__,
             name        => 'mt-zeguigui',
             description => 'Small plugins by ZeGuigui',
             author_name => 'ZeGuigui',
             author_link => 'http://www.zeguigui.com/',
             plugin_link => 'http://www.zeguigui.com/technique.php',
             version     => $VERSION
    };
    MT->add_plugin(MT::Plugin->new($about));
}

MT::Template::Context->add_conditional_tag("IfCommenterEmailIs" => \&checkCommenterEmail);

sub checkCommenterEmail {
	my ($ctx, $args) = @_;
	
	# Check context
	my $comment = $ctx->stash('comment')
		or return $ctx->error("Tag called without a comment in context");

	# Check arguments
	if (! $args->{email}) {
		return $ctx->error("An 'email' argument must be provided");
	}

	my $email   = $args->{email};
	my $trusted = $args->{trusted};

	return (($email eq $comment->email) && ($trusted ? $comment->commenter_id : 1));
}

1;

Comme on peut le voir rien de bien extraordinaire dans le code source... sauf peut-être l'utilisation de commenter_id de l'objet $comment qui n'est pas documenté sur le site de SixApart. Probablement un oubli mais en lisant le source de Movable Type on trouve rapidement l'existence de ce paramètre qui simplifie grandement la reconnaissance d'un commentaire authentifié !

Et maintenant pour nos amis anglophones une description nettement plus succinte et rapide de ce plugin.

This plugin adds a new MovableType conditionnal tag named MTIfCommenterEmailIs. It accepts two arguments: email (mandatory) and trusted. The aim is to recognise a commenter by its email address. If trusted is set to 1 then the comment must also be from an authentified source (typekey for example). You can use MTElse to add some code when the comment is not from the expected source.

En pratique voici comment vous pouvez utiliser ce tag (small example) :

<MTComments>
    <MTIfCommenterEmailIs email="authoremail@someisp.com" trusted="1">
         <div class="comment blogauthor" id="comment-<$MTCommentID$>">
       <MTElse>
         <div class="comment" id="comment-<$MTCommentID$>">
       </MTElse>
    </MTIfCommenterEmailIs>
[...]
</MTComments>

Si vous avez des questions, commentaires, améliorations à suggérer, n'hésitez pas à utiliser les commentaires !

10 Commentaires

:-(( je suis super nulle en informatique mais je suis certaine que c'est très bien. Bisous.

;-) Moi j'aime bien le rose...

Je peux réserver la couleur pantone 282C ???
:-D
Ou alors un petit framboise, heuh, une petite framboise (!)
Flûte, ça tourne à l'obsession et ça va finir par se remarquer. Bon bah j'ai rien dit alors :-))

D'ailleurs en parlant de framboises j'ai mangé la toute première hier... bon OK il n'y en avait vraiment qu'une et c'était un peu juste. Bref c'était de la gourmandise. On ne se refait pas :-D

:-(( en parlant de framboises, les miennes ne sont pas encore mûres... loin de là mais les fraises sont excellentes cette année et les cerises vont bientôt être parfaites. J'en ai mangé quelques unes hier... non Marie j'ai pas trouvé de "bloche" dedans.

je prend le parme en exclus si c'est possible :mrgreen:

This only works with static templates, not dynamic. The same result can be made with the MTCompare plugin. I can't seem to find a plugin that works with dynamic tempaltes, I might have to write one myself. Keep up the good work though!

This is what I came up with using Smart for PHP.

{{capture assign="MTCommentEmail"}}<$MTCommentEmail$>{{/capture}}
{{if $MTCommentEmail == "email@domain.com"}}
<div class="comment1" id="comment-<$MTCommentID$>">
{{/if}}
{{if $MTCommentEmail != "email@domain.com"}}
<div class="comment" id="comment-<$MTCommentID$>">
{{/if}}

Using Smarty (default dynamic template system for movable type) you can use {else} the same way you would use for static templates.

hi...good site.

Retrouvez-moi sur

Facebook LinkedIn Viadeo Copains d'avant

Photo aléatoire

Alexandre a trouvé un super cadeau pour Svetlana

Alexandre a trouvé un super cadeau pour Svetlana

Ailleurs sur le net

Archives

Archives plus anciennes :

décembre 2014

Dim Lun Mar Mer Jeu Ven Sam
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Commentaires récents

  • Bigface : La combo de Jérèmy au dernier draft ne fonctionnait donc lire la suite
  • ZeGuigui : Le blog vient de monter de version, apparemment tout marche lire la suite
  • Sylvie : :oui: j'adore ce pingouin... ah c'est pas lui l'objet lire la suite
  • ZeGuigui : No, never... I have to admit I did not give lire la suite
  • https://me.yahoo.com/a/KNhM72QahobiDRnTRm.iGNacnl8tqKoc#4a5b0 : Did you ever figure out how to print an array lire la suite
  • Fée Clochette : Y a de la vie dans le Guigui ????? (rofl) lire la suite
  • ZeGuigui : Oui, 29 € pour passer de Leopard à Snow Leopard... lire la suite
  • Mirabelle : Et puis... Nan rien :framboise: lire la suite
  • Mirabelle : 29 € la mise à jour pour passer sous Snow lire la suite
  • Mirabelle : J'ai le bon processeur mais je ne suis pas sous lire la suite

Syndication

Information

Powered by Movable Type 5.2.10