Puissant pour les pros
Simple pour les utilisateurs

CMS Made Simple, un CMS open source, permet la gestion rapide et facile des contenus d'un site web. Ce CMS est adapté aussi bien pour les petites sociétés que pour les grandes entreprises.

La Gestion de Contenu Simplifiée

Petits Tags entre amis

Catégorie : Astuces et conseils

Aujourd'hui on parle de Balises Utilisateur (en anglais UDT), pour l'occasion j'ai compilé les meilleurs morceaux glanées sur les forums, les Wiki et ailleurs.

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 :

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 :

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;
}
  Flux Rss Twitter Facebook