shweder 13 октября 2014 1 25
Добрый день. Установил сборку. Начал заполнять карточки товара. Заполнил, но на сайте в каталоге отображаются только первые 15 позиций. Как снять ограничение?

сам каталог:
http://swisskarma.ru/catalog/iphone-cases/
25 комментариев
Fi1osof1
Fi1osof 13 октября 2014г в 13:32 #
Добрый день.
Там нет ограничения. Просто пагинация не выводится. Пропишите пагинацию в шаблоне категории. Смотрите как это работает на корневой странице каталога http://swisskarma.ru/catalog/ .
s
shweder 13 октября 2014г в 14:24 #
а можно по подробнее?
Fi1osof1
Fi1osof 13 октября 2014г в 14:55 #
Нет. Если знаний не хватает здесь, лучше ShopModxBox забросить, так как там многое требует знаний в программировании.
s
sasha-freez 13 октября 2014г в 15:13 #
Пусть пробует, смотри работу сниппетов и плейсхолдеров, забыл видимо вставить пагинацию.
Не понимаешь, смотри по примеру, как сказал Николай.
C
Comp.8bit 13 октября 2014г в 16:20 #
сегодня праздник нубов. тоже разбираюсь с этим. нид хелп.
очевидно править нужно category.tpl правильно? https://yadi.sk/i/_AkE-3PDbyJdF
но что-то не помогает.
еще задержка в том, что много одноименных файлов в разных категориях (list.tpl, layout.tpl)
Fi1osof1
Fi1osof 13 октября 2014г в 17:57 #
В целом правильно. Только надо еще дальше плясать. Там есть вызов:
{block name=content}
{processor action="web/catalog/category/products/getdata" ns="modxsite" assign=result}
{* Набиваем через единый шаблон листинга *}
{include file="shop/catalog/list/fetch.tpl"}
{/block}

Вот вложенные шаблоны и надо смотреть. И здесь два момента:
1. Во вложенном шаблоне прописан плейсхолдер [[+page.nav]], но в вызове процессора не прописан передаваемый параметр getPage => true. Без этого параметра не будет вызываться в процессоре сниппет getPage.
2. Сейчас все шаблоны некешируемые (включена настройка в шаблонах phptemplate.non-cached=true). Если некеширование выключить, то пагинация не будет корректно работать. В шаблоне tpl/category.tpl надо бы переделать на вызов некешируемого сниппета [!smarty?tpl=`...`]. Но это так, для справки.
s
sasha-freez 13 октября 2014г в 16:29 #
Нет не правильно, внутри чанка где вызывается сниппет, для вывода товаров.

Сниппетом выводятся товары, я не знаю какой там, могу предположить getPage
Взято из проекта для примера:
[[!getPage? &elementClass=`modSnippet` &element=`getResources` &showHidden=`1` &tpl=`office_tpl` &limit=`1000` &includeContent=`1` &includeTVs=`1` &processTVs=`1` &hideContainers=`1` &pageLimit=`5` &pageNavVar=`page.nav` &sortby=`{"menuindex":"ASC"}` ]]


    [[!+page.nav]]


