Feld-Beschriftung ID zuweisen
am 30.03.2010 - 14:17 Uhr in
Hi Leute,
ich bin seit einigen Wochen dabei eine Kollaborationsplattform von Plone auf Drupal 6 umzustellen. In einem bestimmten Bereich sollen die Nutzer eine Art Handbuch erstellen. Dazu habe ich mit dem CCK einen Inhaltstyp "Handbuch" mit den Feldern Definition, Ziel, Nutzen, Durchführung, Beispiel und Infos erstellt. Jetzt möchte ich jeweils den Feldnamen eine ID zuweisen: dem Feldnamen Ziel die ID ghost1, dem Feldnamen Nutzen die ID ghost2 usw. Hintergrund ist, dass ich über einen Block den Feldern verschiedene JavaScript-Funktionen zuordnen will. Das Block-Element ist soweit fertig und wird dank Pathauto zu jeden neue anglegten "Handbuch-Seite" zugeordnet.
Meine Frage: Wie kann ich den Feldnamen die ID zuweisen? Ich stelle mir vor, dass hinterher im Quelltext soetwas generiert wird, wie
<div class="field field-type-text field-field-ziele">
<div class="field-label" ID="ghost1">Ziele</div>
Ist das irgendwie lösbar? Ich hab schon versucht das Problem mit Views zu lösen, hab da aber nicht ganz durchgeblickt...
- Anmelden oder Registrieren um Kommentare zu schreiben
Label ansprechen
am 30.03.2010 - 14:27 Uhr
Hallo.
Ich meine, das benötigst Du gar nicht.
Die einzelnen Felder haben ja eindeutige IDs. Somit kannst Du mittels jQuery auch das zum Feld gehörende
<label>
selektieren und die JS-Funktionen dranpappen.Es müsste in etwa so funktionieren:
$('#idDesFeldes').parent().find('label').click(function () {
alert("Ich bin ein label!");
});
Falls das nicht funktioniert, kannst Du immer noch die Funktion theme_form_element in Deiner template.php überschreiben und jedem Label eine eindeutige ID zuweisen.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Vielen Dank schon mal. Ich
am 31.03.2010 - 14:06 Uhr
Vielen Dank schon mal.
Ich sehe noch nicht richtig durch. Ich hab schon versucht das Label direkt anzusprechen mit
document.getElementById('field_ziele')
. Das funktioniert aber nicht.theme_form_element scheint schon in die richtige Richtung zu gehen. Nur gibt es in meiner template.php das theme_form_element nicht
Quelle von theme_form_element
am 31.03.2010 - 15:00 Uhr
Klar, "von Natur aus" muss gar nichts in der template.php sein.
theme_form_element findet sich in der drupal/includes/form.inc und Du kannst es in der template.php überschreiben, indem Du es mit mytheme_form_element aufrufst.