Дополнительные параметры страниц витрины Shop-Script

1. Создание параметров

При создании или редактировании товаров и категорий имеется возможность указать в отдельном текстовом поле дополнительные параметры для товара либо категории.

Поле для дополнительных параметров товара находится в разделе «Описания», а поле для дополнительных параметров категории доступно в диалоге редактирования свойств категории.

Дополнительные параметры предназначены для добавления дополнительного содержимого на страницы витрины. Примеры дополнительных параметров:

color=red
icon=new

В этом примере именами параметров являются color и icon, а их значения — red и new.

Имя параметра должно быть составлено из латинских букв, цифр и символов подчеркивания — без пробелов. После имени параметра должен стоять знак равенства, за которым должно следовать значение параметра — произвольный набор символов: число, слово, несколько слов, фрагмент HTML-кода и т. п.

Важно: в значении дополнительного параметра не должны присутствовать переносы строк. Вот такой пример — неправильный:

extra_description=<p>
Дополнительное описание товара:<br />
...
</p>

В этом примере значением параметра extra_description окажется только открывающий тег <p>. Все, что находится на следующих строках, будет распознано как другие дополнительные параметры, если их запись соответствует описанным выше правилам, в противном случае такие строки будут просто проигнорированы.

Правильный способ задания дополнительного параметра — записать его значение в одну строку:

extra_description=<p>Дополнительное описание товара:<br />...</p>

2. Использование параметров

Дополнительные параметры могут использоваться для размещения на страницах витрины дополнительного содержимого. Например, если вы хотите разместить дополнительный блок с описанием товара на странице этого товара, то можно использовать рассмотренный выше параметр extra_description. Для этого нужно в шаблоне product.html редактора дизайна добавить в нужном месте следующую конструкцию:

{$product.params.extra_description}

Дополнительные параметры можно использовать для изменения внешнего вида страниц отдельных товаров или категорий. Например, с помощью параметра вида

style=color:#555; background-color: #eee;

можно задать индивидуальный внешний вид для некоторого элемента страницы конкретной категории (в шаблоне category.html) следующим образом:

<div {if $category.params.style}style="$category.params.style"{/if}>...</div>

Значения дополнительных параметров можно также использовать для формирования условий вида «если значение параметра равно …, то отображать такую-то информацию; в противном случае отображать другую информацию». Пример такого дополнительного параметра для товара:

promo=true

В соответствующем шаблоне (в данном случае шаблоне товара — product.html) добавьте вот такое условие с использованием этого параметра:

{if $product.params.promo}
    ...здесь информация о промо-акции, в которой участвует данный товар
<em>{else}
    ...здесь информация для всех остальных товаров</em>
{/if}

Элемент условия {else} можно опустить, если для всех остальных товаров в данном примере ничего отображать не нужно. В таком случае условие будет иметь вид

{if $product.params.promo}
    ...здесь информация о промо-акции, в которой участвует данный товар
{/if}

Дополнительные параметры для других элементов витрины

Страницы

Для страниц, создаваемых в разделе «Витрина → Страницы» можно задавать дополнительные параметры. Об использовании таких параметров читайте в статье «Дополнительные параметры страниц».

Поселения

В свойствах поселения (витрины) интернет-магазина, настройки которого доступны в разделе «Маршрутизация» приложения «Сайт», также можно указать дополнительные параметры. Значения таких параметров доступны в шаблонах дизайна с помощью метода {$wa->globals()}. Например, значение параметра shop=books можно получить в любом шаблоне дизайна с помощью конструкции {$wa->globals('shop')}.

Использование дополнительных параметров поселения может быть полезно при управлении несколькими поселениями (витринами) из одной установки Shop-Script. Подробнее о настройке нескольких витрин интернет-магазина →