вот, если он то забыли указать [[!+page.nav]]
Fi1osof1
Fi1osof 13 октября 2014г в 17:58 #
Поправка: у нас не используются чанки, у нас не используется getResources, у нас не используются pdoTools и т.д. и т.п. У нас Smarty и процессоры. Поэтому человек написал выше правильно. Речь здесь о сборке магазина ShopModxBox.
V
Valentin Kuzmenko 13 октября 2014г в 18:56 #
Николай, вы предлагаете не использовать чанки и сниппеты, а пользоваться процессорами, получается под каждую задачу писать такой код который решает только данную задачу, а что быстрее будет работать, использовать стандартный сниппет в смарти шаблонах например:
{snippet name="getProducts" params="includeTVs=`1` &includeTVList=`price0,image0,tags,availability` &limit=`4` &tpl=`product` &resources=`{tv name="mainNew" contentid="1" parse="true"}`" parse="true"}
или воспользоваться процессорами, и насчёт чанков, не совсем понял как от них отказаться, предполагаю что создавать смарти шаблоны и их инклюдить каким то образом? Если что то напутал подправте, пытаюсь перейти на вами предложенный способ смарти+процессоры, пытаюсь вникнуть в суть, заранее спасибо.
Fi1osof1
Fi1osof 13 октября 2014г в 19:27 #
Валентин, не обязательно писать код под каждую задачу. Во-первых, есть готовые процессоры (типа того же site/web/getdata), которые можно использовать. К тому же процессоры лучше сниппетов тем, что их можно расширять. Вот сниппеты как правило используются под конкретные задачи, так как их можно использовать только в том виде, в каком они поставляются. Вы не можете их модифицировать, иначе как сделать копию и там уже вносить правки. А вот процессоры запросто расширить и можно, к примеру, переопределить нужный метод. Во-вторых, у нас используется Smarty-шаблонизация, что позволяет во многих случаях вообще отказаться от вызова сниппетов, чанков и тех же процессоров, если задача простая. Простой пример: не раз видел вызов сниппета типа [[year]], который возвращает значение текущего года ( return date('Y'); ). От чего это происходит? От того, что ни в MODX-шаблонах, ни в чанках нет возможности выполнить php-код (то есть какую-то логику). В Смарти-шаблоне я просто напишу {date('Y')} и все. Не надо никаких сниппетов или чанков.
То есть призыв отказываться от чанков и сниппетов, это не какая-то тотальная борьба с ними, а просто такая парадигма разработки в рамках наших технологий. То есть если вы используете чистый MODX, то иначе как на чанках и сниппетах вы и не сможете работать. А если у вас phpTemplates+modxSmarty, то вы можете так же работать на чанках и сниппетах, но это уже не так эффективно. Зачем тогда вообще использовать phpTemplates+modxSmarty?
И справедливости ради следует отметить, что совсем от чанков и сниппетов не получится отказаться. Во-первых, как минимум чанки нужны для модулей Login и Wayfinder, от которых мы пока не отказались. Во-вторых, элементарно для вызова некешируемого Смарти-шаблона по прежнему используется некешируемый вызов сниппета [[!smarty?tpl=`...`]]. Но относительно традиционных методов разработки на MODX-е, когда чанков и сниппетов порой больше двух-трех сотен штук, можно сказать что мы не используем чанки и сниппеты.
V
Valentin Kuzmenko 13 октября 2014г в 19:42 #
Большое спасибо за ответ, и заметил что у вас нет поиска, приходится идти в гугл и искать ответ вот так "modxclub smarty и его приимущество", или у вас он где то есть, но спрятан?
Fi1osof1
Fi1osof 13 октября 2014г в 19:47 #
Если бы у нас был поиск, вряд ли бы вы что-то через него нашли у нас по этому запросу :)
Нет, здесь поиск не сделан, все руки не доходят. А если вы хотите в гугле искать именно по нашему запросу, добавляйте к запросу site:modxclub.ru и все.
s
sasha-freez 13 октября 2014г в 17:41 #
Плохо нельзя редактировать комментарии:
При условии, что указали
&pageNavVar=`page.nav`
C
Comp.8bit 14 октября 2014г в 07:50 #
спасибо всем за комментарии,
неожиданно решил проблему, отредактировав category.tpl

{extends file="layout.tpl"}

{block name=content}
{processor action="web/catalog/category/products/getdata" ns="modxsite" params="limit=`6`&getPage=`1`" assign=result}

{* Набиваем через единый шаблон листинга *}
{include file="shop/catalog/list/fetch.tpl"}

{/block}
Fi1osof1
Fi1osof 14 октября 2014г в 12:34 #
Ничего неожиданного. Выше я писал:
1. Во вложенном шаблоне прописан плейсхолдер [[+page.nav]], но в вызове процессора не прописан передаваемый параметр getPage => true. Без этого параметра не будет вызываться в процессоре сниппет getPage.

