Инструкция по ручному обновлению темы дизайна MegaShop, v.1.2.

10 октября 2015

Инструкция по ручному обновлению темы дизайна MegaShop, v.1.2.

  • Убрать левую колонку в категориях, если нет содержимого.

1.1) Магазин - Витрина - Шаблоны. В файле category.html найти код

{if isset($category)}{$selected_category=$category.id}{else}{$selected_category=null}{/if}
{$categories = $wa->shop->categories(0, null, true)}
{$tagcloud = $wa->shop->tags()}
<!-- plugin hook: 'frontend_nav' -->
{* @event frontend_nav.%plugin_id% *}
{$_hook_frontend_sidebar_section = false}
{foreach $frontend_nav as $plugin => $output}
    {if !empty($output)}
        {$_hook_frontend_sidebar_section = true}
    {/if}
{/foreach}
<!-- plugin hook: 'frontend_nav_aux' -->
{* @event frontend_nav.%plugin_id% *}
{foreach $frontend_nav_aux as $plugin => $output}
    {if !empty($output)}
        {$_hook_frontend_sidebar_section = true}
    {/if}
{/foreach}

и перенести его в самое начало шаблона.

1.2) Найти строку

<div class="leftcolumn leftcolumn_narrow">

и добавить перед ней

{if $category.subcategories || $_hook_frontend_sidebar_section || !empty($filters) || ($theme_settings.tags && $tagcloud)}

1.3) После блока

<div class="leftcolumn leftcolumn_narrow">
...
</div>

добавить

{/if}

1.4) Найти строку

<div class="rightcolumn rightcolumn_wide">

и заменить ее на

<div class="rightcolumn{if $category.subcategories || $_hook_frontend_sidebar_section || !empty($filters) || ($theme_settings.tags && $tagcloud)} rightcolumn_wide{else} full_width{/if}">

2.1) Сайт - Дизайн - Шаблоны. В файле megashop.css найти код

.rightcolumn { float: right; }

и после него добавить

.rightcolumn.full_width { float: none; }
  • Убрать стилизацию select, checkbox и radio.

1) Магазин - Витрина - Шаблоны. В файле checkout.html удалить код

setTimeout(function() {
    $('select, input[type=checkbox], input[type=radio]').styler();
}, 500);

2) Магазин - Витрина - Шаблоны. В файлах checkout.payment.html и checkout.shipping.html удалить код

$('select, input[type=checkbox], input[type=radio]').styler();

3) Магазин - Витрина - Шаблоны. В файле megashop.shop.css удалить код

.checkout ul.checkout-options li input[type="radio"] { position: absolute; top: 4px; left: -25px; }
.checkout ul.checkout-options li label input[type="radio"] { top: 7px; }

4) Сайт - Дизайн - Шаблоны. В файле megashop.css найти код

