Documentação para Web Designers

Crie seus próprios layouts na Nuvem Shop

Barra de categorias lateral na Home

A Barra de categorias lateral na home é cimilar a funcionalidade de filtros na página de categorias, porém, é mostrada exclusivamente na home da loja.

Dependendo do template escolhido, a barra pode aparecer na esquerda do slider ou abaixo dele, ao lado dos produtos em destaque.

Abaixo você pode ver um exemplo da barra de categorias:

Para adicionar essa funcionalidade a um template, você terá de seguir os passos abaixo:

1. Adicione um novo snipplet chamado sidebar-home.tpl na pasta de snipplets. Esse arquivo deve conter o seguinte código:

<div id="categories-column" class="pull-left hidden-phone sidebar-home">
     <h4 class="cat-title">{{ "Categorías principales" | translate }}</h4>
    <div class="sidebar">
        <ul id="categories-list" class="home-categories-list pull-left clear">
            {% for category in categories %}
                <li data-item="{{ loop.index }}" class="pull-left clear no-subcategory">
                    <a href="{{ category.url }}" title="{{ category.name }}">{{ category.name }}</a>
                </li>
            {% endfor %}
        </ul>
         <a href="#" id="show-more-cats" style="display: none;" title="{{ 'Mostrar más categorías' | translate }}"><i class="fa fa-angle-down"></i></a>
    </div>
</div>

2. Adicione o seguinte código javascript no arquivo layouts/layout.tpl onde se encontram todos os códigos javascript do site. Lembre-se de adicionar antes do fechamento da tag <body>  (O exemplo do código abaixo é do template New Linked Woman).

{% if template == 'home' %}
    <script type="text/javascript">
    var categoriesList = $("#categories-list li");
    if (categoriesList.length < 6) {
        $("#categories-column.sidebar-home").addClass("short-bar");
    }
    if (categoriesList.length > 11) {
        $("#show-more-cats").show(); 
        for (i = 11; i < categoriesList.length; i++) { 
            $(categoriesList[i]).hide();
        }
    }

    $("#show-more-cats").click(function(e){
        e.preventDefault();
        for (i = 11; i < categoriesList.length; i++) { 
            $(categoriesList[i]).toggle();
        }
        $(this).find("i").toggleClass("fa-angle-up fa-angle-down");
    });
    </script>
{% endif %}

3. Adicione uma chamada para o snipplet sidebar-home.tpl (que criamos acima) no arquivo templates/home.tpl (a localização pode variar de acordo com o template escolhido: pode ir ao lado do slider ou abaixo dele).  

Exemplo no template Tech.

<div class="home-container">
    {% if categories %}
        <div class="col-md-2 left-col hidden-phone">
            {% snipplet 'sidebar-home.tpl' %}
        </div>
    {% endif %}
    <div class="{% if categories %}col-md-10 {% else %}col-md-12 no-categories{% endif %} col-xs-12 right-col">
         {% if settings.slider %}
            <div class="slider-container">
                <i class="fa fa-cog fa-spin"></i>
                <ul class="homeslider bxslider">
                    {% for slide in settings.slider %}
                        {% set slide_img = slide.image | static_url %}
                        {% set slide_link = slide.link %}
                        {% if slide.link is empty %}
                            <li><img src="{{ slide_img }}" style="visibility: hidden;"/></li>
                        {% else %}
                            <li><a href="http://{{ slide_link }}"><img src="{{ slide_img }}" style="visibility: hidden;" /></a></li>
                        {% endif %}
                    {% endfor %}
                </ul>
            </div>
        {% endif %}

        ....
</div>

Exemplo no template New Linked Woman.

{% if sections.primary.products %}
<div class="row-fluid home-prods">
     {% if categories %}
        <div class="span2 left-col">
            {% snipplet 'sidebar-home.tpl' %}
        </div>
    {% endif %}

    <div class="{% if categories %}span10 {% else %}span12 {% endif %}home-grid right-col">
        {% for product in sections.primary.products %}
            {% if loop.index % 4 == 1 %}
            <div class="product-row">
            {% endif %}

            {% include 'snipplets/single_product.tpl' %}

            {% if loop.index % 4 == 0 or loop.last %}
                </div>
            {% endif %}
        {% else %}
        ....
</div>

4. Adicione o CSS. Atenção, isso pode variar de acordo com o template que você estiver utilizando

Exemplo no template Tech.

.home-container .right-col{
    margin-top: 20px;
}
.home-container .left-col{
    padding-right: 5px;
}

#categories-column.sidebar-home{
    width: 100%;
    padding: 10px;
    min-height: 448px;
    margin-bottom: 30px;
}
#categories-column.sidebar-home.short-bar{
    min-height: 327px;    
}
.sidebar h4{
    padding-bottom: 10px;
}
#categories-column.sidebar-home h4{
    font-weight: normal;
    padding: 10px;
    margin: -10px -10px 10px -10px;
}
#categories-column .home-categories-list a{
    font-size: 14px;
}
.sidebar ul li{
    list-style: none;
}
#categories-column.sidebar-home #show-more-cats{
    float: left;
    width: 100%;
    margin-bottom: 0px;
    height: 30px;
}

Exemplo no template New Linked Woman.

.home-prods .left-col{
    padding-right: 5px;
}
.sidebar-home{
    width: 100%;
    padding: 10px;
    min-height: 449px;
}

#categories-column .home-categories-list a{
    font-size: 14px;
}
.sidebar ul li{
    list-style: none;
}
#categories-column.sidebar-home #show-more-cats{
    float: left;
    width: 80%;
    margin-bottom: 0px;
    height: 30px;
}

4.1. Adicione os estilos correspondentes levando em conta o seu template. Esses são os estilos principais:

#categories-column #show-more-cats {
    text-align: center;
    display: block;
    border-top: 1px solid #ccc;
    position: relative;
    margin-top: 20px;
    margin-bottom: 40px;
}
#categories-column #show-more-cats i.fa {
    color: #ccc;
    top: -1px;
    position: absolute;
    background: #fff;
    padding: 0 10px 5px 10px;
    left: 38%;
    width: 20px;
    border-left: 1px solid #ccc;
    border-right: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}
 #filters-column .color-filter {
    width: 20px;
    height: 20px;
    border: 1px solid #ccc;
    margin: 0 8px 8px 0;
}
#filters-column .size-filter {
    background: transparent;
    border: 1px solid #999;
    margin: 0 8px 8px 0;
}
#filters-column .other-filter {
    background: transparent;
    width: 100%;
    margin: 0 8px 0 0;
    border: 0;
    text-align: left;
} 
.filter-remove {
    background: #eee;
    border: 1px solid #999;
    width: 100%;
    text-align: left;
    position: relative;
    margin: 0 0 10px 0;
    color: #333;
}
.filter-remove:hover {
     background: #333;
     color: #eee;
}

5. Adicione as traduções correspondentes ao arquivo config/translations.txt. (Você pode colocar em qualquer posição no arquivo).


es "Categorías principales"
pt "Categorias principais"
en "Main categories"