Возьмите фреймворк и реализуйте архитектуру магазина так, как вам нужно. А CMS это всегда "шаблонный путь", где шаг влево-вправо вынуждает писать костыли. Есть конечно современные гибкие CMS: например October CMS, достаточно гибкий и простой с Laravel под капотом. Для него конечно есть готовые решения связанные с интернет-магазином, но лучше самому всё написать.
Тут нужно разбираться с плагином Builder, как он формирует запросы к таблице. С самим шаблонизатором Twig я в принципе разобрался. Но спасибо что откликнулись!
Да, так пробовал, работает без условия в for. Но нельзя использовать loop.lenght если есть условие в for.
The loop.length, loop.revindex, loop.revindex0, and loop.last variables are only available for PHP arrays, or objects that implement the Countable interface. They are also not available when looping with a condition.
Спасибо что ответили. Да, я читал в документации Twig про переменную loop, но не понял как её использовать для получения необходимого результата, поэтому и задал этот вопрос.
Тут с вами полностью согласен, что вытаскивать все записи из БД и фильтровать их - плохо. Просто я только начал разбираться с этим шаблонизатором и Builder'ом в October CMS, поэтому пока так)
Сейчас вывожу записи в нужном виде не средствами Builder'а, а средствами Laravel.
Froggyweb, а если например нужно создать не интернет-магазин а портал, то тут Minishop2 не нужен!) Собственно ответ я нашел, конечно не самый удобный способ, но он есть.
Но это просто странно, что такую очевидную и необходимую функцию не включили в Collection, ведь даже в MIGX впихнули фильтрацию. А в MIGX она не особо и нужна. Это всё странно...
Кстати в Builder для OctoberCMS эта фича есть, правда всё равно ручками приходиться писать небольшой конфиг, но это в 100 раз проще чем в Collection реализовать.
К сожалению смотрел, и там речь идёт об организации сортировки, а не фильтрации. И организовать сортировку которая может отфильтровать - невозможно, это всё таки разные вещи.
Тут уже даже интереснее как остальные решают этот вопрос, по опыту знаю что невозможно управлять десятками тысяч товаров например, без использования фильтрации. Вряд ли все делали магазинчики на 5-10 товаров, где в этом просто нет необходимости.
Я конечно понимаю что можно работать с поиском, но как быть тогда, если необходимо получить список товаров с пустым полем?) Что делать если два независимых друг от друга поля могут иметь одинаковые значения, а отфильтровать нужно только по одному?)
Евгений Привалов, Воспользуйтесь готовым плагином.
И маленький совет: не пихайте всё и вся в functions.php, создайте свой плагин и в него добавляйте весь необходимый код.