Main Menü - # -> %23 Anker
Eingetragen von Laerik (3)
am 02.10.2014 - 14:27 Uhr in
am 02.10.2014 - 14:27 Uhr in
Moin,
ich arbeite aktuell an einem Theme für Drupal und möchte ein responsives Menü mit CSS umsetzen, dazu fehlt mir im Hauptmenü ein "Navigation schließen" Eintrag, den ich gerne über die template.php hinzufügen möchte.
Dazu muss der Eintrag mit "#anker" verlinkt werden.
Mein Ansatz:
<?php
function MYTHEME_links__system_main_menu($variables) {
$link = url('', array('fragment' => '#anker', 'external' => true));
$variables['links']['close'] = array(
'href' => $link,
'title' => 'Close nav'
);
return theme_links($variables);
}
?>
Mein problem ist nun, dass "#" immer gegen %23 ersetzt wird.
Ich habe schon etwas herumgesucht, bin aber bisher nur auf die Funktionen url() und l() gestoßen.
Vielleicht kann mir ja hier jemand helfen.
- Anmelden oder Registrieren um Kommentare zu schreiben
<?php$link = url(URL'',
am 09.10.2014 - 07:27 Uhr
<?php
$link = url(URL'', array('fragment' => 'anchor'));
$variables['links']['close'] = array(
'href' => $link,
'title' => 'Close nav'
);
?>
Dokumentation "l"
Dokumentation "url"
Den "#" benötigst Du hier nicht, dieses wird auch in der API beschrieben:
'fragment': A fragment identifier (named anchor) to append to the URL. Do not include the leading '#' character.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Hallo, geht leider
am 09.10.2014 - 16:00 Uhr
Hallo,
geht leider nicht:
<?php
function len2_links__system_main_menu($variables) {
// add close link
$link = url(null, array('fragment' => 'main-menu', 'external' => true));
$variables['links']['close'] = array(
'href' => $link,
'title' => '↑ Navigation schließen'
);
return theme_links($variables);
}
?>
Ah mom, probiers mal
am 09.10.2014 - 16:15 Uhr
Ah mom, probiers mal folgendermaßen
<?php
$variables['links']['close'] = array(
'href' => '',
'title' => '↑ Navigation schließen',
'fragment' => 'FRAGMENT',
);
return theme_links($variables);
?>
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Danke Sense, das
am 09.10.2014 - 16:23 Uhr
Danke Sense, das funktioniert.
Aber wieso geht es mit der url Funktion nicht? Diese wird einem überall empfohlen.
theme_links() verwendet durch
am 09.10.2014 - 18:23 Uhr
theme_links() verwendet durch die l() Funktion die url() Funktion. Somit ist dort bereits alles vorhanden und einen href benötigst Du ja eigentlich nicht
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.