[gelöst] Form themen - wo ist der Fehler?
Eingetragen von matthiasv (16)
am 16.07.2010 - 21:07 Uhr in
am 16.07.2010 - 21:07 Uhr in
Hallo allerseits,
ich zerbreche mir schon den ganzen Tag den Kopf darüber, wieso meine Form nicht "gethemet" wird.
Dabei habe ich so ziemlich das ganze Web durchsucht und folgende vermeintliche Lösung zusammenbekommen:
Also ich ab habe ein Modul namens "mannschaft".
mannschaft.module beinhaltet
das hook_form:
<?php
function mannschaft_form(&$node) {
$type = node_get_types('type', $node);
if ($type->has_title) {
$form['title'] = array(
'#type' => 'textfield',
'#title' => 'Name',
'#required' => TRUE,
'#default_value' => isset($node->title) ? $node->title : '',
'#description' => t('Name der Mannschaft (z.B. 2. Mannschaft)'),
'#weight' => -5,
);
}
if ($type->has_body) {
$form['body_field'] = node_body_field(
$node,
$type->body_label,
$type->min_word_count
);
}
$form['kurzform'] = array(
'#type' => 'textfield',
'#title' => t('Kurzform'),
'#size' => 50,
'#maxlengh' => 127,
'#description' => t('Kurzform der Mannschaft z.B. "1B"'),
'#default_value' => isset($node->kurzform) ? $node->kurzform : '',
);
$form['trainer'] = array(
'#type' => 'textfield',
'#title' => t('Trainer'),
'#size' => 50,
'#maxlengh' => 127,
'#description' => t('Name des Trainers'),
'#default_value' => isset($node->trainer) ? $node->trainer : '',
);
$form['aufstellung'] = array(
'#type' => 'hidden',
'#value' => 'aufstelluung'
);
return $form;
}
... und das hook_theme:
<?php
function mannschaft_theme() {
return array(
'mannschaft_form' => array(
'arguments' => array('form' => NULL),
'template' => 'edit-form',
),
);
}
Die edit-form.tpl.php liegt im gleichen Verzeichnis:
<?php
// $Id$
?>
<?php print drupal_render($form['trainer']); ?><br />
<?php print drupal_render($form['kurzform']); ?><br />
<?php print drupal_render($form['submit']); ?><br />
<?php print drupal_render($form); ?>
Nun Ja, er zeigt mir beim Editieren und Erstellen einer Node immer noch das Standard-Theme an...
Ich hoffe ihr könnt mir helfen.
LG Matze
- Anmelden oder Registrieren um Kommentare zu schreiben
GELÖST
am 17.07.2010 - 09:09 Uhr
Guten Morgen,
habe die Lösung jetzt selbst gefunden.
Problem war, dass ich beim Registrieren des Themes die $Form_id meines Formulars benutzen musste.
Die lautete mannschaft_node_form. Ich selbst bin immer davon ausgegangen, dass ich den hook mannschaft_form benutzen müsste.
Nun ja, hier meine Lösung:
<?php
function mannschaft_theme() {
return array(
'mannschaft_node_form' => array(
'arguments' => array('form' => NULL),
'template' => 'edit-form',
),
);
}
Darauf bin ich aber nur aus Verzweiflung gekommen, ich habe noch nie gelesen,
dass das die $form_id sein muss. Sowas müsste doch dokumentiert werden.
LG Matze