// Vous avez pu voir la semaine dernière une première astuce concernant le CMS Pligg, qui permettait à l’administrateur du site de recevoir un e-mail lorqu’une news était ajoutée. Et bien cette semaine toujours dans la partie e-mail, nous allons voir comment l’auteur d’un post sur un digg-like Pigg peut être tenu au courant lorsque quelqu’un met un commentaire sur sa news. Pour faire simple, vous recevez un mail à chaque fois qu’une personne commente votre post, en cochant une case, et si, vous ne voulez plus recevoir les mails, il suffit d’aller décocher cette même case.
En pratique maintenant :
Nous allons agir sur ces fichiers : lang.conf, submit_step_2.tpl, submit.php, editlink_edit_center.tpl, link.php, editlink.php et enfin story.php
Mais avant de commencer à toucher au fichier, nous allons rajouter une colonne dans la base de donnée, dans la table pligg_link, de la façon suivante :
ALTER TABLE `pligg_links` ADD COLUMN `link_subscribe` TINYINT( 1 ) NULL DEFAULT '0';
Etape 1 :
Ouvrir le fichier lang.conf et insérer ceci :
//<SECTION>SUBMIT - STEP 2</SECTION><ADDED>0.5</ADDED> PLIGG_Visual_Submit2Subscribe_To = "Cochez ici si vous voulez être prévenu par email lors d'un commentaire"
Etape 2 :
Ouvrir le fichier submit_step_2.tpl et insérer ce qui suit juste après la ligne “{checkActionsTpl location=”submit_step_2_pre_extrafields”}” :
<br /> <label for"subscribeto"><input type="checkbox" name="subscribeto" id="subscribeto"> {#PLIGG_Visual_Submit2Subscribe_To#}</label><br/>
Etape 3 :
Ouvrir le fichier submit.php, et juste après cette ligne $linkres->category=$_POST['category']; insérer ce qui suit :
$linkres->subscribe=$_POST['subscribeto'];
Dans le même fichier chercher cette ligne $main_smarty->assign(’submit_content’, $link_content); et insérer ceci juste après :
$main_smarty->assign('submit_subscribe', $linkres->subscribe);
Etape 4 :
On va maintenant s’occuper du fichier editlink_edit_center.tpl, il faut rajouter la check box également. Chercher cette ligne : {include file=$tpl_extra_fields.”.tpl”}, et rajouter ce qui suit juste après :
<br /> <label for"subscribeto">{if $submit_subscribe eq 1}<input type="checkbox" name="subscribeto" id="subscribeto" CHECKED> {else} <input type="checkbox" name="subscribeto" id="subscribeto">{/if}{#PLIGG_Visual_Submit2Subscribe_To#}</label> <br/><br/>
Etape 5 :
Nous allons maintenant gérer le fichier /libs/link.php, recherche la ligne “class Link {”, et insérer juste en dessous ceci :
var $subscribe = 0;
Toujours dans le même fichier, rechercher cette ligne : global $db, $current_user; et insérer ceci juste en dessous :
if(isset($_POST['subscribeto'])){ $this->subscribe = "1"; }
Dans le même fichier chercher la ligne : $link_summary = $db->escape($this->link_summary); et rajouter ce qui suit juste après :
$link_subscribe = $db->escape($this->subscribe);
Encore dans le fichierlink.php, rechercher la ligne set link_summary=’$link_summary’, et placer ce qui suit juste après :
link_subscribe='$link_subscribe'
Dans le même fichier rechercher la ligne : if($link) { et ajouter ce qui suit en dessous :
$this->subscribe = $link->link_subscribe;
Et enfin dans ce même fichier, rechercher la ligne : function fill_smarty($smarty, $type=’full’){ et insérer ce qui suit juste en dessous :
$smarty->assign('subscribe', $this->subscribe);
Etape 6 :
Occupons nous maintenant du fichier editlink.php, et rechercher la ligne : $edit = false; puis rajouter ce qui suit en dessous :
$link_subscribe = $linkres->subscribe;
Dans ce même fichier rechercher la ligne : $main_smarty->assign(’enable_tags’, Enable_Tags); et rajouter ce qui suit juste en dessous :
$main_smarty->assign('submit_subscribe', $link_subscribe);
Etape 7 :
Dernier fichier à modifier, c’est story.php, rechercher ce code :
if(isset($_POST['process'])){ if ($_POST['process']=='newcomment') { insert_comment(); } }
et remplacer le par ce code :
if(isset($_POST['process'])){ if ($_POST['process']=='newcomment') { if ($link->subscribe==1) { //If you find that most users do not provide a public email, it would be safer to change the query below to "Select user_email FROM" instead. $authormail = $db->get_var("SELECT public_email FROM " .table_users ." WHERE user_id = $link->author;"); $subject= 'Vous avez un nouveau commentaire sur votre news : ' . $link->title; $message = "Le membre :". $current_user->user_login . " a commente cette news :" . $link->title . "'\r\n\r\n\t" . "'".$_POST['comment_content']. "\r\n\r\nLien de la news en question : " . my_base_url . my_pligg_base . "/story.php?title=". $link->title_url . "\r\n\r\nVoila,\r\nNews4blog Administration"; $headers = "From: [email protected]" . "\r\nReply-To: [email protected] " . "\r\nX-Priority: 1\r\n"; $to=$authormail; @mail($to, $subject, $message, $headers); } insert_comment(); } }
Etape 8 :
Maintenant, il ne vous reste plus qu’a uploader vos fichiers modifiers sur votre FTP et le tour et joué, qu’est ce que vous en pensez les utilisateurs de Pligg ???
N’hésitez pas à me mettre vos réactions…