Павел Гвоздь
С нами с 31 мая 2015; Место в рейтинге пользователей: #2[msAreaOrder] Распределение заказов по заведениям
Пакет позволяет создать некие области на карте, в пределах которых осуществляет доставку то или иное заведение.
Каждому заведению можно указать:
Каждому заведению можно указать:
- Свои почтовые ящики для уведомлений о новом заказе, которые заменят ящики из настройки ms2_email_manager,
- Минимальную стоимость заказа для каждой области (каждого заведения).
Тест вложенности ресурса в контейнер [с блекджеком и плюхами]
Проверить, есть ли контейнер в списке родителей ресурса, можно разными способами:
- Можно сделать это используя карту ресурсов, которую MODX создаёт для каждого контекста после обновления кеша. Для этого необходимо воспользоваться методом $modx->getParentIds. Таким образом нагрузка и время затрачиваемое на проверку будет минимальным.
- Не заморачиваться и сделать всё исключительно на Fenom, без модификаторов. Тут мы тоже можем воспользоваться методом $_modx->getParentIds, который Василий услужливо вынес в список доступных в Fenom.
- Можно даже извратиться до того, что на каждую такую проверку получать объект через getObject('modResource') + получать объекты его родителей через getOne('Parent'). К слову, что будет в случае, если нам, к примеру, надо проверить 50 товаров на странице на вложенность в определённую категорию?
Ради интереса, я воспроизвёл подобную ситуацию на тестовом сайте Modhost:
- Без каких-либо проверок 50 товаров в списке категории выводятся за 0,0282 сек.
- С подобной проверкой, за 0.1304 сек.
- С проверкой, которую мы рассматриваем в этом посте, за 0.0307 сек.
А потом заказчики сходят с ума, почему их сайт так долго открывается...
С 21 по 28 февраля -25% на пакеты Гвоздя!
Рад открыть неделю распродажи своих дополнений! Скидка предоставляется на все пакеты, включая xParser, который со скидкой можно купить за 2250 рублей!
- xParser — Парсер HTML, RSS, XML.
- msPromoCode — Скидочные промо-коды для miniShop2.
- imgArea — Удобная визуальная расстановка областей (map, area) на изображениях.
- msKuponator — Пакет реализует сайт-купонатор на miniShop2.
- msDeliveryOnMap — Выбор адреса и подсчёт стоимости доставки одним кликом по карте.
- msOrderFiles — Пакет для прикрепления файлов к заказу ms2.
[xParser] 1.3.0 - Регулярные выражения + Кейс
Обработка регулярным выражением полученных данных доступна уже давно, благодаря такой сногсшибательной функциональности Fenom. А с версии 1.3.0 регулярки были внедрены:
а) в конфигурацию задания при указании записи селектора,
б) в поля источника.
Пользователю это даёт более гибкую выборку записей из источника. Под катом пример того, как я извращался при помощи регулярок в xParser.
[xParser] 1.2.0 - Парсер HTML контента + совмещение заданий
Парсер HTML контента востребованная штука, поэтому естественным шагом было его внедрение в xParser.
А с версии 1.2.0 компонент позволяет совмещать задания. Например, вам нужно распарсить RSS ленту и каждую запись выпилить с сайта полностью. Для этого:
А с версии 1.2.0 компонент позволяет совмещать задания. Например, вам нужно распарсить RSS ленту и каждую запись выпилить с сайта полностью. Для этого:
- Создаётся пара заданий (первое — RSS, второе — HTML),
- Настраивается,
- Запускается.
[msOrderFiles] 1.1.0 - Загрузка файлов к заказу из фронт-энда
Компонент обрёл возможность загружать файлы из фронт-энда, как при оформлении заказа, так и для уже оформленных заказов. Файлы могут грузить и анонимы, и зарегистрированные пользователи.
Как известно, после оформления заказа анонимом, на указанный email при заказе создаётся пользователь. Так вот этот пользователь прикрепляется и к файлам, которые были загружены при оформлении заказа.
Как известно, после оформления заказа анонимом, на указанный email при заказе создаётся пользователь. Так вот этот пользователь прикрепляется и к файлам, которые были загружены при оформлении заказа.
[msPromoCode] Кейс. Вывод информации по промо-коду в письме
Часто слышу вопрос о выводе промо-кода и информации по скидке в письме пользователю/менеджеру. На самом деле такая возможность есть уже давно, хоть и не совсем явным образом бросается в глаза. Делается это в 2 простых шага, которые описаны ниже.
[msPromoCode] 1.3.4 - jQuery события в JS на фронт-энде
Продолжаем развивать компонент в сторону пользовательской кастомизации. В этом выпуске в JS файл на фронт-энде добавлены jQuery события:
- mspc_set — запустится при успешном/неуспешном применении купона,
- mspc_remove — запустится при отмене купона.
[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
Под катом вопросы…
[msPromoCode] 1.3.3 - Кастомизация скидки товара плагином
В новой версии пакета через плагины можно кастомизировать скидку на товары, которые применены к промо-коду. Если на примерах, то через события mspcOnBeforeSetProductDiscount и mspcOnSetProductDiscount можно:
- Увеличивать/применять скидку на товар в зависимости от кол-ва единиц товара в корзине,
- Давать скидку только на конкретную опцию товара, например на рубашку размера XXL,
- Получить итоговую стоимость товара, за вычетом скидки, равной скидке за одну единицу, вне зависимости от кол-ва единиц данной позиции в корзине,
- И много чего ещё, на что хватит вашей фантазии!