Павел Голубев
С нами с 21 февраля 2014; Место в рейтинге пользователей: #257Ищу разработчка на долгосрок
21 200 000
Ищу шаристого fullstack разработчика, которому в Modx стало тесно и он решил двигаться в Laravel/VueJS.
О проекте.
Eparket — интернет-магазин на Modx 2.8.4 + рядом лежит Laravel. 300к товаров, 2к категорий, 4к юзеров/день. Со временем от стандартных компонентов отказались полностью. Своя CRM/OMS, свои модели товаров, категорий, валют, прайс-кодов, роутинг, процессоры и прочая внутренняя кухня. Много нативных sql-запросов. Код храним на github, там же задачи по разработке. Под каждую задачу отдельная ветка. Деплой через github actions.
О проекте.
Eparket — интернет-магазин на Modx 2.8.4 + рядом лежит Laravel. 300к товаров, 2к категорий, 4к юзеров/день. Со временем от стандартных компонентов отказались полностью. Своя CRM/OMS, свои модели товаров, категорий, валют, прайс-кодов, роутинг, процессоры и прочая внутренняя кухня. Много нативных sql-запросов. Код храним на github, там же задачи по разработке. Под каждую задачу отдельная ветка. Деплой через github actions.
Как получить значение всех TV-полей ресурса одним SQL-запросом?
Задача решается в лоб, если значения TV-полей хранятся именно в виде нужных значений.
Если TV представляет собой список значений значение1==1||значение2==2||значение3==3, то в TV будет хранится цифры 1,2,3 а нам нужны значения значение1, значение2, значение3. Тогда задачу можно решить так
select t2.name, t2.caption, t2.description, t1.value
from modx_site_tmplvar_contentvalues as t1
left join modx_site_tmplvars as t2 on t1.tmplvarid = t2.id
where t1.contentid = :resourceId
Если TV представляет собой список значений значение1==1||значение2==2||значение3==3, то в TV будет хранится цифры 1,2,3 а нам нужны значения значение1, значение2, значение3. Тогда задачу можно решить так
select
t2.name, t2.caption, t2.description, if(t2.elements like concat('%==', t1.value, '%'), REGEXP_SUBSTR(t2.elements, concat('[:lower:]+(?=\={2}', t1.value, ')')), t1.value) as value
from modx_site_tmplvar_contentvalues as t1
left join modx_site_tmplvars as t2 on t1.tmplvarid = t2.id
where
t1.contentid = :resourceId
Но работать это будет только в MySql8, т.к. начиная с 8 версии появилась функция REGEXP_SUBSTR. topLevel в pdoField (pdoTools >= 1.9.1 pl6)
В pdoTools >= 1.9.1 pl6, в сниппете pdoField поменялась логика работы параметра topLevel.
Как теперь получить id родителя от корня контекста, а не от текущего ресурса?
Вариант работавший раньше [[pdoField? &topLevel=`2` &field=`id`]] — сейчас не работает.
Как теперь получить id родителя от корня контекста, а не от текущего ресурса?
Вариант работавший раньше [[pdoField? &topLevel=`2` &field=`id`]] — сейчас не работает.
[Решено]Баг в pdoResources?
MODX 2.2.11, pdoTools 1.9.0pl2
В TV «HitsPage» хранится количество просмотров, сортируем товары по количеству просмотров от большего к меньшему(&sortby=`{«HitsPage»:«desc»}`).
Баг можно увидеть на странице http://eparket.com/brand/parador
В TV «HitsPage» хранится количество просмотров, сортируем товары по количеству просмотров от большего к меньшему(&sortby=`{«HitsPage»:«desc»}`).
Баг можно увидеть на странице http://eparket.com/brand/parador