input,
textarea,
select { font: 14px 'Open Sans', Arial, sans-serif; height: 40px; line-height: 36px; margin: 0; padding: 1px 10px; color: #000; background: #fff; border: 1px solid #bababa; border-radius: 5px; box-shadow: inset 1px 1px 3px 0 #bdbdbd; box-sizing: border-box; display: inline-block; vertical-align: middle; }

и заменить его на

input,
textarea,
select { font-family: 'Open Sans', Arial, sans-serif !important; font-size: 14px; line-height: 36px; margin: 0; padding: 1px 10px; color: #000; background: #fff; border: 1px solid #bababa; box-shadow: inset 1px 1px 3px 0 #bdbdbd; box-sizing: border-box; display: inline-block; vertical-align: middle; border-radius: 5px; }
input,
select { height: 40px; }

В этом же файле найти код

input[type="radio"] { height: auto; line-height: auto; }

и заменить его на

input[type="radio"] { height: auto; line-height: normal; vertical-align: baseline; box-shadow: none; }

5) Сайт - Дизайн - Шаблоны. В файле megashop.js найти код

if (!$('.checkout').length) {
    $('select, input[type=checkbox], input[type=radio]').styler();
};

и заменить его на

$('select#currency').styler();
  • Открывать ссылки на социальные сети в новой вкладке.

Сайт - Дизайн - Шаблоны. В файле index.html найти код

{if !empty($theme_settings.facebook)}<a href="{$theme_settings.facebook}" title="[s`Facebook`]"><i class="icon24 facebook"></i></a>{/if}
{if !empty($theme_settings.twitter)}<a href="{$theme_settings.twitter}" title="[s`Twitter`]"><i class="icon24 twitter"></i></a>{/if}
{if !empty($theme_settings.vk)}<a href="{$theme_settings.vk}" title="[s`VK`]"><i class="icon24 vk"></i></a>{/if}
{if !empty($theme_settings.instagram)}<a href="{$theme_settings.instagram}" title="[s`Instagram`]"><i class="icon24 instagram"></i></a>{/if}
{if !empty($theme_settings.youtube)}<a href="{$theme_settings.youtube}" title="[s`Youtube`]"><i class="icon24 youtube"></i></a>{/if}
{if !empty($theme_settings.pinterest)}<a href="{$theme_settings.pinterest}" title="[s`Pinterest`]"><i class="icon24 pinterest"></i></a>{/if}
{if !empty($theme_settings.gplus)}<a href="{$theme_settings.gplus}" title="[s`Google+`]"><i class="icon24 gplus"></i></a>{/if}

и заменить его на

{if !empty($theme_settings.facebook)}<a href="{$theme_settings.facebook}" title="[s`Facebook`]" target="_blank"><i class="icon24 facebook"></i></a>{/if}
{if !empty($theme_settings.twitter)}<a href="{$theme_settings.twitter}" title="[s`Twitter`]" target="_blank"><i class="icon24 twitter"></i></a>{/if}
{if !empty($theme_settings.vk)}<a href="{$theme_settings.vk}" title="[s`VK`]" target="_blank"><i class="icon24 vk"></i></a>{/if}
{if !empty($theme_settings.instagram)}<a href="{$theme_settings.instagram}" title="[s`Instagram`]" target="_blank"><i class="icon24 instagram"></i></a>{/if}
{if !empty($theme_settings.youtube)}<a href="{$theme_settings.youtube}" title="[s`Youtube`]" target="_blank"><i class="icon24 youtube"></i></a>{/if}
{if !empty($theme_settings.pinterest)}<a href="{$theme_settings.pinterest}" title="[s`Pinterest`]" target="_blank"><i class="icon24 pinterest"></i></a>{/if}
{if !empty($theme_settings.gplus)}<a href="{$theme_settings.gplus}" title="[s`Google+`]" target="_blank"><i class="icon24 gplus"></i></a>{/if}
  • Сделать цвет полос диапазона в фильтре в цвете темы.

Если Вы используете одну из предустановленных цветовых схем, то необходим доступ к файловой системе (не подходит для сайтов в облаке)!

1) Магазин - Витрина - Шаблоны. В файле megashop.shop.css найти код

.filters .ui-slider-horizontal .ui-widget-header { background: url('img/ui-slider-header.png') repeat-x; height: 5px; position: relative; top: -1px; z-index: 0; }

и заменить его на

.filters .ui-slider-horizontal .ui-widget-header { height: 5px; position: relative; top: -1px; z-index: 0; }

2) Сайт - Дизайн - Шаблоны. В файле custom-color.html перед закрывающим тегом </style> добавить строчку

.filters .ui-slider-horizontal .ui-widget-header { background-color: {$custom_color}; }

3) Если у Вас есть доступ к файловой системе (т.е. Ваш магазин находится не в облаке Webasyst), то зайдите в папку css, расположенную по адресу wa-data/public/site/themes/megashop/ и там в каждом css-файле (или же только в том, который соответствует выбранной Вами цветовой схеме) в самый конец добавьте строку

.filters .ui-slider-horizontal .ui-widget-header { background-color: -ваш_цвет-; }

где -ваш_цвет- соответствует цвету темы:

- черная (black.css) - #000;

- синяя (blue.css) - #226e89;

- коричневая (brown.css) - #64443e;

- темно-синяя (dark-blue.css) - #134578;

- темно-серая (dark-gray.css) - #41474d;

- зеленая (green.css) - #167016;

- светло-серая (light-gray.css) - #717171;

- светло-зеленая (light-green.css) - #91b731;

- оранжевая (orange.css) - #E65C01;

- пурпурная (purple.css) - #940f37;

- красная (red.css) - #cd2325;

- желто-черная (yellow-black.css) - #e0b20d;

  • Вынести максимальную ширину сайта в настройки темы.

1) Сайт - Дизайн - Шаблоны. В файле index.html перед закрывающим тегом </head> добавить код

<style>
    .container {ldelim} max-width: {if $theme_settings.max_width}{$theme_settings.max_width}{else}1600{/if}px; {rdelim}
</style>

2) Сайт - Дизайн - Шаблоны. В файле megashop.css найти код

.container { margin: 0 auto; padding: 0 20px; max-width: 1600px; }

и заменить его на

.container { margin: 0 auto; padding: 0 20px; }

3) Этот шаг имеет два варианта. Зависит от того, где расположен Ваш сайт - на хостинге (с доступом к файловой системе через FTP или SSH) или на облаке Webasyst.

