rex_navigation::factory()

Wie verwendet man Templates oder erstellt Navigationen und passt diese an.

Beitragvon iceman-fx » 30. Apr 2009, 21:52

I.d.R. mache ich es auch nur über ul - li - a.
Aber wenn man doch mal es genau definieren will/muss, wird es schwierig, da man kein zusätzlichen Identifikationsattribut einsetzen kann.

Hierbei wäre es gut, wenn einfach eine fortlaufende Nummer unter Einbeziehung der Ebene hinterlegt werden würde (z.B. 0_1, 0_2 ...1_1, 1_2...).
iceman-fx
 
Beiträge: 397
Registriert: 13. Feb 2007, 15:16
Wohnort: Sachsen ;-)

Beitragvon Oliver.Kreischer » 4. Mai 2009, 09:45

Guckt mal hier:

So kann z.B. nur die 4. Ebene angezeigt werden:

Code: Alles auswählen
$P2 = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
if(isset($P2[3]) && (int) ($P2[3]) != 0)
{
$subnavigation_rechts = rex_navigation::factory();
echo $subnavigation_rechts->get($P2[3],1,TRUE,TRUE);
}


Vielen Dank an Markus!

LG
Oliver
http://kreischer.de - "It's very simple - you read the protocol and write the code." - Bill Joy
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Beitragvon ralf.schlott » 7. Mai 2009, 13:51

Danke Oliver. Das bringt einen weiter.

Weiss jemand, ob diese Navigation auch mit Artikeln erweitert wird?

Gruss
Ralf
Benutzeravatar
ralf.schlott
 
Beiträge: 426
Registriert: 5. Dez 2007, 20:22
Wohnort: Hamburch

Menü anlegen in Redaxo - nur etwas für Coder?

Beitragvon ThomasS » 9. Mai 2009, 11:41

Hallo,

