Вставка списков товаров на страницы, в каталог, блог

В Shop-Script есть встроенная возможность добавлять списки в разные места магазина: https://take.ms/WnE9N.

Для вывода списка на информационной странице (скрин: https://take.ms/9OoBH) или в Блоге используется такой код:

{if $wa->shop}
{$products = $wa->shop->productSet("sorochki")}
{include file="`$wa->shop->themePath('balance')`list-thumbs.html" products=$products}
{/if}

Однако, он не срабатывает. И приводит лишь к появлению ошибок вперемешку с ценами товаров и кривыми кнопками «В корзину» (скрин: https://take.ms/hs8yGf).

Вживую это выглядит так: https://badbedshop.ru/test111/.

Подскажите, то ли мы что-то делаем не правильно, то ли действительно возможность не предусмотрена темой? Так или иначе, очень хотелось бы найти решение. В следующих обновлениях, или (если получится) в виде инструкции что-как заменить, чтобы списки начали работать.

5 ответов
a
Леман Евгений
Programmer
#
27 января 2020 18:46

Если речь о текстовой странице магазина, то проблем вроде нет: https://balance.designmyshop.ru/aktsii/

Даже несмотря на то, что поддержку этого функционала делать не планировали особо. Если речь о страницах другого приложения, то да, там не будут доступны JS/CSS магазина. А вот в постах блога поддержки Smarty в принципе нет. По крайней мере штатно. И даже если её и сделать, то будет то, что я описал выше.

a
Евгений Костин
#
27 января 2020 20:09

Да, речь в том числе о текстовых страницах магазина. Хотя бы с ними разобраться… Вы можете подсказать, почему может возникать ошибка на странице https://badbedshop.ru/test111/? При том, что список 100% существует. И там даже видна кое-какая информация о товарах (цена и наличие).

А ещё, например, списки могут быть нужны в самом каталоге. Для того, чтобы показать лидеров продаж в категории, над основной сеткой. И вопрос, конечно, не во встроенной поддержке функционала, а в том, как убрать эти ошибки и вставить, как, к примеру, на главной.

a
Леман Евгений
Programmer
#
28 января 2020 13:20

Надо написать коллективную жалобу в вебасист, чтобы они убрали надпись о таком способе вставки товаров... Дело в том, что в подключаемый таким способом шаблон не попадают значения настроек темы. Это не проблема для темы Default, в которой подобных настроек в принципе нет. Но у нас они, как вы сами понимаете, на каждую строку имеются. Да и в любой современной теме так. И получается ошибка. Наш хостинг с демо-витриной эти ошибки прощает и не выводит. Ваш же более жесток. Но можно попробовать решить эту проблему небольшим костылем. Попробуйте открыть шаблон магазина page.html и найти там строку:

{$page.content}

Замените её на:

{include file="string:`$page.content`" inline}

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

a
Евгений Костин
#
28 января 2020 18:47

:-) Спасибо! Но, к сожалению, так тоже не сработало:

Не очень пока понятно, в какую же сторону копать… Вебасист? Они должны предложить конструкцию для вставки списка на страницу? Хостинг? А это хорошо или плохо, что у нас он не игнорирует ошибки? (Вопрос риторический) Вас донимать? )) Ну тоже как-то неправильно, если вы со своей стороны сделали всё, чтобы это работало.

a
Леман Евгений
Programmer
#
28 января 2020 19:49

Уточнил у коллег по этому вопросу. В паре тем настройки карточек выведены в сам шаблон так, чтобы их можно было менять и оттуда. Удобство спорное, но зато можно будет изменять настройки при подобной вставке. Но это не уберет ошибки. Т.к. к массиву $theme_settings там доступа всё равно нет. Тут уже можно выкрутиться со стороны темы, сделав тонну доп. условий. Но усложнять код подобным образом ради спорной функции не совсем целесообразно. Вы же потом нас и проклянете, когда захотите что-то изменить. И это не решит проблему доступа к настройкам. Лишь уберет ошибки. Что вы можете сделать и так через хостера. Просто попросите "убавить" error_reporting. Это можно сделать и самому через .htaccess в корне или index.php там же, добавив в начале:

php_flag display_errors off
php_value error_reporting 0

Но я немного далёк от подобного. Способ лучше уточнить у хостера. Нужно спрятать нотисы.

Вас донимать?

О том, что можно сделать с нашей стороны и о целесообразности сего, я написал выше. Тут мы не будем лепить костыли. Донимать вебасист... Это скорее наша задача. Если им будут писать об этом простые юзеры, то они не будут вдаваться в детали и скажут "В Default работает. Значит проблема в теме". Но на самом деле проблема в том, что когда создавалась тема Default, настроек у тем не было в принципе. Нет настроек = нет проблем. Современному потребителю такая тема и даром не нужна.

Еще коллеги в подобных случаях советуют своим клиентам сделать скрытую категорию и её использовать для подобных целей. Говорят, что клиенты благодарят и просто сами до этого не додумались.

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