Blöcke, Theme und das Menu
am 02.06.2008 - 06:10 Uhr in
Hallo!
Ich habe mich den ganzen letzten Abend damit herumgeschlagen - ohne Ergebnis. Ich hoffe das es funktioniert und mir jemand verraten kann WIE ;)
Ich habe mir für die Ausgabe meiner Primary-Links einen Block angelegt (block-menu-primary-links.tpl.php) und im Admin-Panel ein Menü mit Hauptlinks erstellt.
Die Ausgabe der soeben erstellten Primarylinks funktioniert in der page.tpl mit folgendem Code wunderbar:
<?php
if (isset($primary_links)) :
?>
<?php
print theme('links', $primary_links, array('class' => 'links primary-links'))
?>
<?php
endif;
?>
Allerdings funktioniert der selbe Code nicht in der dafür angelegten block-menu-primary-links.tpl.php
Mit folgendem Code erhalte ich ein Ergebnis, mit dem ich aber nicht zufrieden bin:
<?php
print $block->module .'-'. $block->delta;
?>
<?php
print $block->module
?>
<?php
print $block->content
?>
Das Ergebnis ist eine Liste mit meinen Primarylinks.
Soweit eig. ganz gut aaaber ich möchte keine Auflistung sondern die Darstellung der Menüpunkte selbst bestimmen z.B. in einer Tabelle mit Hover-Effekt.
Wie bekomme ich es also hin, dass ich im Block-Template block-menu-primary-links.tpl.php ein Array mit meinen Primary- (und evtl. Secontary-)links habe?
Vielen Dank für die Hilfe!
Lieben Gruß
Christian
- Anmelden oder Registrieren um Kommentare zu schreiben
um es besser
am 02.06.2008 - 08:16 Uhr
um es besser auszudrücken..
wo und wie lege ich das aussehen von $block->content fest?
Huch
am 02.06.2008 - 08:47 Uhr
Ohne hier der grosse Programmierer vor dem Herrn zu sein - da musst du dann noch etwas tiefer ansetzen. Finde heraus, an welcher Stelle die ungeordnete Liste erzeugt wird und schreib dir ein kleines Modul. Das Problem dürfte sein, dass man fürs Menü keine menu.tpl.php schreiben kann.
Aber warum willst du es denn als Tabelle ausgeben (Pfui). Mit der ungeordneten Liste lassen sich m.E. sämtliche noch so verrückten Formatierungswünsche umsetzen. Ist leider ein bisschen die hohe Schule des CSS (soll heissen ich finde Listen das schwierigste überhaupt, bis man die Verschachtelung mal begriffen hat). Aber guckstu hier was alles geht und vor allem wie: http://css.maxdesign.com.au/listamatic/ (oben im horizontalen Menü gibts noch mehr Listen, floats und wasnichalles)
Wegen der Menüs in Tabellen bin ich wirklich versucht zu sagen: wir sind doch nicht bei Joomla.
Grundsätzlich möglich sollte es aber sein. Die Menüpunkte werden ja schliesslich als Array ausgegeben, und das kann man natürlich auch in ne Tabelle rendern.
Drupal - too unorganised to be a system
danke für die Hilfe!! das
am 02.06.2008 - 13:31 Uhr
danke für die Hilfe!!
das mit der Tabelle ist so seine Sache.
Leider wird es im Block nicht als Array ausgegeben sondern als fertig formatierter HTML-Code. :(
Was hat es denn mit der template.php auf sich? Da kann man doch Funktionen neu definieren, oder? Ich nutze übrigens Drupal 6. Vllt gib es da sogar eine elegantere Lösung?
Ich könnte natürlich mein Menü auch in die page.tpl schreiben - das wäre überhaupt kein Problem.. aber wenn ich alles in EINE File schreibe, brauch ich kein CMS mehr!
Wo sich bei mir die Geister scheiden ist, warum kann ich in der page.tpl folgenden Code nutzen, nicht aber in der Block(...).tpl??
<?php
if (isset($primary_links)) :
?>
<?php
print theme('links', $primary_links, array('class' => 'links primary-links'))
?>
<?php
endif;
?>
ach ich verzweifel grad :(
Falls du weiter nach einer
am 02.06.2008 - 16:25 Uhr
Falls du weiter nach einer Lösung mit Programmier-Mitteln suchst hilft dir evt. diese Funktion weiter:
http://api.drupal.org/api/function/theme_menu_tree/6
Allerdings kommt mir das wie mit Kanonen auf Spatzen schiessen vor. Denn auch wenn die Ausgabe in
block-menu-primary-links.tpl.php kein Array ist sondern HTML, hast du doch über CSS alle
Formatierungsmöglichkeiten offen.
Benutzt du Firebug? Damit kannst du die CSS Eigenschaften zurückverfolgen und Änderungen testen.
Nicht verzweifeln...
:)
hey danke! über die api bin
am 02.06.2008 - 17:03 Uhr
hey danke! über die api bin ich gestern auch schon gestolpert.. aber irgendwie will das mit der template.php datei bei mir net.. bin dafür wohl zu doof.. egal was ich für ein tutorial probiere.. klappt net... und am drupalscript rumschrauben will ich absolut net!!
also.. ich schreibe in die template.php folgendes:
<?php
function phptemplate_theme_menu_tree($tree) {
print 'Jetzt kann ich hier scripten was ich will, aber...';
print '<ul class="menu">'. $tree .'</ul>';
}
?>
... es funktioniert aber net :(
zu dem css.. tolle erfindung.. ehrlich.. vorallem diese Browserweichen ^^ aaaber ich bin beruflich eig. Grafiker und mir wird nachgesagt etwas zu anspruchsvoll zu sein.. und ich hab mir da was überlegt, das ich mit der jetzigen Ausgabe und CSS leider nicht lösen kann.. (java will ich an dieser stelle aaaabsolut net einsetzen!)
ohman ists bei euch auch so warm??