20 ноября 2020, 23:46 Не правильно вам написал. Обратите внимание на массив $data. Вы задаёте user_id => 0, а должно быть id зарегистрированного пользователя. Тогда можно получить его имя. Вопросы / Как посредством консоли внести подписчиков в Sendex? 2 0
20 ноября 2020, 21:40 В Вашем коде неоткуда взяться имени подписчика. У Вас берется е-майл из массива $emails, а там только почтовые ящики. Вобщем Вам надо массив $emails передавать не только е-мал но и name. Ну и в $data тоже добавить переменную name. Как то так. Вопросы / Как посредством консоли внести подписчиков в Sendex? 2 0
20 ноября 2017, 22:44 Сделай проще: в системных настройках сайта, для страницы 403 (доступ запрещен), укажи id страницы с формой регистрации (авторизации), а на сайте в нужном месте, просто оставь ссылку на страницу личного кабинета. При переходе по ссылке авторизованные пользователи попадут в лк, а пользователи не авторизованные (у которых нет доступа к группе ресурсов) попадут на 403 страницу -> страницу авторизации (регистрации). Вопросы / Где взять сниппет входа для LogIn? 13 0
20 ноября 2017, 18:02 А logoutTpl разве не форма для выхода из лк? На вскидку: modzone.ru/blog/2016/01/05/check-user-authorization/ Вопросы / Где взять сниппет входа для LogIn? 13 0
13 июля 2017, 18:44 Вот и не знаю в чем проблема… Но для меня это на данный момент не принципиально. Через фронтенд данные записываются и извлекаются, в бд хранятся. Редактирование их в админке, не критично. Повторюсь сам метод мне понятен, прост и мне вполне подходит. Спасибо за него Павлу. Пошаговые инструкции / Дополнительные поля профиля юзера (не extended) 138 0
13 июля 2017, 18:00 Сразу предупреждаю, что это мой первый сниппет, сильно прошу не пинать… часть снипета с записью в поля: $profile = $modx->user->getOne('Profile'); $profile->set('cardid', $cardrefid); $profile->set('unqcardrefid', $unqcardrefid); $profile->set('cardholder', $cardholder); $profile->set('bin', $bin); $profile->set('last4digit', $last4digit); $profile->set('expyear', $expyear); $profile->set('expmonth', $expmonth); $profile->save(); как то так Пошаговые инструкции / Дополнительные поля профиля юзера (не extended) 138 0
13 июля 2017, 15:28 Я наверно не правильно выразился. С созданием все в порядке. После создания пользователя поля в админке видны и редактируются нормально. Но после выполнения скрипта с записью в эти поля, они пропадают из админки. Пошаговые инструкции / Дополнительные поля профиля юзера (не extended) 138 0
12 июля 2017, 19:30 Ну или через админку ручками забивать. Пошаговые инструкции / Дополнительные поля профиля юзера (не extended) 138 0
12 июля 2017, 19:29 Проблема в том что User Import не знает о существовании добавленных полей. Импортировать наверно можно через самописный плагин заточенный на работу с твоими полями. Пошаговые инструкции / Дополнительные поля профиля юзера (не extended) 138 0
11 июля 2017, 18:27 switch ($modx->event->name) { case "OnMODXInit": $map = array( 'modUserProfile' => array( 'fields' => array( 'firstname' => '', 'secondname' => '', 'cardid' => '', 'last4digit' => '', 'cardtype' => '', 'unqcardrefid' => '', 'cardholder' => '', 'bin' => '', 'expyear' => '', 'expmonth' => '', ), 'fieldMeta' => array( 'firstname' => array( 'dbtype' => 'varchar', 'precision' => '255', 'phptype' => 'string', 'null' => false, ), 'secondname' => array( 'dbtype' => 'varchar', 'precision' => '255', 'phptype' => 'string', 'null' => false, ), 'cardid' => array( 'dbtype' => 'varchar', 'precision' => '50', 'phptype' => 'string', 'null' => false, ), 'last4digit' => array( 'dbtype' => 'varchar', 'precision' => '25', 'phptype' => 'string', 'null' => false, ), 'cardtype' => array( 'dbtype' => 'varchar', 'precision' => '255', 'phptype' => 'string', 'null' => false, ), 'unqcardrefid' => array( 'dbtype' => 'varchar', 'precision' => '100', 'phptype' => 'string', 'null' => false, ), 'cardholder' => array( 'dbtype' => 'varchar', 'precision' => '255', 'phptype' => 'string', 'null' => false, ), 'bin' => array( 'dbtype' => 'varchar', 'precision' => '100', 'phptype' => 'string', 'null' => false, ), 'expyear' => array( 'dbtype' => 'varchar', 'precision' => '100', 'phptype' => 'string', 'null' => false, ), 'expmonth' => array( 'dbtype' => 'varchar', 'precision' => '100', 'phptype' => 'string', 'null' => false, ), ), ), ); foreach ($map as $class => $data) { $modx->loadClass($class); foreach ($data as $tmp => $fields) { if ($tmp == 'fields') { foreach ($fields as $field => $value) { foreach (array('fields', 'fieldMeta', 'indexes') as $key) { if (isset($data[$key][$field])) { $modx->map[$class][$key][$field] = $data[$key][$field]; } } } } elseif ($tmp == 'composites' || $tmp == 'aggregates') { foreach ($fields as $alias => $relation) { if (!isset($modx->map[$class][$tmp][$alias])) { $modx->map[$class][$tmp][$alias] = $relation; } } } } } break; case "OnUserFormPrerender": if (!isset($user) || $user->get('id') < 1) { return; } if (!$modx->getCount('modPlugin', array('name' => 'AjaxManager', 'disabled' => false))) { $data['firstname'] = htmlspecialchars($user->Profile->firstname); $data['secondname'] = htmlspecialchars($user->Profile->secondname); $data['cardid'] = htmlspecialchars($user->Profile->cardid); $data['last4digit'] = htmlspecialchars($user->Profile->last4digit); $data['cardtype'] = htmlspecialchars($user->Profile->cardtype); $data['unqcardrefid'] = htmlspecialchars($user->Profile->unqcardrefid); $data['cardholder'] = htmlspecialchars($user->Profile->cardholder); $data['bin'] = htmlspecialchars($user->Profile->bin); $data['expyear'] = htmlspecialchars($user->Profile->expyear); $data['expmonth'] = htmlspecialchars($user->Profile->expmonth); $modx->controller->addHtml(" <script type='text/javascript'> Ext.ComponentMgr.onAvailable('modx-user-tabs', function() { this.on('beforerender', function() { // Получаем колонки первой вкладки var leftCol = this.items.items[0].items.items[0].items.items[0]; // Добавляем новое поле в левую колонку 4ым по счёту полем (перед полем 'Email') leftCol.items.insert(4, 'modx-user-firstname', new Ext.form.TextField({ id: 'modx-user-firstname', name: 'firstname', fieldLabel: 'Имя', xtype: 'textfield', anchor: '100%', maxLength: 255, value: '{$data['firstname']}', })); leftCol.items.insert(5, 'modx-user-secondname', new Ext.form.TextField({ id: 'modx-user-secondname', name: 'secondname', fieldLabel: 'Фамилия', xtype: 'textfield', anchor: '100%', maxLength: 255, value: '{$data['secondname']}', })); leftCol.items.insert(6, 'modx-user-cardid', new Ext.form.TextField({ id: 'modx-user-cardid', name: 'cardid', fieldLabel: 'card - ref - id', xtype: 'textfield', anchor: '50%', maxLength: 50, value: '{$data['cardid']}', })); leftCol.items.insert(7, 'modx-user-last4digit', new Ext.form.TextField({ id: 'modx-user-last4digit', name: 'last4digit', fieldLabel: 'Последние 4 цифры карты', xtype: 'textfield', anchor: '25%', maxLength: 25, value: '{$data['last4digit']}', })); leftCol.items.insert(8, 'modx-user-cardtype', new Ext.form.TextField({ id: 'modx-user-cardtype', name: 'cardtype', fieldLabel: 'Тип карты', xtype: 'textfield', anchor: '100%', maxLength: 255, value: '{$data['cardtype']}', })); leftCol.items.insert(9, 'modx-user-unqcardrefid', new Ext.form.TextField({ id: 'modx-user-unqcardrefid', name: 'unqcardrefid', fieldLabel: 'unq-card-ref-id', xtype: 'textfield', anchor: '50%', maxLength: 100, value: '{$data['unqcardrefid']}', })); leftCol.items.insert(10, 'modx-user-cardholder', new Ext.form.TextField({ id: 'modx-user-cardholder', name: 'cardholder', fieldLabel: 'Владелец карты', xtype: 'textfield', anchor: '100%', maxLength: 255, value: '{$data['cardholder']}', })); leftCol.items.insert(11, 'modx-user-bin', new Ext.form.TextField({ id: 'modx-user-bin', name: 'bin', fieldLabel: 'Идентификатор банка', xtype: 'textfield', anchor: '50%', maxLength: 100, value: '{$data['bin']}', })); leftCol.items.insert(12, 'modx-user-expyear', new Ext.form.TextField({ id: 'modx-user-expyear', name: 'expyear', fieldLabel: 'Год действия карты', xtype: 'textfield', anchor: '25%', maxLength: 100, value: '{$data['expyear']}', })); leftCol.items.insert(13, 'modx-user-expmonth', new Ext.form.TextField({ id: 'modx-user-expmonth', name: 'expmonth', fieldLabel: 'Месяц действия карты', xtype: 'textfield', anchor: '25%', maxLength: 100, value: '{$data['expmonth']}', })); }); }); </script> "); } break; } Пошаговые инструкции / Дополнительные поля профиля юзера (не extended) 138 0
11 июля 2017, 02:08 Хороший, быстрый и простой способ. Создал несколько текстовых полей и при создании пользователя они в админке есть. Но стоит только записать в них значения через api, из админки поля пропадают. Хотя значения в них записываются, и через api с ними работать можно. Пошаговые инструкции / Дополнительные поля профиля юзера (не extended) 138 0
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Привет, добавил пользователя в группу mxBoard(4), создал токен. Добавляю все в postman пишет: rest: { «success»: false, «message»: «Недействительный токен.», «data...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
На вскидку: modzone.ru/blog/2016/01/05/check-user-authorization/
не критично. Повторюсь сам метод мне понятен, прост и мне вполне подходит. Спасибо за него
Павлу.
часть снипета с записью в поля:
как то так