Rappel Général

Une Balise Utilisateur (ci dessous UDT par simplification) est un code PHP que l'on prépare en dehors de tout contenu et que l'on appellera plus loin dans le site au travers d'une page ou carrément d'un gabarit.

Une UDT s'appelle toujours par son nom entourée de crochets : {toto}

Le nom d'un UDT ne peut contenir de tiret ! ainsi {mon_UDT99} est valable alors que {mon-UDT99} est incorrect.

Comme tout code PHP, vous n'êtes jamais à l'abri d'une fausse manip qui provoquera une destruction de donnée (en plus de tuer des bébés phoques pour certaines d'entre elles). Conclusion : si vous aimez les bébés phoques testez toujours le code en local sur une copie de votre site original ! Ne mettez jamais un code en production directement.

L'ensemble des codes ci dessous ont été testé pour vous et reste à disposition sur cette page pour que vous puissiez constater le résultat. Le Wiki francophone a été mis à jour en même temps afin de ne pas perdre ces codes ultérieurement.

Afficher les 10 dernières pages modifiées dans votre site

echo '<div class="nav"><div class="heading">10 Derni&egrave;res pages mises &agrave; jour</div>';
echo ' <ul class="links">';
$hm = cmsms()->GetHierarchyManager();
$db = cmsms()->GetDb();

// Get list of 10 most recently updated pages excluding the 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 'Erreur bdd durant la remont&eacute;e des infos<br/>';
}
while ($updated_page = $dbresult->FetchRow())
{
$curnode =& $hm->getNodeById($updated_page['content_id']);
$curcontent =& $curnode->GetContent();
echo <<<REQUETE
<li class="updated">
<a href={$curcontent->GetURL()}>{$updated_page['content_name']}</a><br />
{$updated_page['titleattribute']}<br />
Modifi&eacute; le : {$updated_page['modified_date']}
</li>
REQUETE;
}
echo '</ul></div>';

Donnera : 10 dernières pages modifiées

Afficher la date de dernière modification de votre site

$hm = cmsms()->GetHierarchyManager();
$db = cmsms()->GetDb();

// Get the most recently updated page excluding the home page
$q = "SELECT modified_date 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 1";
$updated_page = $db->getOne($q);
if(!$updated_page)
{
    echo 'DB error durant la r&eacute;cup&eacute;ration de la date<br/>';
    break;
}
echo date("d/m/Y",strtotime ($updated_page));

Donnera tout bêtement : date_derniere_modif.png

Faire une redirection maison par alias de page

Appelons notre udt redirection_maison. Il faudra l'appeler ainsi :

{redirection_maison alias='tata'}

ce qui provoquera une redirection transparente pour tous les visiteurs ET pour les moteurs de recherches vers la page possédant l'alias tata. Si aucune page n'existe avec l'alias tata une erreur sera générée.

Le code de cet UDT



if (! isset($params['alias']))
{
echo "param alias non renseigné";
return;
}

$page = $params['alias'];

$manager =& cmsms()->GetHierarchyManager();
$node =& $manager->sureGetNodeByAlias($page);

if (! isset($node))
{
echo "alias '.$page.' inexistant";
return;
}

$content =& $node->GetContent();

if (isset($content) && is_object($content))
{
if ($content->GetURL() != '')
{
redirect($content->GetURL());
}
}
else
{
echo "alias pointant vers une non-page";
return;
}