3.1) Если есть доступ к FTP или SSH, то нужно открыть файл wa-data/public/site/themes/megashop/theme.xml, найти в нем строку

<setting var="pagination" control_type="select">

и вставить перед ней следующий код

<setting var="max_width" control_type="text">
    <value><![CDATA[1600]]></value>
    <name locale="en_US">Maximum width of the site (min 1024, max 1900)</name>
    <name locale="ru_RU">Максимальная ширина сайта (не менее 1024 и не более 1900)</name>
    <description locale="en_US">Numeric value</description>
    <description locale="ru_RU">Числовое значение</description>
</setting>

3.2) Если сайт расположен в облаке Webasyst, нужно зайти в файловый менеджер (Сайт -> Файл-менеджер), там пройти по пути themes/megashop/ и скачать к себе на компьютер файл theme.xml. Затем скачанный файл нужно открыть, добавить код, как это чуть выше описано в шаге 3.1) и обязательно сохранить изменения. Затем возвращаемся в Файл-менеджер и переименовываем файл theme.xml (например, в theme2.xml). После того, как этот файл переименован, возвращаем обратно скачанный ранее и отредактированный файл theme.xml (важно, чтобы его имя осталось неизменным!) путем нажатия на кнопку "Загрузить файлы" и выбора нужного. После всех проделанных действий переименованный файл theme2.xml можно удалить.

  • Убрать красное выделение кнопки "Наверх" при наведении.

1) Сайт - Дизайн - Шаблоны. В файле custom-color.html найти код

#up_button { background-color: {$custom_color}; color: {$text_color}; }

и после него добавить

#up_button:hover { color: {$text_color} !important; }

2) Сайт - Дизайн - Шаблоны. В файле megashop.css найти код

#up_button:hover { opacity: 1; }

и заменить его на

#up_button:hover { opacity: 1; color: #fff; }

где #fff можно заменить на любой подходящий Вам цвет.

  • Ссылка "Сбросить фильтр".

1) Магазин - Витрина - Шаблоны. В файле category.html найти строку

<div class="filters-bottom">

и добавить после нее

<a href="?" class="clear-filter">Сбросить фильтр</a>

2) Магазин - Витрина - Шаблоны. В файле megashop.shop.css найти строку

.filters-bottom { padding: 18px 0 0; text-align: right; }

и добавить после нее

.filters .clear-filter { float: left; margin-top: 10px; }

3) Магазин - Витрина - Шаблоны. В файле megashop.shop.js найти строку

