Menü individuell platzieren
am 17.05.2008 - 11:56 Uhr in
Hallo ich habe ein Menü erstellt und möchte das links neben meinem Inhaltstext floaten lassen. Ich habe das garland theme als Ausgangstheme verwendet und wenn man dort ein Menü für den Content konfiguriert erscheint das immer untendrunter.
wo kann ich das einzelne Menü einfügen?
momentan fällt mir nichts ein, außer das in der page.tpl.php zu machen
<div id="inhalt">
<?php
if (arg(1) == '23') {print '
<ul class="contentnavi"> /*ab hier müsste meine Funktion rein, momentan ist es einfach nur händisch eingefügt*/
<li><a href="/drupal/node/23">Webdesign</a></li>
<li><a href="/drupal/node/5">Corporate-Design</a></li>
<li><a href="/drupal/node/7">Usability</a></li>
<li><a href="/drupal/node/8">Flash</a></li>
</ul>
';}?>
<div class="newscontent">......Ist eine dilettantische Frage, ich weiß, aber hat jemand ein stichwort für mich?
- Anmelden oder Registrieren um Kommentare zu schreiben

Also ich habe solche
am 17.05.2008 - 12:51 Uhr
Also ich habe solche Menüverschiebungen immer unter der Blockverwaltung gemacht und das Menü einfach dahin geschoben, wo ich es hinhaben wollte. Wenn dein Theme dort wo du das Menü haben willst, keine Region anbietet, dann die noch hinzufügen oder ein anderes Theme verwenden.
Oder hab ich dich falsch verstanden?
hm...für mich ist es
am 18.05.2008 - 17:43 Uhr
hm...für mich ist es schwierig meine Frage zu formulieren.
Ich habe ziemlich genaue Vorstellungen von meinem Layout, es ist streng vorgegeben. Von daher bekomme ich es durch blosses Verschieben in der Block/Menüverwaltung so nicht hin.
Ich habe ein Div Tag in meiner Page.tpl.php und innerhalb diesem Div Tag soll mein Menü erscheinen. Momentan ist es ausserhalb, und damit an der falschen Stelle.
Wenn ich mit dem Devel arbeite zeigt er mir block.tpl.php an. Nur diese Block.tpl ist so wie ich es verstanden habe, auch für andere Blöcke zuständig, zum Beispiel Sidebar. ich möchte aber nur das eine Menü verschieben.
Ich suche also die exakte Stelle (welche datei,welche variable ist dafür verantwortlich), an der ich das Menü verschieben kann.
PS: mein eigenes Theme stammt von garland, das ich nach und nach verändere.
Ich habe das bei mir so wie
am 18.05.2008 - 20:17 Uhr
Ich habe das bei mir so wie von JThan beschrieben gemacht. Eigentlich müsste das ganze also mit Blöcken funktionieren. Dazu musst du doch nur einfach in der template- bzw. info-Datei eine Region für die Stelle definieren, an der du dein Menü haben möchtest. Diese Region fügst du in die page-Datei ein. Dann erstellt du mittels Blockverwaltung für diese Region einen neuen Block mit deinem Menü. Bei mir hat das jedenfalls so ohne Probleme geklappt.
region definieren
am 19.05.2008 - 07:31 Uhr
ok danke es funktoniert noch nicht....
zu region definieren gibts hier viel im Forum. Dementsprechend habe ich in meine Template.php folgendes (ab)geschrieben:
<?php
function themename_regions() {
return array(
'contentnavi' => t('contentnavi'),
);
}
?>
eine neue Region taucht aber in der Blöcke verwaltung nicht auf.
In die page.tpl.php habe ich an entsprechender Stelle dann das geschrieben:
<?phpif ($contentnavi): print '<div class="contentnavi">'. $contentnavi .'</div>'; endif;
?>
Wie macht man das richtig???
edit: wird das bei drupal 6.1 in der template.php festgelegt(oder nur überschrieben)? Weil da standen auch nicht die Standardregionen)
Regionen werden in drupal 6
am 19.05.2008 - 09:08 Uhr
Regionen werden in drupal 6 in der themename.info des Themes deklariert. und dann wie in drupal 5 in der page.tpl als $regionname ausgegeben bzw zur Verfügung gestellt.
Aber ich glaube du willst eine Menü in den Node haben wie ich es richtig verstehe, da du es den Content zu gewiesen hast, aber dann das menü nur unterhalb des Inhalts ist was du nicht möchtest anscheind.
in drupal 5 kann man eine Region auch in den Node zur Verfügung stellen. ob es in dru 6 geht hab ich noch nicht getestet. aber ein versuch wäre es wert http://www.tobiasbaehr.de/tipps-und-tricks/region-innerhalb-eines-nodes-...
----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/
ok ich habe es rausgefunden.
am 19.05.2008 - 09:11 Uhr
ok ich habe es rausgefunden. Ich hab es alles in die .info datei reingeschrieben:
regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
regions[contentnavi] = contentnavi /*das ist die zusätzliche region*/
vorher standen gar keine regions drin. Mich hat erst irritert das er die regions automatisch ins deutsche übersetzt.
Und man muss den cache leeren: Verwalten>Einstellungen> Leistung - damit es auch angezeigt wird.
Spartacus schrieb
am 19.05.2008 - 12:19 Uhr
Aber ich glaube du willst eine Menü in den Node haben wie ich es richtig verstehe, da du es den Content zu gewiesen hast, aber dann das menü nur unterhalb des Inhalts ist was du nicht möchtest anscheind.
ja genau, ich dachte erst, es hätte geklappt, und es wäre nur noch zu formatieren im CSS . Aber jetzt ist das Menü über dem Inhalt statt drunter und sie sind mmer noch getrennt.
Weis nicht ob dein tutorial dafür geht wenn ich doch die regionen in der info und nicht in der template datei definiert werden.
bin ratlos wie ich das hinbekommen soll ich habe auch noch andere tutorials gesehen aber die gehen nur für version 5. Hat vielleicht einer einen Ratschlag, vielleicht auch einen alternativen Vorschlag?
Wenn Dein Menu nur bei
am 19.05.2008 - 14:10 Uhr
Wenn Dein Menu nur bei bestimmten Inhalten links neben dem Hauptinhalt erscheinen soll dann ist es zunaechst die Frage ob man ohne zusaetzliche Region eine loesung finden kann.
Ich denke ja.
Denkbar waere ein extra Nodetemplate fuer die Inhalte mit dem "Linken Menue". In diesem Template koennte man in diesem Codebereich
<div class="content"><?php print $content; ?>
</div>
Platz schaffen fuer das "Linke Menue". Einfach die Klasse content umbenennen damit man per CSS rankommt.
---------------------------------------------------------
Ausgehend von der bereits definierten zusaetzlichen Region musst Du den Div mit der Klasse "content" (in der node.tpl.php definiert) floaten. Dadurch steht das Menue nicht mehr oberhalb des Maincontent.
Bedenke aber das Du eventuell nach solch einem float ein zusatzliches clear benoetigst damit sich der nachfolgende Inhalt nicht verschiebt.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.