Игорь Терентьев
С нами с 29 ноября 2013; Место в рейтинге пользователей: #82Скрипт для создания менеджера
Скрипт для создания пользователей с определенными правами и своим источником файлов для админки.
По умолчанию будет создан менеджер с логинам и паролем manager и медиа источником с корневым каталогам assets/uploads из прав у пользователя будет только возможность работать с ресурсами, а c пунктов меню доступ только к «Приложения»
Для настройки политики доступа необходимо в массив $accessPolicy добавить название определенной политики с значение 0 или 1
По умолчанию будет создан менеджер с логинам и паролем manager и медиа источником с корневым каталогам assets/uploads из прав у пользователя будет только возможность работать с ресурсами, а c пунктов меню доступ только к «Приложения»
Для настройки политики доступа необходимо в массив $accessPolicy добавить название определенной политики с значение 0 или 1
Как передать DOM элемент в коллбэк miniShop2
Всем привет, данный вопрос уже много раз мусолили в сообществе, но хорошего решения так я и не нашёл, поэтому делаю ещё одну попытку, может в этот раз всё прояснится, и так:
В miniShop2 есть система коллбеков, в которую можно добавлять свои, это безумно круто и спасибо в очередной раз автору за такую гибкость, но проблема в том что в эти коллбеки не передаётся DOM элемент, спровоцировавший событие и тут приходится велосипедить на js всякие не красивые штуки.
Суть вопроса вот в чём, в карточке товара есть две кнопки — в корзину и быстрая покупка, надо что бы первая вела себя как обычно, просто добавляла товар и уведомляла нас что он добавлен, а вторая добавляла товар и если он успешно добавлен, то перекидывала сразу в корзину, и вот если бы в коллбек miniShop2 — добавление товара в корзину — можно было бы передать ту кнопку, которая спровоцировала событие добавления и проверить в своей функции допустим по классу, то можно было бы реализовать просто: и быструю покупку и открытие в модальном окне и вообще всё что душа попросит)
В miniShop2 есть система коллбеков, в которую можно добавлять свои, это безумно круто и спасибо в очередной раз автору за такую гибкость, но проблема в том что в эти коллбеки не передаётся DOM элемент, спровоцировавший событие и тут приходится велосипедить на js всякие не красивые штуки.
Суть вопроса вот в чём, в карточке товара есть две кнопки — в корзину и быстрая покупка, надо что бы первая вела себя как обычно, просто добавляла товар и уведомляла нас что он добавлен, а вторая добавляла товар и если он успешно добавлен, то перекидывала сразу в корзину, и вот если бы в коллбек miniShop2 — добавление товара в корзину — можно было бы передать ту кнопку, которая спровоцировала событие добавления и проверить в своей функции допустим по классу, то можно было бы реализовать просто: и быструю покупку и открытие в модальном окне и вообще всё что душа попросит)
[ExtJS] Расширяем компонент Collections
Часто ли вам приходится расширять какие-то стандартные штуки в MODX или в компонентах для него? Мне вот часто! Поэтому, давно хотелось поделиться чем-нибудь интересным на этот счёт, что я собственно и сделал в статье Дополнительные поля профиля юзера, где описал, как можно расширить профиль юзера, чтобы всё выглядело натурально. На этот раз расскажу, как можно расширять компонент Collections, не прибегая к крайним мерам, вроде правки исходников приложения.
Виртуальная страница пользователя
Вот была тема:
Страница пользователя как на modx.pro
Здесь было описано как сделать страничку пользователя с кучей мануалов! Вроде все понятно и вообще не чего трудного!
Делал все как написано в инструкции, которая расписана можно сказать так, что и «чайник» вроде меня разберется!
Страница пользователя как на modx.pro
Здесь было описано как сделать страничку пользователя с кучей мануалов! Вроде все понятно и вообще не чего трудного!
Делал все как написано в инструкции, которая расписана можно сказать так, что и «чайник» вроде меня разберется!
msProducts + все изображения товара CONCAT
Ребята) есть задача выводить 10 популярных товаров со всеми изображениями выбранных товаров
Вызывать сниппет msGallery в количестве 10 раз не предлагать)
Взял на основу стандартный SQL который формируется при вызове сниппета
Вызывать сниппет msGallery в количестве 10 раз не предлагать)
Взял на основу стандартный SQL который формируется при вызове сниппета
{set $popularProducts = $_modx->runSnippet('!msProducts', [
'parents' => 0,
'tpl' => 'tpl.popular.products.row',
'limit' => ($limit?$limit:4),
'includeThumbs' => '120x90,360x270',
'where' => [
'Data.popular' => 1
],
'showLog' => 1
])}
{$popularProducts?:'К сожалению популярных продуктов не найдено.'}
Мною был взят сформированный SQL, добавлен CONCAT и вроде на выходе то, что нужно, но как это все подружить со сниппетом не представляю.Сохранение корзины для пользователей
На одном из проектов появилась задача сохранять содержимое корзины для зарегистрированных пользователей, чтобы при последующей авторизации с любого компьютера они имели возможность продолжить покупки, а не добавлять все заново.
В качестве решения получился очень простой плагин, который выполняет 2 действия:
1) Сохраняет содержимое корзины в extended поля пользователя после каждого изменения корзины
2) Восстанавливает содержимое корзины перед каждой обработкой запрошенной страницы.
В качестве решения получился очень простой плагин, который выполняет 2 действия:
1) Сохраняет содержимое корзины в extended поля пользователя после каждого изменения корзины
2) Восстанавливает содержимое корзины перед каждой обработкой запрошенной страницы.
Как передать параметр из Clientconfig в PdoMenu
Есть такой вызов меню:
Так вот, Fenom не хочет подхватывать этот параметр.
Пробовал так
Что я делаю не так? Как передать параметр в сниппет?
{$_modx->runSnippet('pdoMenu', [
'level' => '1',
'parents' => '2,3',
'resources' => '[[++set_menu_top]]',
'scheme' => 'full',
'tplOuter' => '@INLINE {$wrapper}',
'tpl' => '@INLINE <a href="{$link}">{$menutitle}</a>'
])}
В Clientconfig добавил параметр set_menu_top, в которой список Id ресурсов, через запятую.Так вот, Fenom не хочет подхватывать этот параметр.
Пробовал так
{'set_menu_top' | option}
и так {$_modx->config.set_menu_top}
— тоже не видит его.Что я делаю не так? Как передать параметр в сниппет?
В погоне за удобством посетителей или умные ссылки
Здравствуйте.
У многих на сайтах есть блок с похожими статьями, как правило их выбирают из тех же категорий или используют теги. Но не все ссылки (статьи) в этих блоках одинаково полезны для посетителей, и если проверить, то на одни кликают часто, на другие крайне редко.
У многих на сайтах есть блок с похожими статьями, как правило их выбирают из тех же категорий или используют теги. Но не все ссылки (статьи) в этих блоках одинаково полезны для посетителей, и если проверить, то на одни кликают часто, на другие крайне редко.
Дополнительные поля профиля юзера (не extended)
Разрабатываю проект, в котором необходимо было реализовать более простое редактирование дополнительных полей профиля, чем есть из коробки. К слову, неудобное редактирование — это не единственный минус нативного способа расширения профиля полями. Ни для кого не секрет, что фильтрацию по JSON полям нормально не осуществить, только костылями. Фактически, мне надо было получить решение, которое бы расширяло стандартный код MODX, не трогая исходники, дабы сохранить
Пришёл к выводу, что буду расширять стандартную вкладку профиля «Общая информация». При желании можно чуть переписать код в событии OnUserFormPrerender и создать свою вкладку со своими полями.
[UPDATE] Разные скидки в зависимости от общей суммы корзины
По следам записи Михаила Воеводского и этого объявления о работе был написан плагин для miniShop2, который позволяет выставить скидку в процентах для всей корзины в зависимости от общей суммы корзины.
Скидка выставляется пошагово: по достижении определённых сумм применяется своя скидка. К примеру, корзина стоит 100кр — скидка 10%, 150кр — 15%. При желании можно выставить сколько угодно шагов и какой угодно процент. Данные указываются массивом в самом начале плагина, вот так:
Скидка выставляется пошагово: по достижении определённых сумм применяется своя скидка. К примеру, корзина стоит 100кр — скидка 10%, 150кр — 15%. При желании можно выставить сколько угодно шагов и какой угодно процент. Данные указываются массивом в самом начале плагина, вот так:
$discounts = array(
'100000' => '10%',
'150000' => '15%',
'200000' => '20%',
);
Часть кода была взята из компонента msPromoCode, в частности для того, чтобы цены на товары в корзине обновлялись динамически при смене кол-ва или удалении товара из корзины.