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

Для чего нужны дополнительные параметры

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

Дополнительные параметры нужны для того, чтобы индивидуальным образом обрабатывать конкретный товар или категорию в плагинах и темах дизайна. В ежедневной работе пользователю обычно не приходится как-то использовать дополнительные параметры.

Примеры дополнительных параметров:

color=red
icon=new

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

Как записывать дополнительные параметры

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

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

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

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

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

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

Как могут использоваться дополнительные параметры

Дополнительные параметры могут использоваться для размещения на страницах витрины дополнительного содержимого. Например, если вы хотите разместить дополнительный блок с описанием товара на странице этого товара, то можно использовать рассмотренный выше параметр 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}
    ...здесь информация о промоакции, в которой участвует данный товар
{else}
    ...здесь информация для всех остальных товаров
{/if}

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

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

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

Страницы

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

Поселения

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

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

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

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

    • +1
      Михаил Ушенин Михаил Ушенин 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
          Алексей Алексей 6 сентября 2016 21:22 #

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

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

        • +2

          Добрый день.

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

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

          • 0
            Михаил Ушенин Михаил Ушенин 2 июня 2017 12:07 #

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

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

          • +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
              Алексей Алексей 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 применяется раньше, чем отрицание.

              • +2
                Алексей Алексей Эксперт 28 ноября 2023 11:43 #

                Если вам нужно к примеру будет чтобы у категории в названии h1 было из поля "Дополнительные параметры" то можно сделать {if $category.params.h1}{$category.params.h1}{else}{$category.name}{/if} чтобы если h1= (в Дополнительные параметры) заполнено то будет выводится в место обычного название категории. 

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

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

                Раздел помощи работает на основе приложения «Хаб»