ich wünsche mir (träum...) von Redaxo, dass es irgendwann möglich ist, ganz leicht im Backend mehrere getrennte Navis anzulegen (wie das z.B. auch bei Joomla, Typo ligt, Typo3 usw. ganz einfach geht und von jedem Backendnutzer ohne Programmiererfahrung erledigt werden kann.

Am geschicktesten wäre es natürlich, wenn man auch Zwischenüberschriften gleich im Backend eingeben könnte... oder wenn man bei den Links angeben könnte, ob sie in neuem Fenster öffnen, ob sie externe Links sind usw... träum...

Momentan habe ich schon ein Problem, wenn ich z.B. in der linken Spalte mehrere verschiedene Menüs anlegen will (die Untermenüs sollen beim Anklicken aufklappen können):

Erstes Menü Überschrift: Autos
Hauptlink 1: VW
Untermenü: Käfer
Untermenü : Golf
Hauptlink 2: Mercedes
Untermenü: SKlasse
Untermenü: SLK

Zweites Menü (in anderer Farbe!), Überschrift: Tiere
Hauptlink 1: Bären
Untermenü: Teddybären
Untermenü: Schwarzbären
Untermenü: Koalas

Usw.

Gibt es dafür eine relativ einfache Lösung für das neue R4.2, also ohne allzuviel herumprogrammieren zu müssen (dafür ist ein CMS ja eigentlich gedacht: Inhalte ohne Programmieren verwalten zu können...)?

Vielen Dank
und viele Grüße
Thomas
ThomasS
 
Beiträge: 131
Registriert: 12. Apr 2007, 11:53
Wohnort: Friedberg

Beitragvon ralf.schlott » 11. Mai 2009, 09:02

Das mit den Überschriften ist eine interessante Frage. Vielleicht gibts ja eine Idee?

Man müsste doch nur zur Hauptkategorie einen Titel angeben. Die Unterkategorien orientieren sich an dieser Oberkategorie dann.
Aber es ist halt auch Programmieren, daran wirst du nicht drumrum kommen...
Da kannst aber auch einfach für die Oberkategorie "Autos" den ersten Artikel Autos nennen und als Überschrift ausgeben...

Gruss
Ralf
Benutzeravatar
ralf.schlott
 
Beiträge: 426
Registriert: 5. Dez 2007, 20:22
Wohnort: Hamburch

Beitragvon Havard » 11. Mai 2009, 13:04

Oliver.Kreischer hat geschrieben:Guckt mal hier:

So kann z.B. nur die 4. Ebene angezeigt werden:

Code: Alles auswählen
$P2 = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
if(isset($P2[3]) && (int) ($P2[3]) != 0)
{
$subnavigation_rechts = rex_navigation::factory();
echo $subnavigation_rechts->get($P2[3],1,TRUE,TRUE);
}


Vielen Dank an Markus!

LG
Oliver


Was muss ich genau ändern, wenn ich nur die erste, zweite oder dritte ebene etc. angezeigt bekommen will?
Und wie geht man am besten mit dem CSS vor? Muss der Code trotzdem noch von einem div-Tag umgeben werden?

Danke für eure Hilfe!!
Lieben Gruß
Havard
 
Beiträge: 156
Registriert: 20. Jan 2005, 18:59

Beitragvon darwin » 12. Mai 2009, 11:14

*idee in die Runde werf* ...

Könnte man die rex_navigation nicht auch mit
den MetaInfos kombinieren (ähnlich wie in Rex4.1 >> thread)
um die Navi/Punkte zu platzieren ... (included als navi template).

MetaInfo-Param:
0: | 1:Hauptmenü | 2:Metamenü | 3:Footer | 4:Sidebar | 5:Breadcrump

Feldtyp: select
Feldattribute: multiple=multiple
Standardwert: 0 = wird nie angezeigt

Ansatz von Thomas.Blum


oder is das in der 4.2 eher überflüssig?

grz.Chris
Benutzeravatar
darwin
 
Beiträge: 1261
Registriert: 2. Jan 2007, 16:10
Wohnort: LA

Wie teste ich ob aktuelle Kategorie leer ist?

Beitragvon hriess » 12. Mai 2009, 20:58

Hallo zusammen,

habe folgendes Problem mit 4.2 und rex_navigation.
Oben in der waagerechten Navigation wird die 1. Ebene angezeigt. Bei Klick wird dann rechts die 2. Ebene der aktuell gewählten Kategorie angezeigt. Das klappt auch ganz gut. Mein Design ist aber so gebaut, das die rechte Navigation unten abgerundet ist.

Hier der Link zu Projekt: http://rcg.inmediariess.de

Aktuell sind Start und Treffpunkt leer, ich sehe aber trotzdem den Abschluss der Navigation. Was nicht sein soll.

Wie fange ich das ab?

Templatecode rechte Navi:
Code: Alles auswählen
<?php

$cat = OOCategory::getCategoryById($this->getValue('category_id'));
$tree = $cat->getParentTree();
$id = $tree[1]->getId();

if($id>=4) {

$subnav = rex_navigation::factory();
$subnav->setClasses(array('sub1', 'sub2'));

?>
        <div id="navListe">
<?php
echo $subnav->get($id,1,FALSE,TRUE);
?>
        </div>
        <div id="eckeRechts"></div>
        <div id="eckeLinks"></div>
<?php

}

?>

Viele grüße Holger
hriess
 
Beiträge: 3
Registriert: 12. Mai 2009, 20:08

Beitragvon Richard.Laing » 13. Mai 2009, 06:43

Hi Holger

versuch da mal,

Code: Alles auswählen
      <div id="naviRechts">
<?php if ($subnav != "" ){ ?>
        <div id="navListe">
        </div>
        <div id="eckeRechts"></div>
        <div id="eckeLinks"></div>
<? } ?>

      </div>


das nur was angezeigt wird, wenn auch was in der variable $subnav drinn ist.

gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de
Benutzeravatar
Richard.Laing
 
Beiträge: 2109
Registriert: 27. Aug 2005, 23:55
Wohnort: Brühl / Rheinland

Beitragvon hriess » 13. Mai 2009, 18:38

Richard.Laing hat geschrieben:Hi Holger

versuch da mal,

Code: Alles auswählen
      <div id="naviRechts">
<?php if ($subnav != "" ){ ?>
        <div id="navListe">
        </div>
        <div id="eckeRechts"></div>
        <div id="eckeLinks"></div>
<? } ?>

      </div>


das nur was angezeigt wird, wenn auch was in der variable $subnav drinn ist.

gruß richy

Hallo Richy,

nein das hilft nicht, weil der Inhalt der Variable in jedem Fall "Object" ist. Ich muss aber dazu sagen mein Wissen über php steckt noch sehr tief in den Kinderschuhen. Lasse die Variable jetzt anzeigen.
http://rcg.inmediariess.de

Auch die Frage:
Code: Alles auswählen
if ($subnav == "Object")

ist immer wahr. Ist auch logisch, weil das Wort "Object" immer angezeigt wird.

Gruß Holger
hriess
 
Beiträge: 3
Registriert: 12. Mai 2009, 20:08

Beitragvon Richard.Laing » 13. Mai 2009, 19:22

hmm...
habe gerade mal auf deiner seite geschaut, ist doch so wie du es wolltest?

gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de
Benutzeravatar
Richard.Laing
 
Beiträge: 2109
Registriert: 27. Aug 2005, 23:55
Wohnort: Brühl / Rheinland

Beitragvon hriess » 13. Mai 2009, 20:05

Richard.Laing hat geschrieben:hmm...
habe gerade mal auf deiner seite geschaut, ist doch so wie du es wolltest?

gruß richy


Hallo Richy,

hatte eigentlich kurz darauf hier die Lösung gepostet. Hauptsache es kommt jetzt nicht doppelt.

Habe in der Class nachgeschaut und daraus folgende Lösung gebastelt und deshalb funktioniert es auch so, wie ich es wollte. :-)
Code: Alles auswählen
<?php

