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

[gelöst] Menülinks themen

Eingetragen von PaulchenPlump (55)
am 09.08.2009 - 20:50 Uhr in
  • Themes & Theming

Hallo,

gibt es eine Möglichkeit einen Menülink mit HTMl-Codes zu versehen? Also zum Beispiel ein Menue&lt;strong&gt;Link&lt;/strong&gt; - bisher wandelt er die <> in &amp;lt;&amp;gt; um...

Ciao, PaulchenPlump

‹ [Gelöst] Mehrere page.tpl für mehrere Seiten? Menus mit verschiedenen Blocks im secondary link mit hover Effekt ausstatten ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Links formatieren...

Eingetragen von minou (nicht überprüft) (0)
am 10.08.2009 - 08:56 Uhr

Hallo,

für die Menüformatierung gibt es einfachere Lösungen, zudem solltest du nicht diese Einträge direkt verändern, weil du damit das System unflexibel und fehleranfällig machst (weitere Module die z.B. mit Änderung nicht klarkommen, Updateprobleme).

sieh doch mal in dein aktiviertes Theme, wenn es ein Core Theme ist so ist dieses unter Basispfad-> /themes,
bei contrib-Themes ist dies unter /sites/all/themes/(ev. noch custom/)themename.

Da drin findest du je nach Theme mehr oder weniger css-Dateien die auch unter anderem deine Links ansteuern. Für die linke Navi sind das glaube ich <ul>-Listen.
Nimm dir doch den Firefox zur Hilfe und benutze den Firebug, den kannst du einfach herunterladen als add-on und zeigt dir genau den Eintrag, wenn du über einen Content fährst mit der Maus...

Gruss

minou

Edit: Link entfernt...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Missverständniss! Ich will

Eingetragen von PaulchenPlump (55)
am 10.08.2009 - 08:30 Uhr

Missverständniss!

Ich will mit CSS themen, aber um einen Textlink zum Beispiel ab dem dritten Buchstaben grün zu machen, muss ich es irgendwie kennzeichnen - dazu verwendet man schon noch html-tags. ;) Ich will also "MenueLink" als ein Link haben und in dieser Formatierung.

Danke und Ciao, PaulchenPlump

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nun denn, ^^^

Eingetragen von r4s6 (1383)
am 10.08.2009 - 11:48 Uhr

Wie bereits von meinem Vorschreiber erwähnt, solltest Du Firefox AddOn Firebug installieren und damit deine Seite analysieren. Da wirst Du feststellen, dass die Menulinks bereist eine ID und mindestens eine Klasse haben. diese verwendest Du in der style.css zum formatieren, was willst Du noch mehr? Ich weiss jetzt zwar nicht, wie Du etwas erst ab dem x-ten Zeichen formatieren willst, aber ich lasse mich gerne überraschen.

Auch das Devel-Modul wird dir jenachdem gute Dienste leisten.

Gruss Roger

Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen <==> das erleichtert das finden von Lösungen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Puuh, ich bekomme gleich die

Eingetragen von PaulchenPlump (55)
am 10.08.2009 - 13:36 Uhr

Puuh, ich bekomme gleich die Krise - ihr versteht mich falsch! Ich untermauere es jetzt mit einigem aus der Hüfte geschossenen Code:

Ich habe ein Menü

<ul class="bla">
  <li class="ueberfluessig1">MenueLink1</li>
  <li class="ueberfluessig2">MenueLink2</li>
  <li class="ueberfluessig3">MenueLink2</li>
</ul>
welches ich schon über eine style.css theme
.bla {margin-left:100px;}
.ueberfluessig1 {color:red;}

Ich möchte jetzt aber folgendes in meiner style.css hinzufügen um einen Teil des Links Fett zu markieren:

.bla li strong {font-weight:bold; color:yellow;}
um dies für einen Teil des Links zu ändern. Der Menü müsste nun wie folgt aussehen:
<ul class="bla">
  <li class="ueberfluessig1">Menue<strong>Link1</strong></li>
  <li class="ueberfluessig2">MenueLink2</li>
  <li class="ueberfluessig3">MenueLink2</li>