$('.filters .slider').each(function () {

и добавить перед ней

$('.filters.ajax').on('click', '.clear-filter', function(event) {
    event.preventDefault();
    var f = $(this).closest('form');
    $(':input', f)
        .not(':button, :submit, :reset, :hidden')
        .val('')
        .removeAttr('checked')
        .removeAttr('selected');
    f.find('.ui-slider-range').css({
        left: '0',
        width: '100%'
    });
    f.find('a.ui-slider-handle:first-of-type').css('left', '0');
    f.find('a.ui-slider-handle:last-of-type').css('left', '100%');
    var url = $(this).attr('href');
    $(window).lazyLoad && $(window).lazyLoad('sleep');
    $('#product-list').html('<img src="' + f.data('loading') + '">');
    $.get(url+'&_=_', function(html) {
        var tmp = $('<div></div>').html(html);
        $('#product-list').html(tmp.find('#product-list').html());
        if (!!(history.pushState && history.state !== undefined)) {
            window.history.pushState({}, '', url);
        }
        $(window).lazyLoad && $(window).lazyLoad('reload');
    });
});
  • Замена всех {$wa_theme_url} на {$wa_real_theme_url} (возникала проблема с отображением иконок при включенном CDN).

В следующих файлах:

- cart.html,

- compare.html,

- home.html,

- list-thumbs-mini.html,

- list-thumbs.html,

- product.cart.html,

- product.html,

- reviews.html,

- index.html

найти переменную $wa_theme_url и заменить ее на $wa_real_theme_url.

  • Поправлен баг с добавлением товаров в избранное в результатах фильтра.

Сайт - Дизайн - Шаблоны. В файле megashop.js найти строку

$('.to-wishlist').click(function () {

и заменить ее на

$('.container').on('click', '.to-wishlist', function(event) {
  • Блок "Вы смотрели" в категориях.

1) Магазин - Витрина - Шаблоны. В файл category.html в самое начало добавить строку

{$viewed_products = waRequest::cookie('viewed_items')}

Здесь же найти строку

{if $category.subcategories || $_hook_frontend_sidebar_section || !empty($filters) || ($theme_settings.tags && $tagcloud)}

и заменить ее на

{if $category.subcategories || $_hook_frontend_sidebar_section || !empty($filters) || ($theme_settings.tags && $tagcloud) || !empty($viewed_products)}

И здесь же после кода фильтра

{if !empty($filters)}
...
{/if}

(после {/if}) добавить код

{if !empty($viewed_products)}
    {$viewed_products_array = $wa->shop->products("id/`$viewed_products`", null, 5)}
    {if $viewed_products_array}
    <div class="infoblock infoblock_border viewed_products">
        <h3 class="infoblock-header">Вы смотрели</h3>
        {include file="list-thumbs-mini.html" products=$viewed_products_array disable_compare=true disable_pag=true}
    </div>
    {/if}
{/if}

2) Магазин - Витрина - Шаблоны. В файле list-thumbs-mini.html найти строку

{if isset($pages_count) && $pages_count > 1}

и заменить ее на

{if isset($pages_count) && $pages_count > 1 && !isset($disable_pag)}

3) Магазин - Витрина - Шаблоны. В файле megashop.shop.css найти строку

.leftcolumn .tags h3 { color: #163e56; font-size: 18px; font-weight: bold; text-align: left; }

и после нее добавить

.leftcolumn .infoblock.viewed_products { margin-top: 30px; }
  • Исправлен баг строки поиска в некоторых браузерах.

Сайт - Дизайн - Шаблоны. В файле megashop.css найти строку

.search_shop .search-wrapper { position: relative; width: auto; height: auto; margin: 0 0 0 185px; padding: 0; float: none; border: 0; border-radius: 0; box-shadow: 0 0; }

и заменить ее на

.search_shop .search-wrapper { position: relative; width: auto; height: auto; margin: 0 0 0 190px; padding: 0; float: none; border: 0; border-radius: 0; box-shadow: 0 0; }
  • Исправлено моргание строки поиска при использовании автозаполнения.

Сайт - Дизайн - Шаблоны. В файле megashop.css найти строку

.search_shop input[type="search"] { width: 100%; height: 40px; padding-left: 35px; font-size: 16px; float: none; }

и перед закрывающей фигурной скобкой добавить

background: #fff;
  • Возможность скрыть/показать количество товаров в подкатегориях на главной.

Необходим доступ к файловой системе (не подходит для сайтов в облаке)!

1) Магазин - Витрина - Шаблоны. В файле home.html найти строку

{if $smarty.foreach.i.iteration > 4},{/if} <a href="{$child.url}">{$child.name}</a> ({$child.count})

и заменить ее на

{if $smarty.foreach.i.iteration > 4},{/if} <a href="{$child.url}">{$child.name}</a>{if $theme_settings.products_count} ({$child.count}){/if}

Здесь же найти строку

{if !$smarty.foreach.i.first},{/if} <a href="{$child.url}">{$child.name}</a> ({$child.count})

и заменить ее на

{if !$smarty.foreach.i.first},{/if} <a href="{$child.url}">{$child.name}</a>{if $theme_settings.products_count} ({$child.count}){/if}

2) Открыть файл wa-data/public/shop/themes/megashop/theme.xml, найти в нем строку

<setting var="sub_number" control_type="text">

и добавить перед ней

<setting var="products_count" control_type="checkbox">
    <value>1</value>
    <name locale="en_US">Show/hide products count in subcategories</name>
    <name locale="ru_RU">Показать/скрыть количество товаров в подкатегориях</name>
</setting>
  • Вывод фильтра на странице бренда.

1) Магазин - Витрина - Шаблоны. В файле megashop.shop.css найти строку

#brand-page .sub-categories br { display: none; }

и добавить после нее

#brand-page .filters { margin-top: 0px; }

2) Магазин - Витрина - Шаблоны. В файле search.html найти строку

<div id="brand-page">

и добавить после нее

