[gelöst]in menu callback weiterleiten
Eingetragen von andiarty (25)
am 25.03.2011 - 17:00 Uhr in
am 25.03.2011 - 17:00 Uhr in
Hi,
weiss jemand wieso meine Weiterleitung mit Drupal-Goto in meinem Menu Callback nicht funktioniert ?
function _plattform_kaufen() {
$nid = arg(1);
global $user;
// needed for node_object_prepare
module_load_include('inc', 'node', 'node.pages'); // needed for node_object_prepare()
$new_node = (object)array();
$new_node->type = 'briefwechsel';
$new_node->language = '';
$new_node->field_ref_objekt[0][nid] = $nid;
$mo_node = node_load($nid);
$new_node->field_ref_verkauefer[0][uid] = $mo_node->uid;
$new_node->field_ref_kaeufer[0][uid] = $user->uid;
$new_node->name = 'KaufABC';
node_object_prepare($new_node);
node_save($new_node);
$new_nid = $new_node->nid;
drupal_goto( 'node/'.$new_nid , drupal_get_destination() );
die();
}
- Anmelden oder Registrieren um Kommentare zu schreiben
Was funktioniert denn nicht?
am 25.03.2011 - 17:09 Uhr
Was funktioniert denn nicht? Fehlermeldungen, Verhalten, sonst irgendwas? "Funktioniert nicht" ist immer eine wenig hilfreiche Angabe.
Lass mal testweise das
die()
am Ende weg. Und nächstes mal bitte PHP-Tags verwenden, für Syntax-Highlighting.Es wird nicht weitergeleitet,
am 25.03.2011 - 17:29 Uhr
Es wird nicht weitergeleitet, sondern ich komme zur Seite zurück, wo der Aufruf stattfindet (von wo auch der Aufruf geschieht).
<?php
print "Ok, php :-)"
?>
mein hook_menu Eintrag lautet übrigens so:
<?php
$items['contact/%node'] = array(
'title' => 'Node published',
'page callback' => '_plattform_kaufen',
'page arguments' => array(1),
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
?>
und der Node in der Callbackfunktion wird richtig angelegt...
Lass dir doch mal $new_nid
am 25.03.2011 - 17:42 Uhr
Lass dir doch mal $new_nid und drupal_get_destination() direkt ausgeben, z. B. über drupal_set_message(), ob da die Werte passen.
Außerdem ist es sinnlos, dass du in deinem hook_menu ein "page argument" übergibst und deine Callback-Funktion dann keinen Parameter enthält und dir in dieser Funktion $nid nochmal aus arg(1) holst.
danke für den Hinweis. $new_nid und
am 25.03.2011 - 17:59 Uhr
hast recht da. $new_nid und die destination habe ich mir im debugger angeschaut. Da ist alles richtig.
Vielleicht geht er aus dem Callback immer wieder zurück... wenn ich kein "drupal_goto" und auch kein "return drupal_goto" verwende , komme ich auf ne weisse Seite - nämlich auf genau meinen menu-path "contact/813"
Probier doch mal testweise
am 25.03.2011 - 17:58 Uhr
Probier doch mal testweise das drupal_goto ohne die Destination. Also
<?php drupal_goto('node/' . $new_nid); ?>
bzw.<?php drupal_goto("node/$new_nid"); ?>
Habe ich schon probiert. Kam
am 25.03.2011 - 18:01 Uhr
Habe ich schon probiert. Kam da zurück zur Ursprungsseite.
Ausserdem habe ich es mit url() und header seetzen versucht... hmmm auch nicht.
[gelöst]
am 25.03.2011 - 19:02 Uhr
habe den Fehler!
Ich habe den menu path mit einem destination Parameter aufgerufen. Das führte immer zu dem Rückkehrer.
Danke und Gruß
Dann schreibe doch bitte noch
am 25.03.2011 - 19:18 Uhr
Dann schreibe doch bitte noch "[gelöst]" vor den Titel im ersten Post.