$cat = OOCategory::getCategoryById($this->getValue('category_id'));
$tree = $cat->getParentTree();
$id = $tree[1]->getId();
$nav_obj = OOCategory::getChildrenById($id, $ignore_offlines);

if($id>=4) {
$subnav = rex_navigation::factory();
$subnav->setClasses(array('sub1', 'sub2'));

?>
        <div id="navListe">
<?php

echo $subnav->get($id,1,FALSE,TRUE);

?>
        </div>
<?php

  if (count($nav_obj)>0) {

?>
        <div id="eckeRechts"></div>
        <div id="eckeLinks"></div>
<?php
  }
}
?>

Vielen Dank noch mal Holger
hriess
 
Beiträge: 3
Registriert: 12. Mai 2009, 20:08

Beitragvon Pio » 18. Mai 2009, 17:42

Hallo zusammen,

ich habe mir mit der rex_navigation jetzt eine Hauptnavi und eine Sitemap gebaut. Mein Problem ist nun das der HTML-Code auf der Sitemap-Seite nicht mehr valide ist, denn ich habe nun im Code zweimal id="rex-article-2"... stehen.

Kann ich die id´s auch irgendwie anders benennen, so wie es bei den classes funktioniert?

es wäre schön, wenn es sowas wie
Code: Alles auswählen
$nav->setID(array('lev1', 'lev2', 'lev3'));

geben würde. Oder gibt es eine andere Möglichkeit validen Code über rex_navigation zu bekommen?

Gruß Pio
Was passiert eigendlich, wenn sich eine Giftschlange auf die Zunge beißt?
Pio
 
Beiträge: 5
Registriert: 10. Dez 2008, 20:20

Hilfe bei Navi

Beitragvon DNDDE » 27. Mai 2009, 22:54

Ola,

ich habe mir jetzt den Thread bestimmt hundert mal durchgelesen, verstehe es aber immer noch nicht.

Also meine Anforderung:

TOP-Navigation die nur die 1 Kategorieebene anzeigt
Rechte Navigation die nur die Kategorien der 2. Ebene anzeigt in Abhängigkeit dem selektierten in der der TOP-Navigation.

Außerdem möchte ich gerne als Footernavigation Artikel direkt im Root ausgeben. Gibt es da möglichkeiten?

Achso, meine Navi ist ein per DIV, UL, LI formatiert. TOP-Navi und Rechte Navi sowie Footer unterscheiden sich hier.
Benutzeravatar
DNDDE
 
Beiträge: 87
Registriert: 23. Aug 2006, 08:57

Beitragvon Richard.Laing » 28. Mai 2009, 06:23

hi dndde

dafür mußst du nicht die neue navi nehmen, die YAMEL nav sollte genau das sein was du suchst.

http://www.redaxo.de/168-0-templatedetails.html?template_id=24

gerne kannst du auch die neue nav nehmen.

top_navi:

Code: Alles auswählen
<div id="top_navigation">
<?php
// navigation generator erstellen
$nav = rex_navigation::factory();
// ---------- TOP NAVIGATION
$category_id = 0; // Beginne in der Wurzelkategorie
$depth = 1; // 1 Ebene Tief
$open = FALSE; // Nicht aufklappen (hier egal da nur 1 Ebene)
$ignore_offlines = TRUE; // Offline ausblenden
echo $nav->get($category_id, $depth, $open, $ignore_offlines);
?>
</div>


unter nav der aktuellen kategorie:

Code: Alles auswählen
<div id="rechte_navigation">
<?php
// navigation generator erstellen unternav bis zur 3ten ebene 
$P = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
$nav2 = rex_navigation::factory();
echo $nav2->get($P[1],3,FALSE,TRUE);
?>
</div>


die rootartikel kann man wohl nicht mit der neuen navi auslesen. hier müßte dann eine php abfrage erstellt werden, die die root artikel als schleife ausgibt. (ich bin kein progger) bitte mal im forum suchen.

gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de
Benutzeravatar
Richard.Laing
 
Beiträge: 2109
Registriert: 27. Aug 2005, 23:55
Wohnort: Brühl / Rheinland

VorherigeNächste

Zurück zu Templates/Navigationen [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste