Руслан Кундиус
С нами с 01 июля 2013; Место в рейтинге пользователей: #264modResourceField. Упрощаем работу с TV часть 2.
Не так давно Сергей Шлоков написал статью Упрощаем работу с TV. Видно, что технология эта вызвала интерес у общественности, но данная реализация имеет очень много подводных камней. Сам я это все копаю уже очень давно, не фуллтайм, но сталкивался. В результате на свет появились две довольно объемные заметки (раз и два). Если кто не поленится прочитать, думаю, сможет представить, сколько много тонкостей там имеется. С некоторыми из них Сергей в процессе столкнулся. Но это не все еще имеющиеся проблемы. Попробую перечислить основные.
Необходимость задачать разные имена колонок и ТВшек.
Это Сергей у себя в топике описывал, не буду вдаваться в подробности.
Дублирование значений в виде ненужных запией в таблицу ТВшек.
Гвоздь (сорри, не знаю имени), написал в комментарии про эту проблему и привел плагин, решающий ее, но на это никто не отреагировал (видимо, мало кого заинтересовало решение, в несколько раз превосходящее по объему предложенный продукт).
Необходимость задачать разные имена колонок и ТВшек.
Это Сергей у себя в топике описывал, не буду вдаваться в подробности.
Дублирование значений в виде ненужных запией в таблицу ТВшек.
Гвоздь (сорри, не знаю имени), написал в комментарии про эту проблему и привел плагин, решающий ее, но на это никто не отреагировал (видимо, мало кого заинтересовало решение, в несколько раз превосходящее по объему предложенный продукт).
pdoFetch поиск в TV-полях с разделителем ||
Наверняка много кто использовал в своей практике TV-поля типа «Список» (множественный, одиночный, не важно) или «Тег». Здесь важно именно то, в каком виде в базе данных хранятся данные таких полей, ведь они сохраняют множественные значения. А хранят они их одной общей строкой в той же самой таблице ТВшек (естественно, по одной записи на один документ). К примеру, если мы отметили три значения 100, 1005, 10, в БД это запишется 100||1005||10. И здесь возникает вопрос как потом выполнить поиск по таким полям? Простой LIKE здесь не поможет, так как LIKE %100%, к примеру, найдет и '100||1000' и '1001||1005'. Данного вопроса мы уже касались здесь и подобный вопрос опять возник здесь.
Сборка новостного портала NewsModxBox-1.0.0-beta
Меня тут обвиняли в том, что я много публикаций создаю в стиле «нет времени объяснять, вот ссылка с описанием на моем собственном ресурсе (стороннем) по modx'y». Вот думал, публиковать эту новость или нет… С учетом того, что готовых качественных новостных движков не только под MODX, но и вообще очень мало, даже вот не знаю… Но на всякий случай оставлю это здесь. Ну а вы голосами за топик решите, стоит ли такое здесь публиковать, или сами будете в инетах искать. Спасибо за внимание.
UPD: Выложил проект на гитхаб github.com/MODX-Club/NewsModxBox
UPD2: Подробный релиз на хабре: habrahabr.ru/post/267839/
UPD: Выложил проект на гитхаб github.com/MODX-Club/NewsModxBox
UPD2: Подробный релиз на хабре: habrahabr.ru/post/267839/
debugParser 1.1.0 и pdoTools 2.1.8
Работаю сейчас над одним сайтом, в котором всё делаю через шаблонизатор Fenom. Проблем нет, сплошное удобство, но из-за принципа работы шаблонизатора непонятно как отлавливать медленные сниппеты.
С обычным парсером MODX всё просто — покупаем debugParser и запускаем его на любой странице, добавляя к адресу параметр ?debug=1. Он подменяет собой системный парсер и замеряет время до и после обработки каждого тега на странице, что позволяет выявить тормозов.
А вот как быть с Fenom, который берёт код, компилирует из него php файл и выполняет за один присест, безо всяких тегов и разборов? Оказалось, можно отловить и это.
С обычным парсером MODX всё просто — покупаем debugParser и запускаем его на любой странице, добавляя к адресу параметр ?debug=1. Он подменяет собой системный парсер и замеряет время до и после обработки каждого тега на странице, что позволяет выявить тормозов.
А вот как быть с Fenom, который берёт код, компилирует из него php файл и выполняет за один присест, безо всяких тегов и разборов? Оказалось, можно отловить и это.
Как не надо расширять MODX-процессоры
В MODX-2.4.0 появился новый процессор updatefromelement.class.php by Argnist, пришедший на замену обычному процессору updatefromelement.php. Заменять non-classed процессоры конечно дело хорошее, но делать надо это крайне осторожно и обдуманно.
Сразу уточню, что этот процессор используется для обновления параметров элементов (типа шаблонов, сниппетов и т.п.)
Сразу уточню, что этот процессор используется для обновления параметров элементов (типа шаблонов, сниппетов и т.п.)
Ловля ошибок при отправке почты с сайта
Добрый день, сообщество!
Как многим известно, у объекта modUser есть замечательный метод modUser::sendEmail, который позволяет отправлять пользователю письмо буквально в одну строчку. Не надо вручную инициировать службу modPHPMailer, выяснять email пользователя — всё это уже сделали за Вас разработчики MODX в этом методе.
Но есть один недостаток — метод возвращает только булево значение.
Как многим известно, у объекта modUser есть замечательный метод modUser::sendEmail, который позволяет отправлять пользователю письмо буквально в одну строчку. Не надо вручную инициировать службу modPHPMailer, выяснять email пользователя — всё это уже сделали за Вас разработчики MODX в этом методе.
Но есть один недостаток — метод возвращает только булево значение.
Новые версии MODX: 2.3.0 и 2.2.15
Наконец-то вышла давно ожидаемая стабильная версия MODX 2.3.0 — вот запись в официальном блоге и перевод. Полный список изменений на английском можно посмотреть здесь, а скачать вот здесь.
С этого момента 2.3.0 становится актуальной рабочей веткой MODX, а 2.2.х устаревает. В связи с чем у меня к вам просьба начать тестировать наши основные дополнения на предмет работы в новом MODX. Точно знаю, что есть проблемы у miniShop2 из-за необычного расположения в меню, может и еще что всплывет.
Для тестирования можно использовать бесплатный аккаунт на нашем хостинге. По вопросам, касающихся платных дополнений обращаться как обычно — в поддержку магазина.
Сообщения об ошибках всех дополнений в MODX 2.3 прошу писать в одной этой теме. Из других мест комментарии буду переносить сюда, или вовсе удалять.
С этого момента 2.3.0 становится актуальной рабочей веткой MODX, а 2.2.х устаревает. В связи с чем у меня к вам просьба начать тестировать наши основные дополнения на предмет работы в новом MODX. Точно знаю, что есть проблемы у miniShop2 из-за необычного расположения в меню, может и еще что всплывет.
Для тестирования можно использовать бесплатный аккаунт на нашем хостинге. По вопросам, касающихся платных дополнений обращаться как обычно — в поддержку магазина.
Сообщения об ошибках всех дополнений в MODX 2.3 прошу писать в одной этой теме. Из других мест комментарии буду переносить сюда, или вовсе удалять.
msFavorites — список избранных товаров minishop2
Купить msFavorites в магазине дополнений Simple Dream.
--
Функционал, думаю, всем ясен…
настройки очень просты.
p.s. Василий спасибо за хорошие примеры! )
и
позже распишу подробнее.
Есть на демо сайте — тут
UPD.
версия 0.0.4:
— удалено хранение списка избранного в сессии
— списки избранного доступны только авторизованным пользователям
— добавлена возможность разделения списков избранного
— и др. мелкие доработки
Наложение watermark в ms2Gallery
Часто спрашивают, а как сделать наложение водяных знаков на изображения, загружаемые через ms2Gallery?
Понятно, что работа идёт через PhpThumb, понятно какие ему нужно задавать параметры, но что именно нужно настроить на сайте, чтобы одно изображение накладывалось на другое?
Понятно, что работа идёт через PhpThumb, понятно какие ему нужно задавать параметры, но что именно нужно настроить на сайте, чтобы одно изображение накладывалось на другое?
msQuickView — быстрый просмотр товара, покупка...
Купить msQuickView в магазине дополнений Simple Dream.
--
Привет.
Иногда требуется быстрый просмотр товара из каталога или с другой страницы с возможностью отправить товар сразу в корзину.
Выбираете сниппет вывода, указывате чанк вывода, ставите селектор загрузки и вроде все…
простой пример как выглядит
Оформление модального окна вы занимаетесь сами, плагин работает просто — при клике берет id товара, вызывает ваш сниппет, все это дело оформляется в ваш чанк и выводится там где вы указали…
Есть на демо сайте — тут
Всем спасибо!)
upd 21.08.14. обновление функционала — смена параметров товара в корзине. Совместимость с msOptionsPrice