Zwischenzeitlich hatte ich bei Andreas eine bei mir in Contao 3.5.31 funktionierende dynamische Lösung beauftragt, die ich mit seinem Einverständnis gerne hier veröffentliche, falls sonst noch jemand so etwas mal braucht.
PHP-Code:
<?php
$this->extend('mod_booknav');
// deactivate if only one page
if($this->pageCount <= 2)
{
return;
}
// deactivate the up button
$this->hasUp = false;
// wenn erste oder letzte Seite
if($this->currentPage === 1 || !$this->hasNext)
{
$hrefSuffix = $GLOBALS['TL_CONFIG']['urlSuffix'];
$hrefPrefix = '';
if($GLOBALS['TL_CONFIG']['addLanguageToUrl'])
{
$hrefPrefix = $GLOBALS['TL_LANGUAGE'].'/';
}
$sort = $this->hasNext ? 'DESC' : 'ASC';
// erste/letzte veröffentlichte Seite ermitteln
global $objPage;
$missingPage = \PageModel::findOneBy(
array('tl_page.pid=?', 'tl_page.published=?'),
array($objPage->pid, 1),
array(
'order' => 'sorting '.$sort
)
);
// letzte Seite setzen, wenn auf erster Seite
if($this->hasNext || $this->upTitle == $this->prevTitle)
{
$this->hasPrev = 1;
$this->prevHref = $hrefPrefix . $missingPage->alias . $hrefSuffix;
$this->prevTitle = $missingPage->title;
$this->prevPageTitle = $missingPage->pageTitle;
$this->prevLink = $missingPage->title;
}
// erste Seite setzen, wenn auf letzter Seite
else
{
$this->hasNext = 1;
$this->nextHref = $hrefPrefix . $missingPage->alias . $hrefSuffix;
$this->nextTitle = $missingPage->title;
$this->nextPageTitle = $missingPage->pageTitle;
$this->nextLink = $missingPage->title;
}
}
Lesezeichen