Un plugin Movable Type pour identifier un auteur de commentaire

| 10 Commentaires | Aucun Trackback

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 !

Aucun Trackback

URL de Trackback : http://www.zeguigui.com/cgi-bin/mt/mt-tb.cgi/110

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.

Laisser un commentaire

:lamp: :non: :oui: (coeur) (coeur_brise) (k) :msg: :-) (->) :-D :-~ :cool: ;-( 8-) >-) (!) :( (idee) :lol: >;-( :mrgreen: :-| (?) :-p (rougir) 8) :-( :-o >-D ;-) (ange) (kk) (zzz) :anniv: :framboise: (rofl)

Retrouvez-moi sur

Facebook LinkedIn Viadeo Copains d'avant

Photo aléatoire

Anissa, Didine et Cathy

Anissa, Didine et Cathy

Archives

Archives plus anciennes :

Syndication

Information

Powered by Movable Type 5.01

mars 2010

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

  • ZeGuigui : [1] Un smiley machine à coudre ou tricot ? Ca lire la suite
  • Mirabelle : Tu crois qu'on peut sortir son tricot chez Ladurée ? lire la suite
  • Fée Clochette : Un tricot-thé ? Oh oui oui oui, je suis toujours lire la suite
  • Mirabelle : Une top chouette sortie à réitérer souvent :oui: C'est bon lire la suite
  • Marie : Haaaan FÉLICITATIONS KRO !!! Ça alors ! C'est de la lire la suite
  • Fée Clochette : Bonjour Andrée ! Très franchement, c'est la première fois que lire la suite
  • Andrée : Je découvre ce blog et aime particulièrement la double entrée lire la suite
  • Andrée : Et si ne rien faire était quand même une activité lire la suite
  • ZeGuigui : @Natte : je ne vois pas ce qui te permet lire la suite
  • Fee Clochette : Oh pas de soucis Natte, nous ne sommes pas du lire la suite