Gibt es eine Möglichkeit, einen Hash-Link im Menü unter Drupal-Menü hinzuzufügen, um einfach einen Menüpunkt zu erstellen, der zu einem Anker oder einer ID auf der Seite springt?
Soweit mir bekannt ist, kann Drupal dies leider nicht sofort tun. Sie können jedoch das Modul Spezielle Menüelemente verwenden , um ein neues Menüelement zu erstellen und "nolink" in den Pfadeinstellungen zu platzieren.
"Spezielle Menüpunkte" fügt ein <span title="" class="nolink">...</span>. Problem ist nur das Fehlen von CSS. Kopieren Sie einfach das ul.menu a{}CSS und fügen Sie es für ein ul.menu li span.nolink{}. Es funktioniert gut für mich. Der Dropdown-Pfeil von wurde deaktiviert li.expanded. :(
Mayeenul Islam
Tut mir leid, dass ich so spät gepostet habe, aber ich bin gerade auf diesen Thread gestoßen. Anstatt das CSS zu ändern, können Sie ein wenig js verwenden, um den Nolink in ein Anker-Tag mit einem Hash zu wickeln. Mit jQuery wäre esjQuery("span.nolink").wrap("<a href='#'></a>");
Wie wäre es, auf der Seite zu bleiben, auf der Sie sich befinden? Versuchen Sie beispielsweise, über den Link Skip to Navigation (Zur Navigation springen) zum Navigationsbereich zu gelangen, unabhängig davon, auf welcher Seite Sie sich befinden? @shanabus
Mit dem Menü "Void" können Sie spezielle Werte für Tags konfigurieren, die im Drupal 7-Menüsystem verwendet werden sollen. Sie können bis zu 10 verschiedene leere Tags mit einem beliebigen Wert anpassen und diese im Drupal-Menüsystem frei verwenden.
...
Als zusätzlichen Bonus und aufgrund der Funktionalität dieses Moduls können Sie auch tatsächliche Anker als Menüelemente verwenden, die keinem anderen Zweck als Platzhaltern dienen. Dies wird mit einem Void-Tag erreicht, das auf Javascript gesetzt ist: void (0); oder sogar ein einfaches Hashtag #. Der Vorteil der Verwendung dieses Moduls gegenüber special_menu_items besteht darin, dass Ihre Menüs kein zusätzliches Styling erfordern, um die von special_menu_items verwendeten hinzugefügten Span-Tags zu berücksichtigen, und W3C-gültig sind, da jeder Anker ein href-Attribut haben muss.
Bin gerade auf das gleiche Problem gestoßen. Ich musste programmgesteuert Menüpunkte mit Hash-Links hinzufügen. Mein Code:
// the URL with hash in it is in the form 'normal_part_of_url'#'hash_part_of_url'
$item = array('link_path'=>%normal_part_of_url%,'link_title'=>%your_link_title%,'menu_name'=>%menu_where_to_add_links%,'options'=> array('fragment'=>%hash_part_of_url%));
menu_link_save($item);
Die Verwendung von Drupals Übersetzungsfunktionen funktioniert ebenfalls.
/**
* Implements hook_menu().
*
* Defines a valid link to use when creating menu items.
*/function greenacorn_menu(){
$items['<main-content>']= array('page callback'=>'drupal_not_found','access callback'=> TRUE,'type'=> MENU_CALLBACK,);return $items;}/**
* Implements hook_menu_link_alter().
*
* Flags the link to be altered at runtime.
*
* Note: Changes here would be saved back to the database.
*/function greenacorn_menu_link_alter(&$item, $menu){if($item['link_path']=='<main-content>'){
$item['options']['alter']= TRUE;}}/**
* Implements hook_translated_menu_link_alter().
*
* Refactors the link to go to the fragment #main-content.
*/function greenacorn_translated_menu_link_alter(&$item, $map){if($item['link_path']=='<main-content>'){
$item['href']='';
$item['localized_options']['fragment']='main-content';}}
Bitte poste keine "Code-only" Antworten. Während dies das Problem lösen könnte, erklärt es dem Leser nicht, warum es das Problem löst oder was es im Vergleich zu den Alternativen hier bietet .
Shawn Conn
0
Installieren Sie spezielle Menüelemente und das DHTML-Menü für hierarchische Menüs.
Ergänzen Sie Ihr x-example-Vokabular und ergänzen Sie es mit Ihren Begriffen
Klicken Sie auf X-Beispiel ändern, um die Menüposition festzulegen
gehe zu den Blöcken setze das Menü auf einen Block
Im Menü Admin Modifikation sehen Sie die automatisch hinzugefügten Begriffe
Klicken Sie auf einen Menüpunkt ändern und fügen Sie diesen <void>im Ziel hinzu
Kehren Sie jetzt zu Ihrer Homepage zurück und Sie werden sehen, dass der Menüpunkt, den wir im Klick geändert haben, nirgendwohin führt
Willkommen bei Drupal Q & A. Es wäre sinnvoller, zu erklären, wie spezielle Menüelemente verwendet werden, anstatt nur ein Bild einzufügen. Sie können erwägen, Ihre Antwort zu verbessern. Vielen Dank.
Antworten:
Soweit mir bekannt ist, kann Drupal dies leider nicht sofort tun. Sie können jedoch das Modul Spezielle Menüelemente verwenden , um ein neues Menüelement zu erstellen und "nolink" in den Pfadeinstellungen zu platzieren.
quelle
l('linktext', '', array('fragment' => ' ', 'external' => TRUE));
die Antwort von @ Sebastian.<span title="" class="nolink">...</span>
. Problem ist nur das Fehlen von CSS. Kopieren Sie einfach dasul.menu a{}
CSS und fügen Sie es für einul.menu li span.nolink{}
. Es funktioniert gut für mich. Der Dropdown-Pfeil von wurde deaktiviertli.expanded
. :(jQuery("span.nolink").wrap("<a href='#'></a>");
Befolgen Sie die Angaben in einem Kommentar zur
l()
Dokumentation .Setzen Sie in Drupal 7 "HTML" auf
TRUE
und hängen Sie das Hash-Zeichen an.quelle
http://drupal.org/node/123103#comment-4955236
quelle
<front>#gohere
. Nett! :)Versuchen Sie, das Modul Void Menu zu verwenden :
Es ist eine sehr schöne Lösung!
quelle
Bin gerade auf das gleiche Problem gestoßen. Ich musste programmgesteuert Menüpunkte mit Hash-Links hinzufügen. Mein Code:
quelle
Einfach einstellen,
external
umTRUE
es für mich zu tun. Getestet in Druapl 7.32.l('Some Name', '#', array('external' => TRUE));
quelle
Die Verwendung von Drupals Übersetzungsfunktionen funktioniert ebenfalls.
quelle
Sie können mit dem obigen Code einen Hash-Link zum Menü hinzufügen.
quelle
quelle
Installieren Sie spezielle Menüelemente und das DHTML-Menü für hierarchische Menüs.
<void>
im Ziel hinzuquelle