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

Aufrufen von Routinen

Eingetragen von t.sebesta (72)
am 27.08.2007 - 20:13 Uhr in
  • Allgemeines zu Drupal
  • Drupal 5.x

Verständnisproblem-
ich habe ein Modul angelegt und kann es per node/Modul aufrufen. Es tut auch was es soll :)

Wenn ich aber jetzt eine externe datenbank (als Modul) einbinde habe ich ja viele Funktionen die die Datenbank erfüllen soll. Wie mache ich es, dass node/Modul/irgendetwas funktioniert bzw ich so aufrufen kann um Menüs bzw. Links generieren kann? Wie übergebn ich also argumente?

Gruß
Thomas

‹ Anbindung externer Datenbank unterschiedliche Umfragen - anderes Stimmrecht ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Verständnisproblem

Eingetragen von md (3717)
am 28.08.2007 - 01:14 Uhr

Da hab ich jetzt ein Verständnisproblem. Welches Modul lässt sich über 'node/modul' aufrufen? Und was tut es dann?
Meinst du vielleicht etwas anderes?

vg
--
md - DrupalCenter

mdwp* :: Drupal Services

  • Anmelden oder Registrieren um Kommentare zu schreiben

nochmal andersrum

Eingetragen von t.sebesta (72)
am 28.08.2007 - 07:57 Uhr

GEbe zu, dass war ein formulierungsschnellschuss nach 4 Stunden Versuch, andersrum nochmals:

Ich habe vor eine externen Datenbank für Literatur über ein Modul an Drupal anzubinden.
ein Modul dsfdb als Grundmodul, das die datenbank einbindet und grundsätzliche Funktionen zur Verfügung stellt.

Dann sollen die Einzelnen Schwerpunkte nach und nach als Zusatzmodule eingebunden werden wie
dsfdb/Autor - Funtionen zu Autoren
dsfdb/Verlage - Funktionen zu Verlagen
usw.

Ich habe jetzt geschafft, ein Grundmodul zu coden und dieses über einen Menüpunkt dazuzubringen mal irgendetwas zu tun. Gut. Ich kann das Modul über die Funktion dsfdb_menu aufrufen.

Wennn ich aber jetzt ein Modul habe wie dsfdb-Autor, so gibt's dann ja mehrere Dinge die erledigt werden sollen. Ich will/brauche Aufrufe wie:

dsfdb-Autor/add
dsfdb-Autor/delete
usw.

und im Modul muss ich dann verschiedene Funktionen aufrufen.

Ich habe versucht das über das Modul Node nachzuvollziehen, wie die Argumente übergeben werden und vom Pfad getrennt werden um verschiedene Menüaufrufe zu bekommen, hab's aber nicht geschafft das zu kapieren?

die Funktion:

function dsfdb_menu() {

  $items = array();
  $items[] = array(
    'path' => 'admin/settings/dsfdb',
    'title' => t('dsfdb'),
    'callback' => 'drupal_get_form',
    'callback arguments' => 'dsfdb_admin',
    'access' => user_access('access administration pages'),
    'type' => MENU_NORMAL_ITEM,
   );

  $items[] = array(
    'path' => 'dsfdb',
    'title' => t('dsfdb'),
    'callback' => 'dsfdb_all',
    'access' => user_access('access dsfdb content'),
    'type' => MENU_CALLBACK
  );

  return $items;
}

Ich kann nicht nachvollziehen wie diese Funktion aufgerufen wird und wie ich zu den Argumenten kommen kann, die ich brauche um mehrere verschiedene Menüs zu bekommen?

Gruß
Thomas

  • Anmelden oder Registrieren um Kommentare zu schreiben

Funktionen (hooks)

Eingetragen von md (3717)
am 28.08.2007 - 10:30 Uhr

Was du dort geschrieben hast ist eine sog. Hook-Funktion. Hooks werden von Drupal automatisch aufgerufen. Darum brauchst du dich nicht zu kümmern.
Deine Funktionen hast du bereits im Menü Array als callback definiert. Den ersten Callback mit Argumenten, die von Drupal automatisch mit übergeben werden. Da dein erster Callback eine Drupal Form Api Funktion ist, musst du jetzt in deinem Modul eine Form mit dem Namen 'dsfdb_admin' generieren. Den Namen hast du als Callback Argument definiert und die Funktion drupal_get_form($form_id) erwartet als Argument die id einer Form.

Für deinen zweiten Callback schreibst du einfach eine Funktion dsfdb_all().

vg
--
md - DrupalCenter

mdwp* :: Drupal Services

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die gepostete Routine

Eingetragen von t.sebesta (72)
am 28.08.2007 - 11:28 Uhr

Die gepostete Routine funktioniert ja auch schon und dsfdb_all liefert schon das was es soll.

