Widgets du catalogue

Le système intègre divers type de widgets utilisable dans le catalogue mais il y a deux types de widgets disponible.

Le premier type retourne un formatage complet customizable directement dans le skin.

Afficher une liste de produits

 Affichage classique des produits du catalogue avec un widget intégrant le formatage.

{widget_catalog_display
    conf =[
    'context' =>  'product'
    ]
    pattern = 'product'
}

Affichage personnalisé des produits du catalogue en colonne de 3 ou 4 éléments suivant la taille du contenu. 

{widget_catalog_display
    conf =[
    'context' =>  'product'
    ]
    pattern=[
        'item'=>[
            'before'    =>  '<div class="thumbnail col-sm-6 col-md-4 col-lg-3">',
            'after'     =>  '</div></div>'
        ],
        'img'=> [
            'classLink'     =>  'none'
        ],
        'name'=>[
            'before'    =>  '<div class="caption"> <h3>',
            'classLink' =>  'name',
            'after'     =>  '</h3>'
        ],
        'descr'=>[
            'before'=>'<p>',
            'lenght'        => 100,
            'delemiter'     => '...',
            'after'     => '</p>'
        ]
    ]
}

 

 Navigation du catalogue

Afficher les catégories du catalogue dans la sidebar 

{widget_catalog_nav
    conf = [
        'context' => ['category' => 'subcategory']
    ]
    htmlAttribut=[
        'id_container' => 'secondary-nav',
        'class_container' => 'nav nav-pills nav-stacked',
        'class_current'     => 'active'
    ]
}

 Avec sélection précise des catégories a afficher

{widget_catalog_nav
        conf = [
            'select' => ['fr' => '1,2,3,4,5'],
            'context' => ['category' => 'product']
        ]
        htmlAttribut=[
            'id_container'      => 'secondary-nav',
            'class_container'   => 'nav nav-list nav-top-list',
            'class_current'     => 'active'
        ]
    }

Afficher un tableau de produits exploitable avec smarty

Le principe est simple, on charge avec le widget un tableau PHP de données exploitable directement avec smarty

{widget_catalog_data
    conf =[
    'context' =>  'product'
    ]
    assign='productData'
}
{include file="catalog/loop/product.tpl" data=$productData classCat="thumbcat-{$cat.id}"}
{

 Le fichier contenant la boucle des produits

{if isset($data.id)}
    {$data = [$data]}
{/if}
{if !$classCol}
    {$classCol = 'col-sm-6 col-md-4'}
{/if}
{if is_array($data) && !empty($data)}
    {foreach $data as $item}
        {if $classCat && is_bool($classCat)}
            {$classCat =  "thumbcat-{$item.id}"}
        {/if}
        <div{if $classCol} class="{$classCol}" {/if}>
            <div class="thumbnail thumbnail-product{if $classCat} {$classCat}{/if}">
                <h2 class="name">
                    <a href="{$item.url}" title="{#show_page#|ucfirst}">
                        {$item.name|ucfirst}
                    </a>
                </h2>
                <a class="img" href="{$item.url}" title="{#show_page#|ucfirst}">
                    {if $item.imgSrc.medium}
                        <img src="{$item.imgSrc.medium}" alt="{$item.name|ucfirst}"/>
                        {else}
                        <img src="{$item.imgSrc.default}" alt="{$item.name|ucfirst}"/>
                    {/if}
                </a>
                <p class="content">
                {if $item.content}
                    {$item.content|strip_tags|truncate:127:'...'}
                {/if}
                </p>
                <p class="price">
                    <a class="btn btn-default" href="{$item.url}">
                        {if $item.price}
                            {$item.price} €
                        {else}
                            {#price_on_ask#|ucfirst}
                        {/if}
                    </a>
                </p>
            </div>
        </div>
    {/foreach}
{/if}

Construire une navigation ciblée avec un widget data

{widget_catalog_data
    conf = [
    'context' => ['category' => 'subcategory'],
    'select'    => [{$smarty.get.strLangue} => {$smarty.get.idclc}]
]
assign="sidebarData"
}
{$listingData = [ 'main' => $sidebarData[0], 'listing' => $sidebarData[0].subdata, 'active' => $smarty.get.getidpage]}
{if $listingData}
    <div id="nav-sidebar">
        {include file="catalog/loop/sidebar.tpl" main=$listingData.main listing=$listingData.listing active=$listingData.active}
    </div>
{/if}

 La boucle pour la navigation ciblée

{if $main}
    <p class="h2">
        {if $main.url}<a href="{$main.url}" title="{#show_page#|ucfirst}">{/if}
            {$main.name|ucfirst}
        {if $main.url}</a>{/if}
    </p>
{/if}
{if isset($listing.id)}
    {$listing = [$listing]}
{/if}
{if is_array($listing) && !empty($listing)}
    <ul class="nav nav-pills nav-stacked">
        {foreach $listing as $item}
            <li{if $item.id == $active} class="active"{/if}>
                <a href="{$item.url}" title="{#show_page#|ucfirst}">
                    {$item.name|ucfirst}
                </a>
            </li>
        {/foreach}
    </ul>
{/if}

 

Informations sur : Widgets du catalogue ?