{if !empty($filters)}
<div class="leftcolumn leftcolumn_narrow">
    <div class="column-in">
        <!-- filtering by product features -->
        {if !empty($filters)}
        {if waRequest::isXMLHttpRequest() && waRequest::get('page', 1) == 1}
        <link href="{$wa_static_url}wa-content/css/jquery-ui/base/jquery.ui.slider.css" rel="stylesheet" type="text/css">
        <script type="text/javascript" src="{$wa_static_url}wa-content/js/jquery-ui/jquery.ui.core.min.js?v{$wa->version(true)}"></script>
        <script type="text/javascript" src="{$wa_static_url}wa-content/js/jquery-ui/jquery.ui.widget.min.js?v{$wa->version(true)}"></script>
        <script type="text/javascript" src="{$wa_static_url}wa-content/js/jquery-ui/jquery.ui.mouse.min.js?v{$wa->version(true)}"></script>
        <script type="text/javascript" src="{$wa_static_url}wa-content/js/jquery-ui/jquery.ui.slider.min.js?v{$wa->version(true)}"></script>
        {/if}
        <div class="filters{if !empty($theme_settings.ajax_filters)} ajax{/if}">
            <div class="filters-header">[`Choose filter`]</div>
            <form method="get" action="{$wa->currentUrl(0,1)}" data-loading="{$wa_parent_theme_url}img/loading16.gif">
                {foreach $filters as $fid => $filter}
                    <div class="filter-param">
                        {if $fid == 'price'}
                            {$c = $wa->shop->currency(true)}
                            <h5>[`Price`]</h5>
                            <div class="slider">
                            <input type="text" class="min" name="price_min" {if $wa->get('price_min')}value="{(int)$wa->get('price_min')}"{/if} placeholder="{floor($filter.min)}">
                            <input type="text" class="max" name="price_max" {if $wa->get('price_max')}value="{(int)$wa->get('price_max')}"{/if} placeholder="{ceil($filter.max)}">
                            <div class="clear-both"></div>
                            </div>
                        {else}
                            <h5>{$filter.name|escape}{if !empty($filter.unit)}, {$filter.unit.title}{/if}</h5>
                            {if $filter.type == 'boolean'}
                                <label><input type="radio" name="{$filter.code}"{if $wa->get($filter.code)} checked{/if} value="1"> [`Yes`]</label>
                                <label><input type="radio" name="{$filter.code}"{if $wa->get($filter.code) === '0'} checked{/if} value="0"> [`No`]</label>
                                <label><input type="radio" name="{$filter.code}"{if $wa->get($filter.code, '') === ''} checked{/if} value=""> [`Any`]</label>
                            {elseif isset($filter.min)}
                            {$_v = $wa->get($filter.code)}
                            <div class="slider">
                            <input type="text" class="min" name="{$filter.code}[min]" placeholder="{$filter.min}" {if !empty($_v.min)}value="{$_v.min}"{/if}>
                            <input type="text" class="max" name="{$filter.code}[max]" placeholder="{$filter.max}" {if !empty($_v.max)}value="{$_v.max}"{/if}>
                            <div class="clear-both"></div>
                            {if !empty($filter.unit)}
                                {if $filter.unit.value != $filter.base_unit.value}<input type="hidden" name="{$filter.code}[unit]" value="{$filter.unit.value}">{/if}
                            {/if}
                            </div>
                            {else}
                            {foreach $filter.values as $v_id => $v}
                                <label>
                                    <input type="checkbox" name="{$filter.code}[]" {if in_array($v_id, (array)$wa->get($filter.code, array()))}checked{/if} value="{$v_id}"> {$v}
                                </label>
                            {/foreach}
                            {/if}
                        {/if}
                    </div>
                {/foreach}
                {if $wa->get('sort')}<input type="hidden" name="sort" value="{$wa->get('sort')|escape}">{/if}
                {if $wa->get('order')}<input type="hidden" name="order" value="{$wa->get('order')|escape}">{/if}
                <div class="filters-bottom">
                    <a href="?" class="clear-filter">Сбросить фильтр</a>
                    <button type="submit" class="button button_gray"><span class="ico ico_search"></span>[`Find`]</button>
                </div>
            </form>
        </div>
        {/if}
    </div>
</div>
{/if}
<div class="rightcolumn{if !empty($filters)} rightcolumn_wide{else} full_width{/if}">

3) В этом же файле найти строку

{if strpos($wa->currentUrl(false), '/brand/') !== false}

и добавить после нее

</div>
<div class="clear-both"></div>
  • Возможность включать/выключать вид списка товаров.

Необходим доступ к файловой системе (не подходит для сайтов в облаке)!

1) Магазин - Витрина - Шаблоны. В файле list-thumbs.html найти код

<div class="product-view-btns">
    <button class="thumbs{if !empty($view) && $view=='thumbs'} active{/if}" type="button" data-view="thumbs"><i class="fa fa-th-large fa-2x"></i></button>
    <button class="list-big{if !empty($view) &&  $view=='list-big'} active{/if}" type="button" data-view="list-big"><i class="fa fa-th-list fa-2x"></i></button>
    <button class="list-small{if !empty($view) &&  $view=='list-small'} active{/if}" type="button" data-view="list-small"><i class="fa fa-align-justify fa-2x"></i></button>
</div>

и заменить его на

