Володя · 18 января 2018, 18:13 примерно так $q = $modx->newQuery('msOrderProduct'); $q->innerJoin('msOrder', 'msOrder', "msOrder.id = msOrderProduct.order_id"); $q->where(array( 'msOrderProduct.product_id' => $product->id, 'msOrder.user_id' => $modx->user->id, 'msOrder.status' => 2, )); $view = (bool)$modx->getCount('msOrderProduct', $q); Вопросы / Проверить покупался товар юзером или нет. 7 +1 2
Василий Наумкин · 10 октября 2017, 12:39 Если покопаться в MODX API то можно научиться выводить любой ресурс в плагине на нужном событии: $modx->resource = $modx->getObject('modResource', $modx->getOption('site_start')); $modx->resource->set('content', $pdoTools->runSnippet('@FILE snippets/get_panel.php')); $modx->request->prepareResponse();Здесь, как видно, еще и замена контента на свой идёт, на лету. Можно так на лету и виртуальные ресурсы делать, со своими pagetitle и прочими свойствами. При желании, можно вообще весь сайт без ресурсов сделать =) Готовые решения / Одностраничники на базе MODx без контекстов 16 +5 6
Василий Наумкин · 10 декабря 2015, 07:26 У меня на сайте, например, бывают платные разделы. Чтобы добавить пользователю доступ в них при оплате, работает вот такой плагин: case 'OnWebPageInit': if ($uid = $modx->user->id) { if ($extended = $modx->user->Profile->get('extended')) { if (!empty($extended['updateGroups'])) { unset($_SESSION['modx.user.'.$modx->user->id.'.userGroupNames']); $extended['updateGroups'] = 0; $modx->user->Profile->set('extended', $extended); $modx->user->Profile->save(); $ctxQuery = $modx->newQuery('modContext'); $ctxQuery->select($modx->getSelectColumns('modContext', '', '', array('key'))); if ($ctxQuery->prepare() && $ctxQuery->stmt->execute()) { if ($contexts = $ctxQuery->stmt->fetchAll(PDO::FETCH_COLUMN)) { $serialized = serialize($contexts); $modx->exec("UPDATE {$modx->getTableName('modUser')} SET {$modx->escape('session_stale')} = {$modx->quote($serialized)}"); } } } } } break;Написан давно, работает без нареканий. Для разлогинивания заблокированных пользователей использую вот такой код в том же плагине: if ($modx->user->id) { if (!$modx->user->active || $modx->user->Profile->blocked) { $modx->runProcessor('security/logout'); $modx->sendRedirect('/'); } } Если это всё не то — прошу прощения. Новые дополнения и их версии / switchUser 13 +5 8
Мордынский Николай · 20 марта 2015, 17:32 Вот нашел решение // Try to find by email $modx->event->_output = $modx->getObjectGraph('modUser', '{"Profile":{},"UserSettings":{}}', array ('Profile.email' => $scriptProperties['username']));Сюда можно дописывать еще критерии поиска, можно хоть по дополнительным полям логиниться Плагин вешается на событие onUserNotFound Вопросы / Авторизация по email и номеру телефона 6 +1 6
UiCMPGenerator дополнение для создания пакетов Ближе к сентябрю, основная загвоздка это создание нормальной документации и видео обзора, а так пакет как бы уже готов
Checkbox для модального окна Они не отключены, они платные, чтобы писали только те, кому действительно очень надо. Когда бесплатно люди начинают думать, что я им должен.
[SendIt 2.6.0] Анализ поведения пользователя для защиты от спама (невидимая капча)... Здравствуйте. Делаю личный кабинет на Sendit и со сбросом пароля возникли проблемы. Можете подсказать, в чем ошибка? Список вопросов в одноименном разделе на modx.pro пока пуст, и,...
Minishop + честный знак (продажа маркированной продукции) В нашем случае мы решили убрать всю логику по маркировке сайта.
MiniShop3 - Не выводятся товары дополнительных категорий @SYAN ваша указанная проблема исправлена еще до версии 1.2.3 @Павлик Мышкин завел: github.com/modx-pro/MiniShop3/issues/480 github.com/modx-pro/MiniShop3/issues/481Исправим в б...
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
msImportExport не сохраняет родителя по умолчанию Компонент не понимает кирилические домены при загрузку фото. пример: Error download. Url : https://антаресдвери.рф/upload/iblock/a50/a50b2ef45305a3c18f6e298f1e134880.jpg. Message...
Здесь, как видно, еще и замена контента на свой идёт, на лету.
Можно так на лету и виртуальные ресурсы делать, со своими pagetitle и прочими свойствами. При желании, можно вообще весь сайт без ресурсов сделать =)
Написан давно, работает без нареканий.
Для разлогинивания заблокированных пользователей использую вот такой код в том же плагине:
Если это всё не то — прошу прощения.
Сюда можно дописывать еще критерии поиска, можно хоть по дополнительным полям логиниться
Плагин вешается на событие onUserNotFound