Вы прописали этот параметр в params в вызове процессора, и постраничность заработала.
Но как я и писал там же, постраничность перестанет нормально работать, если отключить некеширование шаблонов. А не отключить - будет сайт медленней работать. Поэтому возьмите создайте новый Смарти-шаблончик, например inc/category/list.tpl, перекиньте в него ваш код:
    {processor action="web/catalog/category/products/getdata" ns="modxsite" params="limit=`6`&getPage=`1`" assign=result}
{* Набиваем через единый шаблон листинга *}
{include file="shop/catalog/list/fetch.tpl"}


А вместо него пропишите некешируемый вызов [[!smarty?tpl=`inc/category/list.tpl`]].
Тогда можно будет отключить некеширование шаблонов (в параметрах MODX-шаблонов).
В
Владик Кузьмин 12 апреля 2015г в 21:41 #
Беда,
Your text to link...
сделал как у вас, в принципе отсюда, лимит устанавливается, значит работает, но вот пагинация не появляется, а если в выводе списка товаров shop/catalog/list/fetch.tpl прописать
[[+page.nav]]

то пагинация появляется столько сколько должно быть страниц, но не переходит по ним.
Fi1osof1
Fi1osof 12 апреля 2015г в 21:56 #
1. Надо передавать в параметры вызываемого процессора «page» => $smarty.get.page, то есть $_GET-параметр запроса.
2. Если у вас свежая сборка, то вообще правильней не [[+page.nav]] вставлять, а инклюдить шаблон постраничности.
В
Владик Кузьмин 12 апреля 2015г в 22:07 #
Спасибо, теперь все выводиться.
Но по страницам не переходит. При клике по пагинации не переходит. В чем еще может быть проблема. шаблоны я не правил.
В шаблоне Основной все работает, а если перейти в шаблон Категория то все пагинация не работает.
В
Владик Кузьмин 12 апреля 2015г в 22:09 #
В контейнере товаров вызывают вот такой шаблон
{extends file="layout.tpl"}


{block name=content}
    {processor action="web/catalog/category/products/getdata" ns="modxsite" params="&limit=`4`&getPage=`1`" assign=result}

    {* Набиваем через единый шаблон листинга *}
    {include file="shop/catalog/list/fetch.tpl"}

    {include "common/pagination/pagination.tpl"}

{/block}
Fi1osof1
Fi1osof 13 апреля 2015г в 20:01 #
1. Надо передавать в параметры вызываемого процессора «page» => $smarty.get.page, то есть $_GET-параметр запроса.
У вас здесь где передача этого параметра? Во-вторых, это кешируемый блок, так как находится внутри самого шаблона документа. Сделайте так:
1. В шаблоне категории пропишите вызов своего субшаблона, типа так:
{block name=content}
   [[!smarty?tpl=`inc/shop/category/index.tpl`]]
{/block}

А в inc/shop/category/index.tpl пропишите
{$params = [
    "limit" => 4,
    "page"    => $smarty.get.page
]}
{processor action="web/catalog/category/products/getdata" ns="modxsite" params=$params assign=result}
    {* Набиваем через единый шаблон листинга *}
    {include file="shop/catalog/list/fetch.tpl"}
    {include "common/pagination/pagination.tpl"}

getPage не нужен для работы шаблона постраничности. Главное — чтобы был сам этот шаблон постраничности.
В
Владик Кузьмин 13 апреля 2015г в 20:50 #
Ура спасибо, низкий вам поклон, Николай))) доперло до меня, заработало) [А то я в этом смарти вообще ничего не смыслю, а есть какие нибудь качественные уроки по этому смарти???]
с продажи сайта, отблагодарю.)))))
В
Владик Кузьмин 13 апреля 2015г в 20:53 #
Про уроки я имею в виду те которые вы считаете, хорошимиправильными.
Fi1osof1
Fi1osof 13 апреля 2015г в 21:30 #
Пожалуйста.
Уроков не встречал и не искал. Читаю официальную документацию.
В
Владик Кузьмин 13 апреля 2015г в 21:57 #
Спасибо, почитаю на досуге.)
Fi1osof1
Fi1osof 13 апреля 2015г в 21:58 #
Пожалуйста.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.