Павел Гвоздь

Павел Гвоздь

С нами с 31 мая 2015; Место в рейтинге пользователей: #2

[msAreaOrder] Распределение заказов по заведениям

Пакет позволяет создать некие области на карте, в пределах которых осуществляет доставку то или иное заведение.

Каждому заведению можно указать:
  1. Свои почтовые ящики для уведомлений о новом заказе, которые заменят ящики из настройки ms2_email_manager,
  2. Минимальную стоимость заказа для каждой области (каждого заведения).
Компонент во многом похож на msDeliveryOnMap, только выполняет иную функцию и прост в настройке.
Павел Гвоздь
23 июня 2017, 21:30
modx.pro
1
1 708
+14

Тест вложенности ресурса в контейнер [с блекджеком и плюхами]

Проверить, есть ли контейнер в списке родителей ресурса, можно разными способами:

  • Можно сделать это используя карту ресурсов, которую MODX создаёт для каждого контекста после обновления кеша. Для этого необходимо воспользоваться методом $modx->getParentIds. Таким образом нагрузка и время затрачиваемое на проверку будет минимальным.

  • Не заморачиваться и сделать всё исключительно на Fenom, без модификаторов. Тут мы тоже можем воспользоваться методом $_modx->getParentIds, который Василий услужливо вынес в список доступных в Fenom.

  • Можно даже извратиться до того, что на каждую такую проверку получать объект через getObject('modResource') + получать объекты его родителей через getOne('Parent'). К слову, что будет в случае, если нам, к примеру, надо проверить 50 товаров на странице на вложенность в определённую категорию?
    Ради интереса, я воспроизвёл подобную ситуацию на тестовом сайте Modhost:
    1. Без каких-либо проверок 50 товаров в списке категории выводятся за 0,0282 сек.
    2. С подобной проверкой, за 0.1304 сек.
    3. С проверкой, которую мы рассматриваем в этом посте, за 0.0307 сек.

    А потом заказчики сходят с ума, почему их сайт так долго открывается...
Павел Гвоздь
26 апреля 2017, 05:28
modx.pro
18
4 559
+15

С 21 по 28 февраля -25% на пакеты Гвоздя!

Рад открыть неделю распродажи своих дополнений! Скидка предоставляется на все пакеты, включая xParser, который со скидкой можно купить за 2250 рублей!



  • xParser — Парсер HTML, RSS, XML.
  • msPromoCode — Скидочные промо-коды для miniShop2.
  • imgArea — Удобная визуальная расстановка областей (map, area) на изображениях.
  • msKuponator — Пакет реализует сайт-купонатор на miniShop2.
  • msDeliveryOnMap — Выбор адреса и подсчёт стоимости доставки одним кликом по карте.
  • msOrderFiles — Пакет для прикрепления файлов к заказу ms2.
Спасибо ребятам из modstore за очень крутую графику!
Павел Гвоздь
21 февраля 2017, 17:55
modx.pro
1 138
+11

[xParser] 1.3.0 - Регулярные выражения + Кейс


Обработка регулярным выражением полученных данных доступна уже давно, благодаря такой сногсшибательной функциональности Fenom. А с версии 1.3.0 регулярки были внедрены:
а) в конфигурацию задания при указании записи селектора,
б) в поля источника.

Пользователю это даёт более гибкую выборку записей из источника. Под катом пример того, как я извращался при помощи регулярок в xParser.
Павел Гвоздь
17 февраля 2017, 05:13
modx.pro
2
4 464
+10

[xParser] 1.2.0 - Парсер HTML контента + совмещение заданий

Парсер HTML контента востребованная штука, поэтому естественным шагом было его внедрение в xParser.

А с версии 1.2.0 компонент позволяет совмещать задания. Например, вам нужно распарсить RSS ленту и каждую запись выпилить с сайта полностью. Для этого:
  1. Создаётся пара заданий (первое — RSS, второе — HTML),
  2. Настраивается,
  3. Запускается.
Павел Гвоздь
15 января 2017, 01:18
modx.pro
9
8 851
+17

[msOrderFiles] 1.1.0 - Загрузка файлов к заказу из фронт-энда

Компонент обрёл возможность загружать файлы из фронт-энда, как при оформлении заказа, так и для уже оформленных заказов. Файлы могут грузить и анонимы, и зарегистрированные пользователи.


Как известно, после оформления заказа анонимом, на указанный email при заказе создаётся пользователь. Так вот этот пользователь прикрепляется и к файлам, которые были загружены при оформлении заказа.
Павел Гвоздь
26 декабря 2016, 10:36
modx.pro
1
4 576
+9

[msPromoCode] Кейс. Вывод информации по промо-коду в письме


Часто слышу вопрос о выводе промо-кода и информации по скидке в письме пользователю/менеджеру. На самом деле такая возможность есть уже давно, хоть и не совсем явным образом бросается в глаза. Делается это в 2 простых шага, которые описаны ниже.
Павел Гвоздь
26 декабря 2016, 09:25
modx.pro
10
2 599
+10

[msPromoCode] 1.3.4 - jQuery события в JS на фронт-энде


Продолжаем развивать компонент в сторону пользовательской кастомизации. В этом выпуске в JS файл на фронт-энде добавлены jQuery события:

  • mspc_set — запустится при успешном/неуспешном применении купона,
  • mspc_remove — запустится при отмене купона.
Павел Гвоздь
21 декабря 2016, 10:33
modx.pro
1 758
+7

[PHP] Сравнение одинаковых чисел не работает?

Вопрос к знатокам. Скорее всего я, что-то упускаю из виду…

$var1 = floatval(995); // double 995
$var2 = floatval(19.9 * 50); // double 995
$var3 = floatval(1990 - floatval(19.9 * 50)); // double 995

$format = '%0' . "b\n";
printf($format, $var1); // 1111100011
printf($format, $var2); // 1111100010
printf($format, $var3); // 1111100011

print PHP_EOL . '===' . PHP_EOL;
print intval($var1 === $var2) . PHP_EOL; // false
print intval($var1 === $var3) . PHP_EOL; // false
print intval($var2 === $var3) . PHP_EOL; // false

print PHP_EOL . 'intval === intval' . PHP_EOL;
print intval(intval($var1) === intval($var2)) . PHP_EOL; // false
print intval(intval($var1) === intval($var3)) . PHP_EOL; // true
print intval(intval($var2) === intval($var3)) . PHP_EOL; // false

print PHP_EOL . 'round === round' . PHP_EOL;
print intval(round($var1, 2) === round($var2, 2)) . PHP_EOL; // true
print intval(round($var1, 2) === round($var3, 2)) . PHP_EOL; // true
print intval(round($var2, 2) === round($var3, 2)) . PHP_EOL; // true

Под катом вопросы…
Павел Гвоздь
20 декабря 2016, 11:11
modx.pro
3 551
+1

[msPromoCode] 1.3.3 - Кастомизация скидки товара плагином


В новой версии пакета через плагины можно кастомизировать скидку на товары, которые применены к промо-коду. Если на примерах, то через события mspcOnBeforeSetProductDiscount и mspcOnSetProductDiscount можно:

  • Увеличивать/применять скидку на товар в зависимости от кол-ва единиц товара в корзине,
  • Давать скидку только на конкретную опцию товара, например на рубашку размера XXL,
  • Получить итоговую стоимость товара, за вычетом скидки, равной скидке за одну единицу, вне зависимости от кол-ва единиц данной позиции в корзине,
  • И много чего ещё, на что хватит вашей фантазии!
Павел Гвоздь
15 декабря 2016, 21:56
modx.pro
6
2 010
+14