Иван Бондаренко
С нами с 30 января 2013; Место в рейтинге пользователей: #91modResourceField. Упрощаем работу с TV часть 2.
Не так давно Сергей Шлоков написал статью Упрощаем работу с TV. Видно, что технология эта вызвала интерес у общественности, но данная реализация имеет очень много подводных камней. Сам я это все копаю уже очень давно, не фуллтайм, но сталкивался. В результате на свет появились две довольно объемные заметки (раз и два). Если кто не поленится прочитать, думаю, сможет представить, сколько много тонкостей там имеется. С некоторыми из них Сергей в процессе столкнулся. Но это не все еще имеющиеся проблемы. Попробую перечислить основные.
Необходимость задачать разные имена колонок и ТВшек.
Это Сергей у себя в топике описывал, не буду вдаваться в подробности.
Дублирование значений в виде ненужных запией в таблицу ТВшек.
Гвоздь (сорри, не знаю имени), написал в комментарии про эту проблему и привел плагин, решающий ее, но на это никто не отреагировал (видимо, мало кого заинтересовало решение, в несколько раз превосходящее по объему предложенный продукт).
Необходимость задачать разные имена колонок и ТВшек.
Это Сергей у себя в топике описывал, не буду вдаваться в подробности.
Дублирование значений в виде ненужных запией в таблицу ТВшек.
Гвоздь (сорри, не знаю имени), написал в комментарии про эту проблему и привел плагин, решающий ее, но на это никто не отреагировал (видимо, мало кого заинтересовало решение, в несколько раз превосходящее по объему предложенный продукт).
pdoFetch поиск в TV-полях с разделителем ||
Наверняка много кто использовал в своей практике TV-поля типа «Список» (множественный, одиночный, не важно) или «Тег». Здесь важно именно то, в каком виде в базе данных хранятся данные таких полей, ведь они сохраняют множественные значения. А хранят они их одной общей строкой в той же самой таблице ТВшек (естественно, по одной записи на один документ). К примеру, если мы отметили три значения 100, 1005, 10, в БД это запишется 100||1005||10. И здесь возникает вопрос как потом выполнить поиск по таким полям? Простой LIKE здесь не поможет, так как LIKE %100%, к примеру, найдет и '100||1000' и '1001||1005'. Данного вопроса мы уже касались здесь и подобный вопрос опять возник здесь.
Сортировка на сайте
Добрый день!
Подскажите как можно реализовать сортировку на сайте.
Поля: по названию, площади, популярности(установил hitspage)
По всем полям нужна сортировка только по убыванию/возрастанию
Пробывал через tagmanager ничего не вышло.
Возможно можно сделать через Mfilter?
Спасибо!
Подскажите как можно реализовать сортировку на сайте.
Поля: по названию, площади, популярности(установил hitspage)
По всем полям нужна сортировка только по убыванию/возрастанию
Пробывал через tagmanager ничего не вышло.
Возможно можно сделать через Mfilter?
Спасибо!
Расширение любых таблиц MODX
В очередной раз понадобилось изменить таблицу сайта, менять которую не предусмотрено.
Что обычно люди делают в таких случаях? Верно, редактируют ядро или нужный компонент, и больше их не обновляют. Но ведь это неправильно, и можно решить вопрос иначе.
Пишем обычный плагин, выставляем для него событие OnMODXInit и меняем модель для нужных классов системы или дополнений. Например, я добавил id менеджера в заказ miniShop2:
Что обычно люди делают в таких случаях? Верно, редактируют ядро или нужный компонент, и больше их не обновляют. Но ведь это неправильно, и можно решить вопрос иначе.
Пишем обычный плагин, выставляем для него событие OnMODXInit и меняем модель для нужных классов системы или дополнений. Например, я добавил id менеджера в заказ miniShop2:
AdminTools 1.2.0. Лог измененных элементов
Порадую разработчиков, работающих в админке. Сделал список измененных элементов, естественно тех, которые изменялись в админке. Частенько пользуюсь такой возможностью в phpStorm.
Мультиязычный опрос xPoller2
Всем привет, хочу показать вам мою первую переделку чужого компонента. Исходный компонент называется xPoller, разработчиком является Илья Уткин. Большое спасибо ему за компонент, разбирал устройство компонентов Modx и до сих пор разбираю на этом компоненте. Еще выражаю благодарность Василию Наумкину за курс по разработке компонентов на Modx Revo.
msProducts. Выборка по нескольким опциям
Доброй ночи.
Пытаюсь сделать сложную выборку по группам доп. опций, пока что без особых успехов.
Между опциями должно быть условие «И», внутри каждой опции — «ИЛИ».
Делаю так:
Теперь добавляем вторую группу опций:
Как только во вторую группу добавляются условия, начинаются сложности.
Пытаюсь сделать сложную выборку по группам доп. опций, пока что без особых успехов.
Между опциями должно быть условие «И», внутри каждой опции — «ИЛИ».
Делаю так:
&optionFilters=`{
"ps_target:LIKE": "Витрины и мебель",
"OR:ps_target:LIKE": "Ландшафт",
"OR:ps_target:LIKE": "Автомойки"
}`
Все хорошо, в выборке товары, опция «ps_target» которых соответствует какому-либо из 3х значений.Теперь добавляем вторую группу опций:
&optionFilters=`{
"ps_target:LIKE": "Витрины и мебель",
"OR:ps_target:LIKE": "Ландшафт",
"OR:ps_target:LIKE": "Автомойки",
"AND:ps_type:LIKE": "Модульный"
}`
ОК. Выбираются товары с любым из 3х значением ps_target и значением ps_type == Модульный.Как только во вторую группу добавляются условия, начинаются сложности.
[QuickView] - быстрый просмотр ресурсов
Переписан пакет [msQuickView] — быстрый просмотр товаров.
[QuickView] — быстрый просмотр товара, покупка, возможность вывести любой ресурс в модальном окне.
Возможность перемещаться между товарами «Предыдущий» «Следующий» в уже открытом модальном окне.
ссылка на тестовый сайт quickview.vgrish.ru/
[QuickView] — быстрый просмотр товара, покупка, возможность вывести любой ресурс в модальном окне.
Возможность перемещаться между товарами «Предыдущий» «Следующий» в уже открытом модальном окне.
ссылка на тестовый сайт quickview.vgrish.ru/
Вывод заказов для Minishop2
Давно использую MODX Revo, но в основном для небольших сайтов. А сейчас решил сделать на нём интернет-магазин. Захотелось сделать на сайте личный кабинет покупателя, где он сможет просматривать свои заказы. Начал искать и не нашёл ни одного решения этого вопроса (может плохо искал?!).
Странно. В итоге написал свой велосипед — сниппет и чанк в котором выводится содержимое.
Странно. В итоге написал свой велосипед — сниппет и чанк в котором выводится содержимое.
Включаем MemCache
MemCahed — это замечательная технология, которая позволяет кэшировать данные не на жесткий диск, а в оперативную память, которая быстрее во много-много раз. И если раньше MODX нужно было дружить с ней, то с версии 2.1 работа с MemCache уже включена в движок, и это нужно только активировать.
В принципе, операция не сложная, но есть один момент, из-за которого я и пишу этот топик.
Все операции, как обычно, написаны для сервера настроенного по этой инструкции.
В принципе, операция не сложная, но есть один момент, из-за которого я и пишу этот топик.
Все операции, как обычно, написаны для сервера настроенного по этой инструкции.