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 ?>">
« <?= $objPreviousEvent->title ?>
</a>
</div>
<?php endif ?>
<?php if ($objNextEvent): ?>
<div class="next">
<a href="<?= $this->getEventUrl($objNextEvent) ?>" title="<?= $objNextEvent->title ?>">
<?= $objNextEvent->title ?> »
</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