<div class="product-view-btns">
    {if $theme_settings.show_thumbs}
    <button class="thumbs{if !empty($view) && $view=='thumbs'} active{/if}" type="button" data-view="thumbs"><i class="fa fa-th-large fa-2x"></i></button>
    {/if}
    {if $theme_settings.show_big_list}
    <button class="list-big{if !empty($view) &&  $view=='list-big'} active{/if}" type="button" data-view="list-big"><i class="fa fa-th-list fa-2x"></i></button>
    {/if}
    {if $theme_settings.show_small_list}
    <button class="list-small{if !empty($view) &&  $view=='list-small'} active{/if}" type="button" data-view="list-small"><i class="fa fa-align-justify fa-2x"></i></button>
    {/if}
</div>

2) Магазин - Витрина - Шаблоны. В файле megashop.shop.js найти строку

align_height($('.thumbs .thumbs-name'));

и заменить ее на

align_height($('#product-list .thumbs .thumbs-name'));

Здесь же найти строку

old_view = $('.product-list').data('default-view');

и заменить ее на

old_view = $('#product-list .product-list').data('default-view');

Здесь же найти строки

$('.product-list').removeClass(old_view);
$('.product-list').addClass(new_view);

и заменить их на

$('#product-list .product-list').removeClass(old_view);
$('#product-list .product-list').addClass(new_view);

3) Открыть файл wa-data/public/shop/themes/megashop/theme.xml, найти в нем строку

<setting var="ajax_filters" control_type="checkbox">

и добавить перед ней

<setting var="show_thumbs" control_type="checkbox">
    <value>1</value>
    <name locale="en_US">Show/hide thumbs view</name>
    <name locale="ru_RU">Показать/скрыть вид плиткой</name>
</setting>
<setting var="show_big_list" control_type="checkbox">
    <value>1</value>
    <name locale="en_US">Show/hide big list view</name>
    <name locale="ru_RU">Показать/скрыть вид таблицей</name>
</setting>
<setting var="show_small_list" control_type="checkbox">
    <value>1</value>
    <name locale="en_US">Show/hide small list view</name>
    <name locale="ru_RU">Показать/скрыть вид списком</name>
</setting>
  • Добавить Одноклассники в список соцсетей.

Необходим доступ к файловой системе (не подходит для сайтов в облаке)!

1) Сайт - Дизайн - Шаблоны. В файле index.html найти строку

{if !empty($theme_settings.gplus)}<a href="{$theme_settings.gplus}" title="[s`Google+`]" target="_blank"><i class="icon24 gplus"></i></a>{/if}

и добавить после нее

{if !empty($theme_settings.ok)}<a href="{$theme_settings.ok}" title="[`Odnoklassniki`]" target="_blank"><i class="icon24 odnoklassniki"></i></a>{/if}

2) Сайт - Дизайн - Шаблоны. В файле megashop.css найти строку

.icon16.instagram { background-position: -128px 0; }

и добавить после нее

.icon16.odnoklassniki { background-position: -144px 0; }

В этом же файле найти строку

.icon24.gplus { background-position: -168px -50px; }

и добавить после нее

.icon24.odnoklassniki { background-position: -168px -76px; }

3) Обновить изображение wa-data/public/site/themes/megashop/img/icons.png

4) Открыть файл wa-data/public/site/themes/megashop/theme.xml, найти в нем строку

</settings>

и добавить перед ней

<setting var="ok" control_type="text">
    <value><![CDATA[http://]]></value>
    <name locale="en_US">Odnoklassniki URL</name>
    <name locale="ru_RU">Адрес страницы в «Одноклассниках»</name>
</setting>

В этом же файле найти строку

</locales>

и добавить перед ней

<locale>
    <msgid>Odnoklassniki</msgid>
    <msgstr locale="ru_RU">Одноклассники</msgstr>
</locale>
  • Произвольный список в правой колонке.

1) Магазин - Витрина - Шаблоны. В файле search.html найти строку

{elseif $wa->get('list') == 'viewed_products'}

и добавить перед ней

{elseif $wa->get('list') == 'extra'}
    {$title = "`$theme_settings.extra_list_title`"}
    {$wa->title($title)}
    {$pages_count = 1}
    {$extra = $wa->shop->productSet("extra")}
    {if $extra}
        {$products = $extra}
    {else}
        {$products = null}
    {/if}

2) Магазин - Витрина - Шаблоны. В файле sidebar.shop.html найти код

{$new = $wa->shop->productSet("new", null, 3)}
{if $new}
<div class="infoblock infoblock_border">
    <h3 class="infoblock-header"><a href="{$wa->getUrl('shop/frontend/search')}?list=new">[`New products`]</a></h3>
    {include file="list-thumbs-mini.html" products=$new disable_compare=true}
</div>
{/if}

