Im Feld für das Kommentarformular (Kernkommentarmodul) möchte ich den Namen des Kommentarautors leer lassen, um die Kommentatoren zu ermutigen, originelle Epitheta zu erstellen.
Was ist der einfachste Weg, dies zu tun?
Im Feld für das Kommentarformular (Kernkommentarmodul) möchte ich den Namen des Kommentarautors leer lassen, um die Kommentatoren zu ermutigen, originelle Epitheta zu erstellen.
Was ist der einfachste Weg, dies zu tun?
Antworten:
Ich sehe einige Möglichkeiten, wie dies getan werden könnte:
Ich würde mich wahrscheinlich für Option 1 entscheiden, da dies eine größere Flexibilität bei der Änderung der Formulare bietet, um sie in Zukunft an andere Anforderungen anzupassen
hook_form_alter()
http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_form_alter/7
Ermöglicht das Einhängen und Ändern eines Formulars, einschließlich des Festlegens des Standardtexts auf leer. Hier ist eine weitere Hilfe zu den gültigen Elementen:
http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html
Der beste Weg, um zu beginnen, besteht darin, die Formular-ID zu ermitteln, indem Sie eine mymodule_form_alter()
Funktion erstellen und die $form_id
Verwendung print
so ausdrucken, dass sie oben auf der Seite angezeigt wird. (Oder noch besser, verwenden Sie das Entwicklungsmodul, um es in einer Drupal-Statusmeldung auszudrucken.) Sobald Sie die Formular-ID kennen, können Sie eine hinzufügen if
, um sicherzustellen, dass Sie nur auf dieses Formular reagieren, und dann das Array ändern, um den nicht gewünschten Standardwert zu entfernen.
Schauen Sie sich so ziemlich jedes Modul für eine Beispielimplementierung an. Viele Module verwenden diesen Haken. Ich kann mir kein konkretes Beispiel vorstellen, aber es gibt jede Menge.
EDIT: Hier ist ein guter Lullabot-Blog-Beitrag zu diesem Thema ... es gibt in dieser Hinsicht keinen großen Unterschied zwischen Drupal 6 und Drupal 7, AFAIK: http://www.lullabot.com/articles/modifying-forms-drupal-5- und-6
hook_form_FORM_ID_alter()
, das vor jeder hook_form_alter()
Implementierung aufgerufen wird und den Wert eines an die Hook-Funktion übergebenen Parameters nicht überprüfen muss.
Nur ein Hinweis für diejenigen, die sich für ein benutzerdefiniertes Modul entscheiden, aber ohne ersichtlichen Grund Anonym im Eingabefeld Name erhalten , und ihr hook_form_alter
(oder hook_form_comment_form_alter
) ist in Ordnung.
Stellen Sie sicher, dass Sie das comment_info_name
Cookie entfernen , mit dem das comment
Modul Javascript den zuvor verwendeten Namen speichert. Ich habe einige Zeit gebraucht, um herauszufinden ...
Hier wird alles an einem Ort behandelt: http://jan.tomka.name/blog/how-remove-anonymous-name-comment-form
Dies ist die Art von einfacher Optimierung, die ich mit JavaScript vornehmen würde.
$(document).ready(function() {
var editbox = $('#edit-name');
if (editbox.val() == 'Anonymous' {
editbox.val('');
}
});
Pop das irgendwo in Ihrem Thema und das Namensfeld wird gelöscht, wenn die Seite geladen wird.
Anonymous
JavaScript deaktiviert ist, unter die Kategorie der anmutigen Verschlechterung fällt. Die Frage war "Was ist der einfachste Weg, es zu tun?" und ich denke, das Hinzufügen einiger Zeilen JavaScript zu einer Vorlage ist einfacher als das Schreiben eines Moduls.