Zusätzliche Navigation (z.B. eine Dritte)

Gesperrt
nurich
Beiträge: 29
Registriert: Di 1. Mär 2011, 14:56
Kontaktdaten:

Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von nurich »

Nabend,

leider finde ich nicht die Antwort auf meine Frage - habe natürlich die Suche im Forum verwendet... :?


Was genau muss ich tun um eine "weitere/zusätzliche" Navigation anzulegen?

Aktueller Stand:
Beide Standard-Navigationen sind vorhanden ("Main" und "Meta).
Jetzt möchte ich aber noch eine weitere Navigation anlegen, welche natürlich unabhängig von "Main" oder "Meta" funktioniert.

Höchstwahrscheinlich müssen ja Dateien neu angelegt oder Dateien der z.B. Main-Navigation kopiert und verändert werden.
Aber welche Dateien und welcher Code genau?


Freue mich über Hilfe!
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von xmurrix »

Hallo nurich,

Einen neuen Baum legst du im Kategoriebereich einfach eine neue Kategorie an und gibst an, dass es ein neuer Baum sein soll.

Zu den Modulen:
Je nachdem, was für eine Kategorie es sein soll, kannst du etweder das Modul Navigation_Meta (für Kategorien mit einer Ebene) oder das Modul Navigation_Main (für Kategorien mit mehreren Ebenen) kopieren.

Die Navigation_Meta holt sich die Id der Startkategorie aus den Einstellungen, siehe Code

Code: Alles auswählen

...
$iIdcatStart = getEffectiveSetting('navigation', 'idcat-meta', 2);
...
Für die dritte Navigation legtst du z. B. eine neue Variable unter Mandanteneinstellungen an, z. B.:

Code: Alles auswählen

Typ:  navigation
Name: idcat-thirdnavi
Wert:  {id des neuen kategoriebaumes}
Dann kannst du in deinem neuen Modul die Id mit folgender Zeile holen:

Code: Alles auswählen

...
$iIdcatStart = getEffectiveSetting('navigation', 'idcat-thirdnavi');
...
Bei Bedarf legst du ein anderes Template an und definierst eigene Styles für die Navigation.

Die Vorgehensweise ist für das Modul Navigation_Main sehr ähnlich.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
nurich
Beiträge: 29
Registriert: Di 1. Mär 2011, 14:56
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von nurich »

Hallo xmurrix,

vielen Dank für Deine Antwort!
Aber die 3.Navigation wird nicht angezeigt. :?

Folgende Schritte habe ich gemacht:

Zuerst in das Layout den neuen Container für die neue Navigation integriert:
  • <container id="34" name="navigation3" types="Navigation" mode="fixed" default="navigation3">navigation3</container>
...Einen neuen Baum legst du im Kategoriebereich einfach eine neue Kategorie an und gibst an, dass es ein neuer Baum sein soll.
  • Content > Kategorie > (neuer Baum) "navigation3"
Ebenso habe ich in "navigation3" 2 Unterpunkte angelegt (insgesamt 3 Ebenen):
  • "navigation3" > "Navi3" > "SubNavi3"
    Diese auch je mit einem Artikel gefüllt.
Zu den Modulen:
Je nachdem, was für eine Kategorie es sein soll, kannst du etweder das Modul Navigation_Meta (für Kategorien mit einer Ebene) oder das Modul Navigation_Main (für Kategorien mit mehreren Ebenen) kopieren.
  • Style > Module > (neues Modul) "navigation3"
Den Code für Ausgabe von "Navigation_Main" übernommen.
Für die dritte Navigation legtst du z. B. eine neue Variable unter Mandanteneinstellungen an, z. B.:

Code: Alles auswählen

Typ:  navigation
Name: idcat-thirdnavi
Wert:  {id des neuen kategoriebaumes}
Angelegt:

Code: Alles auswählen

Typ:  navigation
Name: idcat-navigation3
Wert: 34
Dann kannst du in deinem neuen Modul die Id mit folgender Zeile holen:

Code: Alles auswählen

...
$iIdcatStart = getEffectiveSetting('navigation', 'idcat-thirdnavi');
...
Geändert in:

Code: Alles auswählen

...
$iStartIdcat = getEffectiveSetting('navigation', 'idcat-navigation3', 34);
...
Dann noch einmal unter
  • Style > Templates
den Container überprüft.

Der neue Container bzw. die neue Navigation "navigation3" wird auch gezeigt:
  • navigation3 (Container 34) = [navigation3]
Es wird aber nicht die "navigation3" im Frontend ausgegeben.
Auch im Quellcode ist der Bereich in dem der <container..........> steht eine leere Zeile.

Layout:

Code: Alles auswählen

<div id="vknav">
   <h2>Navigation 3</h2>
   <container id="34" name="navigation3" types="Navigation" mode="fixed" default="navigation3">navigation3</container>
   <div id="vknav-b"></div>
</div>
Quellcode der Frontend-Seite:

Code: Alles auswählen

<div id="vknav">
   <h2>Navigation 3</h2>

   <div id="vknav-b"></div>
</div>
An was kann das liegen? :|


Viele Grüße
nurich
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von xmurrix »

Hallo nurich,

hast du im Navigationsmodul, den Modultyp auf "Navigation" gesetzt (siehe Feld "Typ" beim Bearbeiten eines Moduls)?

Du kannst auch testweise einfach mal ein

Code: Alles auswählen

echo 'foobar';
am Anfang des Modulcodes eingeben, um zu sehen, ob das Modul überhaupt eingebunden wird.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
nurich
Beiträge: 29
Registriert: Di 1. Mär 2011, 14:56
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von nurich »

xmurrix hat geschrieben:...hast du im Navigationsmodul, den Modultyp auf "Navigation" gesetzt (siehe Feld "Typ" beim Bearbeiten eines Moduls)?

Du kannst auch testweise einfach mal ein

Code: Alles auswählen

echo 'foobar';
am Anfang des Modulcodes eingeben, um zu sehen, ob das Modul überhaupt eingebunden wird....
Hallo xmurrix,

entschuldige für meine späte Antwort.
Modultyp war/ist auf "Navigation" gesetzt und "foobar" wird auch an dieser Stelle ausgegeben. Das funktioniert soweit - nur wird keine Navi ausgeben :(


Aktueller Code (ohne foobar):

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: 
* Main Navigation, displays Navigation from a starting idcat down to the max. level set.
* For now (as of 2009-01-12) all subcategories are put inside one <ul> and are assigned css classes 
* to distinguish level depth, first/last and active item property.
* 
* Module requires two client settings: 
* navigation_main_standard | start_idcat
* navigation_main_standard | level_depth
* 
* To modify the behaviour of the module (e.g. style of URL, CSS classes, ...), you need to edit Contenido_NavMain_Util::loopCats
* @see {frontend}/includes/Util/Modules/Contenido_NavMain_Util.class.php
*
* @version 1.0.0
* @author Rudi Bieller
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2009-01-12
* }}
*
* $Id: Navigation_Standard.php 3444 2009-01-19 11:42:59Z rudi.bieller $
*/

