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

Menü dynamisch erweitern

Eingetragen von benny1979 (119)
am 17.11.2009 - 23:46 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo,

ist es möglich, unterhalb eines speziellen Hauptmenüpunkts dynamisch Untermenüpunkte aus einer externen Quelle einzufügen (hook_menu?)? Und falls ja, kann das Zugriffsrechte-System dann den Zugriff auf diese in der Drupal-Datenbank nicht existenten Menüpunkte beschränken?

VG,
Benny

‹ Spalte 'data' in Tabelle users Formularausgabe anpassen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

benny1979 schrieb ...

Eingetragen von traxer (1009)
am 18.11.2009 - 10:55 Uhr
benny1979 schrieb

... dynamisch Untermenüpunkte aus einer externen Quelle einzufügen (hook_menu?)?

Sobald man PHP einsetzt (also insbesondere auch Drupal), sollte man das Wort dynamisch aus seinem Vokabular streichen. PHP erzeugt dynamisch HTML-Seiten. Etwas in Zusammenhang mit PHP als dynamisch zu bezeichnen erhöht also nicht den Informationsgehalt der Aussage.

Am einfachsten wäre wohl der Weg über hook_menu. Als Page Callback kannst du drupal_goto nehmen und die Ziel-URL übergibst du in den Page Arguments. Dann steht dir auch die komplette Bandbreite an Zugriffskontrolle zur Verfügung.

Die Datenbanktabellen für das Menü werden selten neu befüllt, du müsstest also in periodischen Abständen ein Neubau der Tabellen anstoßen: hook_cron, menu_rebuild.

Schau dir auch menu_link_save an: da du in hook_menu nicht nur einen Callback anlegst, sondern ihn auch im Navigationsmenu abbilden willst, musst du die plid der übergeordneten Seite angeben. Ich weiß nicht ob du das direkt in hook_menu machen kannst, oder ob du dazu hook_menu_link_alter implementieren musst.

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hook_menu für eigene module

Eingetragen von bronco (21)
am 26.11.2009 - 19:02 Uhr

Hallo Leute,
hab gerade diesen hilfreichen Thred gefunden, da ich selber fast genau das gleiche Problem habe. Natürlich bin ich auch ein Drupal Neuling und überwältigt wie geil das eigentlich ist. Lobpreisungen werden verkürzt durch das Wort an sich dargestellt.

Zu meinem Beitrag: Also ich habe es jetzt geschafft einene Menü Punkt über Hook_menu einzuspeisen. Der Link wird dann über eine Callback Funktion aufgerufen und dann via drupal_goto() ausgeführt. Funktioniert alles perfekt! Danke für den Tipp an dieser Stelle. Nun zu meinem Problem. Wenn ich nun das Menü Unterpunkt Navigation aufrufe führt dies zu einer Fehlermeldung die zweifelsfrei auf meinen Menüpunkt zurück zu führen ist.
Fatal error: Unsupported operand types in /home/website/public_html/includes/common.inc on line 1573

Habe meinen Menü Punkt mal aus der Db gelöscht und es ging wieder. Konnte den Fehler eingrenzen und denke das es an dem plid Eintrag liegen könnte. Der ist nämlich 0 in der DB. Jetzt kommt meine Frage ist für genau diesen Fehler hook_menu_link_alter() zuständig? Diesen Hook habe ich nämlich gar nicht benutzt bisher, da ich dachte das dies alles "automatisch" über hook_menu ausgeführt wird.

Ich habe schon ein wenig rumgesucht nur leider nicht wirklich eine befriedigende Antwort für mich erfunden, die mir das Verständnis für das Problem vor Augen führt. So eine Antwort wie von traxer wäre super! Klar deutlich und verständlich. Für Newbees halt...
Danke schonmal

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat:Jetzt kommt meine

Eingetragen von stebeg (463)
am 27.11.2009 - 11:39 Uhr
Zitat:

Jetzt kommt meine Frage ist für genau diesen Fehler hook_menu_link_alter() zuständig?

Nö, wie sollte er auch wenn du diesen in deinem Modul nicht implementiert hast?

Zitat:

da ich dachte das dies alles "automatisch" über hook_menu ausgeführt wird

wird es auch. Wenn es zu einem Fehler kommt, dann hast du in deinem Modul etwas falsch programmiert. Zeig doch mal deinen Code. Eventuell findet jemand den Fehler.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke stebeg für deine

Eingetragen von bronco (21)
am 27.11.2009 - 13:13 Uhr

Danke stebeg für deine schnelle Antwort. Ich hab den Code mal angehangen evt. fällt euch ja auf wo ich einen Fehler gemacht habe.

<?php

function user_tracker_menu() {

     
$items['Tracker'] = array(
       
'title'         => 'User Tracker',
       
'description'         => 'User Login Link zum persönlichen Website Tracker',
       
'page callback'     => 'user_tracker_login_link',
       
'access callback'     => 'user_access',
       
'access arguments'     => array('access tracker login link'),
       
'type'                 => MENU_NORMAL_ITEM,
      );
   
      return
$items;
}


function
user_tracker_login_link(){

  global
$user, $base_url;
 
 
drupal_goto($base_url.'/sites/all/modules/contrib/user_tracker/tracker/index.php', 'module=Login&action=logme&login='.$user->name.'&password='.$user->pass, $fragment = NULL, $http_response_code = 302);

}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

gelöst

Eingetragen von bronco (21)
am 02.12.2009 - 01:41 Uhr

Das Problem ist ganz einfach! Ich bin durch Zufall darauf gestoßen. Es ist das ö !!! Das hat das Modul am arbeiten gestört!

  • 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 Tagen
  • Hey danke
    vor 2 Wochen 4 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 5 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 2 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 3 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 6 Stunden
  • In der entsprechenden View
    vor 4 Wochen 6 Stunden
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 6 Stunden
  • gelöst
    vor 6 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20457

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 23 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