Komme nicht weiter: Formular-Element Theming für Radio-Buttons
am 03.03.2014 - 07:57 Uhr in
Hallo zusammen,
ich versuche gerade Folgendes:
In meinem Modul gibt es ein Auswahlformular mit dem der Benutzer eine bestimmte Farbe auswählen können soll.
Nun dachte ich mir, ich wrappe jeden Radio-Button einfach mit einer Tabellenzelle die eine bestimmte Background-Farbe
hat, also z.B. "gelb, grün, blau, ..." (#ffff00, #00ff00, #0000ff).
Ich habe es hiermit versucht:
<?php
$colours = array(
'red',
'green',
'blue',
...
);
...
function colour_theme() {
return array(
'colour_radios' => array(
'arguments' => array('element' => NULL),
),
);
}
function colour_form($form, &$form_state) {
global $colours;
...
$form['favouritecolour'] = array(
'#type' => 'radios',
'#title' => t('Lieblingsfarbe'),
'#options' => $colours,
'#theme' => 'colour_radios',
);
}
?>
Jetzt bekomme ich zwar im Formular alle Radios angezeigt, aber ich kann sie nicht formatieren.
In der .module-Datei habe ich am Ende diese Funktion zur Theme-Formatierung angegeben:
<?php
function theme_colour_radios($element) {
$keys = array_keys($element['#options']);
$type = $element[$keys[0]]['#type'];
foreach ($keys as $key) {
$output .= '<td style="background: '.$key.'">';
$output .= theme('colour_radios', $element[$key]);
$output .= '</td>';
}
return $output;
}
?>
Es scheint aber keinen Unterschied zu machen, on die Funktion in der .module-Datei steht oder nicht.
Kann mir da bitte jemand einen Tipp geben, wie ich die einzelnen Radios in eine Tabellenzelle bekomme,
wie oben beschrieben?
Vielen Dank!
Liebe Grüße
Soezkan
- Anmelden oder Registrieren um Kommentare zu schreiben
Wenn Du debuggst, greiftb der
am 07.03.2014 - 12:27 Uhr
Wenn Du debuggst, greiftb der dann auf die Funktione theme_colour_radios zu?
Ich habe die ganze Sache auch
am 14.03.2014 - 07:24 Uhr
Ich habe die ganze Sache auch im englischen Drupal-Forum gepostet und dort diese Lösung erhalten:
https://drupal.org/node/2208171
Danke.
Liebe Grüße
Soezkan