if (!isset($db)) {
    $db = new DB_Contenido();
}
if (!isset($tpl)) {
    $tpl = new Template();
}
$tpl->reset();

cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php');
cInclude('frontend', 'includes/Util/Modules/Contenido_NavMain_Util.class.php');

$iStartIdcat = getEffectiveSetting('navigation', 'idcat-navigation3', 34);
$iSelectedDepth = getEffectiveSetting('navigation', 'level-depth', 3);

if ($iStartIdcat > 0) {
    $oFeNav = new Contenido_FrontendNavigation($db, $cfg, $client, $lang, $cfgClient);
    $oFeNav->setAuth($auth);
    $oFeNav->setRootCat($iStartIdcat);
    $oSubCategories = $oFeNav->getSubCategories($iStartIdcat, true, true, 1);
    // see if there are any subcategories to display
    if ($oSubCategories->count() > 0) {
        $aLevelInfo = array();
        $aDepthInfo = array();
        $aDepthInfo[0] = 0;
        $aDepthInfo[1] = $iSelectedDepth;
        foreach ($oSubCategories as $oSubCategory) {
            Contenido_NavMain_Util::loopCats($oSubCategory, $oFeNav, $tpl, $cfg, $lang, $aLevelInfo, intval($idcat), $aDepthInfo);
        }
        $tpl->generate('templates/navigation_standard.html');
    }
} else {
    echo '<p>Navigation not configured correctly.</p>';
}
?>


