[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Universal-Navigation - Einstellungen ab 3ter Ebene
Seite 1 von 1

Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 20. Mär 2011, 00:15
von megpro
Moin,

es geht um http://www.redaxo.org/de/download/templ ... =&cat_id=2 diese Navigation.

Die benutze ich seit Jahren und habe sie in ca. 12 Webseiten in verschiedenen individuellen Szenarien im Einsatz. Inzwischen ist sie um Metaangaben erweitert und einige CSS-Klassen gewachsen. Insgesamt eine sehr gute und flexible Navigation, auf die ich nicht verzichten möchte.

ABER: was ich bis heute nicht wirklich verstanden habe ist die "Monster-Argumenten-Schlange"
Was eine Subnavi oder Breadcrumb ist, ist mir klar. aber welche Auswirkungen haben die Werte in der "Argumenten-Schlange" wenn man $navigation, $nav_main, $nav_sub, $nav_special, $sitemap oder $breadcrumbs wählt ??? Es geht dabei immer um die ersten drei werte der "Monster-Argumenten-Schlange".

Laut Anleitung eigentlich ganz einfach:

* $cid = ID der Kategorie, ab der die Navigation aufgebaut werden soll ("0" für Root)
* $level = Ebene, ab der die Navigation aufgebaut werden soll
* $levelDepth = Ebenentiefe ("0" für "bis zur letzten Ebene")

Aber so richtig logisch ist das nicht es funktioniert nicht wirklich.

Ich habs bisher immer hinbekommen, oft durch mehrere Tests aber an einer simplen Navi scheiter ich nun.

Es soll einfach nur eine Subnavi angezeigt werden, welche ab der dritten Ebene beginnt und auch dort endet. Die anderen Ebenen sollen nicht angezeigt werden. Unabhängig davon, in welcher Kategorie man sich befindet.

Was zum Geier muss man eingeben?

Und wenn jemand weiß wie es geht: sag mir bitte WARUM es so geht :?:

Freue mich auf Inspirationen....

Gruß Jens

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 19. Jun 2011, 12:16
von Oliver.Kreischer
Hi Jens,

versuche das mal so für die dritte Ebene:

print $nav_sub = generateNavigation($path[2], 0, 0, $clang, $path, 0, 0, 1, 1, 1, 1);

Das funktioniert bei mir. Was nicht funktioniert ist, dass die aktiven Navigationspunkte auchhervorgehoben werden. Das lisget evtl. an der Art wie Active abgefragt wird. Hast Du da zufällig etwas funktionierendes?

LG
Oliver

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 19. Jun 2011, 17:35
von Richard.Laing
hi
deine frage kann ich dir leider nicht beantworten, aber ich nutze generell nur noch die rex_navigations Factory und kann damit echt so ziemlich alles bauen was benötigt wird.
metainfo erweiterunf habe ich auch irgendwo hier im forum oder im wiki mal gesehen, geht wohl auch.

Code: Alles auswählen

<?php // PHP oberhalb von Html;?>
<?php $P = explode("|",$this->getValue("path").$this->getValue("article_id")."|"); $rexnav = rex_navigation::factory();?>

<?php // erste ebene ;?>
<?php echo $rexnav->get(0,1,FALSE,TRUE); ?>

<?php // zweite ebene ;?>
<?php echo $rexnav->get($P[1],1,FALSE,TRUE); ?>

<?php // dritte ebene ;?>
<?php if (isset($P[2]) && $P[2] > 0) echo $rexnav->get($P[2],1,FALSE,TRUE); ?>
gruß richy

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 19. Jun 2011, 20:41
von Oliver.Kreischer
Ok.

Hast mich übrzeugt. Danke!

Folgendes hatte mir gefehlt:

Code: Alles auswählen

if (isset($P[2]) && $P[2] > 0) 
Grüße ins Phantasialand :-)
Oliver

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 19. Jun 2011, 20:57
von Richard.Laing
jau damit hatte ich auch immer probleme aber dank gregor nicht mehr ;)
nächtle
der richy

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 24. Jun 2011, 13:26
von darwin
Hi...
hab da ne nebenfrage.
Ab der 2ten Ebene sollen die Unterpunkte der 3./4. ect
einfach mitaufgeklappt werden (wenn vorhande und online;)).
Ist das iwie möglich mit der rexnav?

