[Gelöst] Problem mit Modul-Einstellungsseite
Eingetragen von drubb (579)
am 09.01.2011 - 11:24 Uhr in
am 09.01.2011 - 11:24 Uhr in
Viele Augen sehen hoffentlich mehr als zwei! Ich hänge gerade an einem eigentlich ganz simplen Problem fest:
Ich benötige für ein Modul eine Einstellungsseite im Admin-Bereich. Kein Thema, sollte eigentlich so gehen:
/**
* Implementation of hook_menu().
*/
function radio_settings_menu() {
$items = array();
$items[] = array(
'path' => 'admin/settings/radio',
'title' => 'Radio Package',
'description' => 'Einstellungen der Radio Anwendungen',
'page callback' => 'drupal_get_form',
'page arguments' => array('radio_settings_createform'),
'access callback' => 'radio_api_user_is_admin',
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
/**
* Create settings page
*/
function radio_settings_createform() {
$form = array();
$form['radio_settings_stream_low'] = array(
'#type' => 'textfield',
'#title' => 'Link zum Livestream (Mono)',
'#default_value' => variable_get('radio_settings_stream_low', 'http://'),
'#size' => 60,
'#maxlength' => 60,
'#description' => 'Adresse des Livestreams in geringer Qualität (Mono)',
);
$form['radio_settings_stream_high'] = array(
'#type' => 'textfield',
'#title' => 'Link zum Livestream (Stereo)',
'#default_value' => variable_get('radio_settings_stream_high', 'http://'),
'#size' => 60,
'#maxlength' => 60,
'#description' => 'Adresse des Livestreams in hoher Qualität (Stereo)',
);
return system_settings_form($form);
}
Der Access Callback ist einfach eine Funktion, die TRUE oder FALSE zurückgibt, das tut auch. Aber: die eigentliche Seite wird nicht erzeugt. Der Link erscheint zwar im Admin-Bereich, wenn man ihn anklickt erscheint oben auch die richtige URL (admin/settings/radio), aber leider nicht das Formular. Stattdessen bleibt einfach die Übersichtsseite stehen (admin/settings).
Soweit ich das mit Devel verfolgen konnte, wird der Page Callback über drupal_get_form nicht ausgelöst. Aber warum? Irgendwo muss ein kleiner Bug versteckt sein...
Danke und Gruß,
Boris
- Anmelden oder Registrieren um Kommentare zu schreiben
hook_menu
am 09.01.2011 - 13:04 Uhr
Hallo.
$items[] = array(
'path' => 'admin/settings/radio',
Da Du für Drupal 6 entwickelst, kann dies nicht funktionieren. Das ist Syntax von Drupal 5.
Korrekt ist dieses Code-Fragment hier:
$items['admin/settings/radio'] = array(
'title' => '...',
// ...
);
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
jep, das war's
am 09.01.2011 - 13:19 Uhr
Aber manchmal kann man noch so lang drauf starren...
Vielen Dank!
Gruß,
Boris