27/10/2010, 12:06:42
Finalement, c'est pas si mal lorsqu'utilisé seulement avec LogoutPost (lorsqu'un utilisateur se déconnecte).
Le nombre de modifications (ou plutôt d'actions) est paramétrable en modifiant $limit = 5; (à la ligne 4).
J'ai également ajouté une condition sur le nom d'utilisateur afin de ne pas recevoir de mail si c'est nous-même qui nous connectons (admin) ; à modifier suivant vos paramètres ($username, ligne 5).
Voici un code plus "propre" :
Le nombre de modifications (ou plutôt d'actions) est paramétrable en modifiant $limit = 5; (à la ligne 4).
J'ai également ajouté une condition sur le nom d'utilisateur afin de ne pas recevoir de mail si c'est nous-même qui nous connectons (admin) ; à modifier suivant vos paramètres ($username, ligne 5).
Voici un code plus "propre" :
Code :
global $gCms;
$db =& $gCms->GetDb();
$dateformat = '%x %X';
$limit = 5;// nombre de lignes à afficher
$username = "admin"; // nom d'utilisateur à éviter
$result = $db->Execute("SELECT * FROM ".cms_db_prefix()."adminlog ORDER BY timestamp DESC LIMIT $limit");
if ($result && $result->fields["username"] != $username){
$output = '<html><head></head><body>';
$output .= "<table border>";
$output .= '<thead>';
$output .= "<tr>";
$output .= "<th>Utilisateur</th>";
$output .= "<th>id de l'item </th>";
$output .= "<th>nom de l'item</th>";
$output .= "<th>action</th>";
$output .= "<th>date</th>";
$output .= "</tr>";
$output .= '</thead>';
$output .= '<tbody>';
$currow = "row1";
while ($row = $result->FetchRow()) {
$output .= "<tr class=\"$currow\">";
$output .= "<td>".$row["username"]."</td>";
$output .= "<td>".($row["item_id"]!=-1?$row["item_id"]:" ")."</td>";
$output .= "<td>".$row["item_name"]."</td>";
$output .= "<td>".$row["action"]."</td>";
$output .= "<td>".strftime($dateformat,$row['timestamp'])."</td>";
$output .= "</tr>";
($currow == "row1"?$currow="row2":$currow="row1");
}
$output .= '</tbody>';
$output .= '</table>';
$output .= '</body></html>';
$cmsmailer =& $gCms->modules['CMSMailer']['object'];
$cmsmailer->AddAddress('adresseMail@destinataire');
$cmsmailer->SetFrom('adresseMail@expediteur');
$cmsmailer->SetBody($output);
$cmsmailer->IsHTML(true);
$cmsmailer->SetSubject('Compte-rendu après déconnexion d\'un utilisateur');
$cmsmailer->Send();
}