Ich habe hier noch eine ergänzende Frage.
Ich habe es nun soweit hinbekommen, dass das Routing an sich funktioniert. Hier ist mein FrontEndController:
PHP-Code:
class FrontendController extends Controller
{
public function chapters(Request $request){
$chapterName = $request->attributes->get('name'); // Parameter in routing.yml === name
$objArticleModel = \ArticleModel::findOneByAlias('chapter'); // Chapter need to be set as Article-Alias!!!
echo "<h1>Chapter: <em>$chapterName</em> ?!</h1>";
var_dump($objArticleModel);
echo "<hr>";
/*
$pageId = 28; // Page id von DEMO-Artikel
$page = \PageModel::findByPK($pageId); //Page object
$pageURL = \Controller::generateFrontendUrl($page->row()); //URL
\Controller::redirect($pageURL); //redirect
*/
/*
$pathInfo = $request->getPathInfo();
$requestUri = $request->getRequestUri();
$url = str_replace($pathInfo, rtrim($pathInfo, ' /'), $requestUri);
return $this->redirect($url, 301);
*/
}
Jetzt habe ich in einem Artikel mit dem Alias chapter eine MetaCollection, und möchte diesen Artikel über dieses Routing aufrufen.
In dem Artikel soll dann über den Parameter name aus der MetaCollection ein Chapter gesucht und ausgegeben werden.
Im einzelnen funktioniert das schon... also das routing an sich (bis zum FE-controller) und auch der Artikel der einen Parameter annimmt und dann die richtige Ausgabe macht.
Was mir noch fehlt ist die Verbindung von beidem.
Das ich da schon etwas rumprobiert habe, sieht man oben im auskommentierten Bereich des FE-Controllers. Mir ist nicht ganz klar, wie genau ich das so hinbekomme, das der Link im Browser identisch bleibt... also hier kein Redirect gemacht wird, den der User später im Browser auch sieht.
Die gesamte Ausgabe nun im Frontend-Controller zu Programmieren scheint mir sehr unsauber zu sein, da dies ja in den View und nicht in den Controller gehört... was wäre hier eine saubere "Contao"-Lösung den Artikel vom FE-Controller aus anzusprechen?