2016-04-18 1 views

Répondre

0

Il n'y a pas d'extension pour Contao 3 que je connaisse. Cependant, vous pourriez faire ce qui suit.

Insérez le code PHP suivant en haut de votre modèle event_full:

<?php 

$this->getEventUrl = function($objEvent) 
{ 
    global $objPage; 
    return \Controller::generateFrontendUrl($objPage->row(), '/' . $objEvent->alias, null, true); 
}; 

$objNextEvent = \CalendarEventsModel::findOneBy(
    array("startDate > ?", "published = '1'", "pid = ?"), 
    array($this->startDate, $this->pid), 
    array('order' => 'startDate ASC')); 
$objPreviousEvent = \CalendarEventsModel::findOneBy(
    array("startDate < ?", "published = '1'", "pid = ?"), 
    array($this->startDate, $this->pid), 
    array('order' => 'startDate DESC')); 

?> 

Cela tentera de récupérer l'événement précédent et suivant la manière la plus simple.

Insérer ce qui suit quelque part dans votre modèle event_full (par exemple, avant la dernière fermeture </div>.

<?php if ($objPreviousEvent || $objNextEvent): ?> 
    <div class="pagination"> 
    <?php if ($objPreviousEvent): ?> 
    <div class="prev"> 
     <a href="<?= $this->getEventUrl($objPreviousEvent) ?>" title="<?= $objPreviousEvent->title ?>"> 
     &laquo;&nbsp;<?= $objPreviousEvent->title ?> 
     </a> 
    </div> 
    <?php endif ?> 
    <?php if ($objNextEvent): ?> 
    <div class="next"> 
     <a href="<?= $this->getEventUrl($objNextEvent) ?>" title="<?= $objNextEvent->title ?>"> 
     <?= $objNextEvent->title ?>&nbsp;&raquo; 
     </a> 
    </div> 
    <?php endif ?> 
    </div> 
<?php endif ?> 

Cela fera écho aux URL aux événements précédents et suivants au sein du code HTML

Il y a quelques inconvénients:

  • le code ci-dessus ne prennent pas en compte le champ start et end s
  • cela ne montre l'événement précédent et suivant du même calendrier (sinon l'URL cible peut-être tort)
  • cela ne fonctionne qu'avec un permis auto_item paramètre

Mise à jour: Je créé un Github Gist ici: https://gist.github.com/fritzmg/aa4632be2231d77e7d6ec0e5e0a854ae