Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Drupal 7 Hooks & Theming

Eingetragen von Xeto (209)
am 15.05.2011 - 20:39 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Bei meiner Einarbeitung in Drupal 7 bin ich nun bei den Hooks angelangt... Teilweise funktioniert das wie gewünscht (z.B. hook_form, welcher alle Formulare anspricht), aber dann versuche ich nur die Editierseite von Nodes (z.B. Blogeintrag oder einer Seite) anzusprechen. Dabei soll nicht die oder alle Seiten angesprochen werden, sondern expliziert nur die Editieren-Seite des Nodetyps... Ich habe einige Varianten probiert, jedoch kam ich hier zu keinem Erfolg (innerhalb der template.php, "print_r($content)" als Testausgabe...).

Hat hier jemand ein Tipp?

Als zweiten Punkt habe ich noch ein Beispiel aus dem Theming:
hide($content['comments']['comment_form']['comment_body']['und']['0']['format']);
"hide" habe ich bereits zum späteren Ausgeben innerhalb der node.tpl.php verwendet, was funktioniert hat. Nun habe ich obiges Beispiel gefunden und Frage mich, wie man auf die Verkettung im Array kommt? Besonders der letztere Teil "['comment_body']['und']['0']['format']" sieht etwas "wirr" aus. Das es sich dabei um class/ id-Attribute handeln müsste, denke ich mir, aber wie komme ich anhand des HTML-Aufbaus zum passenden Array? Welche Logik ist dahinter, damit ich das nicht wir suche und finde, sondern vielleicht auch verstehe ;)

‹ Seitenwechsel Ladezeit überbrücken Bekomme ständig weiße Seiten im Browser ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn Du in die Internas

Eingetragen von wla (9461)
am 15.05.2011 - 21:57 Uhr

Wenn Du in die Internas einsteigen willst, kann ich Dir das Buch "Pro Drupal 7 Development" empfehlen. Amazon hat das gerade günstig (nur noch 25,95 €).

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hooks

Eingetragen von stBorchert (6003)
am 16.05.2011 - 06:59 Uhr

Hallo.
Ergänzend zu dem Buchtipp von Werner ...

Xeto schrieb

...hook_form...

Ich gehe mal davon aus, dass Du [api:hook_form_alter:7] meinst.

Xeto schrieb

Dabei soll nicht die oder alle Seiten angesprochen werden, sondern expliziert nur die Editieren-Seite des Nodetyps... Ich habe einige Varianten probiert, jedoch kam ich hier zu keinem Erfolg (innerhalb der template.php, "print_r($content)" als Testausgabe...).
Hat hier jemand ein Tipp?

In [api:hook_form_alter:7] bekommst Du als Parameter auch die ID des gerade behandelten Formulars übergeben. Mit dieser Information kannst Du dann auf ein einzelnes Formular reagieren.
Alternativ stehen dafür auch [api:hook_form_FORM_ID_alter:7] und [api:hook_form_BASE_FORM_ID_alter:7] zur Verfügung.

Xeto schrieb

... und Frage mich, wie man auf die Verkettung im Array kommt?

Installiere Dir mal das Modul [do:devel Devel]. Mit der dadurch bereitgestellten Funktion dsm() kannst Du Dir den Inhalt und die Struktur von Variablen anschauen.
In diesem Fall kommt die Struktur so zustande:
* 'comments' -> alle Einstellungen und Daten bzgl. der im Inhalt enthaltenen Kommentare
* 'comment_form' -> Einstellungen und Daten des Formulars zum Erstellen eines neuen Kommentars
* 'comment_body' -> Einstellungen und Daten des Feldes für den Kommentartext
* 'und' -> die Sprache, für die der Kommentar erfasst werden soll (in diesem Fall undefined)
* '0' -> Index des Feldes (es is möglich, mehrere Instanzen eines Feldes im gleichen Formular zu haben; hier ist es die 1. Instanz)
* 'format' -> Einstellungen zur Formatierung / zum verwendeten Filter für das Feld

