banniere
Ecrit par leknoppix le 19-06-2011 à 19:06:47
Tutoriel video: création d'un plugin pour cmsms

Dans ce nouveau tutoriel, nous apprendrons à créer un plugin dans le but de personnalisé certaines fonctionnalités. Dans l'exemple de la vidéo, nous apprendrons a affiché dans CMSMS les X tweets via un plugin créé de A à Z.

Sans plus attendre, voici la vidéo:

Voici les 2 fonctions php qui vous serons utile.

Le fonction dateFR:

<?php
function dateFR($time,$mode='long')
{
    setlocale(LC_TIME, 'fr');
    $mois= strftime("%m",  strtotime($time));
    switch ($mois){
    case '1' : $mois = 'Janvier'; break;
    case '2' : $mois = 'Février'; break;
    case '3' : $mois = 'Mars'; break;
    case '4' : $mois = 'Avril'; break;
    case '5' : $mois = 'Mai'; break;
    case '6' : $mois = 'Juin'; break;
    case '7' : $mois = 'Juillet'; break;
    case '8' : $mois = 'Août'; break;
    case '9' : $mois = 'Septembre'; break;
    case '10' : $mois = 'Octobre'; break;
    case '11' : $mois = 'Novembre'; break;
    case '12' : $mois = 'Decembre'; break;
    }
    $jour=strftime("%w",strtotime($time));
    switch ($jour){
    case '1' : $jour = 'Lundi'; break;
    case '2' : $jour = 'Mardi'; break;
    case '3' : $jour = 'Mercredi'; break;
    case '4' : $jour = 'Jeudi'; break;
    case '5' : $jour = 'Vendredi'; break;
    case '6' : $jour = 'Samedi'; break;
    case '0' : $jour = 'Dimanche'; break;
    }
    $mor1=strftime("%d",strtotime($time));
    $mor2 = strftime( "%Y" , strtotime( $time ) );
    if($mode == 'long')
    {
        $mor3=strftime("à %Hh%Mm%Ss", strtotime($time));
    }
    else
    {
        $mor3=NULL;
    }
    return $jour." ".$mor1." ".$mois.' '.$mor2.' '.$mor3;
}
?>

Et la fonction parse:

<?php
function parse($text)
{
 $text = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $text);
 $text = preg_replace('#@([a-z0-9_]+)#i', '<a href="http://twitter.com/$1">@$1</a>', $text);
 $text = preg_replace('# #([a-z0-9_-]+)#i', ' <a href="http://search.twitter.com/search?q=%23$1">#$1</a>', $text);
 return $text;
}
?>

Ainsi que le fichier final:

<?php
function smarty_cms_function_twitter($params, &$smarty)
{
    //instruction
    $html='';
    $user=$params['user'];
    $count=$params['nbtweet']*2;
    $date_format= 'd M Y, H:i:s';
    $url='http://twitter.com/statuses/user_timeline/'.$user.'.xml?count='.$count;
    $XML=simplexml_load_file($url);
    $html.='<ul>';
    $boucle=1;
    foreach($XML->status as $status)
    {
        if($boucle<=$params['nbtweet'])
        {
            $datetime=$status->created_at;
            $date=dateFR($datetime,'');
            $html.="<li> + ".parse($status->text)."&nbsp;&nbsp; ==> &nbsp;&nbsp;<a href="http://twitter.com/".$user."/status/".$status->id."">".$date."</a></li>";
            $boucle++;
        }
    }
    $html.='</ul>';
    return $html;
}
function smarty_cms_help_function_twitter()
{
   echo lang('help_function_twitter'); 
}
function smarty_cms_about_function_twitter()
{
    ?>
<p>Author: Pascal Cañadas&lt;pascal@mirandais.fr&gt;</p>
<p>Version: 1.0</p>
    <?php
}
function dateFR($time,$mode='long')
{
    setlocale(LC_TIME, 'fr');
    $mois= strftime("%m",  strtotime($time));
    switch ($mois){
    case '1' : $mois = 'Janvier'; break;
    case '2' : $mois = 'Février'; break;
    case '3' : $mois = 'Mars'; break;
    case '4' : $mois = 'Avril'; break;
    case '5' : $mois = 'Mai'; break;
    case '6' : $mois = 'Juin'; break;
    case '7' : $mois = 'Juillet'; break;
    case '8' : $mois = 'Août'; break;
    case '9' : $mois = 'Septembre'; break;
    case '10' : $mois = 'Octobre'; break;
    case '11' : $mois = 'Novembre'; break;
    case '12' : $mois = 'Decembre'; break;
    }
    $jour=strftime("%w",strtotime($time));
    switch ($jour){
    case '1' : $jour = 'Lundi'; break;
    case '2' : $jour = 'Mardi'; break;
    case '3' : $jour = 'Mercredi'; break;
    case '4' : $jour = 'Jeudi'; break;
    case '5' : $jour = 'Vendredi'; break;
    case '6' : $jour = 'Samedi'; break;
    case '0' : $jour = 'Dimanche'; break;
    }
    $mor1=strftime("%d",strtotime($time));
    $mor2 = strftime( "%Y" , strtotime( $time ) );
    if($mode == 'long')
    {
        $mor3=strftime("à %Hh%Mm%Ss", strtotime($time));
    }
    else
    {
        $mor3=NULL;
    }
    return $jour." ".$mor1." ".$mois.' '.$mor2.' '.$mor3;
}
function parse($text)
{
 $text = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $text);
 $text = preg_replace('#@([a-z0-9_]+)#i', '<a href="http://twitter.com/$1">@$1</a>', $text);
 $text = preg_replace('# #([a-z0-9_-]+)#i', ' <a href="http://search.twitter.com/search?q=%23$1">#$1</a>', $text);
 return $text;
}
?>

Voici, le tutoriel est fini pour aujourd'hui, si vous avez des remarques ou des idées pour de futur turoriel, n'hésitez pas à poster dans les commentaires.

Publier sur mon compte twitterPublier sur mon viadeoPublier sur mon deliciousPublier sur mon compte twitter

Ajoute ton commentaire

Pseudo : *
E-Mail : *
MSN :
Site internet :
Blog :
Note : *
Commentaire : *
Ne pas compléter :

Le 25-06-2011 à 19:03:18 par baptwit

avatarpas de problème, et merci pour ces tutos :-) (et bien sur les réponses aux commentaires ;) )

Note :  notenotenotenotenote
Le 25-06-2011 à 19:00:01 par leknoppix

avatarJe vois où tu veux en venir, rien ne t'empèche de mettre tout tes fichiers langues (les traductions dans le fichier function.twitter.php. Ensuite, il faut un peu regardé au niveau de forge. Désolé, je n'es pas le temps, je regarderais dès que possible.

Note :  notenotenotenotenote
Le 25-06-2011 à 18:56:51 par baptwit

avatarok merci bien, en fait ce que je voulais faire est d'éviter a la personne prenant le plugin de devoir modifier son fichier admin.inc.php pour ajouter les traductions En gros avoir les traductions du plugin dans un fichier a part que l'on pourrait facilement envoyer avec le plugin. Par exemple le fichier function.twitter.php un fichier function.twitter_help.php ou il y aurais dedans les différentes version traduites de la fonction help et on ferait un include dans function.twitter.php au lieu d'avoir la version francaise de la fonction help dans lang/ext/fr_FR/admin.inc.php la version es dans lang/ext/es_ES/admin.inc.php Je sais pas si je suis très clair, m'enfin c'est juste un détail :p

Note :  notenotenotenotenote
1 - 2 - 3

© 2007-2023