Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Bin ich zu blöd für die Hooks?

Eingetragen von Anna Bolika (26)
am 31.01.2011 - 16:26 Uhr in
  • Modul-Entwicklung

In ferner Zukunft habe ich einmal vor, einen speziellen Parser vor die Ausgabe eines Artikels zu setzen.

Ich habe jetzt erst mal ein Test-Modul erstellt und gefühlte 1000 Hooks ausprobiert. Nie ist etwas passiert. Hier sind meine ersten Gehversuche und meine anna.module sieht so aus:

echo "Hallo";
function anna_view($a, $b, $c, $d, $e, $f) {
echo "JETZT PASSIERT WAS=============================================";
}
echo "Tschüs";

"Hallo" und "Tschüs" erscheint, also ist das Modul wohl schon mal korrekt eingebunden. Wie man sieht, fange ich auch erst mal bescheiden an, was die Komplexität meiner Funktion betrifft :-)

Welchen Hook auch immer ich bisher ausprobiert habe, nie wurde diese Funktion ausgeführt. Hab ich irgendwas falsch verstanden?

Falls jemand fragt: Dies ist die anna.info, aber daran kanns ja eigentlich nicht liegen:

; $Id: views.info,v 1.7.6.60 2011/01/05 21:34:52 dereine Exp $
name = Anna
description = Viel blabla
package = AnnaPackage
core = 7.x
php = 5.2
files[] = anna.module

; Information added by drupal.org packaging script on 2011-01-06
version = "0.1alpha"
core = "7.x"
project = "AnnaProject"
datestamp = "1294276880"

Bin ratlos.

‹ Hook_install überwachen Formularbeschreibung nach fehlgeschlagener Validierung ausblenden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du solltest Dir dazu auf

Eingetragen von wla (9463)
am 31.01.2011 - 17:05 Uhr

Du solltest Dir dazu auf jeden Fall die entsprechende Dokumentation auf Drupal.org ansehen. Die Hooks haben schließlich ganz spezielle Bdeutung und werden nur in ihrem Context aufgerufen. Hook_view wird z.B. nur von Node-Modulen (also Modulen, die selbst Node-Typen definieren) genutzt und von Drupal aufgerufen, wenn dieser Node-Typ dargestellt werden soll.
Fang mal mit dem hook_menu an. Da kannst Du einen URL definieren, bei dem dann eine von Dir angegebene Funktion aufgerufen wird. Das ist doch schon mal ein Einstieg. Die Dokumentation dazu findest Du hier.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Was hast du denn genau vor -

Eingetragen von SteffenR@drupal.org (2262)
am 31.01.2011 - 17:08 Uhr

Was hast du denn genau vor - dies kann man deinem Quellcode so leider nicht entnehmen..

Um auf die Ausgabe eines Nodes in Drupal 6 Einfluss zu nehmen, kannst du den hook_nodeapi nutzen. Diesen würdest du dann über

<?php
function hook_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  switch (
$op) {
    case
'view':
      echo
"Node wird angezeigt";
      break;
  }
)
?>

Weitere Infos zur Funktionsweise der Hooks findest du auf den entsprechenden Seiten der drupal.org API Dokumentation.

In Drupal 7 würdest du zum Beeinflussen der Ausgabe eines Nodes den hook_node_view_alter verwenden.

SteffenR

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank für eure

Eingetragen von Anna Bolika (26)
am 31.01.2011 - 18:06 Uhr

Vielen Dank für eure Antworten.

Die Dokus auf Drupal.org studiere ich seit Tagen. Ist nicht ganz einfach, denn einige versickern schon irgendwo zwischen Drupal 4+5, andere zwischen 5+6. Ich fange ja nun mit 7 an.

Meine Intension mit dem obenstehenden Skript ist sehr einfach. Ich will einfach nur, dass etwas passiert. Mein Ziel ist es noch gar nicht, etwas umzusetzen. Ich möchte überhaupt erst mal ein Modul zum Laufen bringen und mit ein wenig rumprobieren den Hook finden, den ich brauche. Das ist schon alles.

Heute mittag hatte ich so ziemlich alle Hooks, die vermuten ließen, mit dem Seitenaufbau zusammenzuhängen, ausprobiert. Leider erschien überhaupt nichts, was mich echt etwas frustriert hat.

Für eins der ersten Projekte, die ich nach Drupal überführen möchte, ist es nötig, ein preg_replace() vor die Ausgabe eines Artikels zu setzen. Das klang für mich erst mal relativ einfach und darum wollte ich damit erst experimentieren und mich mit dem Handling der Drupal-Module auseinanderzusetzen. Nachdem das nicht funktioniert hat, habe ich erst mal nur einen echo-Befehl verwendet, um zu sehen, ob überhaupt etwas passiert.

Ich steht halt einfach vor einem Berg von Strukturen, mit denen ich noch nie zu tun hatte. Im Umgang mit PHP bin ich eigentlich sonst sehr fit.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: und mit ein wenig

Eingetragen von Exterior (2903)
am 31.01.2011 - 18:21 Uhr
Zitat:

und mit ein wenig rumprobieren den Hook finden, den ich brauche.

Hui, ganz falsch, damit kannst du dir auch ganz schnell ganz viel kaputt machen, wenn du nicht weißt, was du tust. Schau dir die Drupal-API an, dort sind alle Hooks gelistet und erklärt. Dort findest du auch, was sie machen und wann sie ausgelöst werden.

Wie Steffen schon gesagt hat, du benötigst wohl den hook_node_view_alter, zumindest für einen Test. Schau dir außerdem mal diese Seite an: http://api.drupal.org/api/drupal/modules--node--node.api.php/group/node_...

Und die echos nimmst du bitte mal raus, die haben dort gar nichts verloren und bringen auch nichts.

Schau dir die API und die entsprechenden Hooks an (siehe Links) und dann wirst du auch merken, welche Hooks du benötigst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke

Eingetragen von Anna Bolika (26)
am 01.02.2011 - 12:53 Uhr
Exterior schrieb

Und die echos nimmst du bitte mal raus, die haben dort gar nichts verloren und bringen auch nichts.

So, vielen Dank. Mein Test war sehr einfach gehalten, weil alle kompexeren Tests mit so ziemlich allen in Frage kommenden Hooks ins Leere liefen. Wahrscheinlich hing das an unterschiedlicher Groß- und Kleinschreibung in .info und .module-Dateien. Das mal als Tipp, wenn jemand verzweifelt, weil nichts passieren will.

Ansonsten vielen Dank für die Hilfe. Ich müsste jetzt klarkommen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • 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
Weiter

Neue Kommentare

  • Arrrrg. Nix Tabelle :-D /*
    vor 2 Tagen 23 Stunden
  • Textboxen mit Tabelle
    vor 3 Tagen 5 Stunden
  • Du sollst ja auch keine
    vor 3 Tagen 5 Stunden
  • Theme
    vor 3 Tagen 6 Stunden
  • Welches Theme benutzt du
    vor 3 Tagen 12 Stunden
  • Mit Responsive Raster hatte
    vor 4 Tagen 2 Stunden
  • Hallo Alex,um das Häkchen
    vor 4 Tagen 10 Stunden
  • Modul view_unpublished
    vor 5 Tagen 14 Stunden
  • Modul "override node options"
    vor 6 Tagen 8 Stunden
  • Im Grunde ist dass ein
    vor 1 Woche 1 Tag

Statistik

Beiträge im Forum: 250270
Registrierte User: 20477

Neue User:

  • Robertnobia
  • AltonRaf
  • JeffreyPaf

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 6 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