Александр

Александр

С нами с 07 мая 2013; Место в рейтинге пользователей: #361

Sendex и AjaxForm - подписка на рассылку ч/з ajax

Sendex, как учебный компонент, особо не развивается, но он довольно удобен и приятен в обращении изнутри сайта. В связи с чем регулярно его использую. Но вот «снаружи», на фронте, он не очень удобен. Очередная просьба от клиента «чтобы окошко появлялось, а страничка не перезагружалась», побудила переписать для себя сниппет так, чтобы потом пользовать его через ajaxform. Получилось три чанка, один сниппет и немного джаваскрипта.
mngatoff
26 августа 2017, 19:52
modx.pro
26
4 954
+8

Прокачиваем навык программирования на Fenom

Информация для разработчиков. Сложность средняя.
Практически все разработчики MODX используют тот или иной шаблонизатор. Большинство в рунете сделали свой выбор в пользу Fenom. Благодаря Василию конечно. Этот шаблонизатор достаточно простой и лёгкий. И его функционала хватает для решения практически всех своих задач. В этой статье мы посмотрим на него немного под другим углом и попробуем его возможности расширения.
Сергей Шлоков
25 августа 2017, 07:32
modx.pro
43
4 810
+24

[ExtJs] Связанные комбобоксы

Возникла задача сделать так, чтобы при выборе группы студентов в одном комбобоксе, в другом комбобоксе процессор getlist возвращал записи относящиеся только к выбранной группе. Делюсь как решил эту задачу я, надеюсь кому нибудь пригодится =)


Николай Загумённов
16 августа 2017, 09:45
modx.pro
28
4 217
+14

mFilter2 и оптимизация скорости на 7k товарах


Всем, кто хоть раз пытался завести mFilter2 на большом кол-ве товаров и хотя-бы 10 опциях в фильтре, известно, что тормозов не избежать. Вот и мне попался на днях сайт, в котором, казалось бы, всего-то 7000 товаров и 10 опций на странице каталога. Однако сниппет фильтра отрабатывал за 3-4 секунды. Переписал на Fenom — стал отрабатывать за 2-3 секунды.
Не годится! Тем более, что у заказчика было требование: «Чтобы сайтом было комфортно пользоваться». Что-ж, взял задачу — надо решать!

Дебаг показал, что проблема в методе mse2FiltersHandler::getMsOptionValues, а именно в запросе (7k товаров!), который выглядит как-то так:
SELECT `product_id`, `key`, `value` FROM `modx_ms2_product_options` AS `msProductOption` 
WHERE (`msProductOption`.`product_id` IN (3394,3408,еще 7 тысяч ID)
AND `msProductOption`.`key` IN ('atr_n1','atr_n6','atr_n5','atr_n12','atr_n43','atr_n46','atr_n29','atr_n11','atr_n44','atr_n2'))
Павел Гвоздь
14 августа 2017, 14:14
modx.pro
41
4 711
+21

msOptionsPrice2 и составной товар


Возникла необходимость при помощи msOptionsPrice2 реализовать составной товар. Оказалось, что компонент не умеет прибавлять к начальной цене товара несколько цен из модификаций одной опции.
Например, есть опция Наполнители, у нее около 20 значений. На фронте, при выборе каждого из значений, цена товара должна увеличиваться на N рублей. Проблема заключается в том, что имена тегам чекбоксов мы даем в виде массива:
<input type="checkbox" name="cb[]">
Компонент, в свою очередь, с таким работать не умеет. Предлагаю решение в четыре простых шага!
Павел Гвоздь
12 августа 2017, 06:56
modx.pro
33
7 430
+14

[msOptionsPrice2] работа с остатками

Опишу решение ряда проблем с которыми столкнулся сам. msOptionsPrice2 очень крутое решение для minishop2 но для нормальной работы с остатками там очень мало функционала.
Проблемы:
  1. На странице каталога и товара нет плейсхолдера, с помощью которого можно было бы скрыть кнопку добавления в корзину и вывести свою информацию
  2. На странице каталога при добавлении товара проверяется на наличии первая модификация, и, если она отсутствует, то выскакивает оповещение о недоступности товара
  3. На миникарточке указана неправильная цена, т.к. выводится цена продукта, а не цена модификации
Инструкция под катом
Pavel Zarubin
08 августа 2017, 13:15
modx.pro
14
4 745
+4

UserTest -компонент для тестирования пользователей

Представляю Вашему вниманию новый компонент для тестирования пользователей сайта — UserTest. Компонент сделан по заказу студии WebHubPub.
Александр Туниеков
05 августа 2017, 12:46
modx.pro
4
5 486
+10

[xLike] Идеальная система лайков с оптимистичным интерфейсом и правильной формулой

Пакет довольно прост и одновременно функционален. Выполняет систему рейтинга для любого объекта, по-умолчанию, для ресурсов. Чем-то напоминает систему лайков на YouTube, в частности, в пакете реализован оптимистичный интерфейс.


Также, особенностью компонента является правильный подсчет рейтинга на основе вычисления нижней границы доверительного интервала Вильсона для параметра Бернулли. По-простому: эта формула не даст встать новым записям с 1 лайком и 0 дизлайками выше более старых записей с сильным рейтингом.

Список преимуществ:
  1. Оптимистичный интерфейс,
  2. Наиболее правильная формула вычисления рейтинга,
  3. Работа с любыми объектами (modResource, modUser, кастомные объекты),
  4. Голосование гостями,
  5. Анимированное изменение полосы/числа рейтинга,
  6. Событие плагина — xLikeOnVote.
Павел Гвоздь
16 июля 2017, 18:05
modx.pro
18
10 278
+34

[msOptionsPrice2] - Связанные опции модификаций

[msOptionsPrice2] — В новой версии добавлен функционал связанных опций.
Довольно часто встает вопрос о отображении тех или иных опций в зависимости от другой(их), теперь данный функционал есть из коробки.

под катом подробности
Володя
24 июня 2017, 10:18
modx.pro
3
5 652
+13

Удаление старых версий пакетов

Многие пользователи знают, что MODX хранит кучу старых версий дополнений, чтобы вы могли откатиться на них в любое время.

Но, это требуется крайне редко, а место пакеты занимают. Их можно удалять вручную, но это довольно утомительно, поэтому я набросал несложный консольный скрипт для автоматического удаления.

Скрипт нужно положить в корневую директорию и запустить. Он выберет все установленные версии, кроме самой последней, и корректно удалит их через родной процессор.

Судя по коду этого процессора, никак повредить системе он не может, потому что деинсталляцию самого пакета не делает, а только удаляет файлы версии. Но, в любом случае, использовать на свой страх и риск!
Василий Наумкин
24 марта 2017, 06:35
modx.pro
40
4 258
+24