Viele Grüße
nurich wieder
McHubi
Beiträge: 1223
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von McHubi »

$tpl->generate('templates/navigation_standard.html');
Nur so ne spontane Idee: Kommen sich da evtl. die Modul-Templates ins Gehege? Du scheinst das gleiche Modul-Template zweimal zu nutzen...
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von xmurrix »

Du müsstest nun das Modul debuggen, irgend etwas stimmt da nicht, mach im Modulcode ein paar Testausgaben, um herauszufinden, wo es hackt. Eigentlich sollte das funktionieren...

Hier ein Beispielcode:

Code: Alles auswählen

...
if ($iStartIdcat > 0) {
    $oFeNav = new Contenido_FrontendNavigation($db, $cfg, $client, $lang, $cfgClient);
    $oFeNav->setAuth($auth);
    $oFeNav->setRootCat($iStartIdcat);
    $oSubCategories = $oFeNav->getSubCategories($iStartIdcat, true, true, 1);
    // see if there are any subcategories to display
    if ($oSubCategories->count() > 0) {
echo '<pre>Subkategorien gefunden</pre>';
        $aLevelInfo = array();
        $aDepthInfo = array();
        $aDepthInfo[0] = 0;
        $aDepthInfo[1] = $iSelectedDepth;
        foreach ($oSubCategories as $oSubCategory) {
echo '<pre>Subkategorieid: ' . $oSubCategory->getIdCat() . '</pre>';
            Contenido_NavMain_Util::loopCats($oSubCategory, $oFeNav, $tpl, $cfg, $lang, $aLevelInfo, intval($idcat), $aDepthInfo);
        }
        $tpl->generate('templates/navigation_standard.html');
    }
} else {
    echo '<p>Navigation not configured correctly.</p>';
}
...
Wenn keine Subkategorien gefunden also nichts ausgegeben wurde, kann es noch folgende Ursachen haben:
  • Falsche Start-Kategorieid (idcat-navigation3)
  • Subkategorien haben keine Artikel oder keine Startartikel oder Startartikel sind nicht online
  • Subkategorien sind geschützt
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von Oldperl »

McHubi hat geschrieben:Kommen sich da evtl. die Modul-Templates ins Gehege? Du scheinst das gleiche Modul-Template zweimal zu nutzen...
Das sollte kein Problem darstellen solange im Modul bei der Initalisierung der Templateklasse auch ein Reset durchgeführt wird.

Code: Alles auswählen

// init template
if(!is_object($tpl)) {
    $tpl = new Template();
}
$tpl->reset();
Du kannst ein und dasselbe Template auch 100 Mal verwenden.

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
nurich
Beiträge: 29
Registriert: Di 1. Mär 2011, 14:56
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von nurich »

Hallo xmurrix und Oldperl,

habe den Code...

Code: Alles auswählen

// init template
if(!is_object($tpl)) {
    $tpl = new Template();
}
$tpl->reset();
...in das Modul "navigation3" eingebaut:

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: 
* Main Navigation, displays Navigation from a starting idcat down to the max. level set.
* For now (as of 2009-01-12) all subcategories are put inside one <ul> and are assigned css classes 
* to distinguish level depth, first/last and active item property.
* 
* Module requires two client settings: 
* navigation_main_standard | start_idcat
* navigation_main_standard | level_depth
* 
* To modify the behaviour of the module (e.g. style of URL, CSS classes, ...), you need to edit Contenido_NavMain_Util::loopCats
* @see {frontend}/includes/Util/Modules/Contenido_NavMain_Util.class.php
*
* @version 1.0.0
* @author Rudi Bieller
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2009-01-12
* }}
*
* $Id: Navigation_Standard.php 3444 2009-01-19 11:42:59Z rudi.bieller $
*/
// init template
if (!isset($db)) {
    $db = new DB_Contenido();
}
if (!isset($tpl)) {
    $tpl = new Template();
}
if(!is_object($tpl)) {
    $tpl = new Template();
}
$tpl->reset();

cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php');
cInclude('frontend', 'includes/Util/Modules/Contenido_NavMain_Util.class.php');

$iStartIdcat = getEffectiveSetting('navigation', 'idcat-navigation3', 34);
$iSelectedDepth = getEffectiveSetting('navigation', 'level-depth', 3);

