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

drupal hooks

Eingetragen von Foobar (2)
am 29.01.2009 - 13:25 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hi,

Ich habe da mal ein paar Verständnissfragen bezüglich drupal hooks.

Erstmal etwas Prinzipielles. Die Hooks sind ja soweit in der API mehr oder weniger dokumentiert. Heißt das im Umkrehschluss, dass all die hooks, vom drupal core automatisch ausgeführt werden, sobald die entsprechende Methode vorhanden ist?

Ich habe mal ein paar Beispiele aus dem Netz gezogen und einfach copy&paste in mein Mopdul geladen. Eine Veränderung konnte ich jedoch nicht feststellen. Müssen die hooks vllt. doch noch manuell ausgeführt werden? Was hat es dann aber mit den Parametern auf sich? Fragen über Fragen!

Angenommen ich wollte ein zusätzliches Feld der Registrierung hinzufügen, wie würde ich das realisieren?
Enthalten die hooks callback funktionen um auf die Aktionen auch reagieren zu können (irgendwie müsste ja dann auch das Feld in die Datenbank gespeichert werden).

Ich bin mir sicher, dass diese Frage wohl schon dutzend mal gestellt wurde, und bitte daher meine Unwissenheit zu entschuldigen, jedoch finde ich nirgens einen Beitrag wo einfach mal Klartext geredet wird.

Lg
Foobar

‹ Cron Job Primary Links per Modul dynamisch anpassen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Cache geleert?

Eingetragen von Neuling08 (22)
am 07.02.2009 - 22:54 Uhr

Hi,
ich kann dir bei deinem Problem leider auch nicht 100 pro helfen.
Aber vielleicht versuchst du mal den Cache zu leeren. Habe bei der Modulentwicklung auch oft das Problem, dass Änderungen nicht sofort ersichtlich sind. Oftmals muss man erst den Cache leeren, damit die Änderungen wirksam werden.
Viele Grüße

  • Anmelden oder Registrieren um Kommentare zu schreiben

Foobar schrieb Hi, Eine

Eingetragen von Thoor (3678)
am 07.02.2009 - 23:19 Uhr
Foobar schrieb

Hi,

Eine Veränderung konnte ich jedoch nicht feststellen. Müssen die hooks vllt. doch noch manuell ausgeführt werden? Was hat es dann aber mit den Parametern auf sich? Fragen über Fragen!

Angenommen ich wollte ein zusätzliches Feld der Registrierung hinzufügen, wie würde ich das realisieren?

Wegen den hooks - vielleicht neben dem schon erwähnten Cache leeren, auch noch das Theme erneut aktivieren, wenn die template.php geändert wurde.

Wegen den Feldern ... das CORE Modul PROFILE aktivieren, dann kannst du in der Benutzerverwaltung neue Profilfelder anlegen und konfigurieren ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

hooks

Eingetragen von stBorchert (6003)
am 08.02.2009 - 00:05 Uhr

Moin!

Foobar schrieb

Heißt das im Umkrehschluss, dass all die hooks, vom drupal core automatisch ausgeführt werden, sobald die entsprechende Methode vorhanden ist?

Das hat zwar nichts mit dem Grad der Dokumentation zu tun, aber ja, hooks werden automatisch ausgeführt, wenn sie richtig benannt worden sind.

Foobar schrieb

Ich habe mal ein paar Beispiele aus dem Netz gezogen und einfach copy&paste in mein Mopdul geladen.

Kurze Zwischenfrage um einen grundsätzlichen Fehler auszuschliessen: die Funktion hast Du entsprechend des Namens Deines Moduls umbenannt? Angenommen, Dein Modul heisst "meinmodul" und der hook, den Du verwenden willst, heisst hook_form_alter, sollte die Funktion in Deinem Modul dann meinmodul_form_alter heissen.

Foobar schrieb

Angenommen ich wollte ein zusätzliches Feld der Registrierung hinzufügen, wie würde ich das realisieren?

Du fügst das Feld in der Implementation von hook_form_alter() hinzu, packst dann noch eine zusätzliche Validierungsfunktion und evtl. einen Submithandler dazu, damit die Eingaben in dem neuen Feld auch validiert und gespeichert werden.

<?php
function meinmodul_form_alter(&$form, $form_state, $form_id) {
  if (
$form_id == 'user_register') {
   
$form['extra_feld'] = array(
     
'#type' => 'textfield',
     
'#title' => t('Extra'),
     
'#default_value' => t('Additional info'),
    );
   
$form['#validate'][] = 'meinmodul_validate_handler';
   
$form['#submit'][] = 'meinmodul_submit_handler';
  }
}
function
meinmodul_validate_handler($form, &$form_state) {
  if (
$form['form_id'] == 'user_register']) {
    if (
strlen($form_state['extra_feld']) < 3) {
     
form_set_error('extra_feld', t('You have to enter at least 3 characters.'));
    }
  }
}
function
meinmodul_submit($form, &$form_state) {
 
// Werte aus $form_state irgendwo speichern
}
?>

So in etwa. Es gibt allerdings Umengen an Tutorials zur Modulerstellung und zum Hinzufügen von Feldern zu Formularen oder zum Verändern dieser Formulare ansich.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

hooks

Eingetragen von Foobar (2)
am 08.02.2009 - 01:44 Uhr
Zitat:

Das hat zwar nichts mit dem Grad der Dokumentation zu tun, aber ja, hooks werden automatisch ausgeführt, wenn sie richtig benannt worden sind.

Hy, jetzt sind ja schon einige Tage vergangen, und tatsächlich war genau dies mein Fehler. Ich muss sagen dass die Doku da für Einsteiger leider recht undeutlich ist, zumindest wenn man nicht weiß wonach man da suchen muss (die genaue Logik hinter der Doku ist mir im übrigen bis heute nicht ganz klar). Ich bedanke mich jedenfalls für die Antworten, letzten endes hat mir die freundliche Community im irc Channel weiter geholfen.

Die zusätzlichen Profilfelder habe ich im übrigen dann mit dem Profil Modul realisert. Schade nur dass sie standardmäßig nicht im Userprofil angezeigt werden.

Lg
Foobar

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • 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
Weiter

Neue Kommentare

  • Rollen
    vor 1 Tag 15 Stunden
  • Inzwischen sind wir bei
    vor 1 Woche 5 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Woche 6 Tagen
  • melde mich mal wieder, da ich
    vor 9 Wochen 3 Tagen
  • Hey danke
    vor 9 Wochen 3 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 2 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 2 Tagen
  • Kannst doch auch alles direkt
    vor 10 Wochen 6 Tagen
  • In der entsprechenden View
    vor 10 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250237
Registrierte User: 20465

Neue User:

  • FoxPiola
  • ocvk2810
  • marouane.blel

» 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 1 Benutzer und 36 Gäste online.

Benutzer online

  • FoxPiola

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