url der aktuellen node rausfinden
![](https://www.drupalcenter.de/files/imagecache/upic_mini/pictures/picture-3412.jpg)
am 06.11.2008 - 13:06 Uhr in
ist wahrscheinlich total banal aber ich hab ein Brett vorm Kopf und bekomme es nicht hin:
ich blende ein Formular ein auf verschiedenen Seiten. Mit submit soll an die aktuelle url eine tid angehängt werden, die ich als Argument für weitere block-views auf der gleichen Seite verwenden will.
Wie geht das? Dachte etwas in der Art:
<?php
$form_state['redirect'] = $node->url .'/'.$argtid;
?>
klappt so leider nicht, fehlt wohl noch ein node_load() Aber ich weiss nicht welches, die nid ändert sich ja.
Eine Alternative wäre, die Variable aus meiner submit function global zu machen. Weiss ich aber auch nicht wie...
Merci
- Anmelden oder Registrieren um Kommentare zu schreiben
hook_menu + eigenen Loader
am 06.11.2008 - 13:45 Uhr
Das kann man wie folgt lösen
function <my-module>_menu() {
$items = array();
$items['mynode/%my_loader/view/%'] = array(
'title' => '',
'page callback' => array('mynode'),
'page arguments' => array(1),
'load arguments' => array(3),
'type' => MENU_CALLBACK,
);
}
Nachdem man damit einen eigenen URL definiert hat muß man jezt seinen eigenen Loader schreiben der das zweite Argument auswertet etwa:
function my_loader ($nid, $info) {
$node = node_load($nid);
if(is_numeric($info)) $node -> my_info = $info;
return $node;
}
Der Wert des 2 Parameters wird einfach temporär mit in die Nodestruktur gepackt und damit and die page callback Funktion übergeben.
Als letztes fehlt jetzt nur noch eine Function "mynode", die dafür sorgt, daß eine Seite aufgebaut wird und dabei auch my_info berücksichtigt wird.
Der Aufruf der Seite erfolgt dann z.B.
...drupal/mynode/21/view/2
Viel Erfolg beim Basteln
Gruß
Werner
Ich sag ja Brett vorm
am 07.11.2008 - 10:33 Uhr
Ich sag ja Brett vorm Kopf... :-)
Die nid finde ich z.B raus mit arg(1)
Vielen Dank Werner für den Ansatz von oben.