-
URL-Parameter auslesen
Hallo zusammen,
ich habe eine URL im Stil von
Code:
http://example.com/projects[[/$category][/$project]]
und versuche, die gewünschte Kategorie ($category) und ggf. das Projekt ($project) dazu auszulesen.
Dabei existiert einzig die Seite projects in der Seitenstruktur, mit jeweils einem Modul zum Auslesen von $category und $project.
Welche saubere Lösung gibt es, $category und ggf. $project den Modulen zur Verfügung zu stellen?
Mit folgendem Code funktioniert es, aber vielleicht kennt jemand eine elegantere Lösung:
PHP-Code:
$category = '';
$project = '';
if (isset($_GET['auto_item'])) {
// One param: category
$category = \Input::get('auto_item');
}
if (!isset($_GET['auto_item'])) {
// Two params: category/project
reset($_GET);
$category = key($_GET);
$project = \Input::get($category);
}
// Make category and project available in subsequent modules.
\Input::setGet('category', $category);
\Input::setGet('project', $project);
Viele Grüße,
sans
-
Contao 4.9.*
Ich bin gerade auf diesen Thread gestoßen und würde gerne wissen, wie das in der Version ab 4.9.* realisierbar ist?
Oder wo/wie genau muss ich den Code-Schnipsel einfügen?
-
Etwas im Forum gestöbert und einen kleinen Schritt weiter.
Die URL sieht so aus: example.com/de/start/test/
auf der Startseite (start) befindet sich mein Modul.
In der compile von diesem Module kann ich so auf den ersten Parameter (test) zugreifen:
PHP-Code:
protected function compile()
{
$param = \Input::get('auto_item');
}
jetzt würde ich noch gerne wissen, wie man beliebig viele Parameter "abfangen" kann.
example.com/de/start/test/neu/parameter
gibt einen 404er
-
Mit dem Hook
getPageIdFromUrl
scheint es zu funktionieren.
Damit kann man auf die Parameter zugreifen.