</ul>
Leider ergibt es folgendes:
<ul class="bla">
  <li class="ueberfluessig1">Menue&lt;strong&gt;Link1&lt;/strong&gt;</li>
  <li class="ueberfluessig2">MenueLink2</li>
  <li class="ueberfluessig3">MenueLink2</li>
</ul>
und das funzt natürlich nicht - ich vermute es wird durch htmlspecialchars gejagt - aber wo und wie passe ich das an?!

Ciao, PaulchenPlump

PS: FireBug und das Devel-Modul sind gute Hilfsmittel, aber die brauche ich dafür nicht - ich kann mir den Code auch im Quelltext ansehen und entsprechend das style.css anpassen. Das oben ist alles sinngemäß ausgespuckter Quellcode von Drupal.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich würde sowas mit JQuery

Eingetragen von Tobias Bähr (4019)
am 10.08.2009 - 14:59 Uhr

Ich würde sowas mit JQuery machen

$javascipt = "$('ul.bla .ueberfluessig1').html('Menue<strong>Link1</strong>');";

drupal_add_js($javascipt, 'inline');

Das in deine template.php deines Themes.

----------------------------------------

http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ok, das ist eine

Eingetragen von PaulchenPlump (55)
am 10.08.2009 - 22:17 Uhr

Ok, das ist eine Lösungsmöglichkeit - wenn auch keine schöne. Gibt es keine Funktion oder kann man das nicht irgendwie themen?

Vielen Dank nochmals, PaulchenPlump

  • Anmelden oder Registrieren um Kommentare zu schreiben

Doch man kann mit der Api

Eingetragen von Tobias Bähr (4019)
am 10.08.2009 - 23:05 Uhr

Doch man kann mit der Api von vorhandene Menülinks den Titel ändern, aber ich fand diese Variante besser weil ohne extra Modul.

----------------------------------------

http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dafür funktioniert Deine

Eingetragen von PaulchenPlump (55)
am 11.08.2009 - 07:42 Uhr

Dafür funktioniert Deine Variante nur mit javascript. Wenn ich über die API sage "bitte <strong> nicht umwandeln", dann reicht mir das. Wo suche ich denn am besten nach der Funktion?

Eine template.php habe ich ja eh schon... Wie ich die Funktion dann überschreibe muss ich mir noch anlernen, aber das wird schon.

Danke und Ciao, PaulchenPlump

  • Anmelden oder Registrieren um Kommentare zu schreiben

naja, wenn du umdebingt

Eingetragen von Tobias Bähr (4019)
am 11.08.2009 - 08:45 Uhr

naja, wenn du umbedingt willst hier http://api.drupal.org/api/function/hook_menu_alter/6

----------------------------------------

http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).

  • Anmelden oder Registrieren um Kommentare zu schreiben

So wie mir es scheint ist

Eingetragen von PaulchenPlump (55)
am 19.08.2009 - 19:16 Uhr

So wie mir es scheint ist dafür eher http://api.drupal.org/api/function/hook_menu_link_alter/6 zuständig. Dass das < ersetzt wird liegt an ein paar Zeilen in der l()-Funktion:

  if (isset($options['attributes']['title']) && strpos($options['attributes']['title'], '<') !== FALSE) {
    $options['attributes']['title'] = strip_tags($options['attributes']['title']);
  }

  return '<a href="'. check_url(url($path, $options)) .'"'. drupal_attributes($options['attributes']) .'>'. ($options['html'] ? $text : check_plain($text)) .'</a>';

Wie man hier sehen kann, ist es mit der Option "html" jedoch möglich den Link anders zu behandeln. Jetzt probiere ich schon seit einigen Stunden diese zwei Erkenntnise zu kombinieren es gelingt mir aber (aufgrund mangelnder Kenntnisse) nicht.

In meine template.php habe ich bisher in etwa folgendes geschrieben (wobei ich weiss, dass das sowieso nicht stimmt):

function phptemplate_menu_link_alter(&$item, $menu) {
  if ($item['link_path'] == '/en/node/1') {
    $item['options']['html'] = TRUE;
  }
}

