Wie kann man bestimmte Node-Links als Dropdown darstellen? Doppelte verschachtelung..
am 20.08.2010 - 11:13 Uhr in
Hallo Leute,
ich möchte bei meinen Node-Links (Add comment, Read more,...) nochmals eine Verschachtelung einfügen.
Und zwar hätte ich dort gerne einen Link, der dann eine Dropdown öffnet. Stelle mir das so wie bei Digg vor -> Screenshot.
Damit das richtig funktioniert brauchen die ausklappbaren Links nochmals eine LI-Struktur unter sich.
Beispiel:
<ul class="links inline">
<li class="comment_comments first">
<a href="xxx" title="Jump to the first comment of this posting.">3 comments</a>
</li>
<li class="node_read_more">
<a href="xxx" title="Read the rest of XXX">Read more</a>
</li>
<!-- Hier folgt der "Drop-down"-Link. Neben dem Anchor sind die anderen Links als Liste drin. -->
<li class="admin last">
<a href="xxx" class="dropdown-link">Admin</a>
<ul class="links">
<li class="0 first">
<a href="xxx">Unpublish</a>
</li>
<li class="1 last">
<a href="xxx">Delete</a>
</li>
</ul>
</li>
</ul>
Momentan habe ich das wie folgt gelöst:
1) In meinem Modul verwende ich hook_link und füge den Link + Unterlinks hinzu. Die Unterlinks füge ich als Array hinzu.
$links['admin'] = array(
...
);
$links['admin']['unpublish'] = array(
...
);
$links['admin']['delete'] = array(
...
);
2) Und im Template überschreibe ich dann theme_links. Hier extrahiere ich einfach die verschachtelten Links und rufe für diese nochmals theme_links auf
// Füge verschachtelte Links hinzu. Falls vorhanden
foreach($link as $elem_key => $element) {
if(is_array($element) && $elem_key !== 'attributes') {
$inner_links[] = $element;
}
}
if(!empty($inner_links)) {
$output .= theme('links', $inner_links);
}
Es funktioniert zwar, aber mir kommt die Lösung einfach nicht richtig vor. Habt ihr einen anderen Vorschlag? Wie wäre der Drupal-Way?
- Anmelden oder Registrieren um Kommentare zu schreiben
Das würde ich rein über
am 20.08.2010 - 12:44 Uhr
Das würde ich rein über Theming lösen, d.h. ohne Modul.
Mir fehlt gerade die Zeit zum Erklären, aber schau dir mal Mortens ausführliches Tutorial zu $links an: http://morten.dk/blog/links-garbage-can-nodetpl
danke aschiwi. Habs jetzt
am 30.08.2010 - 14:06 Uhr
danke aschiwi. Habs jetzt über das Theme gelöst!