Modul-Configuration
Eingetragen von AndyLicht (260)
am 28.02.2015 - 18:02 Uhr in
am 28.02.2015 - 18:02 Uhr in
Hallo Forum,
ich habe meinem Drupal-Modul eine Konfigurationsseite spendiert. Diese funktioniert auch wie sie soll, dennoch hätte ich gerne zwei Optimierungen.
Ich möchte gerne das es ein Elternelement z.B. "Modelle" gibt und auch direkt auf der Konfigurationsseite angezeigt wird. Mein Ziel ist es auf der Konfigurierungsseite einen Bereich/Block ähnlich wie für System oder Development einzurichten, in dem ich dann auch ähnliche Module unterbringen kann.
Folgendes habe ich bereits realisiert:
<?php
function sim_menu()
{
$items = array();
$items['admin/config/modelle/sim'] = array(
'title' => 'Sim',
'description' => 'Modulkonfiguration',
'page callback' => 'drupal_get_form',
'page arguments' => array('sim_configure'),
'access arguments' => array('administer sim settings'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
//Elemente der Administratoroberfläche
function sim_configure()
{
$form = array();
$form['zahl'] = array(
'#type' => 'textfield',
'#title' => t('Startzahl'),
'#default_value' => variable_get('sim_startzahl', '100000'),
'#size' => 6,
'#maxlength' => 6,
'#description' => t("Startzahl"),
'#required' => TRUE,
);
return system_settings_form($form);
}
?>
Mein zweiter Wunsch ist, dass ich das Formular noch in "tabs" untergliedere.
mit freundlichem Gruß und besten Dank für eure Hilfe
Andy
- Anmelden oder Registrieren um Kommentare zu schreiben
Admin Block
am 01.03.2015 - 15:29 Uhr
Moin.
Schau Dir mal [api:system_menu:7] an, da sind ein paar schöne Beispiele für die System-Blöcke enthalten. Als page callback nimmst Du für das zusätzliche menu-item dann [api:system_admin_menu_block_page:7].
Für die Tabs schau Dir mal an, wie das bei "admin/appearance/list" und "admin/appearance/settings" gemacht wird.
Stichwort MENU_DEFAULT_LOCAL_TASK und MENU_LOCAL_TASK
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Vielen Dank
am 08.03.2015 - 12:07 Uhr
Hi, vielen Dank, den ersten Part habe ich nach deiner Anleitung/Hinweisen geschafft (wenn auch noch mit einem oder zwei Bugs):
<?php
function sim_menu()
{
$items = array();
$items['admin/config/simulationsmodelle'] = array(
'title' => 'Simulationsmodelle',
'description' => 'Simulationsmodelle',
'position' => 'right',
'weight' => -10,
//'page callback' => 'system_admin_menu_block_page',
'access arguments' => array('access administration pages'),
);
$items['admin/config/simulationsmodelle/sim1'] = array(
'title' => 'Modell 1',
'description' => 'Systemeinstellungen zum ersten Modell',
'page callback' => 'drupal_get_form',
'page arguments' => array('sim1_configure'),
'access arguments' => array('administer site configuration'),
'weight' => -10,
);
return $items;
}
//Elemente der Administratoroberfläche
function sim1_configure()
{
$form = array();
$form['zahl'] = array(
'#type' => 'textfield',
'#title' => t('Startzahl'),
'#default_value' => variable_get('sim_startzahl', '100000'),
'#size' => 6,
'#maxlength' => 6,
'#description' => t("Startzahl"),
'#required' => TRUE,
);
return system_settings_form($form);
}
?>
Jetzt gelingt es mir leider nicht in der Funktion sim1_configure eine Tab-Struktur aufzubauen, die Startzahl ist nur eine von vielen Parametern, die ich aber gerne sortiert aufrufen möchte. Ein weiterer "Bug" ist, wenn ich über das administration-Toolbar-Menü den Menü-Oberpunkt Simulation aufrufe, bekomme ich eine leere Seite.
Vielleicht kann mir nochmal jemand sagen, wonach ich schauen muss.
Vielen Dank und einen schönen Sonntag wünschend
Andy
hier meine Variante, die leider nicht funktioniert, um eine Tab-Struktur aufzubauen:
<?php
function sim_configure()
{
$tabs = array();
$tabs['admin/config/simulationsmodelle/sim1/p1'] = array(
'title' => t('Part 1'),
'description' => t('Settings for the first simulation-status'),
'page arguments' => array('sim_configure_p1'),
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => 0,
);
$tabs['admin/config/simulationsmodelle/sim1/p2'] = array(
'title' => t('Part 2'),
'description' => t('Settings for the second status'),
'page arguments' => array('sim_configure_p2'),
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => 1,
);
return system_settings_form($tabs);
}
//Elemente der Administratoroberfläche
function sim_configure_p1()
{
$form = array();
$form['zahl'] = array(
'#type' => 'textfield',
'#title' => t('Anzahl'),
'#default_value' => variable_get('sim_p1_anzahl', '100000'),
'#size' => 6,
'#maxlength' => 6,
'#description' => t("Ausgangswert"),
'#required' => TRUE,
);
$form['schwelle'] = array(
'#type' => 'textfield',
'#title' => t('schwelle'),
'#default_value' => variable_get('sim_p1_schwelle', '1145'),
'#size' => 4,
'#maxlength' => 4,
'#description' => t("Schwelle ab P1 zu P2 werden kann"),
'#required' => TRUE,
);
return system_settings_form($form);
}
function sim_configure_p2()
{
$form = array();
$form['beginn'] = array(
'#type' => 'textfield',
'#title' => t('Summe, aber der die P1 beginnt'),
'#default_value' => variable_get('sim_p2_beginn', '130'),
'#size' => 6,
'#maxlength' => 6,
'#description' => t("Summe ab der der zweite Schritt eingeleitet wird"),
'#required' => TRUE,
);
$form['ende'] = array(
'#type' => 'textfield',
'#title' => t('summe, P1 zu 100% beendet ist'),
'#default_value' => variable_get('sim_p2_ende', '190'),
'#size' => 6,
'#maxlength' => 6,
'#description' => t("Summe ab der der erste Schritt vollkommen beendet ist"),
'#required' => TRUE,
);
return system_settings_form($form);
}
?>
Aller Anfang ist schwer...