Aktuelle Shop-Kategorie hervorheben

Foren-Übersicht -> Anleitungen und Workshops
Neues Thema eröffnen   Neue Antwort erstellen   

23.07.2008, 8:21
Nachfolgend soll erläutert werden, wie das Template angepasst werden kann, um die aktive Kategorie, in der sich der User befindet, hervorgehoben werden kann.


Anleitung für Nutzer des FWP shops mit einer Version < 3.3.1

1. Kategorielogik erweitern


    Zunächst müssen die Navigationsinformationen ergänzt werden.
    Diese sind in der Datei _system/3.0/_inc/base_front.inc.php zu finden.
    In der aktuellen Version 3.3 ist nach der Zeile 395 eine neue Zeile einzufügen. Bitte füge dort folgenden Code ein:

    Code:
    $aArray['iCategoryId']   = $oCategory->get_iCategoryId();


    Der gesamte Block sollte jetzt so aussehen:

    Code:
    if ($b==1)
          {
             $aArray = array();
             $aArray['iCategoryId']   = $oCategory->get_iCategoryId();
             $aArray['sLink']       = repLink(LINK_CATEGORY,$aReplaceLink);
             $aArray['sNotation']    = $aNotation[$_SESSION['sLanguageId']];
             $aArray['sSpace']       = $sSpace;
             $aNavi[] = $aArray;
          }




2. Smarty-Plugin anlegen

Es ist folgende Datei anzulegen:

_system/3.0/_classesphp/_ext_smarty/fwpPlugins/function.fwpHighlightCurrentCat.php


Code:
function smarty_function_fwpHighlightCurrentCat($params, &$smarty)
{   
   if (!array_key_exists('iCat', $params)) {
      return '';
   }
   if (array_key_exists('sPage', $_GET) && ($_GET['sPage'] == 'category' || $_GET['sPage'] == 'product')) {
      if (array_key_exists('iCat', $_SESSION) && $_SESSION['iCat'] == $params['iCat']) {
         
         if (array_key_exists('inclass', $params)) {
            return (array_key_exists('class', $params)) ? $params['class'] : 'active';
         } else {
            return (array_key_exists('class', $params)) ? 'class="' . $params['class'] . '"' : 'class="active"';
         }
      }
   }   
}



3. Template anpassen

Beim orangen Template liegt die Logik für die Kategoriedarstellung in folgender Datei:

_templates/orange/_front/_elements/categorie.tpl

Code:
<ul>
{foreach item=aCategory from=$aOutput.aNavi}
    <li>{if $aCategory.sSpace != ""}&nbsp;{/if}<a href="{$aCategory.sLink}" {fwpHighlightCurrentCat iCat=$aCategory.iCategoryId}>{if $aCategory.sSpace != ""}&raquo; {/if}{$aCategory.sNotation}</a></li>
{/foreach}
    <li><a href="{$aLink.offerList}">{$aOutput.linkOffer}</a></li>
</ul>


Folgender Code wurde neu eingefügt:

{fwpHighlightCurrentCat iCat=$aCategory.iCategoryId}

An der Stelle wird, sofern die Kategorie aktiv ist, eine neue CSS-Klasse verwendet. Es wird der Code class="active" eingefügt.


Ab Version 3.3.1 sind alle Änderungen bereits enthalten. Für eigene Templates ist nur der dritte Schritt erforderlich.


_________________
Viele Grüße,
Sebastian

FWP Systems GmbH
Website dieses Benutzers besuchen

Foren-Übersicht -> Anleitungen und Workshops

Seite 1 von 1

Neues Thema eröffnen   Neue Antwort erstellen   

Ähnliche Beiträge zu Aktuelle Shop-Kategorie hervorheben

Beitrag Forum Antworten
Vorschaubilder in der Kategorie
(Erstellt von Adrian am 19.11.2008, 12:47)
Anleitungen und Workshops 0
*gelöst* Fehler nach Installation, Shop wird noch
(Erstellt von philiph am 13.11.2008, 15:50)
Installation und Einrichtung 1
News im Shop anzeigen
(Erstellt von Sebastian Feindt am 07.11.2008, 12:32)
Anleitungen und Workshops 11
Shop Wiederherstellung
(Erstellt von boupda am 03.11.2008, 20:34)
Installation und Einrichtung 1