Afficher les articles voisins (précédent et suivant) avec le module CGBlog

Dans le gabarit en mode détail d'un article, on peut vouloir ajouter des liens vers l'article précédent et l'article suivant. Le module de news CGBlog permet de le faire sans créer d'UDT.

Tout d'abord, dans le gabarit de détail, il faut assigner l'id de l'article en cours à une variable pour pouvoir l'utiliser par la suite puis simplement appeler le sommaire du module en précisant un summarytemplate spécifique.

{* balises à mettre dans le gabarit de détail *}
{assign var='entryID' value=$entry->id}
{CGBlog summarytemplate=next_prev}

Ensuite, il faut créer le gabarit de sommaire qui permettra l'affichage des liens voisins. Dans cet exemple, on l'appelle next_prev.

{* summarytemplate "next_prev" *}

{if isset($entryID) && $items|@count > 1}

    {* trouver le précédent et le suivant *}
    {foreach from=$items item=entry name=idx}
        {if $entryID eq $entry->id}
            {assign var=curpos value=$smarty.foreach.idx.index}
        {/if}
    {/foreach}
    {assign var=prev value=$curpos-1}
    {assign var=next value=$curpos+1}

    {* afficher le résultat *}
    <ul>
      {if $items[$prev]}
        <li><a href="{$items[$prev]->detail_url}">Précédent : {$items[$prev]->title}</a></li>
      {/if} 
      {if $items[$next]}
        <li><a href="{$items[$next]->detail_url}">Suivant : {$items[$next]->title}</a></li>
      {/if}
    </ul>

{/if}