Es ist ein immer wiederkehrendes Problem...
Man möchte bestimmte Node-Formulare nur im Admin-Theme anzeigen.
Es gibt hier einen ganz simplen Weg über eine Wrapper Funktion auf die per Menu routed wird.
Zunächst muss man eben einen Menu-Eintrag (sei es ein MENU_CALLBACK oder auch ein normaler Eintrag) erstellt werden, der auf eine Prozedur der folgenden Art zeigt.
Der Menu-Eintrag braucht dabei einen Pfad oberhalb von "/admin/".
Dadurch wird das Formular dann automatisch im Admin-Theme gerendered.
/*
* Renders the bs_newsletter node form in admin theme.
* @param integer $nid The node ID. If it is 0, an add-node form will rendered.
* @return string Rendered HTML.
*/
function _bs_newsletter_create ($nid = 0) {
module_load_include('inc', 'node', 'node.pages');
global $user;
$nid = (integer)$nid;
$node = false;
if ($nid != 0) {
$node = node_load (array ('nid'=>$nid));
}
if ($node == false) {
$node = (object)array(
'uid' => $user->uid,
'name' => (isset($user->name) ? $user->name : ''),
'type' => 'bs_newsletter', // Content-Type name.
);
}
node_object_prepare($node);
return drupal_get_form ('bs_newsletter_node_form', $node); // Change the Content-Type name [type]_node_form.
}
Liebe Grüße
Marc Sven Kleinböhl












Kommentar hinzufügen