Code: Alles auswählen

// funzt so leider nicht
$rex_navigation = '';
$rex_navigation .= $rex_nav->get(0,1,FALSE,TRUE);
$rex_navigation .= $rex_nav->get($path1,1,FALSE,TRUE);
if (isset($path1) && $path2 > 0) {
  $rex_navigation .= $rex_nav->get($path2,3,TRUE,TRUE);
} 
Danke. grz. Chris

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 24. Jun 2011, 13:41
von Richard.Laing
hi chris
sollte damit gehen

Code: Alles auswählen

<?php // PHP oberhalb von Html;?>
<?php $P = explode("|",$this->getValue("path").$this->getValue("article_id")."|"); $rexnav = rex_navigation::factory();?>

<?php if (isset($P[2]) && $P[2] > 0) echo $rexnav->get($P[2],5,TRUE,TRUE); ?>
ungetestet
gruß richy

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 24. Jun 2011, 13:47
von darwin
funzt... Danke.
grz. Chris

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 12. Dez 2012, 15:25
von Manuel.Schmöllerl
Danke für diese Tipps.
Das habe ich gerade benötigt, wie einen Bissen Brot :D

Beste Grüße
Manuel

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 11. Jul 2013, 03:50
von blueguide
Alles bauen mit der Nav Factory? Aber ich kann nichts bauen, was mir mehr als einen Standard-Artikel anzeigt, oder?

Leider umständlich gelöst in Redaxo, dass jeder Artikel in einer Kategorie stecken muss, um in der Navigation aufzutauchen :(

Momenten benutze ich dies, um die Unterkategorien der Haupt-Kategorien anzuzeigen:
<?php
$P = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
$rexnav = rex_navigation::factory();
echo $rexnav->get($P[1],-1,TRUE,TRUE);
?>
Und dies, um die Artikel anzuzeigen:
<?php
$cat = OOCategory::getCategoryById(REX_CATEGORY_ID);
$articles = $cat->getArticles(true); // Alle Artikel der Kategorie auslesen, die Online sind

if (count($articles) > 1) {
echo "<ul>";
for ($i = 0; $i < count($articles); $i++) {
if ($articles[$i]->getId() != $this->getValue("article_id")) {
echo "<li><a href=\"" . $articles[$i]->getUrl() . "\" target=\"_self\">" . $articles[$i]->getName() . "</a></li>";
} else {
echo "<li class=\"rex-current\">" . $articles[$i]->getName() . "</li>";
}
}
echo "</ul>";
}
?>
Aber wie bekomme ich es hin, dass zu den Artikeln jeweils die Kategorie mit ausgeben wird, praktisch beide Ausgaben optimal zu einer Navigation verschmelzen?

Leider verzweifelt...
Sandro

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 11. Jul 2013, 08:25
von darwin
HI...
in dem du Dir über: $cat = OOCategory::getCategoryById(REX_CATEGORY_ID);
den Kategorienamen rausholst:

Code: Alles auswählen

$cat = OOCategory::getCategoryById(REX_CATEGORY_ID);
$catid   = $cat->getId();
$catname = $cat->getName();

$cat_out = '<li><a href="'.rex_getUrl($catid, $REX['CUR_CLANG']).'">'.$catname.'</a></li>';
echo $cat_out;
# ungetestet
 
grz. Chris

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 11. Jul 2013, 12:32
von blueguide
Hallo Darwin,

ja, den aktuellen Namen der aktuellen Kategorie habe ich auch schon gefunden und gebe den aus, das geht. Aber ich kriege es nicht hin, dass ich wie im Standard-Rex-Navigation-Factory die Kategorien sehe ($rexnav2->get($P[1],3,TRUE,TRUE)) und die mit den Artikeln verbinden, also das beste aus beiden Welten habe.

Ich würde gern die Artikelausgabe so anpassen, dass er zudem noch die Kategorien drüber anzeigt.

Habs jetzt erstmal getrennt gelöst, aber optimal ist das nicht:
http://www.wp10630607.server-he.de/natu ... ueten.html

Ciao,
Sandro

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 11. Jul 2013, 12:44
von darwin
Hi,
wenn ich Dich richtig versteh, möchtest du:

1. Die Kategorie als Navi-Titel
2. Die Kategorie als Navigations-Element (Ebene 1)
3. Die Artikel der aktiven Kategorie als Baum darunter (Ebene2)

zusätzlich noch über jeder Artikel-Ausgabe (Contentbereich)
als (z.B. H1) den aktiven Artikel bzw. Kategorienamen

:?:

grz. Chris

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 11. Jul 2013, 13:27
von blueguide
Ja richtig, das wäre optimal. Der Code von oben ist unverändert aktiv :)

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 11. Jul 2013, 14:31
von darwin
HI...
sowas in der Art:

