D5 Snippet, um collapsible fieldsets eigene classes zu geben
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich werf das jetzt mal hier so rein, weil ich das total genial fand. der folgende code gibt collapsible fieldsets (zumindest auf den node/edit forms) eigene css classes. in diesem fall nennt er die class "unsichtbarfieldsetname" und fieldsetname wird halt dann selbst angepasst. hach ich kann's nicht recht erklären, aber so kann man das aussehen pro fieldset mit css anpassen oder einzelne fieldsets ausblenden. ich brauch das zum ausblenden von Organic Groups fieldsets, weil die user nicht selbst die groups wählen, sondern die schon vorgegeben sind (per prepopulate vorausgewählt). wenn man das fieldset per formfilter ausblenden täte, würde der wert spätestens beim bearbeiten einer solchen node wieder verloren gehen. wenn das fieldset aber per display:none weggeblendet ist, bleibt der wert erhalten. genug bla, jetzt mal der code, falls das auch jemand brauchen kann:
<?php function euerthemename_fieldset($element) {
if ($element['#collapsible']) {
drupal_add_js('misc/collapse.js');
if (!isset($element['#attributes']['class'])) {
$element['#attributes']['class'] = '';
}
$element['#attributes']['class'] .= ' collapsible';
if ($element['#collapsed']) {
$element['#attributes']['class'] .= ' collapsed';
}
}
# custom fieldset CSS class from element #title
$css_class = "unsichtbar";
$css_class .= str_replace(" ","-",strtolower($element['#title']));
# using transliteration module to convert non-ASCII character where available
if(module_exists('transliteration')){
# including Transliteration functions
require_once(drupal_get_path('module', 'transliteration') .'/transliteration.inc');
$css_class = transliteration_clean_filename($css_class);
}
$element['#attributes']['class'] .= (!empty($element['#attributes']['class']) ? " " : "") . $css_class;
return '<fieldset' . drupal_attributes($element['#attributes']) .'>' . ($element['#title'] ? '<legend>'. $element['#title'] .'</legend>' : '') . ($element['#description'] ? '<div class="description">'. $element['#description'] .'</div>' : '') . $element['#children'] . $element['#value'] . "</fieldset>\n";
}
?>
Ich melde mich freiwillig :-) Kannst du das Modul schon mal hochladen, dann mach ich den Rest?
Code Filter ist installiert - du kannst reinhauen.
- Anmelden oder Registrieren um Kommentare zu schreiben
Um die Lesbarkeit zu verbessern, brauchen wir ja den Code Filter, damit das schön Syntaxgehighlighted wird. Wer meldet sich freiwillig, das Ding zum Laufen zu bekommen. Hatte es einmal (glaub ich noch in D5) probiert, aber das klappte nicht.
http://drupalmodules.com/module/code-filter