bin absoluter Neuling bei Redaxo und habe auch gleich das erste Problem...
Habe eine Hauptnavigation mit 4 Ebenen - (Klappboxen rein css gesteuert). Dafür habe ich ein Template
mit folgendem Code verwendet:
- Code: Alles auswählen
<?php
echo '<ul id="navmenu-h">';
foreach (OOCategory::getRootCategories(1) as $lev1) {
$cat_typ = $lev1->getValue("cat_typ");
if($lev1->getId() != 1 AND $cat_typ == 1) {
echo '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
if(count($lev1->getChildren())>0) { $z = 0; $h = -27;
echo '<ul>';
foreach ($lev1->getChildren(true) as $lev2) { $z++; $h = $h+27;
echo '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
if(count($lev2->getChildren())>0) { $zz = 0; $hh = -27;
echo '<ul>';
foreach ($lev2->getChildren(true) as $lev3) { $zz++; $hh = $hh+27;
if($z > 1) {
echo '<li style="top:-'.$h.'px"><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a>';
} else {
echo '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a>';
}
if(count($lev3->getChildren())>0) {
echo '<ul>';
foreach ($lev3->getChildren(true) as $lev4) {
if($zz > 1) {
echo '<li style="top:-'.$hh.'px"><a href="'.$lev4->getUrl().'">'.$lev4->getName().'</a></li>';
} else {
echo '<li><a href="'.$lev4->getUrl().'">'.$lev4->getName().'</a></li>';
} }
echo '</ul>';
}
echo '</li>';
}
echo '</ul>';
}
echo '</li>';
}
echo '</ul>';
}
echo '</li>';
} }
echo '</ul>';
?>
Funktioniert auch wie gewünscht. Nur die Ladezeiten sind miserabel ... ca. 3-4 Sekunden.
Die 1. Ebene der Hauptnavigation besteht aus 7 Kategorien, die weiteren Unterebenen enthalten zunächst ca. 200 Kategorien. Denke doch nicht, dass es ein Problem sein sollte etwas über 200 Datensätze aus der Datenbank zu lesen und weiss nicht an welcher 'Schraube' ich drehen könnte um eine vernünftige Performance zu erzielen.
Lasse ich die 3. und 4. Ebene weg ist die Geschwindigkeit ok.
Dasselbe Phänomen tritt auch bei folgendem 'Sitemap Konstukt' auf:
- Code: Alles auswählen
<?php
$nav = rex_navigation::factory();
echo $nav->get(0,4,TRUE,TRUE);
?>
Lasse ich nur die Ebenen der aktuellen Kategorie anzeigen ist es wieder ok:
- Code: Alles auswählen
<?php
$nav = rex_navigation::factory();
echo $nav->get(0,4,FALSE,TRUE);
?>
Das ganze läuft zunächst nur lokal, sollte aber egal sein, da der Geschwindigkeitsunterschied zwischen
den geschilderten Varianten 'real' ist.
Weiss nicht wo ich den Hebel für den Tuner finde!
Wer kann mir Tipps geben??
Vielen Dank
krischna