if ($iStartIdcat > 0) {
    $oFeNav = new Contenido_FrontendNavigation($db, $cfg, $client, $lang, $cfgClient);
    $oFeNav->setAuth($auth);
    $oFeNav->setRootCat($iStartIdcat);
    $oSubCategories = $oFeNav->getSubCategories($iStartIdcat, true, true, 1);
    // see if there are any subcategories to display
    if ($oSubCategories->count() > 0) {
echo '<pre>Subkategorien gefunden</pre>';
        $aLevelInfo = array();
        $aDepthInfo = array();
        $aDepthInfo[0] = 0;
        $aDepthInfo[1] = $iSelectedDepth;
        foreach ($oSubCategories as $oSubCategory) {
echo '<pre>Subkategorieid: ' . $oSubCategory->getIdCat() . '</pre>';
            Contenido_NavMain_Util::loopCats($oSubCategory, $oFeNav, $tpl, $cfg, $lang, $aLevelInfo, intval($idcat), $aDepthInfo);
        }
        $tpl->generate('templates/navigation_standard.html');
    }
} else {
    echo '<p>Navigation not configured correctly.</p>';
}
?>
...hat aber leider auch nicht geholfen.

Diesen Beispielcode getestet....

Code: Alles auswählen

    ...
    if ($iStartIdcat > 0) {
        $oFeNav = new Contenido_FrontendNavigation($db, $cfg, $client, $lang, $cfgClient);
        $oFeNav->setAuth($auth);
        $oFeNav->setRootCat($iStartIdcat);
        $oSubCategories = $oFeNav->getSubCategories($iStartIdcat, true, true, 1);
        // see if there are any subcategories to display
        if ($oSubCategories->count() > 0) {
    echo '<pre>Subkategorien gefunden</pre>';
            $aLevelInfo = array();
            $aDepthInfo = array();
            $aDepthInfo[0] = 0;
            $aDepthInfo[1] = $iSelectedDepth;
            foreach ($oSubCategories as $oSubCategory) {
    echo '<pre>Subkategorieid: ' . $oSubCategory->getIdCat() . '</pre>';
                Contenido_NavMain_Util::loopCats($oSubCategory, $oFeNav, $tpl, $cfg, $lang, $aLevelInfo, intval($idcat), $aDepthInfo);
            }
            $tpl->generate('templates/navigation_standard.html');
        }
    } else {
        echo '<p>Navigation not configured correctly.</p>';
    }
    ...
  • ...mit den Punkten (...)
-> Der komplette Code wird direkt an der Stelle im Frontend ausgegeben (Seite und Quellcode). Das gleiche Ergebnis wie mit "else... foobar".
  • ...und ohne Punkte, also direkt die passenden Zeilen ausgetauscht/ersetzt.
-> Da es ja der selbe Code ist, wird natürlich wieder im Frontend eine leere Zeile im Quellcode ausgegeben.

Möglich - eher nicht:
Vielleicht erwähne ich das jetzt zu spät, aber ich verwende statt die "Navigation_Main" die geteile Navigation http://www.dinkelacker.biz/upload/modul ... eteilt.zip und die "Navigation_Meta".
Aber das sollte doch im Normalfall nicht relevant sein... denke ich... Da die "Navigation_Main" im Prinzip "ruht" und nicht verwendet wird. Aktiviere ich diese, dann läuft sie wie sie laufen soll.
Wollte das jetzt nur noch erwähnen, da das vielleicht (aber kann ich mir nicht vorstellen, da die geteilte Navi separate Dateien verwendet) damit zusammen hängen könnte. :|

Im "Contenido Fehlerlog" wird auch kein Fehler ausgegeben.
Wenn also eure möglichen Schritte nicht funktionieren, dann muss ich doch iiiirgendwo etwas nicht konfiguriert bzw. nicht beachtet haben...


Noch einmal kurz meine Änderungen für die zusätzliche Navi zusammengefasst:
  • - Layout mit <container id="34" name="navigation3" types="Navigation" mode="fixed" default="navigation3">navigation3</container> an gewünschte Stelle gesetzt.
  • - Neues Modul angelegt -> Code von "Ausgabe" der "Navigation_Main" übernommen und Zeile mit $iStartIdcat = getEffectiveSetting('navigation', 'idcat-navigation3', 34); ersetzt.
  • - Mandanteneinstellung die neue Variable hinzugefügt: "navigation, idcat-navigation3, 34".
  • ..und natürlich eine Kategorie mit Baum "navigation3" angelegt, dort noch Unterpunkte angelegt und alle bis auf die 1.Ebene mit Artikeln gefüllt und alle Artikel in den Unterpunktn auf Startseite gesetzt. Auch die 1.Ebene mit einem Artikel gefüllt um zu schauen ob es daran liegt...
