Sie können dies mit hook_form_alter()
oder hook_form_FORM_ID_alter()
in Ihrem benutzerdefinierten Modul oder auch in der Datei template.php Ihres Themas tun .
function YOURMODULE_form_alter(&$form, &$form_state, $form_id) {
// Check the form_id
if ($form_id == 'YOUR_FORM_ID') {
// To hide the label
$form['your_form_element']['#title_display'] = 'invisible';
// To alter the label
$form['your_form_element']['#title'] = t('Your new title');
}
}
Wenn Sie hook_form_FORM_ID_alter()
stattdessen verwenden, müssen Sie die form_id nicht überprüfen.
Sie können weitere Informationen über die finden Formular - API - Referenz für die #title
und #title_display
Attribute, und auch alle anderen Formularelemente und deren Attribute.
Bei der Feldsammlung kann dies etwas kompliziert sein. Unten ist ein Beispielcode:
function YOURMODULE_form_YOUR_FORM_ID_alter(&$form, &$form_state, $form_id) {
$your_field_collection = element_children($form['your_field_collection'][LANGUAGE_NONE];
foreach ($your_field_collection as $key => $value) {
if (is_numeric($value)) {
$form['your_field_collection'][LANGUAGE_NONE][$val]['your_field_collection_field']['#title'] = t('Your new title');
$form['your_field_collection'][LANGUAGE_NONE][$val]['your_field_collection_field']['#title_display'] = 'invisible';
}
}
}
Erläuterung des obigen Codes:
Zuerst habe ich die Feldsammlung selbst einer Variablen zugewiesen, um sie ein bisschen lesbar zu machen. Ich habe es der LANGUAGE_NONE
Einfachheit halber verwendet, aber es wäre besser, es zu verwenden $form['your_field_collection']['#language']
. Zugegeben, es macht das Lesen des gesamten Codes komplizierter.
Zweitens habe ich a verwendet foreach
, da wir die meiste Zeit eine Feldsammlung verwenden, wenn wir mehrere Werte einer Feldsammlung haben möchten. Die foreach
Schleife würde sich also um alle Instanzen der Feldsammlung kümmern.
Der dritte Hack ist ein schmutziger Trick, den ich von jemandem auf Drupal.org gelernt habe. Vielleicht gibt es einen besseren Ansatz, aber er funktioniert einfach, also habe ich mich nicht damit beschäftigt. Ich überprüfe, ob das $value
numerisch ist, um alle anderen Metaattribute auszuschließen und nur die Elemente zu durchlaufen.
Dann ändere ich schließlich in jedem Element das Feld in der Feldsammlung.
Das wird dir helfen.
quelle
Das Modul field_display_label löst dieses Problem, indem es eine separate Anzeigebeschriftung hinzufügt.
Auf diese Weise wird die ursprüngliche Feldbezeichnung ausschließlich auf dem Erstellungs- / Bearbeitungsformular angezeigt, während die Anzeigebezeichnung (falls festgelegt) ausschließlich auf der Ansichtsseite angezeigt wird. Wenn Sie also die ursprüngliche Feldbezeichnung auf nichts setzen, können Sie die Bezeichnung nur im Erstellungs- / Bearbeitungsformular entfernen.
quelle
Mit hook_form_FORM_ID_alter (), das versucht, auf das Knotenbearbeitungsformular zu reagieren, hat dies für mich funktioniert:
(Ersetzen Sie Ihre Werte durch Werte in ALL CAPS.)
quelle