Un seul artice dans la catégorie
Lorsque vous n'avez qu'un article dans une catégorie, l'idée peut vous venir de l'afficher directement dans le gabarit de la catégorie. Voici deux fonctions vous permettant d'y parvenir :
function pxSingleCatId()
{
return $GLOBALS['_PX_render']['resource']['category_id'];
}
function pxSingleCatFirstArtId()
{
$r=$GLOBALS['_PX_render']['m']->getResources(pxSingleCatId(), 1, "articles", "");
$r->moveStart();
return $r->f('resource_id');
}
function pxSingleCatNbRes($type='')
{
$r=$GLOBALS['_PX_render']['m']->getResources($GLOBALS['_PX_render']['resource']['category_id'], "", $type, "");
return $r->NbRowTotal();
}
function pxLoadArticle($identifier='')
{
if ($identifier!='')
$GLOBALS['_PX_render']['m']->art = $GLOBALS['_PX_render']['m']->getArticle($identifier);
else
$GLOBALS['_PX_render']['m']->art = $GLOBALS['_PX_render']['m']->getArticle(pxSingleCatFirstArtId());
}
la fonction pxSingleCatNbRes vous permet de déterminer le nombre d'articles de la catégorie, et la fonction pxLoadArticle vous permet de charger un article en mémoire à partir de son identifiant, ou le premier article de la catégorie si l'identifiant n'est pas renseigné.
voici un exemple d'utilisation dans un gabarit de catégorie :
<?php if (pxSingleCatNbRes('article')==1) :
pxLoadArticle();
pxArtTitle( );
pxArtPageContent( );
endif; ?>