template.php: Frage zum Umgang beim "Ersetzen" einer function
am 24.09.2008 - 10:01 Uhr in
Hallo,
ich bin, danke der Hilfe einiger Mitglieder hier, auf den Hintergrund der template.php gekommen.
Ich nutze diese nun zur weiteren Anpassung bestimmter Core Dateien, ohne diese direkt verändern zu müssen, sondern lediglich die gewünschte, geänderte Passage in die template.php zu schreiben.
Diesbezüglich hätte ich allerdings noch kurz eine Frage.
zB handelt es sich um folgende Function aus der form.inc:
function theme_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';
}
}
return '<fieldset' . drupal_attributes($element['#attributes']) .'>' . ($element['#title'] ? '<div class="user-edit-head"><h3 class="user-edit-table">'. $element['#title'] .'</h3></div>' : '') . ($element['#description'] ? '<div class="description">'. $element['#description'] .'</div>' : '') . $element['#children'] . $element['#value'] . "</fieldset>\n";
}Die Anpassung betrifft lediglich den return Befehl, genauer gesagt sollen hier andere/weitere HTML Tags eingefügt werden.
Muss nun in der template.php die komplette function eingefügt werden, oder würde folgendes reichen:
function xxxxx_fieldset($element) {
return '<fieldset' . drupal_attributes($element['#attributes']) .'>' . ($element['#title'] ? '<div class="user-edit-head"><h3 class="user-edit-table">'. $element['#title'] .'</h3></div>' : '') . ($element['#description'] ? '<div class="description">'. $element['#description'] .'</div>' : '') . $element['#children'] . $element['#value'] . "</fieldset>\n";
}Wird dann der restliche Code aus der form.inc genommen und auch trotzdem berücksichtigt?
Vielleicht eine dumme Frage :) Aber würde mich über eine Antwort eines Wissenden freuen.
Grüße und Danke!
Florian
- Anmelden oder Registrieren um Kommentare zu schreiben

Nein, der restliche Code
am 24.09.2008 - 10:27 Uhr
Nein, der restliche Code wird nicht genommen.
Deine Funktion ersetzt die Funktion auf form.inc
Du musst also für dein Ziel den Code kopieren und um deinen Code ergänzen.
hallo, danke für deine
am 24.09.2008 - 10:42 Uhr
hallo,
danke für deine antwort.
bedeutet die komplette function kommt in die template.php und ich ergänze dann einfach meine sache, richtig? also sowas und und dann meine editierung?
function theme_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';
}
}
return '<fieldset' . drupal_attributes($element['#attributes']) .'>' . ($element['#title'] ? '<div class="user-edit-head"><h3 class="user-edit-table">'. $element['#title'] .'</h3></div>' : '') . ($element['#description'] ? '<div class="description">'. $element['#description'] .'</div>' : '') . $element['#children'] . $element['#value'] . "</fieldset>\n";
}