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

  • 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?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» 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 34 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