[gelöst] special_menu_item probleme
am 12.09.2011 - 22:52 Uhr in
Hallo,
ich versuche grad ein drop-down menu zu erstellen, welches folgenden aufbau hat:
1.parent
2.parent
3.parent
3.1 child
3.2 child
4 parent
4.1 child
4.2 child
ich möchte das 3. parent und 4. parent nicht verlinkt ist sondern lediglich die dropdown-funktion erfüllt, damit man im mouse-over die childs sieht.
Ich habe zunächst das nice menu modul installiert (http://drupal.org/project/nice_menus)
um mein problem zu lösen habe ich das special item menu installiert (http://drupal.org/project/special_menu_items)
da habe ich aber nun leider meine probleme... dort soll man path: eingeben. tu ich das wird allerdings auf www.mydomain.de/<nolink>
verlinkt, was natürlich nicht gefunden wird.
hat jemand dafür eine lösung parat?
schon mal danke für die hilfe
- Anmelden oder Registrieren um Kommentare zu schreiben
Soweit ich mich dunkel
am 12.09.2011 - 23:12 Uhr
Soweit ich mich dunkel erinnere, wird bei Path nolink ohne die spitzen Klammern darum eingegeben. Zumindest war das bei Drupal 6 noch so. Solltest Du trotzdem einen ungültigen Link bekommen, hilft nur ein kleines jQuery-Script, das den Link umbaut und aus dem a-Tag ein span baut. Ich habe so etwas in Drupal 6 bei den Custom Breadcrumbs mal benötigt, um solche Links in den Breadcrumbs zu beseitigen. Bei Bedarf kann ich das Script hier veröffentlichen.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Script
am 13.09.2011 - 16:28 Uhr
Hallo Werner,
danke für die Antwort... ich habe es sowohl mit als auch ohne spitze klammern und auch sonstige sachen ausprobiert.
Ein Script mit einer kurzen Beschreibung wie und wo wäre super. Vielen Dank
Also hier ist erst mal das
am 13.09.2011 - 18:18 Uhr
Also hier ist erst mal das Script:
$(document).ready(function () {
$('div.breadcrumb a[href*="nolink"]').each(function () {
$(this).replaceWith( "<span>" + $(this).text() + "</span>" );
});
});
Es ersetzt im div mit der Klasse breadcrumb alle a-Tags, die im href ein nolink drin haben, durch span-Tags, die denselben Text anzeigen, wie der a-Tag. Du mußt jetzt vermutlich nur statt div.breadcrumb den ul oder den div von Deinem Menü einsetzen.
Das Script selbst bindest Du über den .info-File Deines Themes ein z.B bei mir ist diese Zeile drin
scripts[] = js/fixbreadcrumb.js
Das Script heißt also fixbreadcrumb.js und liegt im Unterterorder js in meinem Theme.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
vielen Dank
am 13.09.2011 - 23:41 Uhr
Vielen Dank für die Beschreibung und das Script. An sich hab ich es schon verstanden und auch umgesetzt, jedoch scheint da noch ein Denkfehler bei mir zu sein den ich grad nich erkenne...
ich habe definitiv die richtige div bzw. bei mir ul. klasse ausgesucht und ansonsten ist ja eigentlich nicht viel zu ändern
könnte es daran liegen, dass ich drupal 7 installiert habe und sich dort irgendetwas geändert hat woran ich grad nich denke, weil dein script bei drupal 6 benutzt wurde?
jedenfalls hat sich leider nix geändert.
Schöne Grüße und danke für die Geduld
Alex
Was passiert denn? Ändern
am 14.09.2011 - 00:13 Uhr
Was passiert denn? Ändern sich die Links nicht? Dem Script ist es egal, ob Drupal 6 oder Drupal 7. Das wandelt nur einen gefundenen a-Tag in einen Span. Wenn das nicht passiert, ist Dein Selector falsch. Hast Du mal einen Link zu der Seite?
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Link
am 14.09.2011 - 11:01 Uhr
Guten Morgen,
der Link zur Seite: medieninformatik.smush.de
Mein Script sieht so aus:
$(document).ready(function () {
$('ul.nice-menu a[href*="nolink"]').each(function () {
$(this).replaceWith( "<span>" + $(this).text() + "</span>" );
});
});
und ich habe es im standart bartik-theme eingebaut. Die "js" datei heißt bei mir menufix.js und der pfad dahin ist wie bei dir im theme js/menufix.js
Nochmals vielen Dank für die Hilfe
Alex
Also gibt es scheinbar doch
am 14.09.2011 - 12:27 Uhr
Also gibt es scheinbar doch einen Unterschied zwischen Drupal 6 und Drupal 7. Die $-Funktion ist so nicht da. Ersetze im Script das $(...) durch jQuery(...). Achtung muß genau so geschrieben werden: jQuery. Dann sieht die Funktion so aus
jQuery(document).ready(function () {
jQuery('ul.nice-menu a[href*="nolink"]').each(function () {
jQuery(this).replaceWith( "<span>" + jQuery(this).text() + "</span>" );
});
});
Aber erschrecke Dich nicht. Du mußt die Span-Tags dann noch in CSS so aussehen lassen, wie die a-Tags. Außerdem hast Du nicht nur nolink sondern auch Separator verwendet. Also entweder das Script um einen zweiten Abschnitt erweitern oder überall nolink verwenden.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ahhh!
am 14.09.2011 - 12:58 Uhr
Super, vielen Dank Werner... klappt wunderbar...
Schönen Gruß
Alex