Nach etwas suchen habe ich die Funktion zur Ermittlung der Nachrichten-URL gefunden. Der Inserttag {{news_url::*}} macht ja nichts anderes. Also im core gesucht wie dieser Inserttag verarbeitet wird und Code kopiert. Mein PHP-Skript sieht nun so aus:
PHP-Code:
<?php
// id der Nachricht ermitteln
$this->import("Database");
$objLatestNews = $this->Database->prepare("SELECT headline,id FROM tl_news WHERE published='1' ORDER BY date DESC")
->limit(1)
->execute();
// URL der Nachricht erstellen
$objNews = \NewsModel::findByIdOrAlias($objLatestNews->id);
if (($objArchive = $objNews->getRelated('pid')) !== null && ($objJumpTo = $objArchive->getRelated('jumpTo')) !== null)
{
$strUrl = $this->generateFrontendUrl($objJumpTo->row(), ($GLOBALS['TL_CONFIG']['useAutoItem'] ? '/' : '/items/') . ((!$GLOBALS['TL_CONFIG']['disableAlias'] && $objNews->alias != '') ? $objNews->alias : $objNews->id));
}
// zur Nachricht weiterleiten
$this->redirect($strUrl);
?>
Das Konstrukt der Seiten habe ich auch geändert und vereinfacht. Im Gegensatz zum im vorherigen Post beschriebenen, entfällt die Weiterleitung der Startseite und Seite A. Seite A ist nun auch im Menü sichtbar. Seite B ist nun eine Unterseite von Seite A. Warum ich es beim ersten Mal so kompliziert gemacht habe, weiß ich auch nicht.
Lesezeichen