Listenelemente der Hauptnavigation mit IDs versehen

Gesperrt
lomion
Beiträge: 24
Registriert: Mo 16. Jun 2008, 10:08
Kontaktdaten:

Listenelemente der Hauptnavigation mit IDs versehen

Beitrag von lomion »

hallo liebe contenidogemeinde,

ich benötige für einen webauftritt die möglichkeit jeden listenpunkt der 1.ebene der navigation einzelnd mit css-anweisungen zu versehen.
auf der suche nach schon vorhandenen themen bin ich auf folgenden thread gestoßen: viewtopic.php?f=60&t=22999

leider werden die änderungen irgendwie nicht angenommen.
ich habe einige andere veränderungen getestet, aber anscheinend verhindert irgendein chache das die änderungen in kraft treten.
deshalb habe ich den browser- und den contenidochache gelöscht, aber ohne erfolg.

evt. könnt ihr mir ja weiterhelfen woran es scheitert.
mit freundlichen grüßen
Lomion
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: Listenelemente der Hauptnavigation mit IDs versehen

Beitrag von Oldperl »

Hallo Lomion,

versuche deine gewünschten Änderunge doch zuerst mal in einer ganz einfachen HTML-Datei, am Besten ohne externe CSS zu machen. Wenn das geht, dann setze das Ganze schrittweise nach Contenido um.
Wenn du dann immer noch nicht weiter kommst, dann poste uns doch bitte hier auch was du wo geändert bzw. ergänzt hast (Quelltext wäre schon), so daß wir dein Vorgehen besser nachvollziehen können. Mit den von dir gemachten Angaben kann man leider nicht wirklich helfen.

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
lomion
Beiträge: 24
Registriert: Mo 16. Jun 2008, 10:08
Kontaktdaten:

Re: Listenelemente der Hauptnavigation mit IDs versehen

Beitrag von lomion »

hallo oldperl,
das es klappt mit css etc ist mir bewusst und für mich auch ganz einfach umzusetzen. die schwierigkeit liegt für mich gerade in der konfiguration der module von contenido. und zwar handelt es sich um das navigation_main-modul (php) und das entsprechende modul-template, naviagtion_main_item (html).
die zwei befinden sich im weiteren verlauf des posts.
bisher habe ich nur, wie in dem thread (siehe link oben) angedacht, eine variable hinzugefügt die sich bei jedem durchgang inkrementiert. diese variable wird dann dem html-template zugewiesen und dort müsste dann für jedes listenelement ein entsprechender eintrag auftauche wie z.b. ...navid="1"...
das tut es aber nicht deshalb bin ich am grübeln ob es evt an irgendeinem cache liegt oder ob ich etwas falsch gemacht habe beim einbinden der variablen in die template-übergabe.

navigation_main