и добавить после него

{$extra = $wa->shop->productSet("extra", null, 3)}
{if $extra}
<div class="infoblock infoblock_border">
    {if $theme_settings.extra_list_title}
    <h3 class="infoblock-header"><a href="{$wa->getUrl('shop/frontend/search')}?list=extra">{$theme_settings.extra_list_title}</a></h3>
    {/if}
    {include file="list-thumbs-mini.html" products=$extra disable_compare=true}
</div>
{/if}

В этом же файле найти код

{$new = $wa->shop->productSet("new", null, 5)}
{if $new}
<div class="infoblock">
    <h3 class="infoblock-header"><a href="{$wa->getUrl('shop/frontend/search')}?list=new">[`New products`]</a></h3>
    {include file="list-thumbs.html" products=$new}
</div>
{/if}

и добавить после него

{$extra = $wa->shop->productSet("extra", null, 5)}
{if $extra}
<div class="infoblock">
    {if $theme_settings.extra_list_title}
    <h3 class="infoblock-header"><a href="{$wa->getUrl('shop/frontend/search')}?list=extra">{$theme_settings.extra_list_title}</a></h3>
    {/if}
    {include file="list-thumbs.html" products=$extra}
</div>
{/if}

! Чтобы список отобразился на витрине необходимо в приложении "Магазин" создать список с идентификатором extra.

  • Ограничить число выводимых тегов.

Необходим доступ к файловой системе (не подходит для сайтов в облаке)!

1) Открыть файл wa-data/public/shop/themes/megashop/theme.xml, найти в нем строку

<setting var="productsblock_category_id" control_type="text">

и добавить перед ней

<setting var="tags_count" control_type="text">
    <value><![CDATA[]]></value>
    <name locale="en_US">The number of displayed tags</name>
    <name locale="ru_RU">Количество выводимых тегов</name>
    <description locale="ru_RU"><![CDATA[Для вывода всех тегов - оставьте поле пустым]]></description>
    <description locale="en_US"><![CDATA[To display all tags, leave the field blank]]></description>
</setting>

2) Сайт - Дизайн - Шаблоны. В файле sidebar.html найти строку

{$tags = $wa->shop->tags()}

и заменить ее на

{$tags = $wa->shop->tags($theme_settings.tags_count)}
  • Добавить блок "Поделиться" в карточку товара.

1) Магазин - Витрина - Шаблоны. В файле megashop.shop.css найти строку

#product-categories { margin-bottom: 5px; }

и добавить перед ней

.cart .tags { margin-top: 20px; }

2) Магазин - Витрина - Шаблоны. В файле product.html найти блок

<div class="cart" id="cart-flyer">
...
</div>

и перед закрывающим тегом </div> добавить код

<script type="text/javascript" src="//yastatic.net/share/share.js" charset="utf-8"></script><div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="button" data-yashareQuickServices="vkontakte,facebook,twitter,odnoklassniki,moimir,gplus"></div>
  • Стили для плагина "Заказ в один шаг" (onestep).

Магазин - Витрина - Шаблоны. Открыть файл megashop.shop.css и в самый конец добавить код

/* Onestep order
------------------- */
.onestep-cart td {
    border: none !important;
}
.onestep-cart .item-total,
.onestep-cart .cart-discount {
    font-size: 24px;
}
.onestep-cart td.cart-total {
    font-weight: normal;
}
.onestep-cart input[name='coupon_code'] {
    margin: 0px 10px;
}
.table.cart tr.large.no-border td {
    background-color: #E7E7E7;
}
.onestep-cart .checkout {
    border: 0 !important;
    box-shadow: none !important;
    margin: 40px 0px 0px !important;
}
.onestep-cart .checkout .checkout-step {
    border: 0 !important;
}
.onestep-cart .checkout .checkout-step h2 {
    font-weight: normal !important;
    text-transform: none !important;
    color: #8a8a8a;
}
.onestep-cart .checkout .checkout-step-content.auth {
    width: 97% !important;
}
@media screen and (max-width: 1024px) {
    .onestep-cart .checkout .checkout-step-content {
        width: 98%;
    }
}
  • Возможность включать/отключать способы сортировки.

Необходим доступ к файловой системе (не подходит для сайтов в облаке)!

1.1) Открыть файл wa-data/public/shop/themes/megashop/theme.xml, найти в нем код

<name locale="en_US">
        Products show
        <![CDATA[
        <hr /><br/><br/>
        <p class="p-title" style="font-size: 14px; font-weight: bold; width: 300px;">4.2. Product card</p>
        ]]>
