2016-04-18 33 views

回答

0

沒有擴展Contao 3,我知道的。但是,您可以執行以下操作。

event_full模板頂部插入下面的PHP代碼:

<?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')); 

?> 

這將嘗試以最簡單的方式來獲取一個和下一個事件。

插入您的event_full模板某處以下(例如,最後收盤</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 ?> 

這將呼應一些HTML代碼中的URL到一個和下一個事件

有一些缺點:

  • 上面的代碼不考慮startend字段小號
  • 這僅會在同一日曆的前面和後面的事件(否則,目標URL可能是錯誤的)
  • 這隻有在啓用auto_item參數

更新工作:我有在這裏創建了Github Gist:https://gist.github.com/fritzmg/aa4632be2231d77e7d6ec0e5e0a854ae

相關問題