Leider greift dies bisher nicht...

Vielen Dank, PaulchenPlump

  • Anmelden oder Registrieren um Kommentare zu schreiben

Versuch mal nur node/1 bzw.

Eingetragen von Tobias Bähr (4019)
am 19.08.2009 - 22:13 Uhr

Versuch mal nur node/1 bzw. en/node/1

----------------------------------------

http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Tobias, das ist

Eingetragen von PaulchenPlump (55)
am 20.08.2009 - 08:57 Uhr

Hallo Tobias,

das ist richtig - den Slash habe ich übersehen. Leider funktioniert es trotzdem noch nicht.

Ciao, PaulchenPlump

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dann müsstest du doch

Eingetragen von Tobias Bähr (4019)
am 20.08.2009 - 09:05 Uhr

Dann müsstest du doch node/% nehmen, da ja die Änderungen direkt abgespeichert werden in der Datenbank. Und Pfade wie en/node/1 werden einzeln so nicht abgespeichert, wenn du Dir mal die Tabellen anschaust.

deshalb würde ich lieber hiermit http://api.drupal.org/api/function/theme_menu_item_link/6 versuchen.

----------------------------------------

http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Überschreibe theme_menu_item() oder theme_menu_item_link()

Eingetragen von traxer (1009)
am 20.08.2009 - 09:29 Uhr
PaulchenPlump schrieb

Wenn ich über die API sage "bitte <strong> nicht umwandeln", dann reicht mir das.

Du musst ein eigene Templatefunktion schreiben, die theme_menu_item oder theme_menu_item_link ersetzt.

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

*Grr* ich stell mich mal

Eingetragen von PaulchenPlump (55)
am 23.08.2009 - 22:35 Uhr

*Grr* ich stell mich mal wieder an. Ich habe meiner template.php folgende vereinfachte Funktion mitgegeben:

function fue_menu_item_link($link) {
  drupal_set_message('ERFOLGREICH');
}

Leider greift die Funktion bisher nicht. Nach einiger Suche habe ich unter http://www.drupalcenter.de/node/17388 gelesen, dass ich die Primary als Block ausgeben lassen muss, aber auch dies brachte keinen Erfolg. Hat jemand eine Idee wie ich den Text angezeigt bekomme?

Danke, PaulchenPlump

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hooks sind für Module nicht

Eingetragen von Tobias Bähr (4019)
am 24.08.2009 - 06:53 Uhr

Hooks sind für Module nicht für Themes.

----------------------------------------

http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Cache

Eingetragen von stBorchert (6003)
am 24.08.2009 - 08:47 Uhr

@PaulchenPlump: hast Du mal den Cache geleert? Bzw. die Theme-Registry?
Sofern Dein Theme "fue" heisst, sollte die Funktion dann nämlich aufgerufen werden.

@Tobias: theme_menu_item_link ist kein Hook.

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo und danke für die

Eingetragen von PaulchenPlump (55)
am 24.08.2009 - 10:32 Uhr

Hallo und danke für die antworten,

Stefan hatte recht - ich habe den Cache geleert und es funzte. Habe unter Leistung zwar alles deaktiviert, aber dennoch lag es daran. Wie Stefan richtig erkannt hat, heisst das Theme fue. Mein Code schaut nun so aus:

function fue_menu_item_link($link) {
  if (empty($link['localized_options'])) {
    $link['localized_options'] = array();
  }
 
  if (($link[menu_name] == 'primary-links') && (stripos($link[link_title],'<strong>') !== false)) {
    $opt = $link['localized_options'];
    $opt['html'] = TRUE;
    return l($link['title'], $link['href'], $opt);
  } else {
    return l($link['title'], $link['href'], $link['localized_options']);
  }
}

Vielen Dank! Bis zur nächsten Frage - PaulchenPlump ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Right, gepennt sorry

Eingetragen von Tobias Bähr (4019)
am 24.08.2009 - 22:23 Uhr

Right, gepennt sorry :D

----------------------------------------

http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

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