Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

[gelöst] Menu Block problem

Eingetragen von ikarus (13)
am 13.07.2013 - 23:54 Uhr in
  • Themes & Theming
  • Drupal 7.x oder neuer

Hallo,

ich arbeite gerade an einer Seite und habe für die Submenus menu blocks verwendet.
Hiermit zeige ich in der "Sidebar first" alle untermenus ab dem 3. level an. (so erscheinenen z.b. auf der seite 1.2 alle untermenus zu 1.2, sprich 1.2.1, 1.2.2, 1.2.3)

Nun habe ich das Problem das ich abhängig vom übergeordneten Menu (2. level) die Farben der Untermenus via CSS anpassen will.
So das alle Submenus die zu 1.x gehören z.b. blau sind, alle die zu 2.x gehören grün, etc...

die menu-block-wrapper.tpl.php Datei erstellt um den Menu Block herum bereits einen Div Container:

<div class="content">
    <div class="menu-block-wrapper menu-block-1 menu-name-main-menu parent-mlid-0 menu-level-3">
  <ul class="menu"><li class="first leaf menu-mlid-377"><a href="/?q=node/14" class="hide">Item 1</a></li>
<li class="leaf menu-mlid-380"><a href="/?q=node/17" class="hide">Item 2</a></li>
<li class="leaf menu-mlid-383"><a href="/?q=node/20" class="hide">Item 3</a></li>
  </ul>
  </div>
</div>

nur dummerweise steht in der div class dann nur "menu-block-wrapper menu-block-1 menu-name-main-menu parent-mlid-0 menu-level-3"

und das bei jedem Menu. Also hab ich auf dem Weg keine Möglichkeit eine eindeutige class anzusprechen die sich abhängig vom parent class name unterscheided, somit haben auch alle untermenus die gleiche Farbe.

Weiss jemand Rat ?
VG
Kai

______

Lösung:

https://drupal.org/project/menu_attributes
https://drupal.org/project/menu_position

den rest kann man dann im menu block selber einstellen ohne update probs zu kriegen.

‹ Premium Themes in Installationsprofil für Drupal Commerce: ich möchte sie entwickeln und brauche Euer Feedback [gelöst] Menu Block problem ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, Zitat: Nun habe ich

Eingetragen von Peter Majmesku (656)
am 14.07.2013 - 08:32 Uhr

Hallo,

Zitat:

Nun habe ich das Problem das ich abhängig vom übergeordneten Menu (2. level) die Farben der Untermenus via CSS anpassen will.
So das alle Submenus die zu 1.x gehören z.b. blau sind, alle die zu 2.x gehören grün, etc...

Zitat:

nur dummerweise steht in der div class dann nur "menu-block-wrapper menu-block-1 menu-name-main-menu parent-mlid-0 menu-level-3"

-> menu-level-3

.. da hast du doch die Klasse der Hierarchieebene.

  • Anmelden oder Registrieren um Kommentare zu schreiben

ja ich weiss, die menus

Eingetragen von ikarus (13)
am 14.07.2013 - 10:02 Uhr

ja ich weiss, die menus funktionieren ja auch alle richtig, es soll ja auch nur die 3. klasse angezeigt werden.
ich will aber über das css den untermenus verschiedene farben geben (abhängig vom übergeordneten menu,
1.1.1 == Farbe von 1, 2.1.1 == Farbe von 2, etc..) und dafür müsste ich natürlich wissen welches das übergeordnete element ist.
ich hab mal eine skizze gemacht, denke das ist deutlicher:

Image and video hosting by TinyPic

