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

Menu Tab nur für bestimmten Node Typ

Eingetragen von guauth (12)
am 08.02.2008 - 22:05 Uhr in
  • Modul-Entwicklung
  • Drupal 5.x

Hallo,
ich möchte ein Menü Tab nur bei einem bestimmten Node Typ (contrib mod biblio) anzeigen. Derzeit wird das Tab bei jedem Node angezeigt und zwar mit diesem Code:

  if (!$may_cache) {
    if (is_numeric(arg(1))) {
      if (arg(0) == 'node') {
        $items[] = array('path' => 'node/'. arg(1) .'/local_task',
          'title' => t('Local Task'),
          'callback' => 'local_task_page',
          'access' => TRUE,
          'type' => MENU_LOCAL_TASK
        );
      }
    }

Wie kann ich nun erreichen, daß das Tab nur bei biblio Nodes angezeigt wird? Aus dem Pfad ist der Node Typ nicht erkennbar, z.B.: /de/node/101

Eine erste Idee wäre den Typ mit hook_nodeapi, op "load" oder "view" zu checken und dann ein Flag mit variable_set zu setzen. Erscheint mir aber nicht sehr elegant. Möchte es möglichst ohne DB-Zugriff hinbekommen. Jemand eine Idee?

Gruß
G.

‹ Wochenende Planen Mehrere Formulare? - Form API ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Mit dem Devil Modul solltest

Eingetragen von Tobias Bähr (4019)
am 08.02.2008 - 23:32 Uhr

Mit dem Devil Modul solltest du eigentlich alles erdenklich an Infos für diesen Node erhalten!

----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/

  • Anmelden oder Registrieren um Kommentare zu schreiben

Devil == Devel?

Eingetragen von guauth (12)
am 09.02.2008 - 09:50 Uhr

Nehme an, Du meinst das Devel Modul? Damit bekomme ich natürlich die Infos. Aber wie komme ich im Code an die Infos?

Mein Code oben stammt aus der Implementierung von hook_menu, also:

function mymodule_menu($may_cache) {
...
}

Wie kann ich innerhalb dieser Funktion den aktuellen Node Typ ermitteln?

  • Anmelden oder Registrieren um Kommentare zu schreiben

access

Eingetragen von tumblingmug (872)
am 09.02.2008 - 10:08 Uhr

Ich würde folgendes versuchen: dem Key "access" anstatt "TRUE" eine Funktion "is_bilio_contrib" übergeben, welche den Nodetypen prüft und einen Wahrheitswert zurückgibt. Die Prüfung selbst in dieser Funktion wäre wohl mit <?php $node  = node_load(arg(1)); ?> einzuleiten und $node->type dann abzufragen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke!

Eingetragen von guauth (12)
am 09.02.2008 - 12:08 Uhr

Funktioniert! Habe aber nicht den access key benutzt, sondern die Prüfung vor das Befüllen von items[] gestellt.

Allerdings führt node_load() ja auch zu einem DB-Zugriff. Schöner (weil perfomanter) wäre es natürlich ohne. Kann ich mir das aktuelle node object irgendwie holen, so ähnlich wie "globals $user"?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Re: Danke!

Eingetragen von traxer (1009)
am 09.02.2008 - 19:11 Uhr
guauth schrieb

Allerdings führt node_load() ja auch zu einem DB-Zugriff.

Ja, manchmal. Pro Seitenaufruf wird jeder Node höchstens ein mal geladen. Weitere Aufrufe von node_load liefern lediglich eine Kopie des geladenen Nodes; dazu ist die statische Variable in der ersten Zeile da. Da der Node sowieso dargestellt wird, ist es also egal, ob du ihn lädst, oder jemand anderes.

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • 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
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 1 Tag 20 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Tagen 12 Stunden
  • melde mich mal wieder, da ich
    vor 7 Wochen 6 Tagen
  • Hey danke
    vor 8 Wochen 11 Stunden
  • Update: jetzt gibt's ein
    vor 8 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 8 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 8 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 9 Wochen 3 Tagen
  • In der entsprechenden View
    vor 9 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 9 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

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