Яна Митрофанова
С нами с 13 августа 2016; Место в рейтинге пользователей: #522Скрипт для создания менеджера
Скрипт для создания пользователей с определенными правами и своим источником файлов для админки.
По умолчанию будет создан менеджер с логинам и паролем manager и медиа источником с корневым каталогам assets/uploads из прав у пользователя будет только возможность работать с ресурсами, а c пунктов меню доступ только к «Приложения»
Для настройки политики доступа необходимо в массив $accessPolicy добавить название определенной политики с значение 0 или 1
По умолчанию будет создан менеджер с логинам и паролем manager и медиа источником с корневым каталогам assets/uploads из прав у пользователя будет только возможность работать с ресурсами, а c пунктов меню доступ только к «Приложения»
Для настройки политики доступа необходимо в массив $accessPolicy добавить название определенной политики с значение 0 или 1
Вывод всех картинок товара в списке товаров
Здравствуйте!
В чанке с шаблоном товара нужно чтобы выводились все картинки галереи. Ок, пробую msGallery, таким образом
В чанке с шаблоном товара нужно чтобы выводились все картинки галереи. Ок, пробую msGallery, таким образом
{$_modx->runSnippet('!msGallery', [
'tpl' => 'tpl.msGalleryProd',
'product' => $id,
'limit' => 2
])}
Изображения выводятся, но только у первых товаров каждой категории, дальше не выводятся товары. На форуме были такие проблемы у кого-то, но решения там не было. Как создать свою сборку для MODX
Как и обещал, выкладываю инструкцию — как на основе сборки siteExtra сделать свою сборку. Скачать исходники можно на гитхабе https://github.com/ilyautkin/siteExtra. Полученный архив загружаем на сайт и распаковываем.
Сохранение корзины для пользователей
На одном из проектов появилась задача сохранять содержимое корзины для зарегистрированных пользователей, чтобы при последующей авторизации с любого компьютера они имели возможность продолжить покупки, а не добавлять все заново.
В качестве решения получился очень простой плагин, который выполняет 2 действия:
1) Сохраняет содержимое корзины в extended поля пользователя после каждого изменения корзины
2) Восстанавливает содержимое корзины перед каждой обработкой запрошенной страницы.
В качестве решения получился очень простой плагин, который выполняет 2 действия:
1) Сохраняет содержимое корзины в extended поля пользователя после каждого изменения корзины
2) Восстанавливает содержимое корзины перед каждой обработкой запрошенной страницы.
Как скрыть пагинацию pdopage на первой странице
Как скрыть пагинацию pdopage на первой странице, если второй и последующей нет, а пагинация уже выводится. Сейчас такой код:
[[!pdoPage? &element=`pdoResources`
&showHidden=`1`
&tpl=`demo`
&limit=`5`
&parents=`[[*id]]`
]]
[[!+page.nav]]
FormIt передача плейсхолдеров
В категориях – где куча товаров на странице, в чанке товара вызывается AjaxForm с формой быстрого заказа. В форме автоматически заполняется поле – название товара.
Если указать
Если указать
Так вот вопрос – Как можно передать наименование (артикул и может другие поля) в вызов Formit?
Если указать
[[+pagetitle]]
, то плейсхолдер пуст. Если указать
{$_modx->setPlaceholder('pagetitle', $pagetitle)}
передается соответственно Наименование последнего товара. Так вот вопрос – Как можно передать наименование (артикул и может другие поля) в вызов Formit?
Редактор кода для INTROTEXT-поля ресурса
Приветствую всех. Возникло эстетическое желание подключить какой-нибудь редактор кода к полям description и introtext в документах, там часто используются теги, иногда их не видно, не красиво, не удобно. Хотелось чтобы там был Ace или Code Mirror. Пока я нашел как плагином можно подключить TinyMCE, но он там нафиг не нужен.
Redis Cache (xPDORedisCache)
Решил попробовать использовать redis кэш для modx
создал класс xPDORedisCache, особо не заморачивался переписал мемкеш класс, но возникает проблема, идет пустая выдача и в логе:
UPD: 2016-04-10
Решение далось легко, забыл указать сериализацию
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
Устанавливается в /core/xpdo/cache/
в настройках cache_handler = cache.xPDORedisCache
Доступные опции:
redis_server — строка с данными для подключения 'localhost:6379'
redis_auth — пароль для аутентификации
redis_db — целое число >= 0
cache_prefix — по желанию, по сути если задать в redis_db разные значения для разных сайтов, будет то, что надо
Код xpdorediscache.class.php ниже:
создал класс xPDORedisCache, особо не заморачивался переписал мемкеш класс, но возникает проблема, идет пустая выдача и в логе:
modExtensionPackage::loadCache() is not a valid static method.
в общем логе:[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning: Invalid argument supplied for foreach() in /var/www/core/model/modx/modcontext.class.php on line 101
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning: array_merge(): Argument #2 is not an array in /var/www/core/model/modx/modx.class.php on line 2306
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Fatal error: Class 'modUser_' not found in /var/www/core/xpdo/xpdo.class.php on line 770
Есть какие идеи куда копать?UPD: 2016-04-10
Решение далось легко, забыл указать сериализацию
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
Устанавливается в /core/xpdo/cache/
в настройках cache_handler = cache.xPDORedisCache
Доступные опции:
redis_server — строка с данными для подключения 'localhost:6379'
redis_auth — пароль для аутентификации
redis_db — целое число >= 0
cache_prefix — по желанию, по сути если задать в redis_db разные значения для разных сайтов, будет то, что надо
Код xpdorediscache.class.php ниже:
Подключаем Ecommerce в Яндекс.Метрике
Всем привет. На форуме куча полезной информации по разработке магазинов. Я же в свою очередь хочу рассказать про настройку аналитики.
Итак мы будем передавать информацию из магазина miniShop в Яндекс.Метрику для того, чтобы в полном объёме пользоваться отчётами Электронной коммерции.
Итак мы будем передавать информацию из магазина miniShop в Яндекс.Метрику для того, чтобы в полном объёме пользоваться отчётами Электронной коммерции.
Правильные username при регистрации пользователя
1 500
Всем привет. Часто встречается ситуация, когда на сайте при регистрации через Office пользователи указывают username вида "--- --", «валя краля», "___ __", «yesy@yesy.ru» и т.д. Хотелось бы, чтобы при регистрации использовали только английские буквы, тире, нижнее подчеркивание и цифры.
Приступим:
1. Создаем плагин с следующим содержанием:
Приступим:
1. Создаем плагин с следующим содержанием:
<?php
if ($modx->event->name == 'OnBeforeUserFormSave') {
if (!preg_match("/^[a-zA-Z0-9-_]+$/", $user->username)) $modx->event->output('Имя пользователя должно содержать английские буквы, символы "-", "_" и цифры');
}