da der klassenname IMMER gleich ist (egal von welchem parent element das menu kommt, weiss ich nicht wie ich die menus mit css skinnen kann.
oder geht das vielleicht anders noch einfacher ?

VG
kai

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn dir die CSS Klassen

Eingetragen von Peter Majmesku (656)
am 14.07.2013 - 10:52 Uhr

Wenn dir die CSS Klassen fehlen, dann schaue dir

https://drupal.org/project/menu_attributes

an.

  • Anmelden oder Registrieren um Kommentare zu schreiben

menu attributes hab ich schon

Eingetragen von ikarus (13)
am 14.07.2013 - 11:01 Uhr

menu attributes hab ich schon drin, (das attributes modul setzt die Klassen ja gleich bei den "< a >" tags,
das hilft mir aber nicht viel, weil muss ja die div klasse "menu-block-1" skinnen, abhängig vom parent element
auf der 2. menu ebene.

<div class="content">

   <div class="menu-block-wrapper menu-block-1 menu-name-main-menu parent-mlid-0 menu-level-3">

    <ul class="menu">
        <li class="first leaf menu-mlid-377"><a href="/?q=node/14" class="hide">Item 1</a></li>
        <li class="leaf menu-mlid-380"><a href="/?q=node/17" class="hide">Item 2</a></li>
        <li class="leaf menu-mlid-383"><a href="/?q=node/20" class="hide">Item 3</a></li>
    </ul>
  </div>
</div>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mit dem theme_menu_link();

Eingetragen von Peter Majmesku (656)
am 14.07.2013 - 11:24 Uhr

Mit dem theme_menu_link(); Hook kommst an die einzelnen Listenelemente und kannst dort dann eine Bedingung anhand der Hierarchiebene setzen (z.B. Überprüfung mit strpos(); welche Klasse sich im Link befindet).

Hier noch der Link zum Hook: https://api.drupal.org/api/drupal/includes!menu.inc/function/theme_menu_link/7

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich hab grad mal versucht die

Eingetragen von ikarus (13)
am 14.07.2013 - 13:41 Uhr

ich hab grad mal versucht die menu.inc zu bearbeiten, aber im html kommen keine neuen tags an.
wie kann ich die variabeln ausgeben ?

Muss dazu sagen das ich aus der front-end Entwicklung komme und daher nicht soviel php erfahrung hab.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die menu.inc solltest du

Eingetragen von Peter Majmesku (656)
am 14.07.2013 - 14:28 Uhr

Die menu.inc solltest du nicht berarbeiten. Damit machst du dir nur dein Drupal kaputt und verlierst die Updatefähigkeit.

Mein Rat mit war mit dem theme_menu_link(); Hook. Da ersetzt du das "theme" durch den Maschinennamen deines Themes und dann kann man hier mit PHP If-Cases arbeiten.

Wenn du das Bisschen PHP nicht schaffst, kannst ja mit CSS Pseudo Klassen arbeiten: http://www.w3.org/wiki/CSS/Selectors/pseudo-classes/:nth-child. Da kriegst dann aber mit den älteren IEs Probleme.

  • Anmelden oder Registrieren um Kommentare zu schreiben

:) Ups. hab die menu.inc

Eingetragen von ikarus (13)
am 14.07.2013 - 15:11 Uhr

:) Ups.

hab die menu.inc wieder in den Urzustand versetzt, hatte den Post falsch verstanden.

Den "dirty" workaround mit CSS hab ich auch grad ausprobiert,
aber der geht leider nicht, weil die Menu Blocks NUR das 3. Level anzeigen
(so sind sie eingestellt in der konfiguration) sie haben auch einen titel, aber dummer weise
nicht als class oder id.

da das menu ein block ist, taucht es im page template (ich glaub du meinst damit die page.tpl.php oder ?)
garnicht auf.

vielleicht blöde fragen, aber ich hab mit drupal noch nicht soviel gemacht, gibts da echt keine einfachere
Möglichkeit 3.level menu Blöcke zu skinnen als extra dafür ein theme zu coden ?

VG
Kai

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Kai, hier ist Peter

Eingetragen von Peter Majmesku (656)
am 14.07.2013 - 15:49 Uhr

Hallo Kai, hier ist Peter :-)

Wenn du nicht programmieren kannst, musst du es halt andere für dich machen lassen. Und hey: wir sind bei Drupal und es gibt für Menüs einige Module. Wie sieht es mit dem Superfish Modul aus (= https://drupal.org/project/superfish/)? Vielleicht setzt das ja die Klassen, die du brauchst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Moin Peter! ich probier das

Eingetragen von ikarus (13)
am 14.07.2013 - 15:57 Uhr

Moin Peter!

ich probier das superfish menu gleich mal aus, danke für den Tip.
damit dürft ich mir ja nicht allzuviel zerballern. Hab mit drupal vorher noch nich
allzuviel gemacht und hatte mich vorhin gefragt ob es überhaupt module gibt
die sowas können ^^

VG
Kai

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (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
Weiter

Neue Kommentare

  • Was für einen Server benutzt
    vor 2 Tagen 12 Stunden
  • Wenn die Subdomain auf
    vor 4 Tagen 10 Stunden
  • ordnerstruktur
    vor 4 Tagen 21 Stunden
  • Die Subdomain muß auf den
    vor 1 Woche 4 Stunden
  • Verwende doch das Tag dafür,
    vor 4 Wochen 2 Tagen
  • Guckst du hier: step by step
    vor 4 Wochen 1 Tag
  • Guckst du hier: step by step
    vor 4 Wochen 1 Tag
  • Ich habe ja keine Angst vor
    vor 5 Wochen 4 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 5 Wochen 6 Tagen
  • Vielen Dank erst einmal, aber
    vor 6 Wochen 1 Tag

Statistik

Beiträge im Forum: 250289
Registrierte User: 20512

Neue User:

  • MichaelPeeno
  • Pavlotog
  • burningTree

» Alle User anzeigen

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