Евгений Webinmd
С нами с 07 января 2013; Место в рейтинге пользователей: #23Extjs: добавление поля в таблице заказов
Добрый день!
Подскажите, пожалуйста, как добавить с помощью MODX-плагина элемент в контекстное меню в таблице заказов Минишопа? По-умолчанию, там Изменить и Удалить. joxi.ru/52azjXgu4dzBZA
1. Я создал плагин msOrderAddPrint, повесил его на событие msOnManagerCustomCssJs
Написал в нем код:
Подскажите, пожалуйста, как добавить с помощью MODX-плагина элемент в контекстное меню в таблице заказов Минишопа? По-умолчанию, там Изменить и Удалить. joxi.ru/52azjXgu4dzBZA
1. Я создал плагин msOrderAddPrint, повесил его на событие msOnManagerCustomCssJs
Написал в нем код:
Не могу понят в чем ошибка при работе хука
Стоит задача:
необходимо сделать регистрацию пользователей без подтверждения по email. Т.е. пользователь проходит регистрацию, автоматически авторизируется и его редиректит на другую страницу.
Решил использовать для этих целей дополнение Login.
Регистрация:
Тыкните носом в ошибку пожалуйста) А то уже нервов не хватает. Буду премного благодарен!
необходимо сделать регистрацию пользователей без подтверждения по email. Т.е. пользователь проходит регистрацию, автоматически авторизируется и его редиректит на другую страницу.
Решил использовать для этих целей дополнение Login.
Регистрация:
[[!Register?
&submitVar=`registerbtn`
&activation=`0` //тут активирую нового пользователя без подтверждения
&activationResourceId=`4` //сюда хочу редиректить
&postHooks=`autoLogin` //пост хук который должен автоматом авторизовать юзера
&usergroups=`Users`
&validate=`nospam:blank,
password:required:minLength=^8^,
password_confirm:password_confirm=^password^,
fullname:required,
phone:required,
email:required:email`
&usernameField=`phone`
&placeholderPrefix=`reg.`
&successMsg=`Регистрация прошла успешно`
]]
// тут код формы регистрации
Вот собственно сам снипет autoLogin:<?php
$username = $hook->getValue('phone'); //получаю логин для авторизации
$password = $hook->getValue('password'); //получаю пароль
$data = array( //формирую массив мараметров для процессора
'username' => $username,
'password' => $password,
'rememberme' => false,
'login_context' => 'web',
);
$response = $modx->runProcessor('/security/login', $data); //ну и пытаюсь авторизироваться
return true;
Регистрация проходит успешно все ок. А вот авторизация прям ни в какую. Может просто уже ночь и я что-то пропустил… но перепроверил не раз да и по логике вроде все верно…Тыкните носом в ошибку пожалуйста) А то уже нервов не хватает. Буду премного благодарен!
settingsWidget - настройки в панели управления
Это маленькое дополнение предназначено для показа выбранных настроек на панели управления MODX.
Добавить виджет на панель: Панели — Default — Редактировать панель — Добавить виджет — Быстрые настройки.
В системной настройке settingswidget_keys указать через запятую список ключей настроек. Например, так:
Дополнение целиком и полностью бесплатно и доступно в Modstore: settingsWidget.
Добавить виджет на панель: Панели — Default — Редактировать панель — Добавить виджет — Быстрые настройки.
В системной настройке settingswidget_keys указать через запятую список ключей настроек. Например, так:
site_name,site_status,emailsender,error_page
Эти перечисленные настройки и будут отображаться в виждете.Дополнение целиком и полностью бесплатно и доступно в Modstore: settingsWidget.
Импорт свойств в Minishop2 версий 2.4.* из CSV
Возникла сейчас необходимость импортировать товары для текущей версии MS2.
Попробовал штатный скрипт импорта из CSV, оказалось, что свойства товаров (созданные не плагином) не обрабатываются.
Возможно кому-то пригодиться данное простенькое решение.
Попробовал штатный скрипт импорта из CSV, оказалось, что свойства товаров (созданные не плагином) не обрабатываются.
Возможно кому-то пригодиться данное простенькое решение.
Видео с MODX Meetup Almaty 2017
Не так давно прошел MODX Meetup Almaty 2017. Теперь мы все можем посмотреть доклады участников.
Тест вложенности ресурса в контейнер [с блекджеком и плюхами]
Проверить, есть ли контейнер в списке родителей ресурса, можно разными способами:
- Можно сделать это используя карту ресурсов, которую MODX создаёт для каждого контекста после обновления кеша. Для этого необходимо воспользоваться методом $modx->getParentIds. Таким образом нагрузка и время затрачиваемое на проверку будет минимальным.
- Не заморачиваться и сделать всё исключительно на Fenom, без модификаторов. Тут мы тоже можем воспользоваться методом $_modx->getParentIds, который Василий услужливо вынес в список доступных в Fenom.
- Можно даже извратиться до того, что на каждую такую проверку получать объект через getObject('modResource') + получать объекты его родителей через getOne('Parent'). К слову, что будет в случае, если нам, к примеру, надо проверить 50 товаров на странице на вложенность в определённую категорию?
Ради интереса, я воспроизвёл подобную ситуацию на тестовом сайте Modhost:
- Без каких-либо проверок 50 товаров в списке категории выводятся за 0,0282 сек.
- С подобной проверкой, за 0.1304 сек.
- С проверкой, которую мы рассматриваем в этом посте, за 0.0307 сек.
А потом заказчики сходят с ума, почему их сайт так долго открывается...
Как изменить цену в корзине исходя из веса?
В корзине особенная логика формирования цены должна быть, и она зависит от веса (weight), а не от количества.
Если в коротко, то при достижении веса например в 400 грамм суммарно для всех товаров в корзине должна применяться для всех них скидка в 20% например.
Это нестандартная задача, обычно оптовые цены зависят от количества, а не от веса.
Я вижу решение проблемы из двух этапов:
Если в коротко, то при достижении веса например в 400 грамм суммарно для всех товаров в корзине должна применяться для всех них скидка в 20% например.
Это нестандартная задача, обычно оптовые цены зависят от количества, а не от веса.
Я вижу решение проблемы из двух этапов:
- бэкэнд из плагина
- фронтэнд на js-кэллбэке
Пример добавления анимации к mFilter2
Удаление старых версий пакетов
Многие пользователи знают, что MODX хранит кучу старых версий дополнений, чтобы вы могли откатиться на них в любое время.
Но, это требуется крайне редко, а место пакеты занимают. Их можно удалять вручную, но это довольно утомительно, поэтому я набросал несложный консольный скрипт для автоматического удаления.
Скрипт нужно положить в корневую директорию и запустить. Он выберет все установленные версии, кроме самой последней, и корректно удалит их через родной процессор.
Судя по коду этого процессора, никак повредить системе он не может, потому что деинсталляцию самого пакета не делает, а только удаляет файлы версии. Но, в любом случае, использовать на свой страх и риск!
Но, это требуется крайне редко, а место пакеты занимают. Их можно удалять вручную, но это довольно утомительно, поэтому я набросал несложный консольный скрипт для автоматического удаления.
Скрипт нужно положить в корневую директорию и запустить. Он выберет все установленные версии, кроме самой последней, и корректно удалит их через родной процессор.
Судя по коду этого процессора, никак повредить системе он не может, потому что деинсталляцию самого пакета не делает, а только удаляет файлы версии. Но, в любом случае, использовать на свой страх и риск!
[modHelpers] Версия 1.4.0. Мобильность, очереди...
Всем привет!
В данной версии добавленный функционал коснулся в основном программистов. Но есть пара фич и для работы с сайтом — проверка запроса на «мобильность» и очереди для почтовых уведомлений.
Для отладки добавил функцию print_str(). Работает как print_r, но дополнительно делает ещё ряд манипуляций — объекты переводит в массивы (при наличии метода toArray), массивы оборачивает в тег pre, для null-евых переменных выводит «NULL», для булевых — «TRUE» или «FALSE» вместо 1 и ''. А также может оборачивать вывод тегами HTML или применять шаблон для вывода. Например, выводить желтым шрифтом на синем фоне.
В данной версии добавленный функционал коснулся в основном программистов. Но есть пара фич и для работы с сайтом — проверка запроса на «мобильность» и очереди для почтовых уведомлений.
Для отладки добавил функцию print_str(). Работает как print_r, но дополнительно делает ещё ряд манипуляций — объекты переводит в массивы (при наличии метода toArray), массивы оборачивает в тег pre, для null-евых переменных выводит «NULL», для булевых — «TRUE» или «FALSE» вместо 1 и ''. А также может оборачивать вывод тегами HTML или применять шаблон для вывода. Например, выводить желтым шрифтом на синем фоне.