Code: Alles auswählen

    <?php
    /**
    * $RCSfile$
    *
    * Description: Navigation, left side.
    *
    * @version 1.0.0
    * @author Rudi Bieller
    * @copyright four for business AG <www.4fb.de>
    *
    * {@internal
    * created 2008-04-07
    * }}
    *
    * $Id$
    */

    // include Contenido_FrontendNavigation class
    cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php');
    cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation_Breadcrumb.class.php');

    // get start idcat
    $iIdcatStart = getEffectiveSetting('navigation', 'idcat-home', 1);

    // instantiate 2nd + 3rd template object, reset all
    $tpl2 = new Template();
    $tpl3 = new Template();

    if (!isset($tpl) || !is_object($tpl)) {
        $tpl = new Template();
    }

    $tpl->reset();
    $tpl2->reset();
    $tpl3->reset();

    // build navigation
    try {
        $oFeNav = new Contenido_FrontendNavigation($db, $cfg, $client, $lang, $cfgClient);
        $oBreadcrumb = new Contenido_FrontendNavigation_Breadcrumb($db, $cfg, $client, $lang, $cfgClient);
        $aBreadcrumb = $oBreadcrumb->getAsArray($idcat, 1); // this nav starts at level 1
        $oFeNav->setAuth($auth); // to make sure user sees what he's allowed to see
        $oContenidoCategories = $oFeNav->getSubCategories($iIdcatStart, true);
        if ($oContenidoCategories->count() > 0) {
            $i = 0;
            foreach ($oContenidoCategories as $oContenidoCategory) {
                $sSubcats = '';
                $tpl2->reset();
                $bHasActiveSubCat = false;
                // check if we need to load subcategories
                $oSubCatsLevel2 = $oFeNav->getSubCategories($oContenidoCategory->getIdCat(), true);
                $aSubCatsLevel2 = $oFeNav->getSubCategories($oContenidoCategory->getIdCat(), false);
                $bShowSubcatLevel2 = (intval($idcat) == $oContenidoCategory->getIdCat() || in_array(intval($idcat), $aSubCatsLevel2)
                                    || (isset($aBreadcrumb[2]) && intval($idcat) == $aBreadcrumb[2] && in_array($aBreadcrumb[1], $aSubCatsLevel2)))
                                    ? true : false;
                if ($bShowSubcatLevel2 === true && $oSubCatsLevel2->count() > 0) {
                    foreach ($oFeNav->getSubCategories($oContenidoCategory->getIdCat(), true) as $oSubCategory) {
                        $bHasActiveSubSubCat = false;
                        // check if we need to load subsubcategories
                        $oSubCatsLevel3 = $oFeNav->getSubCategories($oSubCategory->getIdCat(), true);
                        $aSubCatsLevel3 = $oFeNav->getSubCategories($oSubCategory->getIdCat(), false);
                        $bShowSubcatLevel3 = (intval($idcat) == $oSubCategory->getIdCat() ||
                                                in_array(intval($idcat), $aSubCatsLevel3))
                                                ? true : false;
                        $sSubcats2 = '';
                        if ($bShowSubcatLevel3 === true && $oSubCatsLevel3->count() > 0) {
                            foreach ($oSubCatsLevel3 as $oSubSubCategories) {
                                if ($bHasActiveSubCat === false && intval($idcat) == $oSubSubCategories->getIdCat()) {
                                    $bHasActiveSubCat = true;
                                }
                                if ($bHasActiveSubSubCat === false && intval($idcat) == $oSubSubCategories->getIdCat()) {
                                    $bHasActiveSubSubCat = true;
                                }
                                toTpl($tpl3, $oSubSubCategories, (intval($idcat) == $oSubSubCategories->getIdCat() ? ' class="active"' : ''), '', 0);
                            }
                            $sSubcats2 = $tpl3->generate('templates/navigation_main_item.html', true, false);
                            $tpl3->reset();
                            $tpl3->set('s', 'items', $sSubcats2);
                            $tpl3->set('s', 'css-class', ' class="subSubNavigation"');
                            $sSubcats2 = $tpl3->generate('templates/navigation_main_container.html', true, false);
                        }
                        if ($bHasActiveSubCat === false && intval($idcat) == $oSubCategory->getIdCat()) {
                            $bHasActiveSubCat = true;
                        }
                        toTpl($tpl2, $oSubCategory,
                                (intval($idcat) == $oSubCategory->getIdCat() || $bHasActiveSubSubCat === true ? ' class="active"' : ''),
                                $sSubcats2, 0);
                    }
                    $sSubcats = $tpl2->generate('templates/navigation_main_item.html', true, false);
                    $tpl2->reset();
                    $tpl2->set('s', 'items', $sSubcats);
                    $tpl2->set('s', 'css-class', ' class="subNavigation"');
                    $sSubcats = $tpl2->generate('templates/navigation_main_container.html', true, false);
                }
                $i++;
                toTpl($tpl, $oContenidoCategory, ($bHasActiveSubCat === true || intval($idcat) == $oContenidoCategory->getIdCat() ? ' class="active"' : ''), $sSubcats, $i);
            }
            $sCats = $tpl->generate('templates/navigation_main_item.html', true, false);
            $tpl->reset();
            $tpl->set('s', 'css-class', '');
            $tpl->set('s', 'items', $sCats);
            $tpl->generate('templates/navigation_main_container.html');
        }
    } catch (Exception $e) {
        echo 'Some error occured: ' . $e->getMessage() . ': ' . $e->getFile() . ' at line '.$e->getLine() . ' ('.$e->getTraceAsString().')';
    }

    /**
    * Helper to push values to Template object
    * @param Template $oTpl
    * @param Contenido_Category $oCat
    * @param string $sActiveCssClass must bei either empty string or " class="classname"
    * @param string $sSubcats String with subcategories of current category
    */
    function toTpl(&$oTpl, Contenido_Category $oCat, $sActiveCssClass, $sSubcats, $i) {
        $oTpl->set('d', 'css-class', $sActiveCssClass);
        if ($i!=0)
            $oTpl->set('d', 'css-id', ' id="nav_'.$i.'"');
        else
            $oTpl->set('d', 'css-id', '');
        $oTpl->set('d', 'url', 'front_content.php?idcat='.$oCat->getIdCat());
        $oTpl->set('d', 'title', $oCat->getCategoryLanguage()->getName());
        $oTpl->set('d', 'label', $oCat->getCategoryLanguage()->getName());
        $oTpl->set('d', 'subcategories', $sSubcats); // followup level
        $oTpl->next();
    }
    ?>
navigation_main_item

Code: Alles auswählen

    <!-- BEGIN:BLOCK -->
                        <li{css-class}><a{css-id} href="{url}" title="{title}">{label}</a>{subcategories}</li>
    <!-- END:BLOCK -->
gruß lomion
Gesperrt