</name>
<name locale="ru_RU">
        Вывод товаров
        <![CDATA[
        <hr /><br/><br/>
        <p class="p-title" style="font-size: 14px; font-weight: bold; width: 300px;">4.2. Карточка товара</p>
        ]]>
</name>

и заменить его на

<name locale="en_US">
        Products show
        <![CDATA[
        <br/><br/>
        <p class="p-title" style="font-size: 13px; margin: 25px 0 5px; font-weight: bold; width: 300px;">4.1.1. Sorting</p>
        ]]>
</name>
<name locale="ru_RU">
        Вывод товаров
        <![CDATA[
        <br/><br/>
        <p class="p-title" style="font-size: 13px; margin: 25px 0 5px; font-weight: bold; width: 300px;">4.1.1. Сортировка</p>
        ]]>
</name>

1.2) В этом же файле найти строку

<setting var="selectable_features_control" control_type="radio">

и добавить перед ней

<setting var="sort_name" control_type="checkbox">
    <value>1</value>
    <name locale="en_US">By name</name>
    <name locale="ru_RU">По названию</name>
</setting>
<setting var="sort_price" control_type="checkbox">
    <value>1</value>
    <name locale="en_US">By price</name>
    <name locale="ru_RU">По цене</name>
</setting>
<setting var="sort_total_sales" control_type="checkbox">
    <value>1</value>
    <name locale="en_US">By total sales</name>
    <name locale="ru_RU">По продажам</name>
</setting>
<setting var="sort_rating" control_type="checkbox">
    <value>1</value>
    <name locale="en_US">By rating</name>
    <name locale="ru_RU">По рейтингу покупателей</name>
</setting>
<setting var="sort_create_datetime" control_type="checkbox">
    <value>1</value>
    <name locale="en_US">By create datetime</name>
    <name locale="ru_RU">По дате создания</name>
</setting>
<setting var="sort_stock" control_type="checkbox">
    <value>1</value>
    <name locale="en_US">
        By stock
        <![CDATA[
        <hr /><br/><br/>
        <p class="p-title" style="font-size: 14px; font-weight: bold; width: 300px;">4.2. Product card</p>
        ]]>
    </name>
    <name locale="ru_RU">
        По наличию
        <![CDATA[
        <hr /><br/><br/>
        <p class="p-title" style="font-size: 14px; font-weight: bold; width: 300px;">4.2. Карточка товара</p>
        ]]>
    </name>
</setting>

2) Магазин - Витрина - Шаблоны. В файле list-thumbs.html найти код

{$sort_fields = [
    'name' => '[`Name`]',
    'price' => '[`Price`]',
    'total_sales' => '[`Bestsellers`]',
    'rating' => '[`Customer rating`]',
    'create_datetime'=>'[`Date added`]',
    'stock' => '[`In stock`]']}

и заменить его на

{if $theme_settings.sort_name}
    {$sort_fields['name'] = '[`Name`]'}
{/if}
{if $theme_settings.sort_price}
    {$sort_fields['price'] = '[`Price`]'}
{/if}
{if $theme_settings.sort_total_sales}
    {$sort_fields['total_sales'] = '[`Bestsellers`]'}
{/if}
{if $theme_settings.sort_rating}
    {$sort_fields['rating'] = '[`Customer rating`]'}
{/if}
{if $theme_settings.sort_create_datetime}
    {$sort_fields['create_datetime'] = '[`Date added`]'}
{/if}
{if $theme_settings.sort_stock}
    {$sort_fields['stock'] = '[`In stock`]'}
{/if}
  • Исправить баг со вторым виджетом Facebook

Магазин - Витрина - Шаблоны. В файле home.html удалить код

<!-- CONNECT -->
<div class="connect">
    {* FACEBOOK LIKE BOX *}
    {$_facebook_page_id = str_replace('www.facebook.com/','',str_replace('https://','',str_replace('http://','',$theme_settings.facebook)))}
    {if  !empty($_facebook_page_id)}
        <div class="likebox">
            <div id="fb-root"></div>
            <script>(function(d, s, id) {
              var js, fjs = d.getElementsByTagName(s)[0];
              if (d.getElementById(id)) return;
              js = d.createElement(s); js.id = id;
              js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=167596066655267&version=v2.0";
              fjs.parentNode.insertBefore(js, fjs);
            }(document, 'script', 'facebook-jssdk'));</script>
            <div class="fb-like-box" data-href="https://www.facebook.com/{$_facebook_page_id}" data-colorscheme="light" data-show-faces="true" data-header="true" data-stream="false" data-show-border="true"></div>
        </div>
    {/if}
    {*
        <div class="likebox">
            EMBED MORE SOCIAL WIDGETS
        </div>
    *}
</div>

-