Wie es heißt - ich habe einen D7-Inhaltstyp, dessen Bearbeitungsformular thematisiert werden muss. Ich habe dies die ganze Zeit in D6 getan, indem ich Themenfunktionen in template.php registriert und die zugehörigen Themenfunktionen geschrieben habe, aber in D7 scheinen sich die Dinge geändert zu haben, insbesondere was die Datei template.php betrifft oder ob D7 auf die Verwendung von .tpl umgestellt hat .php-Dateien dafür oder was auch immer. Gibt es da draußen einen Rat?
7
Antworten:
Laut der Handbuchseite zu Themen-Knotenformularen in Drupal 7 würden Sie tatsächlich Änderungen an den .tpl.php-Vorlagendateien vornehmen.
Wir haben es jedoch normalerweise einfacher gefunden, Field Group und Display Suite zu verwenden . Knotenformularspalten ist eine weitere Option.
quelle
Sie haben zwei Möglichkeiten.
Option 1: Verwenden der template.php Ihres Admin-Themas
(optional), um ein Unterthema zu erstellen. Angenommen, Ihr Admin-Thema ist sieben und wird auch für die Bearbeitung von Inhalten verwendet. Erstellen Sie einfach einen Ordner mit dem Namen my_seven unter sites / all / theme . Fügen Sie als Nächstes eine my_seven.info unter dem neu erstellten Verzeichnis my_seven mit den folgenden Inhalten hinzu
Basisthema = Sieben Name = Meine Sieben Beschreibung = Mein einfaches einspaltiges, tabellenloses Verwaltungsthema mit flüssiger Breite (Kind der Sieben).
Fügen Sie nun eine Datei mit dem Namen template.php unter demselben Ordner mit dem folgenden Inhalt hinzu. Bitte beachten Sie, dass die Formular-ID ausschließlich vom Computernamen Ihres Inhaltstyps abgeleitet ist. Der Name der Vorlage kann jedoch beliebig sein, aber -node-form scheint eine gute Konvention zu sein.
Erstellen Sie jetzt eine Datei <content_type_machinename> -node-form.tpl.php mit den folgenden Inhalten, um zu testen, ob die Dinge funktionieren. Wenn Sie das benutzerdefinierte Formular sehen, ändern Sie einfach die Datei tpl.php nach Herzenslust. Wählen Sie ein anderes benutzerdefiniertes Feld als den Titel aus, um sicherzustellen, dass es einwandfrei funktioniert. Wählen Sie im Idealfall etwas aus, das kein einfaches Textfeld ist. Ein Begriff Referenzfeldtyp wäre ein guter Kandidat, um sicherzustellen, dass Ihr Unterthema einwandfrei funktioniert.
Leeren Sie Ihren Theme-Registrierungs-Cache (eigentlich nicht erforderlich, wenn ein Theme zum ersten Mal verwendet wird, aber tun Sie es trotzdem).
Option 2: Verwenden Sie Ihr eigenes Drupal-Modul, um das Formular anzupassen
Erstellen Sie eine Datei custom_content_forms.info mit dem folgenden Inhalt
Erstellen Sie ein custom_content_forms.module mit dem folgenden Inhalt
Erstellen Sie jetzt eine Datei <content_type_machinename> -node-form.tpl.php mit den folgenden Inhalten, um zu testen, ob die Dinge funktionieren. Wenn Sie das benutzerdefinierte Formular sehen, ändern Sie einfach die Datei tpl.php nach Herzenslust. Wählen Sie ein anderes benutzerdefiniertes Feld als den Titel aus, um sicherzustellen, dass es einwandfrei funktioniert. Wählen Sie im Idealfall etwas aus, das kein einfaches Textfeld ist. Ein Begriff Referenzfeldtyp wäre ein guter Kandidat, um sicherzustellen, dass Ihr Unterthema einwandfrei funktioniert.
HINWEIS: Wenn Sie mit beiden Mechanismen anpassen, zieht Drupal das Thema dem Modul vor.
BEARBEITEN: Die oben genannten werden nur die Felder erzeugen. Das Menü mit den Knoteneinstellungen sowie die Schaltflächen zum Senden und Anzeigen einer Vorschau werden standardmäßig nicht angezeigt. wenn Sie nur eine hinzufügen
auf der Seite (Entwicklungsmodul muss aktiviert sein, damit kpr funktioniert) , um einen Speicherauszug des Arrays $ forms zu erstellen. Sie werden sehen, dass Sie diese Dinge ganz einfach auf Ihre Formularseite bekommen können, indem Sie der tpl.php Folgendes hinzufügen
quelle
<?php print drupal_render($form['field_<my_field1>']); ?>
für ein Feld verwendet, das über die Schaltfläche "Ein weiteres Element hinzufügen" verfügt. Beim Klicken auf die Schaltfläche wurde das neue Feld jedoch nicht angezeigt.drupal_render_children($form);
beim Erstellen desSo ändern Sie Knotenformulare über die Admin-Oberfläche:
Display Suite - http://drupal.org/project/ds
Feldgruppe - http://drupal.org/project/field_group
Renderbare Elemente - http://drupal.org/project/rel
Aktivieren Sie die folgenden Module: Display Suite, Display Suite-Formulare, Display Suite-Extras, Feldgruppe, Renderable Elements
Legen Sie die Einstellungen für renderbare Elemente fest, indem Sie auf der Einstellungsseite unter admin / structure / rel / config das Kontrollkästchen "Formularregistrierung aktivieren" aktivieren.
Gehen Sie nun zum Formular "Felder verwalten" eines Ihrer Inhaltstypen. Klicken Sie oben auf der Seite auf "Formularanzeige verwalten", um das Formular bei Renderable Elements zu registrieren und auszuwählen, welche Felder aktiviert werden sollen. Nach dem Speichern dieses Formulars können Sie die Anzeige ALLER Felder Ihres Inhaltstyps mithilfe der Standard-Benutzeroberfläche der Display Suite verwalten.
Quelle: http://getlevelten.com/blog/ian-whitcomb/drupal-form-layouts-renderable-elements
quelle