Mir gehts jetzt darum, dass ich zb eine Funktion dsfdb_showAutor brauche und diese über ein Menü aufrufen will. Ich muss also nach meinem Verständnis einen callback auf diese Funktion machen.

Items ist aber jetzt mit der geposteten Funktion besetzt.

Durch zB den Drupal-Aufruf dsfdb werden zB alle Datensätze angezeigt durch dsfdb/autor sollen eben dann nur Autoren angezeigt werden. Ich benötige also eine Weiche die den richtigen callback setzt. Wie erhalte ich aber jetzt das Argument für die Weiche damit ich eine Auswahl treffen kann.

Gibt's eine drupal-Funkton, die mir den String zerlegt oder muss ich das selbst machen.
Vermutlich fehlt mir da noch das grundsätzliche Verständnis.

zB

function dsfdb_menu() {

  $items = array();
  $items[] = array(
    'path' => 'admin/settings/dsfdb',
    'title' => t('dsfdb'),
    'callback' => 'drupal_get_form',
    'callback arguments' => 'dsfdb_admin',
    'access' => user_access('access administration pages'),
    'type' => MENU_NORMAL_ITEM,
   );

if ($variable == "Autor") {

  $items[] = array(
    'path' => 'dsfdb_autor',
    'title' => t('dsfdb_autor'),
    'callback' => 'dsfdb_Autor',
    'access' => user_access('access dsfdb content'),
    'type' => MENU_CALLBACK
  );

}
else {
  $items[] = array(
    'path' => 'dsfdb',
    'title' => t('dsfdb'),
    'callback' => 'dsfdb_all',
    'access' => user_access('access dsfdb content'),
    'type' => MENU_CALLBACK
  );
}

oder so ähnlich. Oder muss ich das anders angehen?

Kurz: wie teile ich dem System mit, dass es in dem Modul mehrere Drupal-Aufrufe gibt die ich dann in verschiedenen Menüs verwenden kann?

Gruß
Thomas

return $items;
}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mehrere Callbacks

Eingetragen von md (3717)
am 28.08.2007 - 11:39 Uhr

Warum sollte items durch die erste Funktion besetzt sein. Du kannst in dem Array soviele Menüitems erzeugen wie du möchtest. Hinter jedem Menüitem liegt dann ein Callback auf die von dir definierte Funktion. Jedes Menüitem benötigt natürlich einen anderen Path. Aber das hast du ja schon so gemacht.

Oder versteh ich dich falsch?

vg
--
md - DrupalCenter

mdwp* :: Drupal Services

  • Anmelden oder Registrieren um Kommentare zu schreiben

ahh-ha, jetzt sehe ich schon

Eingetragen von t.sebesta (72)
am 28.08.2007 - 12:01 Uhr

ahh-ha,
jetzt sehe ich schon klarer.

Ich kann einfach die Items (sprich in Items[] sammeln sich alle Menü-Aufrufe der Installation) erzeugen die ich in einem Modul brauche und Drupal übernimmt diese automatisch durch die Funktion (modulname)_menu(). Der Pfad den ich dort angebe ist dann der, mit dem ich die Funktion eben dann erreiche. Das war mir bisher nicht klar.

Drupal gefällt mir immer besser :)

Gruß
Thomas

  • Anmelden oder Registrieren um Kommentare zu schreiben

Menüsystem

Eingetragen von md (3717)
am 28.08.2007 - 12:53 Uhr

Ja so ist das. Und über den 'type' kannst du über Konstante festlegen, ob und wo dazu auch ein Menüpunkt für die Navigation oder als Tab generiert werden soll.
Bsp.:
MENU_NORMAL_ITEM - Navigation
MENU_LOCAL_TASK - Tab
MENU_CUSTOM_MENU - Neues Menü
MENU_CALLBACK - kein Menüitem, aber im Breadcrumb

usw.

vg
--
md - DrupalCenter

mdwp* :: Drupal Services

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal CMS installieren
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • 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.
Weiter

Neue Kommentare

  • Ich habe ja keine Angst vor
    vor 2 Tagen 5 Stunden
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 4 Tagen 11 Stunden
  • Vielen Dank erst einmal, aber
    vor 6 Tagen 4 Stunden
  • Du hast die "Trusted host
    vor 6 Tagen 13 Stunden
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 2 Wochen 5 Tagen
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 3 Wochen 1 Tag
  • Arrrrg. Nix Tabelle :-D /*
    vor 7 Wochen 4 Tagen
  • Textboxen mit Tabelle
    vor 7 Wochen 4 Tagen
  • Du sollst ja auch keine
    vor 7 Wochen 4 Tagen
  • Theme
    vor 7 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250281
Registrierte User: 20494

Neue User:

  • Robertolix
  • DavidBit
  • JeraldZeF

» Alle User anzeigen

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