URL Argumente wie für views bei normalen seiten?
am 20.07.2008 - 10:17 Uhr in
Hallo Leute,
Ich möchte gerne für eine Reihe verwandter Seiten (Fächer an einer Schule, eine Seite pro Fach) eine tpl schreiben, so dass die Inhalte der jeweiligen Seite(in der Regel verschiedene views und nach taxonomy verwaltete Nodes, die von den Usern geschrieben wurden)auf jeder Seite entsprechend angezeigt werden.
Wie kann ich also für eine normale Seite (page) Argumente angeben so in etwa wie bei views? Oder geht das gar nicht?
Ich stelle mir das so vor:
Ich erstelle die Seite meinedomain.de/content/fach, für die ich den Typ "fachseite" anlege. "fachseite" ist zunächst mal identisch zum default-typ "page". Dazu eine template node-fachseite.tpl.php.
Nun sollte in der tpl nach url-argumenten abgfragt werden können. Wenn ich z.B die Sport-seite aufrufe mit
meinedomain.de/content/fach/sport, so sollte (so wäre es jedenfalls bei views) eine Variable $arg[1] den Wert 'sport' haben und ich könnte die Seite mit den Inhalten für Sport erzeugen und anzeigen (z.B. einen generischen view für alle Fach-nodes, der dann mittels dem taxonomy-term 'sport' gefiltert wird).
Soweit ich bisher verstanden habe, ist aber $arg[] ein array das nur in views definiert ist (es wird jedenfalls nichts ausgegeben, wenn ich z.B. print_r($arg) verwende, während arg(1)die nodeid ist und nicht der term 'sport')). Ich kann die url aus der node-Variablen $node->path bekommen, die dann den Wert "content/fach/sport" hat. Den Term "sport" kann ich daraus z.B. mit der php-Funktion explode bekommen. Auch die nötigen views kann ich dann erstellen.
Die Frage ist nun, wie ich Seiten mit Argumenten definieren kann??
Ziel: Für alle Fächer (sport, mathe,...etc) müsste ich nur _eine_ Seite mit der entsprechenden tpl definieren - das wäre super elegant, finde ich.
Geht das überhaupt, und wenn ja, wie bitte? Hätte es eventuell Sinn, die Seite überhaupt als View zu definieren, um die Argument-handling-Möglichkeiten von views zu nutzen?
Danke für Hilfe, hermx
- Anmelden oder Registrieren um Kommentare zu schreiben
Erledigt mit query-String
am 25.07.2008 - 22:57 Uhr
Statt der ursprünglichen Idee verwende ich nun einen Querystring in der url der Seite. Damit kann ich in der template mittels der _GET() Funktion die Argumente verarbeiten. Also etwa so:
in der url:
.../content/seite?arg1=foo&arg2=bar
in der template:
<?php
$arg1 =_GET('arg1');
?>