Seite 1 von 1

Org. 4fb 4.8.x Navi ab 4. Unterkategorie Problem???

Verfasst: Mi 28. Jan 2009, 12:10
von yodatortenboxer
Hallo,

ich wollte eben einmal das Original Hauptnavi-Modul der 4.8.x so umsetzen, das man eine max. Ebenenanzahl in der Tiefe angeben kann. Momentan geht es ja nur bis zur 3. Ebene. In einem anderen Beitrag wurde dies schon bis zur 4. Ebene umgesetzt.

Nun aber mein Problem:
Ich habe erst einmal zum Testen die Ebenen bis in die 7. Unterkategorie erweitert um hinter das System zu steigen. Das scheint eingentlich auch so zu funktionieren, mir wird aber immer, egal was ich nun noch mache, die Unternavi nur bis zum max 4. Ebene angezeigt.

Dann habe ich mir um das Problem zu lösen unter anderem die verwendete Klasse Contenido_FrontendNavigation.class.php unter contenido/classes angeschaut und da ist mir folgender Code aufgefallen:

Code: Alles auswählen

     * @param int $iSubCategoriesLoadDepth Up to shich level should SubCategories be loaded. Defaults to 3 for a 3-level Navigation.
     * @return boolean
     * @author Rudi Bieller
     */
    protected function loadSubCategories($iIdcat, $bAsObjects = true, $bWithSubCategories = false, $iSubCategoriesLoadDepth = 3) {
        $iIdcat = (int) $iIdcat;
        $bUseAuth = (is_null($this->oAuth) || 
und

Code: Alles auswählen

     * @param int $iSubCategoriesLoadDepth Up to shich level should SubCategories be loaded. Defaults to 3 for a 3-level Navigation.
     * @return mixed Contenido_Categories or Array, depending on value for $bAsObjects
     * @author Rudi Bieller
     */
    public function getSubCategories($iIdcat, $bAsObjects = true, $bWithSubCategories = false, $iSubCategoriesLoadDepth = 3) {
        $this->loadSubCategories($iIdcat, $bAsObjects, $bWithSubCategories, $iSubCategoriesLoadDepth);
        return $bAsObjects === true ? $this->oCategories : $this->aCategories;
    }
Hier wird scheinbar durch die Variable $iSubCategoriesLoadDepth der Level maximal auf den dritten Level festgelegt. Das könnte also erklären warum die Navigation nicht weiter in der Tiefe angezeigt wird.

Ich habe nun zum Testen diesen Wert bei beiden Funktionen einmal auf 8 gesetzt, aber es wird weiterhin die Navi nur bis zur 4. Ebene angezeigt. Kann es sein das der Level noch anders wo in der Tiefe beschränkt wird? Damit meine ich einen Code-Cache oder in einer andere Klasse?

Unabhängig davon würde ja bei einer Änderung innerhalb der Klasse diese bei einem nächsten Update (was momentan ja sehr oft vorkommt^^) wieder überschrieben werden. Im Navimodul steht nun folgender Code:
$oContenidoCategories = $oFeNav->getSubCategories($iIdcatStart, true);
Ich könnte ja also diesen Code folgendermaßen für sieben Level ändern:

Code: Alles auswählen

$oContenidoCategories = $oFeNav->getSubCategories($iIdcatStart, true, false, 7);
Sogar diese Änderung hat aber keinerlei Auswirkung auf die Tiefe der Navigation. Es geht immer nur bis max. zur 4. Ebene.

Nun brauche ich also ein paar Tipps bzw. Anregungen :-)

Immerhin wurde es ja auch von 4fb programmiert und die müssten ja dann auch wissen wo hier die Problematik und die Lösung liegt.

Gruß yodatortenboxer

Verfasst: Mi 28. Jan 2009, 13:52
von rbi
In Kürze gibt es ein Update für das Navigationsmodul, bei dem man die Leveltiefe angeben kann, bis zu der die Kategorien durchlaufen werden.
Von daher würde ich dir empfehlen, das aktuelle Modul nicht mehr anzupassen.

Verfasst: Mi 28. Jan 2009, 16:16
von yodatortenboxer
Dann sag ich schon einmal danke und hoffe das dies schnell realisiert wird :)