Code: Alles auswählen

# Cat als Titel
$cat = OOCategory::getCategoryById(REX_CATEGORY_ID);
$cname = $cat->getName();
echo '<h1>'.$cname.'</h1>';


# Navi
$cat_childs = OOCategory::getChildrenById(DEINE ROOT CAT ID, $ignore_offlines = false, $clang = false); # DEINE ROOT CAT ID: Hier die ID von Naturheilkunde

echo '<ul class="categories">';
foreach($cat_childs as $cat_child)
{
    $catname = $cat_child->getName();
    $catid   = $cat_child->getId();
    $articles = $cat_child->getArticles(true);
    
    echo '<li><a href="'.rex_getUrl($catid).'">'.htmlspecialchars($catname).'</a>';
    
    if(count($articles) > 1)
    {
        echo '<ul class="articles">';
        foreach($articles as $art)
        {
            if ($art->isStartArticle())
                continue;
            
            if ($art->getId() == REX_ARTICLE_ID)
                continue;
                
            $artid = $art->getId();
            $artname = $art->getName();
        
            echo '<li><a href="'.rex_getUrl($artid).'">#### '.htmlspecialchars($artname).'</a></li>';
        }
        echo '</ul>';
    } 
    echo '</li>';

}
echo '</ul>';

# ungetestet
grz. Chris

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 11. Jul 2013, 15:07
von blueguide
Wow, das ist schon nahezu perfekt! Super.

Nur, wie kriege ich die Kategorie-Nummer automatisch da rein?
$catnr = OOCategory::getCategoryById(REX_CATEGORY_ID);
$root_cat = OOCategory::getChildrenById($catnr, $ignore_offlines = false, $clang = false);
geht nicht. Ich bin leider kein PHP-Mensch und verstehe nicht, warum was an einer Ecke geht und an der anderen nicht. Und ist es möglich in die Artikel nur tiefer rein zu gehen, wenn es die aktuellen sind?

Danke!
Sandro

Re: Universal-Navigation - Einstellungen ab 3ter Ebene

Verfasst: 11. Jul 2013, 15:15
von darwin
HI,
mit getChildrenById werden die UnterKategorien einer bestimmten Kategorie rausgeholt. (via ID).
Wenn du dies nun dynamisch habne möchtest, könntest du über die getRootCategories gehen und
abchecken ob Unterkategorien (getChildren()) vorhanden sind ... schau Dir einfach mal
die verschiedenen Navi Templates im Donwloadbereich durch.. da kannste Dir sicherlich dein
eigenes Script zusammen schustern.

grz. Chris