Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: geteilte Navigation von gunnART bestimmte Kategorie am Anfang ausklappen

    armandogarcia

    • Fördermitglied
    • Beiträge: 333
    • Geschlecht:
    Hallo Gemeinde,  :-)

    jetzt öffne ich mal dafür einen neuen Thread da es doch was spezielles ist. Verwendet wird  als Kategorie: geteilte Navigation von gunnART

    gibt es hier eine Möglichkeit die 1 Ebene der Unterkategorie einer bestimmten Oberkategorie auf der index.php und allen anderen Contentseiten ausgeklappt zu lassen bzw. wen eine andere Oberkategorie angeklickt ist deren Unterkategorien weiterhin augeklappt zu lassen.

    Wäre sozusagen eine gedreiteilte Navigation, hab es schon fast geschafft in dem ich die SubNav dupliziert habe und so zusagen eine SubTopNav erstellt habe.

    Vielleicht bringt der Anhang Licht ins Dunkle. Jetzt wäre es halt nur wichtig eine Kategorie von der Startseite aus immer ausgeklappt zu halten z. B. die Damen Kategorie.Wenn aber in die Herren gewechselt wird und dann wieder auf die Startseite geklickt wird soll man aber weiterhin in der Herrenkategorie bleiben.

    Ich hoffe Ihr versteht was ich meine und könnt mir weiterhelfen. Gerne poste ich wenn es funktioniert wie es soll die ganze Modulerweiterung.

    LG

    Armando

    Linkback: https://www.modified-shop.org/forum/index.php?topic=29470.0

    Godzilla

    • Schreiberling
    • Beiträge: 489
    Kannst du mal etwas Quelltext posten oder mir einen Link schicken?

    armandogarcia

    • Fördermitglied
    • Beiträge: 333
    • Geschlecht:
    Hi Godzilla,

    sorry für die späte Antwort. Klar ich poste hier mal die Codes

    das hier ist die duplizierte urspr. sub_categories.php /

    source/boxes/top_sub_categories.php
    Code: PHP  [Auswählen]
    <?php

    /*
    // ------------------------------------------------------------------------------------------
            $Id top_sub_categories.php ("Slim Categories")
           
            Copyright (c) 2008 Gunnar Tillmann / http://www.gunnart.de
    // ------------------------------------------------------------------------------------------
            fully rewritten, formerly based on:
            (c) 2000-2001 The Exchange Project (earlier name of osCommerce)
            (c) 2002-2003 osCommerce (categories.php, v1.23 2002/11/12); www.oscommerce.com
            (c) 2003 nextcommerce (categories.php, v1.10 2003/08/17); www.nextcommerce.org
            (c) 2005 xt:Commerce (categories.php, v1.302 2005/10/12); www.(( Wir dulden keine kommerziellen Werbelinks - Bitte Forenregeln beachten! ))
           
            Released under the GNU General Public License
    // ------------------------------------------------------------------------------------------
            Third Party contributions:
            Enable_Disable_Categories 1.3
            Autor: Mikel Williams | mikel@ladykatcostumes.com
           
            Released under the GNU General Public License
    // ------------------------------------------------------------------------------------------
    */


            $box_smarty = new smarty;

    // ------------------------------------------------------------------------------------------
    // Cache-ID setzen
    // ------------------------------------------------------------------------------------------
            if(!CacheCheck() && !FORCE_CACHE) {
                    $cache=false;
                    $box_smarty->caching = 0;
            } else {
                    $cache=true;
                    $box_smarty->caching = 1;
                    $box_smarty->cache_lifetime = CACHE_LIFETIME;
                    $box_smarty->cache_modified_check = CACHE_CHECK;
                    $cache_id = $_SESSION['language'].$_SESSION['customers_status']['customers_status_id'].$cPath;
            }
    // ------------------------------------------------------------------------------------------


    // ------------------------------------------------------------------------------------------
    //      Das alles braucht nur dann ausgeführt zu werden, wenn noch keine gecachtes
    //      HTML-File vorliegt
    // ------------------------------------------------------------------------------------------
            if(!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/top_sub_categories.html',$cache_id) || !$cache) {
                   
                    require_once (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/inc/gunnart_Categories.inc.php');
                    $TopSubConfig = array(
                            'MinLevel'              =>      3,
                            'MaxLevel'              =>      true,
                            'HideEmpty'             =>      false,
                            'ShowCounts'    =>      false,
                            'CatNaviID'             =>      'TopSubNavi'
                    );
                    if(is_array($cPath_array)) {
                            $box_smarty->assign('BOX_CONTENT',gunnartCategories($cPath_array[0],1,$TopSubConfig));
                    } /*else {
                            $box_smarty->assign('BOX_CONTENT',gunnartCategories(0,1,$TopSubConfig));
                    }*/

                    $box_smarty->assign('language',$_SESSION['language']);
                    $box_smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');


            }
    // ------------------------------------------------------------------------------------------


    // ------------------------------------------------------------------------------------------
    //      Ausgabe ans Template
    // ------------------------------------------------------------------------------------------
            if(!$cache) {
                    $top_sub_categories = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/top_sub_categories.html');
            } else {
                    $top_sub_categories = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/top_sub_categories.html',$cache_id);
            }
            $smarty->assign('top_sub_CATEGORIES',$top_sub_categories);
    // ------------------------------------------------------------------------------------------

    ?>



    und hier die /source/inc/gunnart_Categories.inc.php
    Code: PHP  [Auswählen]
    <?php

    /*
    // ------------------------------------------------------------------------------------------
            $Id: gunnart_Categories.inc.php ("Slim Categories")
           
            Für eine tabellenfreie Kategorien-Navigation xt:Commerce - Tabellenfreie Templates
            Mehrfach einsetzbar, beispielsweise für zweigeteilte Navigationen u.ä.
           
            Copyright (c) 2008 Gunnar Tillmann / http://www.gunnart.de
    // ------------------------------------------------------------------------------------------
            fully rewritten, formerly based on:
            (c) 2000-2001 The Exchange Project (earlier name of osCommerce)
            (c) 2002-2003 osCommerce (categories.php, v1.23 2002/11/12); www.oscommerce.com
            (c) 2003 nextcommerce (xtc_show_category.inc.php, v1.4 2003/08/13); www.nextcommerce.org
            (c) 2003-2007 XT-Commerce
           
            Released under the GNU General Public License
    // ------------------------------------------------------------------------------------------
    */



    // ------------------------------------------------------------------------------------------
    //      Includes ...
    // ------------------------------------------------------------------------------------------
            require_once (DIR_FS_INC.'xtc_count_products_in_category.inc.php');
            //require_once (DIR_FS_INC.'xtc_has_category_subcategories.inc.php');
    // ------------------------------------------------------------------------------------------


    // ------------------------------------------------------------------------------------------
    //      Kategorien-Liste aufbauen
    // ------------------------------------------------------------------------------------------
            function gunnartCategories($CatID=0,$Level=1,$CatConfig) {
           
                    global $cPath_array, $current_category_id;
                   
                    // Kundengruppen-Check
                    if (GROUP_CHECK=='true') {
                            $group_check = "and c.group_permission_".$_SESSION['customers_status']['customers_status_id']." = 1 ";
                    }
                   
                    // Datenbank ...
                    $dbQuery = xtDBquery("
                            select  c.categories_id,
                                            cd.categories_name
                            from    "
    .TABLE_CATEGORIES." c,
                                            "
    .TABLE_CATEGORIES_DESCRIPTION." cd
                            where   c.parent_id = "
    .intval($CatID)."
                            and             c.categories_status = 1
                                            "
    .$group_check."
                            and     c.categories_id = cd.categories_id
                            and     cd.language_id = "
    .intval($_SESSION['languages_id'])."
                            order by sort_order, cd.categories_name
                    "
    );
                   
                    // Ergebnisse ...
                    while($dbQueryResult = xtc_db_fetch_array($dbQuery,true)) {
                           
                            $Current = false;
                            if(is_array($cPath_array)) {
                                    if($dbQueryResult['categories_id'] == $current_category_id) {
                                            $Current = ' class="Current"';
                                    } elseif(in_array($dbQueryResult['categories_id'],$cPath_array)) {
                                            $Current = ' class="CurrentParent"';
                                    }
                            }
                            if($CatConfig['ShowCounts'] || $CatConfig['HideEmpty']) {
                                    $ProdsInCat = xtc_count_products_in_category($dbQueryResult['categories_id']);
                            }
                            if(($ProdsInCat && $CatConfig['HideEmpty']) || !$CatConfig['HideEmpty']) {
                                    $Return         .=      "\n"
                                                            .       '<li class="CatLevel'.$Level.'">'
                                                            .       '<a'.$Current.' href="'
                                                            .       xtc_href_link(FILENAME_DEFAULT,xtc_category_link($dbQueryResult['categories_id'],$dbQueryResult['categories_name']))
                                                            .       '">'
                                                            .       $dbQueryResult['categories_name'];
                                    if($CatConfig['ShowCounts']) {
                                            $Return .=      ' <em>('
                                                            .       $ProdsInCat
                                                            .       ')</em>';
                                    }
                                    $Return         .=      '</a>';
                                    if(($Level < $CatConfig['MinLevel'] || $Current) && ($Level < $CatConfig['MaxLevel'] || !$CatConfig['MaxLevel'])) {
                                            $Return .=      gunnartCategories($dbQueryResult['categories_id'],$Level+1,$CatConfig); // <-- Rekursion!
                                    }
                                    $Return         .=      '</li>';
                            }
                    }
                   
                    // HTML-Output ...
                    if($Return) {
                            if($Level == 1) {
                                    $CSS .= ' id="'.$CatConfig['CatNaviID'].'"';
                            }
                            return  "\n<ul$CSS>$Return\n</ul>\n";
                    }
           
            }
    // ------------------------------------------------------------------------------------------

    ?>

    Bildanhänge

    hier sieht man die top_categories.php / 1. Ebene

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    und hier sieht man die top_sub_categories.php / 2. Ebene, welche erst aufklappt wenn man eine Kategorie aus der 1. Ebene angeklickt hat. Es soll aber von hausaus eine Ebene z. B. Damen immer ausgeklappt sein. Wenn man Herren anklickt verschwindet sie natürlich und die Unterkategorien von Herren werden eingeblendet. wenn man die Kategorie komplett verlässt und bereits in Herren war soll aber Herren weiterhin ausgeklappt bleiben.

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    VG

    Armando

    Godzilla

    • Schreiberling
    • Beiträge: 489
    Hallo armando,

    du benötigst eine andere Kategorien-Navigation und zwar eine bei der die Unterkategorien (im Quelltext) direkt aufgeklappt sind.

    Der Quelltext müsste dann ungefähr so aussehen:

    Code: PHP  [Auswählen]
    <ul>
       <li>Damen</li>
         <ul>
            <li>Neuheiten</li>
            <li>Schuhe</li>
            <li>Taschen</li>
         <ul>
       <li>Herren</li>
         <ul>
            <li>Neuheiten</li>
            <li>Schuhe</li>
            <li>Taschen</li>
         <ul>
    <ul>
     
    Damit könnten wir weiterarbeiten aber bisher sieht dein Quelltext leider ungefähr so aus:

    Code: PHP  [Auswählen]
    <ul id="top">
       <li>Damen</li>
       <li>Herren</li>
    <ul>

    <ul id="sub">
        <li>Neuheiten</li>
        <li>Schuhe</li>
        <li>Taschen</li>
        <li>Neuheiten</li>
        <li>Schuhe</li>
        <li>Taschen</li>
    <ul>
     

    Damit lässt sich dein Vorhaben nicht realisieren. Du müsstest dir eine Kategorien-Navigation einbauen die alle Unterkategorien IMMER einblendet und das passend unterhalb der Oberkategorie. Bisher besteht u.a. das Problem, dass man nichts ein- oder ausblenden kann das nicht im Quelltext auftaucht (zumal es bisher "sinnlos" angeordnet ist).

    armandogarcia

    • Fördermitglied
    • Beiträge: 333
    • Geschlecht:
    Hey Godzilla,

    das könnte doch damit klappen ?

    http://www.gunnart.de/tipps-und-tricks/advanced-show-category-20-fuer-xtcommerce/

    LG

    Danijel

    armandogarcia

    • Fördermitglied
    • Beiträge: 333
    • Geschlecht:
    Hi zusammen,

    also jetzt ist es so wie es anscheinend sein soll. Jetzt müsste nur eine beliebige Kategorie z. B. die Damenkategorie von anfang an ausgeklappt sein und die Herren Kategorie eingeklappt. Wenn man auf die Herrenkategorie klickt sollte sich die Damenkategorie wieder einklappen und die Unterkategorien der Herrenkategorie ausklappen. Die 2. Ebene sollte auch etwas Abstand von der ersten haben und einen Schriftgrad kleiner sein. Also eine eigene Formatierung.

    Code: PHP  [Auswählen]
    <ul id="CatNavi">
    <li class="CatLevel1"></li>
    <li class="CatLevel1">Damen
            <ul>
            <li class="CatLevel2">Neuheiten</li>
             <li class="CatLevel2">Schuhe</li>
            <li class="CatLevel2">Taschen</li>
            <li class="CatLevel2">Accessoires</li>
             <li class="CatLevel2">Beauty</li>
            <li class="CatLevel2">Geschenke</li>
            <li class="CatLevel2">Sale</li>
            </ul>
    </li>
    <li class="CatLevel1">Herren
            <ul>
            <li class="CatLevel2">Neuheiten</li>
            <li class="CatLevel2">Designer</li>
            <li class="CatLevel2">Reisegepäck</li>
            <li class="CatLevel2">Accessoires</li>
            <li class="CatLevel2">Uhren</li>
            <li class="CatLevel2">Geschenke</li>
            <li class="CatLevel2">Sale</li>
            </ul>
    </li>
    </ul>
    </div>

    hier noch die xtc_show_category.inc.php

    Code: PHP  [Auswählen]
    <?php

    /*
    // -----------------------------------------------------------------------------------
            GUNNART "SHOW_CATEGORY ADVANCED"
           
            erweiterte Kategorien-Navigation für xt:Commerce 3.04 SP1 / SP2.1
           
            Proudly togetherfummeled by Gunnar Tillmann
            http://www.gunnart.de
            Version 2.0 Beta / April 2008
    // -----------------------------------------------------------------------------------
            ... ist noch Beta - Anleitung unter http://www.gunnart.de?p=360
    // -----------------------------------------------------------------------------------
    */



    // -----------------------------------------------------------------------------------
    //      KONFIGURATION
    // -----------------------------------------------------------------------------------
            $CatConfig = array(
                   
                    // Bis zu welcher Ebene soll der Kategorien-Baum standardmäßig
                    // aufgeklappt sein?
                    // false, wenn er komplett ausgeklappt sein soll.
                    'MaxLevel'                      =>      2,
                   
                    // Leere Kategorien verstecken? true: ja, false: nein
                    'HideEmpty'             =>      false,
                   
                    // Dürfen aktive Kategorien weitere Unterkategorien aufklappen lassen?
                    'ShowAktSub'            =>      true,
                   
                    // Kategorien-Tiefe: Wie soll die CSS-Klasse benannt werden?
                    'ListPrefix'            =>      'CatLevel',
                   
                    // Aktive Kategorie: Soll der Link markiert werden?
                    'MarkAktivLink'         =>      false,
                    'LinkCurrent'           =>      'Current',
                    'LinkCurrentParent'     =>      'CurrentParent',
                   
                    // Aktive Kategorie: Soll der Listenpunkt markiert werden?
                    'MarkAktivList'         =>      true,
                    'ListCurrent'           =>      'Current',
                    'ListCurrentParent'     =>      'CurrentParent',
                   
                    // Sollen Kategorien mit weiteren Unterkategorien gekennzeichnet werden?
                    'MarkSubMenue'          =>      false,
                    'SubMenueCss'           =>      'SubMenue',

                    // Automatische Zuteilung einer CSS-ID (für den Listenpunkt)
                    'ShowCssIdList'         =>      false,
                    'CssPrefixList'         =>      'MyCat',
                   
                    // Automatische Zuteilung einer CSS-ID (für den Link)
                    'ShowCssIdLink'         =>      false,
                    'CssPrefixLink'         =>      'MyCatLink',
                   
                    // Darstellung Produktzählung, falls eingeschaltet
                    'CountPre'                      =>      '<em>(',       
                    'CountAfter'            =>      ')</em>',
                   
                    // Tags außerhalb des Links?
                    'LinkPre'                       =>      false,          // z.B. '<div>',
                    'LinkAfter'                     =>      false,          // z.B. '</div>',

                    // Tags innerhalb des Links?
                    'NamePre'                       =>      false,          // z.B. '<span>',
                    'NameAfter'                     =>      false,          // z.B. '</span>',
                   
                    // Soll die Überschrift nach Css-Markern à la {#class:EinName#}
                    // durchsucht werden? So kann man z.B. einzelne
                    // Links speziell gestalten.
                    'CssMarkersToList'      =>      false,          // Gefundene Marker zur Liste?
                    'CssMarkersToLink'      =>      true            // Gefundene Marker zum Link?
           
            );
    // -----------------------------------------------------------------------------------
            $CurrentURL = xtc_href_link(basename($_SERVER[SCRIPT_NAME]),xtc_get_all_get_params(array('XTCsid')));
    // -----------------------------------------------------------------------------------


    // -----------------------------------------------------------------------------------
    //      Findet heraus, ob Kategorie $category_id aktive (und für die Kundengruppe
    //      zugelassene) Artikel enthält.
    // -----------------------------------------------------------------------------------
    //      Im Gegensatz zu xtc_count_products_in_category()
    //      werden hierbei die Berechtigungen und der FSK-Status geprüft.
    // -----------------------------------------------------------------------------------
            function countProductsInCat($category_id) {
           
                    $products_count = 0;
                    if ($_SESSION['customers_status']['customers_fsk18_display'] == '0')
                            $fsk_lock = "AND \tp.products_fsk18!=1 ";
                    if (GROUP_CHECK=='true')
                            $prod_group_check = "AND \tp.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
                    $products_query = xtDBquery("
                            SELECT  count(*) as total
                            FROM    "
    .TABLE_PRODUCTS." p,
                            "
    .TABLE_PRODUCTS_TO_CATEGORIES." p2c
                            WHERE   p.products_id = p2c.products_id
                            "
    .$prod_group_check."
                            "
    .$fsk_lock."
                            AND             p.products_status = '1'
                            AND     p2c.categories_id = '"
    .$category_id."'");
                    $products = xtc_db_fetch_array($products_query,true);
                    $products_count += $products['total'];
                   
                    if (GROUP_CHECK=='true')
                            $cat_group_check = "AND \tgroup_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
                    $child_categories_query = xtDBquery("
                            SELECT  categories_id
                            FROM    "
    .TABLE_CATEGORIES."
                            WHERE   parent_id = '"
    .$category_id."'
                            "
    .$cat_group_check."
                            AND     categories_status = '1'"
    );
                    if (xtc_db_num_rows($child_categories_query,true)) {
                            while ($child_categories = xtc_db_fetch_array($child_categories_query,true)) {
                                    $products_count += countProductsInCat($child_categories['categories_id']);
                            }
                    }
                   
                    return $products_count;
            }
    // -----------------------------------------------------------------------------------


    // -----------------------------------------------------------------------------------
    //      ... ist $CurrentURL im Kategorien-Pfad drin?
    // -----------------------------------------------------------------------------------
            function isInPath($CurrentURL,$CatID=false) {
                    global $foo;
                    if($CatID) {
                            if($CurrentURL == $foo[$CatID]['link']) {
                                    return true;
                            } elseif(is_array($foo[$CatID]['subcats'])) {
                                    foreach($foo[$CatID]['subcats'] as $SubCatID) {
                                            if(isInPath($CurrentURL,$SubCatID))
                                                    return true;
                                    }
                            }
                    }
                    return false;
            }
    // -----------------------------------------------------------------------------------


    // -----------------------------------------------------------------------------------
    //      Hauptfunktion
    // -----------------------------------------------------------------------------------
            function xtc_show_category($cid, $level, $foo, $cpath) {
           
                    global  $old_level,
                                    $categories_string,
                                    $CatConfig,
                                    $CurrentURL;
                   
                    $CatConfig['MaxLevel'] = intval($CatConfig['MaxLevel']);
                   
                    // 1) Zählen ist nicht immer nötig
                    if($CatConfig['HideEmpty'] || SHOW_COUNTS == 'true')
                            $pInCat = countProductsInCat($cid);
           
                    // 2) Überprüfen, ob Kategorie Produkte enthält
                    if($CatConfig['HideEmpty']) {
                            $Empty = true;
                            if ($pInCat > 0)
                                    $Empty = false;
                    } else {
                            $Empty = false;
                    }      
                   
                    // 3) Überprüfen, ob Kategorie gezeigt werden soll
                    $Show = false;
                    if($CatConfig['HideEmpty']) {
                            if(!$Empty)
                                    $Show = true;
                    } else {
                            $Show = true;
                    }
           
                    // 3) Überprüfen, ob Unterkategorien gezeigt werden sollen
                    $ShowSub = false;
                    if($CatConfig['MaxLevel']) {
                            if ($level < $CatConfig['MaxLevel'])
                                    $ShowSub = true;
                    } else {
                            $ShowSub = true;
                    }
                                           
                    if($Show) { // Wenn Kategorie gezeigt werden soll ....
                   
                            if($cid != 0) {
                                   
                                    $category_path          = explode('_',$GLOBALS['cPath']);
                                    $in_path                        = in_array($cid, $category_path);
                                    $this_category          = array_pop($category_path);
                                   
                                    if(empty($this_category)) {
                                            if(isInPath($CurrentURL,$cid))
                                                    $in_path = true;
                                    }
                           
                                    for ($a = 0; $a < $level; $a++);
                                   
                                    $ProductsCount = false;
                                    if(SHOW_COUNTS == 'true')
                                            $ProductsCount = ' '.$CatConfig['CountPre'].$pInCat.$CatConfig['CountAfter'];  
                                                             
                                    // Aktiv - Nicht Aktiv usw.
                                    $Collapse
                                    = $Expand
                                    = $Aktiv
                                    = $AktivList
                                    = $AktivLink
                                    = $CssClassMarker
                                    = false;
                                   
                                    // Nach Collapse- bzw. Expand-Markern suchen
                                    if(strstr(strtolower($foo[$cid]['heading']),'{#collapse#}'))
                                            $Collapse = true;
                                    if(strstr(strtolower($foo[$cid]['heading']),'{#expand#}'))
                                            $Expand = true;
                                           
                                    $ListClass[] = $CatConfig['ListPrefix'].$level;
                                   
                                    // Nach CSS-Markern suchen
                                    if($CatConfig['CssMarkersToList']||$CatConfig['CssMarkersToLink']) {
                                            if(preg_match("/\{\#class\:([^\#\}]+)\#\}/i",$foo[$cid]['heading'],$Treffer)) {
                                                    $CssClassMarker = trim($Treffer[1]);
                                                    if($CatConfig['CssMarkersToList']&&!empty($CssClassMarker))
                                                            $ListClass[] = $CssClassMarker;
                                                    if($CatConfig['CssMarkersToLink']&&!empty($CssClassMarker))
                                                            $LinkClass[] = $CssClassMarker;
                                            }
                                    }
                                   
                                    if($this_category == $cid || $foo[$cid]['link'] == $CurrentURL) {
                                            // Wenn Kategorie aktiv ist
                                            if($CatConfig['MarkAktivLink']) {
                                                    $LinkClass[] = $CatConfig['LinkCurrent'];
                                            }
                                            if($CatConfig['MarkAktivList']) {
                                                    $ListClass[] = $CatConfig['ListCurrent'];
                                            }
                                            $Aktiv = true;
                                    }elseif($in_path) {
                                            // Wenn Oberkategorie aktiv ist
                                            if($CatConfig['MarkAktivLink']) {
                                                    $LinkClass[] = $CatConfig['LinkCurrentParent'];
                                            }
                                            if($CatConfig['MarkAktivList']) {
                                                    $ListClass[] = $CatConfig['ListCurrentParent'];
                                            }
                                            $Aktiv = true;
                                    }
                   
                                    // Hat ein SubMenue - hat kein SubMenue
                                    // CSS-Klasse festlegen
                                    if($CatConfig['MarkSubMenue'] && $foo[$cid]['subcats']) {
                                            $ListClass[] = $CatConfig['SubMenueCss'];
                                    }
                                   
                                    // Quelltext einrücken
                                    $Tabulator = str_repeat("\t",$level-1);
                                   
                                    if($CatConfig['ShowCssIdList']) {
                                            $ListID[] = $CatConfig['CssPrefixList'].$cid;
                                    }
                                   
                                    if($CatConfig['ShowCssIdLink']) {
                                            $LinkID[] = $CatConfig['CssPrefixLink'].$cid;
                                    }
                   
                                    // Navigations-Liste hierarchisch ...
                                    if($old_level) {
                                            if ($old_level < $level) {
                                                    $Pre = "\n<ul>";
                                                    $Pre = str_replace("\n","\n".$Tabulator, $Pre)."\n";
                                            } else {
                                                    $Pre = "</li>\n";
                                                    if ($old_level > $level) {
                                                            // Listenpunkte schließen
                                                            // Quelltext einrücken
                                                            for ($counter = 0; $counter < $old_level - $level; $counter++) {
                                                                    $Pre .= str_repeat("\t", $old_level - $counter -1)."</ul>\n".str_repeat("\t", $old_level - $counter- 2)."</li>\n";
                                                            }
                                                    }
                                            }
                                    }
                                   
                                    if(is_array($ListClass)) {
                                            $ListClass = ' class="'.implode(' ',$ListClass).'"';
                                    }
                                    if(is_array($ListID)) {
                                            $ListID = ' id="'.implode(' ',$ListID).'"';
                                    }
                                    if(is_array($LinkClass)) {
                                            $LinkClass = ' class="'.implode(' ',$LinkClass).'"';
                                    }
                                    if(is_array($LinkID)) {
                                            $LinkID = ' id="'.implode(' ',$LinkID).'"';
                                    }
                                           
                                    // Listenpunkte zusammensetzen
                                    $categories_string .=   $Pre.
                                                                                    $Tabulator.
                                                                                    '<li'.$ListID.$ListClass.'>'.$CatConfig['LinkPre'].
                                                                                    '<a'.$LinkID.$LinkClass.' href="' . $foo[$cid]['link'] . '">'.
                                                                                    $CatConfig['NamePre'].
                                                                                    $foo[$cid]['name'].
                                                                                    $ProductsCount.
                                                                                    $CatConfig['NameAfter'].
                                                                                    '</a>'.
                                                                                    $CatConfig['LinkAfter'];
                            }
                           
                            // für den nächsten Durchgang ...
                            $old_level = $level;
                   
                            // Unterkategorien durchsteppen
                            foreach ($foo as $key => $value) {
                   
                                    if ($foo[$key]['parent'] == $cid) {
                                                   
                                            // Sollen Unterkategorien gezeigt werden?
                                            if($CatConfig['ShowAktSub'] && $Aktiv)
                                                    $ShowSub = true;
                                           
                                            // Wenn Collapse, dann immer eingeklappt
                                            if($ShowSub && $Collapse && !$Aktiv)
                                                    $ShowSub = false;
                                           
                                            // Wenn Expand, dann ausgeklappt
                                            if($ShowSub || $Expand)
                                                    xtc_show_category($key, $level+1, $foo, ($level != 0 ? $cpath . $cid . '_' : ''));
                                    }
                            }
                    } // Ende if($Show)
            }      
    // -----------------------------------------------------------------------------------
                   
    ?>

    armandogarcia

    • Fördermitglied
    • Beiträge: 333
    • Geschlecht:
    Nun hab ich es schon fast geschafft, und zwar hab ich jetzt mit dem Marker {#expand#} (welchen man einfach im Backend in die Überschrift der Kategorie setzt) geschafft dass die erste Kategorie Standardmäßig ausgeklappt ist, wie aber schaffe ich es jetzt dass wenn man auf eine andere Kategorie der Ebene 1 geht diese {#expand#} gemarkerte Kategorie wieder einklappt?

    Weiss da wer die Lösung?

    Godzilla

    • Schreiberling
    • Beiträge: 489
    Hallo,

    ich habe da mal was gebastelt.

    Kopiere mal folgenden Code und teste ihn hier: http://www.w3schools.com/cssref/tryit.asp?filename=trycss3_first-of-type

    Code: PHP  [Auswählen]
    <style type="text/css">
    a,ul,li{margin:0;padding:0;border:0;outline:0;list-style:none;text-decoration:none;}
    @-webkit-keyframes fadeIn{from{opacity:0;}to{opacity:1;}}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
    #CatNavi {float:left;display:block;line-height:24px;}
    #CatNavi li {float:left;width:250px;}
    #CatNavi li a{width:300px;}
    #CatNavi li:last-child ul {visibility:hidden;display:none;opacity:0;z-index:9999}
    #CatNavi li:last-child:hover > ul {visibility:visible;opacity:1;display:block;position:relative;top:0;left:-250px;-webkit-animation:fadeIn 1s;animation:fadeIn 1s;}
    #CatNavi ul li a {padding:7px 0 7px 7px;display:block;background:#000;color:#FFF;border-bottom:1px solid #FFF}
    #CatNavi ul li a:hover {padding:7px 0 7px 7px;display:block;background:orange;color:#FFF;border-bottom:1px solid #FFF}
    .CatLevel2 {font-size:80%}
    </style>
    </head>
    <body>
    <ul id="CatNavi">
    <li class="CatLevel1">Damen
            <ul>
            <li class="CatLevel2"><a href="">Damen - Neuheiten</a></li>
            <li class="CatLevel2"><a href="">Damen - Schuhe</a></li>
            <li class="CatLevel2"><a href="">Damen - Taschen</a></li>
            <li class="CatLevel2"><a href="">Damen - Accessoires</a></li>
            <li class="CatLevel2"><a href="">Damen - Beauty</a></li>
            <li class="CatLevel2"><a href="">Damen - Geschenke</a></li>
            <li class="CatLevel2"><a href="">Damen - Sale</a></li>
            </ul>
    </li>

    <li class="CatLevel1">Herren
            <ul>
            <li class="CatLevel2"><a href="">Herren - Neuheiten</a></li>
            <li class="CatLevel2"><a href="">Herren - Designer</a></li>
            <li class="CatLevel2"><a href="">Herren - Reisegepäck</a></li>
            <li class="CatLevel2"><a href="">Herren - Accessoires</a></li>
            <li class="CatLevel2"><a href="">Herren - Uhren</a></li>
            <li class="CatLevel2"><a href="">Herren - Geschenke</a></li>
            <li class="CatLevel2"><a href="">Herren - Sale</a></li>
            </ul>
    </li>
    </ul>
     

    Den ersten leeren Listenpunkt habe ich entfernen müssen. Sollte sich dahinter der Link zur Startseite verbergen, dann muss dieser anders eingebaut werden. Ich habe zur Verdeutlichung mal die Kategorien etwas umbenannt (Herren - ...).

    armandogarcia

    • Fördermitglied
    • Beiträge: 333
    • Geschlecht:
    Hi Godzilla,

    Danke für den Ansatz, habe es probiert das ist nicht so ganz was ich meine. Meine CSS sieht so aus

    Code: CSS  [Auswählen]
    #CatNavi ul, #CatNavi li {
            display:block;
            list-style-type:none;
            float:left;
    }
    #CatNavi {}
    #CatNavi, #CatNavi ul  { margin: 0; padding: 0 }
    #CatNavi li     { list-style-type: none; display: block;  font-size:12px; padding:0px 13px 0px 13px;}
    #CatNavi ul li  { padding-top: 0px; padding-bottom: 0px; border-bottom: none; display: block; }

    #CatNavi a    { display: block;}
    #CatNavi a:hover { color: #FF0D49;}
    #CatNavi a.Current { color: #FF0D49;}
    #CatNavi a.CurrentParent {color:#FF0D49;}
    #CatNavi .CatLevel1 a {font-size:14px; font-weight:normal; text-transform:uppercase; clear: both; color:#000;   float:left;}
    #CatNavi .CatLevel2 a {font-size:11px; font-weight:normal; text-transform:uppercase; clear: both; color:#000;   float:left;}

    #CatNavi .CatLevel1 a:hover {color:#FF0D49; text-decoration:none;}
    #CatNavi li:first-child { margin-left:10px; margin-right:10px; }
    #CatNavi .CatLevel1 a.Current {color:#FF0D49;}
    #CatNavi .CatLevel1 a.CurrentParent {color: #FF0D49;}
    #CatNavi .CatLevel1 a.Current:hover {color: #FF0D49;}

    #CatNavi #SubMenue li, #CatNavi #SubMenue ul  {

    float:left;
    list-style-type:none;
    margin:0px 5px 0px 5px ;
    }
     

    ich möchte keinen Mouseover Effekt oder dergleichen, sondern lediglich dass die erste Kategorie von hausaus ausgeklappt ist. Das habe ich auch schon so weit geschafft mit der advanced category von Gunnar.

    Sie ist dank des Markers {#expand#}Damen standardmäßig ausgeklappt. Nur wie bringe ich sie dazu wieder einzuklappen wenn ich auf Herren gehe.

    Was ich mir evtl. vorstellen könnte ist dass wenn von hausaus alle ausgeklappt sind, ich die kategorie auf display: none setze in der ich gerade nicht bin. Aber hm komm nicht drauf wie ich das jetzt umsetzen soll

    VG

    Armando

    Barcelo

    • Mitglied
    • Beiträge: 103
    • Geschlecht:
    Hallo Armando,

    der Thread hier ist schon einige Tage alte, aber ich arbeite aktuell auch an dieser geteilten Navigation von Gunnart und muss diese erweitern um die Marker-Funktion.

    Laut Gunnart hat er dies in der Version "gunnart_ShowCategoryMulti.zip (Version 0.1)" nicht implementiert:
    Zitat
    Das “Marker-System” ist hier daher noch nicht drin.
    Aber wir schreiben ja auch erst die Version 0.1

    Wie hast Du das gelöst, dass die Funktion via {#Marker#} bei Dir funktioniert.

    Gruß Barcelo
    rechtstexte für onlineshop
    113 Antworten
    52760 Aufrufe
    27. Oktober 2015, 21:01:33 von merten-1813
    1 Antworten
    2980 Aufrufe
    31. März 2015, 03:05:59 von web0null
    2 Antworten
    3374 Aufrufe
    02. März 2011, 13:35:26 von zvenson
               
    anything