Xeto schrieb

aber wie komme ich anhand des HTML-Aufbaus zum passenden Array?

Diese Richtung ist eigentlich nicht wirklich sinnvoll. Natürlich sind die HTML-Ausgabe und die Struktur irgendwie miteinander verknüpft, und bei einer Standardinstallation lässt sich aus Erfahrung auf die Struktur schliessen, jedoch kann durch ein einfaches Theme-Override die komplette Ausgabe geändert werden, so dass man überhaupt nicht mehr auf die Datenstruktur schliessen kann.
Besser ist der Weg über [do:devel Devel]. So siehst Du die reine Datenstruktur.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Werner, nach Büchern

Eingetragen von Xeto (209)
am 16.05.2011 - 07:57 Uhr

Hallo Werner,

nach Büchern habe ich schon geschaut, aber hier suche ich eher nach deutschen Werken. Da wird es aber wohl noch nicht viel in der Richtung geben...
Englische Doku steht ja im Internet bereits vieles bereit, aber manchmal ist es gut ein Thema auf deutsch zu lesen, um es besser oder schneller zu verstehen.

Ich muss ja nicht allzu tief einsteigen, sondern müsste "nur" mal grob verstehen, wie ich auf die entsprechenden Arrays komme und wie ich diese dann für mich nutze ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Stefan, danke für deine

Eingetragen von Xeto (209)
am 16.05.2011 - 08:22 Uhr

Hi Stefan,

danke für deine Antwort! Hatte ich nicht gesehen als ich gepostet habe... Das sind schon sehr hilfreiche Informationen dabei und ich werde mir das mal näher anschauen.

Hook_form_alter hatte ich probiert, scheint aber nicht gezogen zu haben auf meiner template.php heraus. Müsste hook_form gewesen sein, welcher zumindest bei jedem Formular (Suchfeld-Block und Editierseite) gezogen hat.

Die Ausschlüsselung des Kommentar-Beispiels war auch schonmal gut, die Frage ist, wie ich das z.B. für Nodes nachvollziehen kann. Gibt es hier eine Übersichtsseite, welche nach diesem Schema die Datenstruktur aufzeigt?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Devel

Eingetragen von stBorchert (6003)
am 16.05.2011 - 08:31 Uhr
Xeto schrieb

die Frage ist, wie ich das z.B. für Nodes nachvollziehen kann. Gibt es hier eine Übersichtsseite, welche nach diesem Schema die Datenstruktur aufzeigt?

Wie ich bereits schrieb: [do:devel Devel] und die darin definierte Funktion dsm(). Damit bekommst Du die komplette Struktur einer Variablen.
Wenn Du alle verfügbaren Variablen eines Templates haben möchtest, hilft <?php dsm(get_defined_vars()) ?>.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Devel Modul schau ich mir

Eingetragen von Xeto (209)
am 16.05.2011 - 08:45 Uhr

Devel Modul schau ich mir natürlich an. Dachte es gibt wie deine beispielhafte Erklärung/ Auflistung vielleicht auch eine mir bisher verborgen gebliebene Hilfeseite. Ansonsten sollte mir Devel natürlich auch schon weiterhelfen ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • canadian pharmacy lotrisone cream used for cellulitis
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 7 Wochen 1 Tag
  • Hey danke
    vor 7 Wochen 2 Tagen
  • Update: jetzt gibt's ein
    vor 7 Wochen 3 Tagen
  • Hallo, im Prinzip habe ich
    vor 8 Wochen 19 Stunden
  • Da scheint die Terminologie
    vor 8 Wochen 23 Stunden
  • Kannst doch auch alles direkt
    vor 8 Wochen 5 Tagen
  • In der entsprechenden View
    vor 8 Wochen 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 8 Wochen 5 Tagen
  • gelöst
    vor 11 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 11 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250234
Registrierte User: 20461

Neue User:

  • WugPiola
  • marouane.blel
  • capilclinic

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 11 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association