it-swarm-eu.dev

Successivo / precedente per le voci di menu

Ho creato un sito Web basato su Joomla. Ho molti elementi nel mio menu principale-sinistro, tutti collegati a "Layout del blog di categoria", che mostra un sacco di articoli in ogni categoria.

Devo creare un Next/precedente per ogni voce di menu, quindi ogni volta che qualcuno si trova nella voce di menu 3 e preme Avanti entra nella voce 4 e così via.

In breve, ciò di cui ho bisogno è l'impaginazione per le mie voci di menu e non solo per gli articoli. Spero che voi ragazzi possiate aiutare.

2
Peter

Scarica Flexi Custom Code Module dal JED e installalo. Pubblica il modulo in qualsiasi posizione sulla pagina che desideri. Nascondi il titolo del modulo. Disabilita clean css, clean, html e clean jscript. Lascia PHP attivato

Immettere questo codice nella casella del codice personalizzato

<?php
$menu = JFactory::getApplication()->getMenu();
$JInput = JFactory::getApplication()->input;
$Itemid = $JInput->get('Itemid','','int');
$items = $menu->getMenu();

$pagination = array();
foreach($items as $item){
    if($item->link != '' && $item->type != 'separator' && $item->level == 1){
        if(strpos($item->link, 'index.php?option')!== false){
            $link = JRoute::_($item->link.'&Itemid='.$item->id);
        }else{
            $link = $item->link;
        }
        $pagination[] = array('Itemid'=>$item->id, 'link' => $link);
    }
}

foreach($pagination as $k => $menuItem){
    if($menuItem['Itemid'] == $Itemid){
        if($k == 0){
            $prev = $pagination[count($pagination) - 1]['link'];
            $next = $pagination[$k + 1]['link'];
        }elseif($k == count($pagination) - 1){
            $prev = $pagination[count($pagination) - 2]['link'];
            $next = $pagination[0]['link'];
        }else{
            $prev = $pagination[$k - 1]['link'];
            $next = $pagination[$k + 1]['link'];
        }
    }
}

echo $next.'<br />'.$prev;

echo '<pre>';
print_r($items);
echo '</pre>';
?>

Questo codice presuppone che tutte le voci di menu siano voci di menu di livello principale e che non siano separatori di testo. L'impaginazione dovrebbe aggiornarsi automaticamente in base alla pagina in cui ci si trova e se si modifica l'ordinamento delle voci di menu nel back-end.

L'ho provato solo brevemente sul mio sito e funziona. Potrebbe essere necessario modificarlo un po ', ma dovrebbe essere almeno un buon punto di partenza.

2
Terry Carter