La section en anglais contient de nombreuses contributions qui ne seront probablement jamais traduites. En général, ce sont des exemples de codes que la plupart des développeurs pourront comprendre sans qu'elles ne soient traduites

dix_derniers

Affiche la liste des dix dernières pages mises-à-jour

$output = '<div class="nav"><div class="heading">Dernières modifications</div>';
$output .= '<ul class="links">';
global $gCms;
$hm =& $gCms->GetHierarchyManager();
$db = &$gCms->db;
// Affiche la liste des 10 plus récentes pages modifiées à l'exception de la home page
$q = "SELECT * FROM ".cms_db_prefix()."content WHERE (type='content' OR type='link')
AND default_content != 1 AND active = 1 AND show_in_menu = 1 
ORDER BY modified_date DESC LIMIT 10";
$dbresult = $db->Execute( $q );
if( !$dbresult )
{
    echo 'DB error: '. $db->ErrorMsg()."<br/>";
}
while ($dbresult && $updated_page = $dbresult->FetchRow())
{
    $curnode =& $hm->getNodeById($updated_page['content_id']);
    $curcontent =& $curnode->GetContent();
    $output .= '<li class="updated">';
    $output .= '<a href="'.$curcontent->GetURL().'"><strong>'.$updated_page['content_name'].'</strong></a> ';
    $output .= $updated_page['titleattribute'];
    $output .= '<br />';
    $output .= 'page modifiée le : ' .$updated_page['modified_date'];
    $output .= '</li>';
}
$output .= '</ul></div>';
echo $output;

Auteur : Elijah Lofgren

Texte du menu parent

Affiche le texte du menu du parent

global $gCms;
$contentops =& $gCms->GetContentOperations();
$smarty =& $gCms->GetSmarty();
$alias = $smarty->get_template_vars('page_alias');
$content =& $contentops->LoadContentFromAlias($alias);
$parentid = $content->ParentId();
if( $parentid <= 0 ) {
    echo "il n'y a pas de parent";
    break;
}
$alias = $contentops->GetPageAliasFromId($parentid);
$content =& $contentops->LoadContentFromAlias($alias);
if( !is_object($content) ) {
    echo "";//erreur
    break;
}
echo $content->MenuText();

Auteur : Jean le Chauve

Email compte-rendu après déconnexion

Recevoir un mail donnant un compte-rendu des actions faites par un utilisateur après qu'il se soit déconnecté.

Créer cette udt et l'associer à l'événement LogoutPost.

Le nombre d'actions reçues est paramétrable en modifiant $limit; (à 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).

N'oubliez pas de modifier les adresses mail du destinataire et celle de l'expéditeur (lignes 6 et 7).

global $smarty;
$db = cmsms()->GetDb();
$dateformat = '%x %X';           
$limit = 5;// nombre de lignes à afficher
$username = "admin";  // nom d'utilisateur à éviter
$destinataire = "destinataire@domaine.com";
$expediteur = "expediteur@domaine.com";
$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 = cms_utils::get_module('CMSMailer');
    $cmsmailer->AddAddress($destinataire);
    $cmsmailer->SetFrom($expediteur);
    $cmsmailer->SetBody($output);
    $cmsmailer->IsHTML(true);
    $cmsmailer->SetSubject('Compte-rendu après déconnexion d\'un utilisateur');
    $cmsmailer->Send();
}

Auteur : Jean le Chauve

Mis à jour pour cmsms 1.10

Share your tags here/fr

From CMSMS

A2 Hosting