...das wars?! Richtig?

Wie gesagt, wird im Code bei Ausgabe der "navigation3" z.B. ein falscher Code eingetragen, wird dieser im Frontend angezeigt. Der Container "34" wird verwendet.


Viele Grüße
nurich
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von xmurrix »

nurich hat geschrieben:...
Vielleicht erwähne ich das jetzt zu spät, aber ich verwende statt die "Navigation_Main" die geteile Navigation http://www.dinkelacker.biz/upload/modul ... eteilt.zip und die "Navigation_Meta".
Aber das sollte doch im Normalfall nicht relevant sein... denke ich... Da die "Navigation_Main" im Prinzip "ruht" und nicht verwendet wird. Aktiviere ich diese, dann läuft sie wie sie laufen soll.
Wollte das jetzt nur noch erwähnen, da das vielleicht (aber kann ich mir nicht vorstellen, da die geteilte Navi separate Dateien verwendet) damit zusammen hängen könnte. :|
...
Ja, das macht sehr viel aus, wir hier im Forum suchen hier den Fehler bei der Wiederverwendung des Moduls "Navigation_Main" und versuchen das Problem einzugrenzen, während du ein ganz anderes Modul im Einsatz hast. Das sind zwei verschiedene Module, und der Code von beiden ist nicht identisch.

Falls du nun das Modul "Hauptnavigation 3" aus dem Link im vorherigen Beitrag verwendest, so ist der Code darin falsch. Da wird eine SQL-Abfrage unter Verwendung der Variable "$sel_idcat" gebaut, abe die Variable wird erst später gesetzt. Du solltest das vorher korrigieren, die Überprüfung und das Setzen der Variable "$sel_idcat" sollte am Anfang des Moduls stattfinden, zumindest vor dem Zusammenstellen der SQL-Abfrage.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
nurich
Beiträge: 29
Registriert: Di 1. Mär 2011, 14:56
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von nurich »

xmurrix hat geschrieben:
nurich hat geschrieben:...
Vielleicht erwähne ich das jetzt zu spät, aber ich verwende statt die "Navigation_Main" die geteile Navigation http://www.dinkelacker.biz/upload/modul ... eteilt.zip und die "Navigation_Meta".
Aber das sollte doch im Normalfall nicht relevant sein... denke ich... Da die "Navigation_Main" im Prinzip "ruht" und nicht verwendet wird. Aktiviere ich diese, dann läuft sie wie sie laufen soll.
Wollte das jetzt nur noch erwähnen, da das vielleicht (aber kann ich mir nicht vorstellen, da die geteilte Navi separate Dateien verwendet) damit zusammen hängen könnte. :|
...
Ja, das macht sehr viel aus, wir hier im Forum suchen hier den Fehler bei der Wiederverwendung des Moduls "Navigation_Main" und versuchen das Problem einzugrenzen, während du ein ganz anderes Modul im Einsatz hast. Das sind zwei verschiedene Module, und der Code von beiden ist nicht identisch.

Falls du nun das Modul "Hauptnavigation 3" aus dem Link im vorherigen Beitrag verwendest, so ist der Code darin falsch. Da wird eine SQL-Abfrage unter Verwendung der Variable "$sel_idcat" gebaut, abe die Variable wird erst später gesetzt. Du solltest das vorher korrigieren, die Überprüfung und das Setzen der Variable "$sel_idcat" sollte am Anfang des Moduls stattfinden, zumindest vor dem Zusammenstellen der SQL-Abfrage.

Gruß
xmurrix
Hallo Xmurrix,

das tut mir wirklich sehr Leid, war wirklich der Annahme, dass das keine Auswirkung auf die navigation3 haben wird. :oops:

Wenn möglich, kannst Du bitte kurz den korrekten Code für das nötige Modul posten? Wäre wirklich sehr hilfreich. :|
Ich habe den Code der dritten Navigation "navigation3" nun so angepast:

Wäre es so korrekt?:

Code: Alles auswählen

<?php
if ($iStartIdcat > 0) {
    $oFeNav = new Contenido_FrontendNavigation($db, $cfg, $client, $lang, $cfgClient);
    $oFeNav->setAuth($auth);
    $oFeNav->setRootCat($iStartIdcat);
    $oSubCategories = $oFeNav->getSubCategories($iStartIdcat, true, true, 1);
    // see if there are any subcategories to display
    if ($oSubCategories->count() > 0) {
echo '<pre>Subkategorien gefunden</pre>';
        $aLevelInfo = array();
        $aDepthInfo = array();
        $aDepthInfo[0] = 0;
        $aDepthInfo[1] = $iSelectedDepth;
        foreach ($oSubCategories as $oSubCategory) {
echo '<pre>Subkategorieid: ' . $oSubCategory->getIdCat() . '</pre>';
            Contenido_NavMain_Util::loopCats($oSubCategory, $oFeNav, $tpl, $cfg, $lang, $aLevelInfo, intval($idcat), $aDepthInfo);
        }
        $tpl->generate('templates/navigation_standard.html');
    }
} else {
    echo '<p>Navigation not configured correctly.</p>';
}
// init template
if (!isset($db)) {
    $db = new DB_Contenido();
}
if (!isset($tpl)) {
    $tpl = new Template();
}
if(!is_object($tpl)) {
    $tpl = new Template();
}
$tpl->reset();

cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php');
cInclude('frontend', 'includes/Util/Modules/Contenido_NavMain_Util.class.php');

$iStartIdcat = getEffectiveSetting('navigation', 'idcat-navigation3', 34);
$iSelectedDepth = getEffectiveSetting('navigation', 'level-depth', 3);
?>
So wird jetzt im Frontend an der gewünschten Stelle aber der Hinweis "Navigation not configured correctly." ausgegeben.

Ich komme nicht mehr weiter....

Was muss ich nun genau machen?
Danke nochmal!

VG
nurich wieder
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von xmurrix »

Versuche es mal mit folgendem Code:

Code: Alles auswählen

<?php
// init template
if (!isset($db)) {
    $db = new DB_Contenido();
}
if (!isset($tpl)) {
    $tpl = new Template();
}
if(!is_object($tpl)) {
    $tpl = new Template();
}
$tpl->reset();

cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php');
cInclude('frontend', 'includes/Util/Modules/Contenido_NavMain_Util.class.php');

$iStartIdcat = getEffectiveSetting('navigation', 'idcat-navigation3', 34);
$iSelectedDepth = getEffectiveSetting('navigation', 'level-depth', 3);

if ($iStartIdcat > 0) {
    $oFeNav = new Contenido_FrontendNavigation($db, $cfg, $client, $lang, $cfgClient);
    $oFeNav->setAuth($auth);
    $oFeNav->setRootCat($iStartIdcat);
    $oSubCategories = $oFeNav->getSubCategories($iStartIdcat, true, true, 1);
    // see if there are any subcategories to display
    if ($oSubCategories->count() > 0) {
echo '<pre>Subkategorien gefunden</pre>';
        $aLevelInfo = array();
        $aDepthInfo = array();
        $aDepthInfo[0] = 0;
        $aDepthInfo[1] = $iSelectedDepth;
        foreach ($oSubCategories as $oSubCategory) {
echo '<pre>Subkategorieid: ' . $oSubCategory->getIdCat() . '</pre>';
            Contenido_NavMain_Util::loopCats($oSubCategory, $oFeNav, $tpl, $cfg, $lang, $aLevelInfo, intval($idcat), $aDepthInfo);
        }
        $tpl->generate('templates/navigation_standard.html');
    }
} else {
    echo '<p>Navigation not configured correctly.</p>';
}
?>
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
nurich
Beiträge: 29
Registriert: Di 1. Mär 2011, 14:56
Kontaktdaten:

Re: Zusätzliche Navigation (z.B. eine Dritte)

Beitrag von nurich »

Hallo xmurrix,

hat leider nicht funktioniert.

Werde es mit der 3. Navigation wohl lassen müssen. Vielleicht klappt es mit der nächsten Einrichtung von Contenido mit der normalen Navigation.

Danke Dir/euch aber noch vielmals!


Grüße
nurich
Gesperrt