it-swarm.dev

Ciclo di impaginazione di Joomla senza inizio o fine

Come posso ottenere l'impaginazione del ciclo? Diciamo che ho 5 articoli, sto aggiungendo l'impaginazione e nella prima pagina ho il pulsante "next", nelle pagine 2-4 ho entrambi i pulsanti "next" e "prev", nell'ultima 5a pagina lo farò hanno solo il pulsante "precedente". Come posso avere i pulsanti "next" e "prev" su entrambe le pagine? Quindi, dopo aver raggiunto la 5a pagina e aver premuto "next", vado alla 1a pagina, come loop o circle.

3
be well

La paginazione dell'articolo è gestita da un plugin di contenuto chiamato pagenavigation, che si trova in ROOT/plugins/content/pagenavigation. Il problema è che sebbene Joomla consente l'override del plugin , la maggior parte dei plugin non lo supporta, incluso questo particolare plugin. In entrambi i casi, il codice che devi modificare si trova in pagenavigation.php Nella suddetta cartella (a circa la riga # 174):

Cambia il codice esistente:

        if ($location - 1 >= 0)
        {
            // The previous content item cannot be in the array position -1.
            $row->prev = $rows[$location - 1];
        }

        if (($location + 1) < count($rows))
        {
            // The next content item cannot be in an array position greater than the number of array postions.
            $row->next = $rows[$location + 1];
        }

Con questo:

        if ($location - 1 >= 0)
        {
            // The previous content item cannot be in the array position -1.
            $row->prev = $rows[$location - 1];
        } else {
            // Add button to return to last element
            $row->prev = $rows[count($rows)-1];
        }

        if (($location + 1) < count($rows))
        {
            // The next content item cannot be in an array position greater than the number of array postions.
            $row->next = $rows[$location + 1];
        } else {
            // Add button to return to start
            $row->next = $rows[0];
        }

Per quanto ne so, hai tre modi per risolverlo:

  1. Modifica il file originale, come sopra. Questo si chiama hack core e non è raccomandato, perché le tue modifiche potrebbero essere sovrascritte quando aggiorni Joomla.
  2. Crea un nuovo plug-in basato sull'esistente plg_pagenavigation E applica le modifiche. Quindi pubblica il tuo nuovo plug-in e annulla la pubblicazione di pagenavigation.
  3. Rendi il plugin compatibile con le sostituzioni di plugin aggiungendo questo codice a ROOT/plugins/content/pagenavigation/pagenavigation.php, Subito dopo defined('_JEXEC') or die;:

    $chromePath = JPATH_THEMES . '/' . JFactory::getApplication()->getTemplate() . '/html/pagenavigation.php';
    if (file_exists($chromePath))
    require_once ($chromePath);
    
    if (!function_exists('plgContentNavigation')) {
      function plgContentNavigation( &$row, &$params, $page=0 )
      {
    

    Quindi questo alla fine del file:

     }
    }
    

    Questo farà sì che Joomla cerchi il file ROOT/templates/YOURTEMPLATE/html/pagenavigation.php E lo usi come override se esiste. È ancora un trucco di base, ma potrebbe essere più facile da mantenere.

2
johanpw