10 комментариев

  • +1
    Андрей Андрей 6 сентября 2016 15:46 #

    Подскажите, какая конструкция будет правильной для страницы шаблона list-thumbs.html? Как узнать какие переменные используются для той или иной страницы шаблона?

    • +1
      Михаил Ушенин Михаил Ушенин Webasyst 6 сентября 2016 15:55 #

      Вставьте в шаблон конструкцию

      {if $wa->get('test')}{wa_tpl_vars}{/if}

      и откройте в браузере страницу, использующую этот шаблон, добавив к URL страницы параметр ?test=1. На странице должен появиться список всех доступных переменных. Примерно так:

      Сохраните себе этот список в блокнот и удалите отладочный скрипт из шаблона на всякий случай.

      • +1
        Андрей Андрей 6 сентября 2016 19:26 #

        Я имел ввиду немного другое.

        Для вывода доп.параметра в шаблоне product.html используется конструкция

        {$product.params.value}

        а в шаблоне category.html -

        {$category.params.value}

        А какая конструкция для шаблона list-thumbs.html?

        • +1
          Алексей Алексей Webasyst 6 сентября 2016 21:22 #

          Если бы вы попробовали то что было предложено то увидели бы все варианты.

          отдельно list-thumbs практически не используется. Его обычно подключают в уже готовый шаблон в котором уже есть переменные.

        • +1

          Добрый день.

          Подскажите, что необходимо внести в окно "Дополнительные параметры" категории товаров, чтоб она не отображалась в каталоге товаров на сайте? При этом вариант "Скрыть категорию" не подойдет - категория должна индексироваться.

          *данные категории создаются исключительно для СЕО, количество таких категорий - несколько десятков, поэтому выводить их в каталоге товаров нельзя, будет каша...

          • +1

            Подозреваю, что к вам могут быть применены санкции со стороны поисковых систем за то, что пытаетесь проиндексировать страницы (категорий), которые недоступны посетителям сайта (нет ссылок для этого). Это получается "теневая" часть сайта, которая должна влиять на рейтинг сайта в результатах поиска, но не должна быть доступна посетителям? Выглядит нехорошо. Или всё не так?

            А по сути вашего вопроса: универсального значения такого параметра не существует, потому что доп. параметры используются темами дизайна, и все темы построены по-разному. Поэтому вам надо либо спрашивать разработчика своей темы, либо сразу спрашивать, как изменить код темы дизайна, чтобы она стала использовать введённый вами доп. параметр. Но и на такой вопрос сложно сразу ответить однозначно, ведь исходный код у тем дизайна разный. Надо смотреть, какой у вас код. Чтобы решить вопрос в разумные сроки и с надёжным результатом, вам стоит обратиться к специалисту, который за плату скроет вам на сайте всё, что нужно.

          • +1
            Александр Александр 2 марта 2018 18:16 #

            Добрый день.

            Подскажите, как правильно проверять наличие параметра у категории, если он может принимать значение false ?

            Некоторым категориям задаю дополнительный параметр для скрытия вывода товаров - show_products=false. Затем использую проверку в шаблоне вроде такой:

            {if !$category.params.show_products}
                   <div>... вывод списка продуктов ...</div>
            {/if}

            Но в php.log появляются notice (на категориях, у которых нет такого параметра):

            PHP Notice:  Undefined index: show_products

            Присваивать параметр для всех категорий со значением true, а для нужных менять тоже не вариант. Думал сделать проверку через isset($category.params.show_products), и присваивать значение новой переменной, скажем, $show_products, в зависимости от результата. Но так не заработало. Подозреваю, что из-за того, что значение параметра false.

            Я не специалист в этом, поэтому знаний не хватает разобраться. Буду благодарен за помощь.

            • +1
              Алексей Алексей Webasyst 2 марта 2018 18:26 #
              {if !$category.params.show_products}

              замените на

              {if !$category.params.show_products|default:true}
              • +1
                Александр Александр 2 марта 2018 19:02 #

                Здравствуйте, Алексей.

                Спасибо за быстрый ответ. Правда заработало только в таком виде:

                {if (!$category.params.show_products)|default:true}

                Видимо, true применяется раньше, чем отрицание.

                Добавить комментарий

                Чтобы добавить комментарий, зарегистрируйтесь или войдите