Modx ajax регистрация: [ajaxLogin] Регистрация, Авторизация, Сброс пароля / Русскоязычное сообщество MODX

Содержание

[ajaxLogin] Регистрация, Авторизация, Сброс пароля / Русскоязычное сообщество MODX

Компонент ajaxLogin для MODX revolution реализует регистрацию, авторизацию и сброс пароля на сайте через AJAX, содержит в себе один сниппет и кучу чанков. Обязательно должен быть установлен пакет Login, автоматическая загрузка, пока, не реализована. Из пакета Login работает только с тремя сниппетами, это: Login, Register и ForgotPassword.

Все действия происходят в модальном окне, по умолчанию bootstrap3

Должна быть подключена библиотека jQuery.

Сниппет ajaxLogin

Как я выше писал, ajaxLogin содержит в себе кучу чанков, которые все служат для переопределения чанков по умолчанию сниппетов пакета Login, кроме двух — ajaxLoginTpl и ajaxLoginModalTpl.
Чанк ajaxLoginTpl разделён на две части сепаратором , и служит для вывода кнопки «Войти» или имени пользователя (fullname), в зависимости от состояния юзера: авторизован/не авторизован, с выпадающим меню-дропдаун (bootstrap), в котором находится ссылка выхода. Можно добавить любые другие ссылки.

Параметры
  • &activationEmailTpl — Чанк письма для подтверждения Email, сниппета Register. По умолчанию: ajaxLoginActivateEmailTpl
  • &activationResourceId — ID ресурса, куда будет перенаправлен пользователь для подтверждения и активации своей почты при регистрации, сниппета Register. По умолчанию: Пусто
  • &emailTpl — Чанк письма с информацией о дальнейших действиях при сбросе пароля, сниппет ForgotPassword. По умолчанию: ajaxLoginForgotPassEmailTpl
  • &errTpl — Шаблон вывода ошибки для сниппетов Login и ForgotPassword. По умолчанию: ajaxLoginErrTpl
  • &frontendCss — Путь до файла со стилями.
  • &frontendJs — Путь до файла со скриптом.
  • &loginTpl — Чанк с формой авторизации для сниппета Login. По умолчанию: ajaxLoginFormTpl
  • &logoutResourceId — ID ресурса, куда пользователь будет перенаправлен при выходе. Если пусто, то текущий ресурс. По умолчанию: Пусто
  • &registerTpl — Чанк с формой регистрации для сниппета Register. По умолчанию: ajaxLoginRegisterFormTpl
  • &resetResourceId — ID ресурса, куда будет перенаправлен пользователь для сброса пароля по ссылке из почты. По умолчанию: Пусто
  • &sentTpl — Чанк с сообщением, после заказа сброса пароля. По умолчанию: ajaxLoginForgotPassSentTpl
  • &tpl — Чанк с формой восстановления пароля для сниппета ForgotPassword. По умолчанию: ajaxLoginForgotFormTpl
  • &tplAjax — Чанк, разделённый на две части сепаратором. Та или иная часть выводится согласно статуса пользователя — авторизован или нет. По умолчанию: ajaxLoginTpl
  • &tplModal — Чанк оформления модального окна. По умолчанию: ajaxLoginModalTpl
  • &tplType — Значение указывает сниппетам Login и ForgotPassword где находится форма. По умолчанию: embedded. Не рекомендую менять этот параметр.
Примеры

Вот пример кода, которого вполне достаточно для работы этого компонента:

[[!ajaxLogin?
	&resetResourceId = `87`
        &emailSubject = `Заказан сброс пароля`
        &usergroups = `Users::Member`
        &activationEmailSubject = `Спасибо за регистрацию!`
        &activationResourceId = `84`
        &successMsg = `На указанный Email мы отправили ссылку, по которой нужно перейти для подтверждения почты.`
]]

Как вы понимаете, должны быть созданы ресурсы для сброса пароля и подтверждения Email, с соответствующими вызовами сниппетов: ResetPassword и ConfirmRegister

Компонент в modstore.

Авторизация, регистрация пользователей, личный кабинет и основы контроля доступа в MODX Revolution

Не многие знают, но в MODX уже из коробки существует мощная система разделения прав пользователей. Кроме того, компонент Login позволяет создать на сайте самую настоящую систему регистрации, авторизации, личного кабинета пользователей. Предлагаю разобрать возможности этого компонента и некоторые нюансы доступа пользователей.

Для начала, создадим две системные настройки, которые избавят нас от проблем с кодировками и неверным отображением некоторых страниц в браузере. В разделе «Система» → «Настройки системы» нажимаем кнопку «Создать новый параметр». В поле «Ключ» указываем error_page_header, а в поле «Значение» — HTTP/1.0 404 Not Found и нажимаем сохранить. Так же создаем второй параметр — ключ: unauthorized_page_header, значение: HTTP/1.0 401 Unauthorized

После этого зайдите в «Управление пакетами», найдите и установите дополнение Login.

Теперь создадим странички (по ссылкам код, который нужно вставить в контент ресурсов):

В коде на странице «Регистрация» в параметре activationResourceId указываем id ресурса «Подтверждение регистрации»

В коде страницы «Подтверждение регистрации» в трех местах указываем id ресурса «Личный кабинет»: в параметре errorPage, на 8 и на 11 строчках.

На странице авторизации указываем правильную ссылку на страницу восстановления пароля, а на странице личного кабинета — ссылки на редактирование и на смену пароля.

У всех этих ресурсов сразу уберите галочки «Использовать HTML редактор», чтобы наш код не обрабатывался установленным визуальным редактором.

Далее нужно создать группу пользователей, чтобы можно было дать им какие-либо преимущества. Заходим в раздел «Безопасность» → «Контроль доступа», нажимаем кнопку «Новая группа пользователей», в поле «Имя» пишем Users, отмечаем галочку «Создать параллельную группу ресурсов», «Политика бэкенда» указываем (без политики)

Затем идем в «Содержимое» → «Группы ресурсов» и перетаскиваем из правого дерева в группу «Users» следующие ресурсы:

  • Личный кабинет
    • Изменение пароля
    • Редактирование данных

Теперь если неавторизованный пользователь откроет одну из этих страниц, он увидит ошибку 404 — для него таких страниц не существует. Но нас такое поведение не устраивает. Мы хотим, чтобы при открытии страницы личного кабинета отображалась форма авторизации. Для этого идем в настройки системы и находим настройку unauthorized_page — Страница ошибки 403 «Доступ запрещен», и указываем в ней id страницы «Авторизация». У меня это — 3. Однако поведение все еще не изменится.

Просто анонимному пользователю MODX не хочет раскрывать информацию даже о том, что такой ресурс существует. Чтобы разрешить отображение ошибки 403, где это нужно, идем в «Безопасность» → «Контроль доступа», нажимаем правой кнопкой мыши на группе (аноним) и выбираем «Редактировать». Переходим на вкладку «Доступ к группам ресурсов», добавляем группу:

  • Группа — Users,
  • контекст — web,
  • минимальная роль — Member,
  • политика доступа — Load only

Теперь при входе в личный кабинет нужно будет сначала ввести логин (e-mail) и пароль.

Как видите, все довольно просто. Внешний вид форм можно менять с помощью CSS, а текст писем для активации пользователя или восстановления пароля можно отредактировать в соответствующих чанках в категории Login.

Office / Пользователи / Дополнения MODX / modstore.pro

Версия
1.9.4-pl

Дата выпуска
08.10.2020

Просмотры
35 406

Внимание, этот компонент требует версию PHP
5.6
или выше!
Если ваш сайт использует PHP ниже требуемого, установка этого
дополнения может его сломать.

Внимание, этот компонент требует версию MODX не ниже
2.5
!

Модульное дополнение для работы с пользователями.

Функционал в комплекте:

— Ajax регистрация и авторизация пользователей

— Ajax редактирование профиля

— Авторизация в дополнительные аккаунты для быстрого переключения между ними

— Авторизация под любым активным пользователем прямо из админки

— Вывод покупок пользователя miniShop2 на ExtJS

Быстрый старт

Авторизация и редактирование профиля в modstore.pro работает с помощью Office.

«Создание галереи в MODx Revolution»,»Вывод MODx Revolution кода для примеров»,»Динамическая вставка кода в шаблон MODx»,»Мобильный менеджер для MODx Revolution»,»Термины и базовые понятия в CMS/CMF MODX Revolution»,»Чанки»,»Исправление верхнего меню в MODX менеджере»,»Установка Handyman»,»Урок xPDO. Сниппет вывода родственного ресурса»,»Создание блога в MODx Revolution»,»Дополнения MODx Revolution»,»Автологин при регистрации в MODX»,»MODX панель Google Analytics»,»AJAX загрузка страниц с использованием табов jQuery»,»Метаданные в MODX Revolution»,»Пререлиз MODx Revolution 2.1.4 pl»,»Мультидоменность MODx Revolution»,»HTML5 бесплатный шаблон»,»Рефакторинг простого PHP приложения в MODx»,»Google Analytics асинхронный сниппет»,»Настройка ЧПУ и htaccess для MODX Revolution»,»Релиз MODx Revolution 2.1.5″,»Дополнение голосования CSS starrating»,»Создание виджета Твиттер»,»HTML5 бесплатные шаблоны»,»Создание пользовательского сниппета»,»Релиз-кандидат Revolution 2.2.0-rc1″,»Онлайн газета MODx Today»,»Кеширование в MODx Revolution»,»Релиз-кандидат Revolution 2.2.0-rc2″,»Иконки Made in MODx»,»Ajax в MODx Revolution»,»Релиз-кандидат Revolution 2.2.0-rc3″,»Создание современного сайта»,»MODx Revolution шпаргалки»,»Релиз MODx Revolution 2.2.1″,»Скрипты установки/обновления/удаления»,»Новая версия MODX Revolution 2.2.3″,»Автоназначение шаблона в MODX»,»Использование контекстов в MODX Revolution»,»Вывод содержимого страницы для группы пользователей»,»Виджет Яндекса»,»Фильтры ввода-вывода»,»MODX Revolution объекты»,»Вывод ресурсов в переменной шаблона»,»Бесплатные CSS шаблоны»,»Вывод количества дочерних ресурсов»,»Программная работа с объектом modUser»,»Создание пользовательских URL»,»Вставка HTML кода перед закрывающими тегами BODY или HEAD»,»Как сделать АJAX сайт на MODX Revolution»,»Документация по getResources»,»Релиз MODX Revolution 2.2.5″,»Разработка дополнения в MODX Revolution. Часть 1″,»Разработка дополнения в MODX Revolution. Часть 2.»,»Не инициализируйте всё подряд при jQuery.ready()»,»Воcстановление пароля в MODX Revolution»,»Синтаксис тегов в MODX Revolution»,»Экспорт пользователей с помощью Xodus»,»Инструменты разработчика Chrome: разметка и стили»,»Дополнение Sharelink для создания социальных закладок»,»MODX Cloud обновление в марте 2013″,»Интервью с Джеймсом Боэн-Пит, MODX Cloud»,»Пакет Sublime — MODX tags»,»MODX Cloud становиться «SiphonLabs» и другие плохие новости»,»MODX 2013 Создание удивительного»,»MODX Revolution 2.2.7 релиз»,»Установка Sublime Text Editor 2″,»Изменение темы Веб инспектора Chrome»,»Динамические выпадающие списки»,»Репозиторий Simple Dream»,»Получение полей родителя MODX»,»MODX скорая помощь»,»Yandex диск в Убунту»,»Новый релиз MODX Revolution 2.2.9″,»Установка Webmoney на Ubuntu»,»Релиз MODX Revolution 2.2.10″,»Инструменты разработчика Хром в 2013″,»Бета и стабильный Chrome на одной машине»,»Установка Nginx + FPM»,»Народный выбор — Лучшая OS CMS — MODX»,»Генерация Google Sitemap для тысяч ресурсов»,»Форум на esoTalk»,»Вывод последних постов в esoTalk»,»Размещение видео-роликов на сайте»,»Правила редизайна»,»Grunt — что это такое и как с ним работать»,»Бесплатные книги о веб-дизайне»,»Chrome расширения для веб-разработчика»,»Усиление вашего Gruntfile»,»Отзывчивое HTML5 видео»,»4 способа заставить мозг работать лучше»,»Слайдеры»,»Фреймворки»,»SVG вместо обычных изображений»,»Расширение объекта modResource»,»Удобный файловый менеджер в Убунту»,»Алиасы bash в Убунту»,»Chrome расширения для веб-разработчика 2″,»Интерактивные уроки для веб-разработчиков»,»Производительность веб-страниц»,»Руководство по оптимизации сайта и производительности»,»Chrome расширения для веб-разработчика 3″,»Расширения для Brackets»,»Отключение обрезки тегов в TinyMCE»,»Плейсхолдеры изображений»,»Переезд в Вену. Неделя 1″,»Переезд в Вену. Неделя 2-3″,»Переезд в Вену. 2 месяца»,»Убрать рекламу в Ubuntu»,»Переезд в Вену. Осень-зима»,»phpthumbon документация»,»Articles. Создание блога в MODx Revolution»,»Урок кеширования в MODx Revolution»,»Уроки на сайте»,»Мультисайт на MODX Revolution»,»Шпаргалка по sql»,»Урок MIGXdb. Создание менеджера галереи»,»CLI популярные команды»,»Polymer 3.0. Основные изменения»,»Устранение критических уязвимостей в версии MODX 2.6.5″,»Рабочее окружение веб-программиста в Windows»,»Приложения для MAC»,»Урок 1. Вступление»,»Урок 2. Установка MODX Revolution»,»Урок 3. Базовая настройка и установка пакетов»,»Советы для начинающих работу с MODX»,»Советы для начинающих веб-разработчиков»,»Урок 4. Работа с шаблонами в MODx Revolution»,»Урок 5. Работа с чанками MODx Revolution»,»Урок 6. Переменные шаблона»,»Урок 7. Сниппеты»,»Урок 8. Вывод меню с помощью Wayfinder»,»Урок 9. Создание контакт-формы с помощью FormIt»,»Урок 9-2. Добавление поля вложения в FormIt»,»Урок 9-3. Formit с проверкой полей на jQuery»,»Урок 10. Вывод контента сниппетом getResources»,»Урок 11. Создание карты сайта sitemap.xml»,»Урок xPDO 1. Создание классов из таблиц базы данных»,»xPDO»,»Урок 12. Основы использования getPage»,»Урок 13. Создание голосования с помощью Polls»,»Урок 14. Использование MIGX. Создание таблицы»,»Урок 15. Создание слайдера с помощью MIGx TV»,»Урок 16. MIGX галерея с AJAX загрузкой»,»Урок 17. Создание RSS-ленты сайта»,»Урок 18. Создание галереи в MODX Revolution»,»Урок 19. Создание формы поиска с выпадающими подсказками»,»Урок 20. Madrass CSS3 паттерн в MODX стиле»,»Урок 21. AJAX загрузка Quip комментариев»,»Урок 23. Создание удобной формы входа с помощью Login»,»Урок 24. Создание простого компонента Qaptcha»,»Урок 25. Создание AJAX поиска на сайте»,»Урок 26. Создание AJAX формы отправки сообщений»,»Урок 28. Работа с csv»,»Урок 29. Экспорт ресурсов Modx Revo c TV в csv файл»,»Урок 29. AJAX загрузка ресурсов»,»Урок 30. Вывод отзывчивой галереи в MODX»,»Ext JS урок 1. Ваш первый extJS скрипт. Окна сообщений»,»Ext JS урок 2. Использование AJAX»,»Ext JS урок 3. Анимация»,»Ext JS урок 4. Манипулирование с узлами»

How to fix a validation form for modx?

Chunk tplModalCallback

<div tabindex="-1" role="dialog" aria-labelledby="modalCallbackTitle" aria-hidden="true">
<div role="document">
<div>
<div>
<h5>Форма обратной связи</h5>
<button type="button" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div>
[[!AjaxForm?
&snippet=`FormIt`
&form=`contactForm`
&emailTpl=`tplContactForm`
&hooks=`spam, email`
&emailSubject=`Сообщение с сайта [[++site_url]]`
&emailTo=`почта@почта.ru`
&validate=`phone:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено!`
]]
</div>
</div>
</div>
</div>

Чанк contactForm

<form method="post">
<div>
<input type="text" name="name" required="" placeholder="Ваше имя*" value="[[+fi.name]]">
<span>[[+fi.error.name]]</span>
</div>
<div>
<input type="email" name="email" placeholder="Ваш email*" value="[[+fi.email]]">
<span>[[+fi.error.email]]</span>
</div>
<div>
<input type="text" name="phone" required="" placeholder="Ваш телефон*" value="[[+fi.phone]]">
<span>[[+fi.error.phone]]</span>
</div>
<div>
<textarea rows="4" name="message" required="" data-maxlength="200" data-info="textarea-words-info" placeholder="Сообщение*"></textarea>
<span>[[+fi.error.message]]</span>
</div>
<div>
<input type="checkbox" required="">
<span>[[+fi.error.opd]]</span>
<label for="privacyCheck">Согласен на обработку персональных данных</label>
</div>
<p>Ставя отметку, я даю свое согласие на обработку моих персональных данных в соответствии с законом №152-ФЗ «О персональных данных» от 27.07.2006 и принимаю условия <a href="[[~70]]" rel="nofollow" target="_blank">Пользовательского соглашения</a></p>
<div>
<button type="submit">Отправить</button>
</div>
[[+fi.success:is=`1`:then=`<div>[[+fi.successMessage]]</div>`]]
[[+fi.validation_error:is=`1`:then=`<div>[[+fi.validation_error_message]]</div>`]]
</form>

Чанк tplContactForm

<p>Имя: [[+name]]</p>
<p>Email: [[+email]]</p>
<p>Телефон: [[+phone]]</p>
<p>Сообщение: [[+message]]</p>

при отправке ругается на ошибку в поле email, хотя оно исключено из валидации

при этом, в админку сайта сообщения приходят.

MODX Revolution. Создание контактной формы с разрешением на обработку персональных данных

Контактная форма для обратной связи существует практически на каждом сайте. Она может служить для связи с администратором сайта, для заказа услуг или продукции, предложений сотрудничества и т. д. Реализовывать форму контактов мы будем с помощью дополнений Formit и AjaxForm и в соответствии с законом №152-ФЗ «О персональных данных» от 27.07.2006.

1. Устанавливаем пакеты Formit и AjaxForm.

2. Создаём шаблон контактов. Вкладка Элементы → категория Шаблоны → щёлкните правой кнопкой мыши и в контекстном меню выберите Новый шаблон.

В открывшемся окне заполните поля:

  • Имя*: Contacts;
  • Описание: Контакты;
  • Код шаблона (html):

    Здесь в шаблон страницы необходимо вставить код Ajax

    [[!AjaxForm?
        &snippet=`FormIt`
        &form=`сontact-form`
        &emailTpl=`contactTpl`
        &hooks=`spam,email`
        &emailSubject=`Сообщение с сайта [[++site_url]]`
        &emailTo=`ваша@почта.ru`
        &validate=`name:required,email:required`
        &validationErrorMessage=`В форме содержатся ошибки!`
        &successMessage=`Сообщение успешно отправлено!`
    ]]

    ваша@почта.ru замените на свой почтовый ящик

3. Создадим саму форму обратной связи. Вкладка Элементы → категория Чанки → щёлкните правой кнопкой мыши и в контекстном меню выберите Создать новый чанк здесь.

В открывшемся окне заполните поля:

  • Имя*: сontact-form;
  • Если используете bootstrap, то код формы может выглядеть так:
    <form method="post">
    <div>
    	<input type="text" name="name" required="" placeholder="Ваше имя*" value="[[+fi.name]]">
    	<span>[[+fi.error.name]]</span>
    </div>
    <div>
    	<input type="text" name="email" required="" placeholder="Ваш email*" value="[[+fi.email]]">
    	<span>[[+fi.error.email]]</span>
    </div>
    <div>
    	<input type="text" name="phone" required="" placeholder="Ваш телефон*" value="[[+fi.phone]]">
    	<span>[[+fi.error.phone]]</span>
    </div>
    <div>
    	<textarea rows="4" name="message" required="" data-maxlength="200" data-info="textarea-words-info" placeholder="Сообщение*"></textarea>
    	<span>[[+fi.error.message]]</span>
    </div>
    <div>
        <label>
          <input type="checkbox" required=""> Согласен на обработку персональных данных<br/>
          <span>[[+fi.error.opd]]</span>
        </label>
    </div>
    <p>Ставя отметку, я даю свое согласие на обработку моих персональных данных в соответствии с законом №152-ФЗ «О персональных данных» от 27.07.2006 и принимаю условия <a href="[[~20]]" rel="nofollow" target="_blank">Пользовательского соглашения</a></p>
    <button type="submit">Отправить</button>
    [[+fi.success:is=`1`:then=`
    <div>[[+fi.successMessage]]</div>`]]
    [[+fi.validation_error:is=`1`:then=`<div>[[+fi.validation_error_message]]</div>`]]
    </form>

    Где [[~20]] страница с пользовательским соглашением

4. Создаём чанк, который формирует письмо на отправку. Вкладка Элементы → раздел Чанки → категория Tpl → щёлкните правой кнопкой мыши и в контекстном меню выберите Создать новый чанк здесь

В открывшейся форме Новый чанк заполните поля:

Дополнительно:

Стили AjaxForm: assets/components/ajaxform/css/default.css

Документация по FormIt: https://docs.modx.com/extras/revo/formit

Документация по AjaxForm: https://docs.modx.pro/components/ajaxform

СВами

Создание сайта на Modx Revolution. Урок 4. Натягивание html шаблона. Создание чанков

Всем привет. В прошлом уроке мы научились устанавливать систему управления сайтом Modx Revolution. В этом уроке мы найчимся внедрять или устанавливать шаблон в эту систему. Также я приведу список необходимых дополнений, которые нам понадобятся для создания сайта на Modx Revolution.

Для начала установим нужные дополнения. Если вы забыли как устанавливать пакеты из репозитория, напомню. Заходим в Пакеты/Установщик

Нажимаем «Загрузить пакет»

И вбиваем в поиск нужный нам пакет

Вот список дополнений, которые, на мой взгляд, необходимы для работы с шаблоном и нормального функционирования простого многостраничного сайта:

Ace — редактор HTML/CSS/PHP/JavaScript кода для удобной работы над чанками, сниппетами, плагинами и шаблонами страниц (что это такое мы узнаем ниже).

AjaxManager — плагин для быстрой работы админки на технологии ajax (без перезагрузки страницы)

Все эти дополнения вам нужно установить из официального репозитория, инструкцию как пользоваться к которому я привел выше. И два дополнения нужно установить из репозитория modstore.pro. Но для начала нужно создать нового поставщика пакетов.

Как подключиться к репозиторию modstore.pro

1. Переходим на сайт https://modstore.pro/

2. Регистрируемся 

Вводим email, пароль, имя. Жмём «Регистриция». На почту придёт письмо с ссылкой для подтверждения регистрации и паролем. Переходим по ссылке, входим в аккаунт.

3. Кликаем по своему имени и заходим в раздел «Ключи для сайтов»

кликаем «Создать ключ»

откроется такое окно

если требуется, пишем описание ключа, например «для тестового сайта». Нажимаем «Сохранить». Ключ создан.

Копируем сам ключ и идём в админку Modx Revolution

4. Заходим в Пакеты/Установщик и кликаем на «Поставщики»

Жмём «Добавить нового поставщика»

Название — modstore.pro
Url поставищка — https://modstore.pro/extras/
Имя пользователя — ваша электронная почта, при помощи которой вы авторизуетесь на этом сайте.
Ключ API — ваш сгенерированный ключ доступа, который вы только что скопировали.
Описание — необязательное поле.

Жмем «Сохранить». Если вы всё правильно заполнили, то появится новый поставщик

Теперь мы можем установить еще два дополнения, которые в любом случае нам понадобятся. Этот репозиторий нам понадобится еще ни раз. Заходим в Пакеты/Установщик, кликаем на иконку открытия кнопки «Загрузить пакеты»

Выбираем «Выберите поставщика»

Выбираем поставщика modstore.pro

и теперь в том же окне поиска ищем и устанавливаем следующие дополнения:

TinyMCE Rich Text Editor — это текстовый редактор, с помощью которого мы будем форматировать текст на страницах

AdminPanel — панель внизу сайта, которая видна только администратору сайта для редактирования текущей страницы

Итого в нашем менеджере пакетов должно быть 5 дополнений

Внедрение HTML шаблона в Modx Revolution

1. Перенос всех файлов сайта на хостинг

Заходим в наш FTP-клиент (в моём случае это Coda2) и подключаемся к нашему сайту

нам нужно перекачать папки css, fonts, img и js из папки assets из папки сайта на компьютере в папку assets на сервере. Я это делаю просто зажатием и перетаскиванием всех папок в другое окно.

Дожидаемся успешного переноса.

2. Создание шаблона «Главная страница»

Идём в «Элементы»/ Начальный шаблон. Переименовываем его в «Главная страница». Копируем содержимое файла index.html и заменяем содержимое в «Код шаблона (HTML)»

То, что у нас подсвечивается код — это заслуга пакета Ace, который мы установили ранее. Сохраняем шаблон. Я вам предлагаю посмотреть результат. Кликните на Содержимое/Перейти на сайт

И о Боги…Вот он наш сайт

Кстати, если вы кликните по «Редактировать текущую страницу», то попадёте в админку на редактирование главной страницы. Это в работе дополнение «AdminPanel».

Мы уже видим резуальтат на лицо. Правда, на этом работа над сайтом только начинается. Самое время познакомиться со следующими понятиями.

Что же такое чанки, шаблоны, ресурсы, tv-параметры, сниппеты и плагины

Чанки — это блоки кода, которые используются в разных шаблонах. Они нужны для того, чтобы не писать каждый раз один и тот же код в каждом шаблоне

Например, у нас будет блок head, отвечающий за подключение стилей, скриптов и прочего, который будет присутствовать на каждой странице, на каждом шаблоне

Шаблоны — это целые HTML страницы, которые присваиваются к определенным ресурсам. Они нужны для того, чтобы не копировать один и тот же код целой HTML страницы для множества ресурсов.

Например, у нас будут несколько страниц Услуг, у которых будет один и тот же Шаблон «Услуги»

Ресурсы — это страницы нашего сайта: Главная страница, О компании, Главная услуг, множество страниц Услуг, Контакты и так далее

TV-параметры — это поля, в которые мы будем загружать определенную информацию: изображения, заголовки, текст и прочее.

Например, у нас будет tv-параметр img, который будет отвечать за загрузку изображений на страницу.

Сниппеты и плагины — это php код, с помощью которого мы будем делать навигацию, форму обратной связи, выводить статьи в ленте новостей и прочее.

В теории может быть не всё понятно, предлагаю перейти к практике.

Создание чанков

HTML код в шаблоне «Главная страница» очень объемный, его необходимо разбить на чанки. Тем более, что такие блоки, как «шапка сайта» (header) и «подвал» (footer) нам понадобятся и на других страницах.

Начнём с чанка подключения стилей и скриптов. Перейдите в Элементы и нажмите на плюсик возле слова «Чанки»

 

Чанк head

Назовём чанк head и скопируем в Код чанка следующий код:

<base href="[[!++site_url]]" />
<meta charset="[[++modx_charset]]">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>[[*pagetitle]] - [[++site_name]]</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Favicon -->
<link rel="shortcut icon" type="image/x-icon" href="assets/img/favicon.ico">
<!-- CSS
========================= -->
<!--bootstrap min css-->
<link rel="stylesheet" href="assets/css/bootstrap.min.css">
<!--owl carousel min css-->
<link rel="stylesheet" href="assets/css/owl.carousel.min.css">
<!--slick min css-->
<link rel="stylesheet" href="assets/css/slick.css">
<!--magnific popup min css-->
<link rel="stylesheet" href="assets/css/magnific-popup.css">
<!--font awesome css-->
<link rel="stylesheet" href="assets/css/font.awesome.css">
<!--animate css-->
<link rel="stylesheet" href="assets/css/animate.css">
<!--jquery ui min css-->
<link rel="stylesheet" href="assets/css/jquery-ui.min.css">
<!--slinky menu css-->
<link rel="stylesheet" href="assets/css/slinky.menu.css">
<!--plugins css-->
<link rel="stylesheet" href="assets/css/plugins.css">

<!-- Main Style CSS -->
<link rel="stylesheet" href="assets/css/style.css">
<link rel="stylesheet" href="assets/css/custom.css">

<!--modernizr min js here-->
<script src="assets/js/vendor/modernizr-3.7.1.min.js"></script>

Это модифицированный код из нашего HTML шаблона, куда я добавил:

<base href="[[!++site_url]]" /> - это настройка базового url для нормальной работы сайта.

<meta charset="[[++modx_charset]]"> - правильная кодировка сервера

<title>[[*pagetitle]] - [[++site_name]]</title> - в title будет подставляться Заголовок страницы и Название сайта

Теперь идём обратно в Шаблон Главной страницы и вместо

<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Lukani – Plant and Flower Shop eCommerce HTML Template </title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Favicon -->
<link rel="shortcut icon" type="image/x-icon" href="assets/img/favicon.ico">

<!-- CSS
========================= -->
<!--bootstrap min css-->
<link rel="stylesheet" href="assets/css/bootstrap.min.css">
<!--owl carousel min css-->
<link rel="stylesheet" href="assets/css/owl.carousel.min.css">
<!--slick min css-->
<link rel="stylesheet" href="assets/css/slick.css">
<!--magnific popup min css-->
<link rel="stylesheet" href="assets/css/magnific-popup.css">
<!--font awesome css-->
<link rel="stylesheet" href="assets/css/font.awesome.css">
<!--animate css-->
<link rel="stylesheet" href="assets/css/animate.css">
<!--jquery ui min css-->
<link rel="stylesheet" href="assets/css/jquery-ui.min.css">
<!--slinky menu css-->
<link rel="stylesheet" href="assets/css/slinky.menu.css">
<!--plugins css-->
<link rel="stylesheet" href="assets/css/plugins.css">

<!-- Main Style CSS -->
<link rel="stylesheet" href="assets/css/style.css">
<link rel="stylesheet" href="assets/css/custom.css">

<!--modernizr min js here-->
<script src="assets/js/vendor/modernizr-3.7.1.min.js"></script>

вставляем

[[$head]]

Это и есть вызов чанка в шаблоне. Тоже самое проделываем с другими блоками (чанками), которые будут присутствовать и в других шаблонах

Чанк menu_mobile

Вырезаем

<!--offcanvas menu area start-->
<div>

</div>
<div>
<div>
<div>
<div>
<div>
<a href="javascript:void(0)"><i></i></a>
</div>
<div>
<div>
<a href="javascript:void(0)"><i></i></a>
</div>

<div>
<p>Телефон для справок: <a href="tel:89999999999">89999999999</a></p>
</div>
<div>
<ul>
<li>
<a href="index.html"> Главная</a>
</li>
<li>
<a href="services.html">Услуги</a>
<ul>
<li><a href="service.html">Услуга 1</a></li>
<li><a href="service.html">Услуга 2</a></li>
</ul>
</li>
<li>
<a href="about.html">О компании</a>
<ul>
<li><a href="faq.html">Вопрос-ответ</a></li>
<li><a href="404.html">404 ошибка</a></li>
</ul>
</li>
<li>
<a href="contact.html"> Контакты</a>
</li>
</ul>
</div>

<div>
<span><a href="#"><i></i> [email protected]</a></span>
<ul>
<li><a href="#"><i></i></a></li>
<li><a href="#"><i></i></a></li>
<li><a href="#"><i></i></a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!--offcanvas menu area end-->

и копируем этот код в новосозданный чанк menu_mobile. А за место него вставлем конструкцию

[[$menu_mobile]]

Чанк header

Вырезаем код

<header>
<div>
<div>
<div>
<div>
<div>
<div>
<a href="index.html"><img src="assets/img/logo/logo.png" alt=""></a>
</div>
</div>
<div>
<!--main menu start-->
<div>
<nav>
<ul>
<li><a href="index.html">главная</a></li>
<li><a href="#">Услуги <i></i></a>
<ul>
<li><a href="service.html">Услуга</a></li>
</ul>
</li>
<li><a href="#">О компании <i></i></a>
<ul>
<li><a href="faq.html">Вопрос-ответ</a></li>
<li><a href="404.html">404 ошибка</a></li>
</ul>
</li>
<li><a href="contact.html"> Контакты</a></li>
</ul>
</nav>
</div>
<!--main menu end-->
</div>

<div>
<div>
<div>
<form action="#">
<div>
<input placeholder="Поиск по сайту..." type="text">
<button type="submit"><i></i></button>
</div>
</form>
</div>
<p><i></i> 8999 <span>999999</span></p>

</div>
</div>
</div>
</div>
</div>
</div>

</header>
<!--header area end-->

И вставляем его в новосозданный чанк header. А вместо него на главной пишем

[[$header]]

Чанк scripts

Идём вниз Шаблона Главная страница, находим

<!-- JS
============================================ -->
<!--jquery min js-->
<script src="assets/js/vendor/jquery-3.4.1.min.js"></script>
<!--popper min js-->
<script src="assets/js/popper.js"></script>
<!--bootstrap min js-->
<script src="assets/js/bootstrap.min.js"></script>
<!--owl carousel min js-->
<script src="assets/js/owl.carousel.min.js"></script>
<!--slick min js-->
<script src="assets/js/slick.min.js"></script>
<!--magnific popup min js-->
<script src="assets/js/jquery.magnific-popup.min.js"></script>
<!--counterup min js-->
<script src="assets/js/jquery.counterup.min.js"></script>
<!--jquery countdown min js-->
<script src="assets/js/jquery.countdown.js"></script>
<!--jquery ui min js-->
<script src="assets/js/jquery.ui.js"></script>
<!--jquery elevatezoom min js-->
<script src="assets/js/jquery.elevatezoom.js"></script>
<!--isotope packaged min js-->
<script src="assets/js/isotope.pkgd.min.js"></script>
<!--slinky menu js-->
<script src="assets/js/slinky.menu.js"></script>
<!-- Plugins JS -->
<script src="assets/js/plugins.js"></script>

<!-- Main JS -->
<script src="assets/js/main.js"></script>

Вырезаем, пишем вместо этого

[[$scripts]]

Сохраняем, создаём новый чанк scripts и вставляем туда этот код.

Чанк

footer

<!--footer area start-->
<footer>
<div>
<div>
<div>
<div>
<div>
<h4>Opening Time</h4>
<p><span>Mon - Fri:</span> 8AM - 10PM</p>
<p><span>Sat:</span> 9AM-8PM</p>
<p><span>Suns:</span> 14hPM-18hPM</p>
<p><b>We Work All The Holidays</b></p>
</div>
</div>
<div>
<div>
<h4>Information</h4>
<div>
<ul>
<li><a href="about.html">About Us</a></li>
<li><a href="checkout.html">Checkout</a></li>
<li><a href="contact.html">Contact</a></li>
<li><a href="faq.html">Frequently Questions</a></li>
<li><a href="wishlist.html">Wishlist</a></li>
</ul>
</div>
</div>
</div>
<div>
<div>
<div>
<a href="index.html"><img src="assets/img/logo/logo.png" alt=""></a>
</div>
<div>
<ul>
<li><a href="#">Payment</a></li>
<li><a href="#">Affiliates</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">Internet</a></li>
</ul>
</div>
<div>
<ul>
<li><a href="#"><i aria-hidden="true"></i></a></li>
<li><a href="#"><i aria-hidden="true"></i></a></li>
<li><a href="#"><i aria-hidden="true"></i></a></li>
<li><a href="#"><i aria-hidden="true"></i></a></li>
</ul>
</div>
<div>
<ul>
<li><a href="#"><img src="assets/img/icon/icon-app.jpg" alt=""></a></li>
<li><a href="#"><img src="assets/img/icon/icon1-app.jpg" alt=""></a></li>
</ul>
</div>
</div>
</div>
<div>
<div>
<h4>My Account</h4>
<div>
<ul>
<li><a href="my-account.html">My Account</a></li>
<li><a href="contact.html">Contact</a></li>
<li><a href="cart.html">Shopping cart</a></li>
<li><a href="checkout.html">Checkout</a></li>
<li><a href="shop.html">Shop</a></li>
<li><a href="#">Order History</a></li>
</ul>
</div>
</div>
</div>
<div>
<div>
<h4>Customer Service</h4>
<div>
<ul>
<li><a href="contact.html">Contact Us</a></li>
<li><a href="#">Terms of use</a></li>
<li><a href="#">Privacy Policy</a></li>
<li><a href="contact.html">Site Map</a></li>
<li><a href="my-account.html">My Account</a></li>
<li><a href="#">Returns</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>

<div>
<div>
<div>
<div>
<div>
<p>&copy; 2021 <a href="index.html">Lukani</a>. Made with <i
class="fa fa-heart text-danger"></i> by <a href="https://hasthemes.com/"
target="_blank">HasThemes</a> </p>

</div>
</div>
<div>
<div>
<a href="#"><img src="assets/img/icon/payment.png" alt=""></a>
</div>
</div>
</div>
</div>
</div>
</footer>
<!--footer area end-->

Чанк

newsletter

<!--newsletter area start-->
<div>
<div>
<div>
<div>
<div>
<h3>Get <span>20% Off</span> Your Next Order</h3>
</div>
<div>
<div>
<form>
<input type="email" autocomplete="off" placeholder="Enter you email" />
<button>Subscribe</button>
<div>
<i></i>
</div>
</form>
<!-- mailchimp-alerts Start -->
<div>
<div></div><!-- mailchimp-submitting end -->
<div></div><!-- mailchimp-success end -->
<div></div><!-- mailchimp-error end -->
</div><!-- mailchimp-alerts end -->
</div>
</div>
</div>
</div>
</div>
</div>
<!--newsletter area end-->

Чанк main_content

А в чанк main_content «складываем» всё остальное (код не буду приводить, слишком большой, думаю, и так понятно)

В итоге у нас должен получиться вот такой Шаблон «Главная страница» 

<!doctype html>
<html lang="en">

<head>
[[$head]]
</head>

<body>
<!--header area start-->
[[$menu_mobile]]
[[$header]]

[[$main_content]]

[[$newsletter]]
[[$footer]]
[[$scripts]]
</body>
</html>

Согласитесь, с таким кодом уже удобнее и приятнее работать. И если мы захотим изменить что-то, например в мобильном меню, то нам надо будет зайти в чанк menu_mobile и все изменения сохранятся на всех остальных шаблонах, которые мы создадим в следующем уроке.

 

Помогла статья? Угости чашечкой кофе =)

Зарегистрироваться — Войти | Документация MODX

Что такое Реестр? ¶

Register — это сниппет обработки регистрационной формы. Пример вызова можно найти здесь.

Использование¶

Просто поместите фрагмент регистрации в Ресурс, где находится ваша регистрационная форма. (Стандартное имя lgnRegisterForm предоставляется Login 3PC.) Этот фрагмент также требует активации пользователем, поэтому они получат электронное письмо в своем почтовом ящике относительно своей регистрации.

Свойства по умолчанию¶

Register имеет некоторые свойства по умолчанию, упакованные в него. Их:

Имя Описание По умолчанию
активация Требовать ли активацию для правильной регистрации. Если true, пользователи не будут помечены как активные, пока они не активируют свою учетную запись. По умолчанию true. Будет работать только в том случае, если в регистрационной форме указано поле электронной почты. 1
активация Электронная почта Тема Тема письма об активации. register.activation_email_subject значение словаря
активацияEmailTpl Электронный адрес активации tpl. Текст электронного письма включает ссылку, по которой пользователи могут активировать свою новую учетную запись, а также свое имя пользователя и (сгенерированный) пароль. lgnActivateEmailTpl
активацияEmailTplType Тип tpls, предоставляемый для активации по электронной почте. модЧанк
ActivResourceId Идентификатор ресурса, в котором находится фрагмент кода ConfirmRegister для активации. 1
активацияttl Количество минут до истечения срока действия электронного письма для активации. По умолчанию 3 часа. 180
Автовход Следует ли автоматически входить в систему пользователя после успешной регистрации. (Требуется активация = 0) 0
нестандартные валидаторы Разделенный запятыми список имен настраиваемых валидаторов (фрагментов), которые вы планируете использовать в этой форме. Они должны быть явно указаны здесь, иначе они не будут запущены.
эл. Почта Поле Имя поля, которое будет использоваться для адреса электронной почты нового пользователя. электронная почта
surePasswordStrength Если установлено «Да», «Регистрация» гарантирует, что пользователь вводит достаточно надежный пароль. Надежные пароли — это пароли, состоящие из нескольких слов или не алфавитных символов. 0
гарантироватьПарольСилаПредложения Если для параметра surePasswordStrength установлено значение «Да», и пароль не прошел проверку на надежность, Register предоставит это количество предложений пользователю для его пароля. 5
исключить Расширенный Список полей, разделенных запятыми, которые следует исключить из настройки в качестве расширенных полей.
generatePassword Если установлено «Да», Register будет генерировать случайный пароль для пользователя, перезаписывая любой переданный пароль. Полезно для автоматической генерации паролей. 0
Максимум Возможное Сильнее Пароли Если для параметра surePasswordStrength установлено значение «Да», то это максимальное количество предложений, которые Register может найти, чтобы считать предоставленный пароль «надежным».Увеличение этого числа делает проверку более мягкой; ниже делает его жестче. 25
минимумStrongPasswordWordCount Если для параметра surePasswordStrength установлено значение «Да», то если предоставленный пароль содержит такое количество слов, он будет считаться надежным паролем. 3
модерируемыйResourceId Если предварительная привязка устанавливает пользователя как модерируемого, отправьте на этот ресурс вместо отправленногоResourceId. Оставьте поле пустым, чтобы пропустить.
пароль Поле Имя поля, которое будет использоваться для нового пароля пользователя. пароль
пароль WordSeparator Если для параметра surePasswordStrength установлено значение «Да», это будет разделитель между словами при определении количества слов в предоставленном пароле.
сохранить Парам. Необязательно. Объект JSON с параметрами, сохраняемыми в процессе регистрации. Полезно при использовании перенаправления в ConfirmRegister для перенаправления на другую страницу (например, для тележек покупок).
Предварительные крючки Разделенный запятыми список «ловушек» или фрагментов, которые будут выполняться до регистрации пользователя, но после проверки. Также можно указать recaptcha в качестве хука.
post Крючки Разделенный запятыми список «ловушек» или фрагментов, которые будут выполняться после регистрации пользователя.
перенаправлениеUnsetDefaultParams Если true, параметры по умолчанию будут удалены из перенаправленных URL-адресов. 0
submitVar Переменная, которую нужно проверить, чтобы загрузить функциональность Регистра. Если пусто или установлено значение false, Register будет обрабатывать форму по всем запросам POST. логин-регистрация-btn
успех Сообщение Необязательно. Если перенаправление не выполняется с использованием параметра submitResourceId, вместо этого будет отображаться это сообщение.
отправленоResourceId Если установлено, будет перенаправлять на указанный Ресурс после того, как Пользователь отправит регистрационную форму.
Обрезка Пароль Если задано значение «Да», функция «Регистр» будет обрезать пароль от пробелов в начале и в конце при его обработке. 1
использование Расширенное Следует ли устанавливать какие-либо дополнительные поля в форме для расширенного поля «Профили». Это может быть полезно для хранения дополнительных пользовательских полей. 1
группы пользователей Необязательно. Разделенный запятыми список имен или идентификаторов групп пользователей, в которые нужно добавить нового зарегистрированного пользователя.
группы пользователей Поле Необязательно. Имя поля, которое будет использоваться для новых групп пользователей, например: с помощью флажка или радио ввода.
имя пользователя Поле Имя поля, которое будет использоваться для нового имени пользователя. имя пользователя
проверить Список полей для проверки, разделенных запятыми, с каждым именем поля как имя: валидатор (например: имя пользователя: обязательно, электронная почта: обязательно). Валидаторы также могут быть объединены в цепочку, например email: email: required.Это свойство можно указать в нескольких строках.
Проверить пароль Следует ли подтверждать отправленный пароль при регистрации. Рекомендуется оставить это Да, если вы не генерируете свой собственный пароль в ловушке. 1

Валидаторы¶

Валидаторы

в логине используют тот же синтаксис, что и валидаторы FormIt. Вы можете использовать описанные там методы, чтобы использовать их в ваших сниппетах на основе входа в систему.

Пользовательские валидаторы¶

Вы также можете создавать собственные валидаторы, создав сниппет и используя его в качестве имени валидатора.`
& customValidators = `equalTo`
]]

Теперь в нашем фрагменте наш код будет выглядеть так:

  
  

Возвращение true сделает поле действительным. Любое другое возвращаемое значение будет сообщением об ошибке. В массиве $ scriptProperties сниппетам передаются следующие параметры:

  • ключ : имя поля.
  • значение : значение поля.
  • param : Параметр, если применимо, передан валидатору.
  • Тип : имя валидатора.
  • валидатор : ссылка на экземпляр lgnValidator.

Пост-валидация¶

После проверки формы фрагмент реестра может выполнять следующие действия:

  • Назначьте пользователя группам пользователей
  • Отправьте письмо для активации
  • Перенаправление на определенный ресурс (например, на страницу «Зарегистрировано!»)
  • или отобразите сообщение об успешном завершении.

Назначение пользователей группам пользователей¶

Назначить пользователя указанным группам пользователей очень просто. Просто укажите разделенный запятыми список либо имени группы пользователей, либо идентификатора группы пользователей в свойстве «& usergroups». В этом примере пользователь будет отнесен к группам «Маркетинг» и «Исследования»:

.

  [[! Зарегистрироваться? & usergroups = `Маркетинг, исследования`]]
  

В качестве альтернативы вы также можете указать роль, в которую вы хотите добавить пользователя в группу пользователей, добавив ее после имени группы пользователей с двоеточием, например:

  [[! Зарегистрироваться? & usergroups = `Маркетинг: участник, исследование: суперпользователь`]]
  

Отправка сообщения об активации¶

Регистрация по умолчанию требует, чтобы Пользователь активировал свою учетную запись перед входом в систему.Фрагмент создает объект modUser и устанавливает его «активное» поле в 0. Затем пользователь получает электронное письмо с URL-адресом для активации своей учетной записи. Как только пользователь посещает страницу, его учетная запись устанавливается на «active = 1», и он может затем войти в систему.

Чтобы включить это, вам нужно будет создать страницу активации, создав новый ресурс и поместив в него фрагмент ConfirmRegister.

Затем вам нужно указать фрагмент шаблона электронного письма, который будет использоваться для электронного письма, отправляемого пользователю.Один из примеров имеет имя: lgnActivateEmailTpl.

Пример вызова фрагмента регистрации с активацией будет выглядеть так:

  [[! Зарегистрироваться?
   & ActivationEmailTpl = `myActivationEmailTpl`
   & ActivationEmailSubject = `Пожалуйста, активируйте свою учетную запись!`
   & activateResourceId = `26`
   & submitResourceId = `325`
]]
  

Это отправит Пользователю электронное письмо, указанное в блоке «myActivationEmailTpl», с указанной строкой темы, которое направит Пользователя к Ресурсу 26 для активации его учетной записи.Он также после отправки электронного письма перенаправит пользователя на своего рода страницу «Пожалуйста, активируйте свою учетную запись» на Ресурсе 325.

Активацию можно отключить, установив & Activation = 0 . Однако обратите внимание, что это будет означать, что любой, включая спам-ботов, может зарегистрироваться и быть активными пользователями на вашем сайте.

Поле & ActivationEmailTpl по умолчанию может быть именем блока. Вы можете изменить тип поля, установив & ActivationEmailTplType на одно из следующих значений:

  • modChunk — По умолчанию.Имя чанка.
  • файл — укажите имя файла с абсолютным путем. Вы можете использовать {core_path}, {base_path} или {assets_path} в качестве заполнителей для этого значения.
  • inline — Укажите HTML прямо в значении свойства.

Вы также можете установить время жизни для письма активации. Это ограничит количество минут до истечения окна активации. Вы можете сделать это, установив значение в свойстве «Activationttl».По умолчанию это 3 часа.

Перенаправление на ресурс после проверки¶

Перенаправление простое: просто укажите идентификатор ресурса, на который нужно перенаправить, в свойстве «SubmitResourceId». Например:

  [[! Зарегистрироваться? & submitResourceId = `23`]]
  

выполнит перенаправление на ресурс с идентификатором 23. Он также добавит к URL-адресу параметры GET «имя пользователя» и «электронная почта».

Отображение сообщения об успехе¶

Если свойство «submitResourceId» не указано, Register просто отобразит сообщение об успешном завершении для [[+ error.сообщение]] заполнитель. Это значение свойства successMsg. Например:

  [[! Зарегистрироваться? & successMsg = `Спасибо за регистрацию!`]]
  

Будет отображено «Спасибо за регистрацию!» в свойстве [[+ error.message]] в Ресурсе, в котором находится ваш вызов фрагмента [[Register]] после того, как Пользователь отправит действительную регистрационную форму.

Типовая установка¶

Очень легко запутаться в различных страницах (ресурсах), используемых для регистрации.В стандартной настройке есть четыре отдельные страницы:

Регистрация — Страница, содержащая регистрационную форму, переходит на страницу «Спасибо за регистрацию». Эта страница содержит форму и тег фрагмента регистрации.

Спасибо за регистрацию — Страница, на которую пользователь перенаправляется из регистрационной формы — Эта страница должна содержать только текст (без тегов фрагментов), говорящий «Спасибо за регистрацию — вы получите электронное письмо» и т. Д.

Подтвердить регистрацию — Страница, на которую указывает ссылка в электронном письме о регистрации.(Пользователь никогда не видит эту страницу.) Он активирует пользователя и перенаправляет на страницу подтверждения регистрации. Эта страница должна содержать только тег фрагмента ConfirmRegister.

Регистрация подтверждена — Страница, на которую пользователь перенаправляется со страницы подтверждения регистрации. Эта страница должна содержать только текст (без тегов фрагментов) вроде «Поздравляем, теперь вы активный пользователь»

См. Также

  1. Авторизация.
  2. Логин.Профиль
  3. Авторизоваться.Обновить профиль
  4. Войти.Зарегистрироваться

    1. Регистрация Пример формы 1
  5. Login.ConfirmRegister
  6. Login.ForgotPassword
  7. Login.ResetPassword
  8. Login.ChangePassword
  9. Войти.

    1. Вход в систему.
    2. Вход в систему. Расширенные профили пользователей
    3. Войти.Запросить членство
    4. Вход в систему. Профили пользователей
    5. Вход в систему с использованием настраиваемых полей
    6. Вход в систему. Использование Pre и Post Hooks

Регистр.Пример формы 1 — регистр

Этот пример формы регистрирует пользователя и выполняет следующие действия:

  • Работает, только если отправлено значение POST ‘registerbtn’ (через кнопку отправки регистра)
  • Отнесите их к группам пользователей «Маркетинг» и «Исследования»
  • Отправьте письмо активации с содержанием в myActivationEmailTpl (показано внизу этой страницы) и строкой темы «Спасибо за регистрацию!»
  • Перенаправить пользователя на ресурс с ID 45 после отправки электронного письма
  • Приставьте ко всем заполнителям регистров префикс «reg.,
    полное имя: обязательно,
    email: обязательно: email`
    & placeholderPrefix = `reg.`
    ]]

    [[! + reg.error.message]]






    Блок myActivationEmailTpl¶

      

    [[+ имя пользователя]],

    Благодарим за регистрацию! Чтобы активировать новую учетную запись, нажмите следующую ссылку:

    [[+ confirmUrl]]]

    После активации вы можете войти в систему со своим паролем и именем пользователя:

    Имя пользователя: [[+ имя пользователя]]
    Пароль: [[+password visible ]

    Если вы не запрашивали это сообщение, не обращайте на него внимания.

    Спасибо,
    Администратор сайта

    См. Также

    1. Авторизация.
    2. Логин.Профиль
    3. Login.UpdateProfile
    4. Войти.Зарегистрироваться

      1. Регистрация Пример формы 1
    5. Login.ConfirmRegister
    6. Login.ForgotPassword
    7. Login.ResetPassword
    8. Login.ChangePassword
    9. Войти.

      1. Авторизоваться.Базовая настройка
      2. Вход в систему. Расширенные профили пользователей
      3. Войти.Запросить членство
      4. Вход в систему. Профили пользователей
      5. Вход в систему с использованием настраиваемых полей
      6. Вход в систему. Использование Pre и Post Hooks

    Офис / Пользователи / Дополнения MODX / modstore.pro

    Версия
    1.9.4-пл

    Дата выпуска
    10.08.2020

    Предупреждение! Для этого компонента требуется версия PHP
    5,6
    или выше!
    Если ваш сайт использует PHP меньше, чем требуется, установка этого
    пакет может его сломать.

    Предупреждение! Этот пакет требует MODX не ниже
    2,5
    !

    Модульное дополнение для работы с пользователями.

    Основной функционал:
    — Ajax регистрация и авторизация пользователей
    — Редактирование профиля Ajax
    — Авторизация в дополнительных аккаунтах для быстрого переключения между ними
    — Авторизация от имени любого активного пользователя напрямую из админки
    — Вывод покупок пользователя miniShop2 на ExtJS

    Авторизация и редактирование профиля в modstore.pro работает с Office .

    Быстрый старт

    пользовательских модулей PHP для веб-сайта аукциона (MODx Framework) | AJAX | CMS | JavaScript |

    филиппинских песо

    Этот веб-сайт будет предлагать на аукционе номера / поездки / авиабилеты и т. Д. Из переполненного инвентаря отелей, туристических агентств и т. Д. (Называемых ниже рекламодателями).Посетители сайта могут зарегистрироваться в качестве клиентов и делать ставки на предлагаемые продукты. Будет большой оборот продуктов и посетителей.

    Создадим сайт в MODx (дизайн, шаблоны, структура). Мы ищем PHP-программистов, которые могут предоставить нам различные настраиваемые модули и / или фрагменты кода, которые относятся к аукционам, регистрации клиентов и поставщиков, выставлению счетов, управлению серверной частью.

    Наш поставщик должен предоставить следующие функции (см. Прилагаемую pdf-схему):

    Два типа зарегистрированных пользователей: клиенты (используют стандартный модуль веб-пользователя MODx) и рекламодатели (программный модуль управления пользовательским MODx (PHP)).Клиенты будут веб-пользователями. Рекламодатели будут входить в административную панель MODx и управлять своими продуктами и информацией об аккаунтах через специальный модуль MODx.

    — регистрация клиентов

    — ставка клиента

    — победившая ставка клиента — & gt; Платежный шлюз

    — платеж клиента отклонен, возврат к выигравшей ставке

    — успешный платеж клиента на ваучер

    — покупатель получает ваучер

    — ваучер обналичивания клиента

    — Регистрация рекламодателя

    — Рекламодатель добавляет продукт (отпуск / отель / авиабилеты / развлекательные услуги и т. Д.)

    — Рекламодатель принимает условия / контракт / плату за аукцион

    — Ежемесячное выставление счетов рекламодателям

    Приложение должно:

    — Будьте оптимизированы для SEO (семантические css / xhtml / дружественные URL-адреса)

    — Иметь серверную часть, позволяющую обслуживать контент-менеджером

    — Быстрый рендеринг страниц

    — Гибкость в управлении продуктами (планирование времени, количества, цены, спецификации, видимость на сайте)

    — Подготовлен для многоязычного использования

    Примеры похожих сайтов:

    [войдите, чтобы просмотреть URL]

    [войдите, чтобы просмотреть URL]

    [войдите, чтобы просмотреть URL] (другой вид ставок, но в остальном хороший пример).

    Уважаемые провайдеры,

    Пожалуйста, не копируйте / вставляйте обычное сообщение с длинным списком веб-сайтов. Такие общие заявки, которые не демонстрируют истинного понимания требований нашего конкретного проекта, рассматриваться не будут.

    Мы просим не создавать полный сайт, а помочь нашей собственной команде в создании приложения для аукциона. Графический дизайн, склейка, настройка структуры сайта и шаблонов в MODx будет выполняться нашими людьми.

    Мы предпочитаем работать один на один с независимым внештатным экспертом по PHP / MySQL, имеющим большой опыт работы с сайтами электронной коммерции / аукционов.

    Навыки: AJAX, CMS, JavaScript, PHP

    Подробнее:
    аукцион modx, аукцион php modx, аукцион modx, сайт аукциона modx, структура веб-сайта аукциона, www hotels com, www аукцион com, веб-шаблоны pdf, шаблоны путешествия веб-сайта, шаблоны веб-сайтов с панелью администратора, шаблоны структуры веб-сайта, контракт на обслуживание веб-сайта, контракт на обслуживание веб-сайта, веб-сайт в обслуживании, примеры веб-сайтов, хороший дизайн, оплата веб-программистов, веб-шаблоны php, шаблоны веб-панелей, шаблоны веб-дизайна для отелей, веб-дизайн отелей

    (
    16 отзывов

    )

    Нордвейк, Нидерланды

    Идентификатор проекта: # 500413

    xFrontUser Extra | Документация

    Обзор

    xFrontUser — это набор инструментов для MODX для развертывания внешнего пользовательского интерфейса: регистрация, вход в систему, уведомления, удаление учетной записи, ссылки для восстановления учетных данных, экспорт данных пользователя и интерфейс учетной записи пользователя.

    xFrontUser поставляется с образцом готовых к использованию ресурсов (кнопки, панели навигации, пользовательская панель).

    Этот набор инструментов будет особенно полезен для веб-агентств, поскольку они значительно сэкономят время на внедрение пользовательских учетных записей внешнего интерфейса.

    Для просмотра этого видео включите JavaScript и рассмотрите возможность обновления до веб-браузера, который
    поддерживает видео HTML5

    Установка

    Загрузите и установите дополнительную информацию с помощью установщика MODX.Помимо чанков и сниппетов будут установлены следующие ресурсы:

    • xFtrontUser Пример
    • Область пользователя xFtrontUser
    • Мой профиль
    • Мой пароль
    • Мои настройки
    • Мои данные
    • Другое
    • Активация xFrontUser
    • xFrontUser ResetPassword

    Конфигурация

    Некоторые идентификаторы необходимо изменить, чтобы они соответствовали идентификаторам установленных ресурсов.Вы найдете эти идентификаторы в настройках контекста web в пространстве имен xfrontuser :
    xfu_login
    xfu_logout
    xfu_pwreset
    xfu_regconfirm
    В контексте settings / core: cultureKey (например, fr | en | jp).

    Основные фрагменты

    xAjaxLoginPro

    Кнопка входа / входа и модальное окно входа в систему ajax.

    xAjaxLoginPro — это расширенная версия xAjaxLogin MODX extra (демо).

    xAjaxLoginPro Doc

    xРегистрация

    Модальное окно регистрации / регистрации Ajax для быстрого создания учетной записи пользователя.

    Фрагмент регистрации пользователя для создания кнопки регистрации / регистрации и формы регистрации AJAX. Этот фрагмент предназначен для оптимизации процесса быстрой регистрации. При первом подключении пользователям предлагается заполнить свои профили в соответствии с выбранными параметрами проверки поля.

    xRegister Doc

    xВосстановление

    Сгенерировать кнопку «забыл пароль» и форму для восстановления пользователя и пароля.

    xRecover Doc

    xUserArea

    Этот фрагмент кода генерирует интерфейсные страницы администрирования пользователей и код, позволяющий пользователям изменять свой профиль и настройки.

    xUserArea Docs

    Часто задаваемые вопросы

    В чем разница с дополнительным логином?

    xUserAccount — это дополнительный уровень для входа в систему с набором инструментов, позволяющих сэкономить время интеграции и улучшить взаимодействие с пользователем.

    Могу ли я использовать xUserAccount в нескольких проектах?

    См. Лицензию, прилагаемую к этому дополнению.

    WebLoginPE: Параметры — [MODX] Guru

    и язык

    WebLoginPE разделяет все языковые строки в отдельный файл, хранящийся в / webloginpe / lang / (по умолчанию english «en.php «). Вы можете помочь, переведя en.php на другой язык, если вы многоязычны.

     [! WebLoginPE? & lang = `ru`!] 

    и тип

    WebLoginPE имеет множество функций (и каждая из этих функций имеет множество функций). Есть шесть основных типов. Это «простой», «регистрация», «профиль», «пользователи», «менеджер» и «таконит».

    «Простой» WebLoginPE может обрабатывать большинство задач, связанных с управлением пользователями (вход в систему, выход из системы, регистрация, редактирование профиля и т. Д.)…).

    Тип «регистр» выполняет все функции по созданию новых пользователей. Тип «профиль» позволяет пользователю управлять деталями своей учетной записи (их атрибутами).

    Тип «пользователи» отображает список всех зарегистрированных пользователей (настраиваемый и шаблонный) и предоставляет ссылки для просмотра атрибутов пользователя по отдельности, а также для отправки сообщения пользователю.

    Тип «менеджер» очень похож на «пользователи», отображает список веб-пользователей, но добавляет возможность редактировать или удалять любых пользователей. Это должно быть доступно только администраторам

    Тип taconite обеспечивает функциональность WebLoginPE, но подавляет вывод, чтобы вы могли обрабатывать эти функции асинхронно (AJAX).Тип по умолчанию — простой

    .

     [! WebLoginPE? & type = `users`!] 

    и regType

    WebLoginPE имеет два типа регистрации: «мгновенная» и «проверка». Основное отличие состоит в том, что «мгновенная» регистрация позволяет пользователю выбрать свой пароль и войти в систему … ну, мгновенно, используя только что выбранные имя пользователя и пароль. В regType ‘verify’ заявитель предоставляет адрес электронной почты и выбирает имя пользователя, и WebLoginPE генерирует для них пароль, а затем отправляет его им по электронной почте (используя шаблон электронной почты для веб-регистрации в конфигурации менеджера), по сути заставляя их « проверить » что они используют НАСТОЯЩИЙ адрес электронной почты.

     [! WebLoginPE? & type = `register` & regType =` verify`!] 

    & regRequired

    WebLoginPE позволяет вам указать, какие данные в вашей форме необходимы для регистрации. Параметр regRequired — это разделенный запятыми список атрибутов поля формы «имя», которые пользователь ДОЛЖЕН заполнить. Если форма отправлена ​​и одно из обязательных полей пусто, WebLoginPE отобразит сообщение, уведомляющее пользователя о том, какие обязательные поля они оставили пустыми. Если вы хотите проверить / подтвердить поля формы (например,г. поле пароля или поле электронной почты), присвойте полю атрибут name из имени поля, которое вы хотите подтвердить, плюс «.confirm». Для подтверждения пароля:

    
    
     
     [! WebLoginPE? & type = `register` & regRequired =` email, username, fullname, password, formcode, tos`!] 

    & customTable, & customFields

    Для полного контроля WebLoginPE создает таблицу в вашей базе данных MODx, чтобы хранить столько пользовательских атрибутов, сколько вы хотите.Имя по умолчанию для этой таблицы — «web_user_attributes_extended», но вы можете переопределить это с помощью параметра customTable. Вы можете указать неограниченное количество имен столбцов для этой таблицы с помощью параметра customFields.

     [! WebLoginPE? & customTable = `my_web_users` & customFields =` website, aim, msn, city, address1`!] 

    и таблица префиксов

    WebLoginPE создаст таблицу для хранения расширенных пользовательских атрибутов, но если вы уже создали свою собственную таблицу (и указали ее в & customTable) и она не использует префикс таблицы, который вы ввели при установке MODx, вы можете использовать & prefixTable = `0 `(по умолчанию 1), и WebLoginPE не будет автоматически добавлять префикс таблицы MODx к таблице при его поиске.

     [! WebLoginPE? & customTable = `a_table_i_created` & prefixTable =` 0`!] 

    & disableServices

    Этот параметр принимает список служб, разделенных запятыми, для отключения. Вы можете отключить отдельные службы, такие как «deleteprofile» и «viewprofile», а также целые типы, такие как «register» и «users».

     [! WebLoginPE? & disableServices = `deleteprofile, users`!] 

    Если вы хотите отключить внешнюю регистрацию (только администратор может добавлять пользователей)

     [! WebLoginPE? & disableServices = `register`!] 

    и tableCheck

    Когда вы запускаете WebLoginPE, он проверяет наличие таблицы дополнительных атрибутов пользователя и создает ее, если она не существует.В 1.3.0 он также создает несколько новых событий службы веб-доступа для подключаемых модулей, если они еще не существуют. Установив для & tableCheck значение 0 (по умолчанию 1), вы можете пропустить эти проверки из-за небольшого увеличения скорости. Если вы еще не разрешили WebLoginPE создавать вашу таблицу и системные события, они не будут созданы.

     [! WebLoginPE? & tableCheck = `0`!] 

    и группы

    Вы можете указать, в какую группу пользователей документа будут добавлены ваши новые кандидаты после успешной регистрации. Параметр & groups представляет собой разделенный запятыми список «Группы веб-пользователей» (см. «Безопасность> Веб-разрешения» в диспетчере).

     [! WebLoginPE? & type = `register` & groups =` Registered Users`!] 

    или, чтобы добавить их более чем в одну группу …

     [! WebLoginPE? & type = `register` & groups =` Кадеты, новые кандидаты, ограниченное количество`!] 

    и уведомить

    Список адресов электронной почты, разделенных запятыми, для уведомления о регистрации нового пользователя.

     [! WebLoginPE? & type = `register` ¬ify=`[email protected], admin @ mysite.url`!] 

    & liHomeId (домашний идентификатор входа)

    Список идентификаторов документов, разделенных запятыми, на которые следует перенаправить пользователя после успешного входа в систему.WebLoginPE просмотрит список и попытается загрузить каждую страницу для пользователя. Если у пользователя нет разрешения для этой страницы, WebLoginPE попробует следующую и так далее. Пользователь перенаправляется к первому документу в списке, к которому у него есть разрешение на доступ.

     [! WebLoginPE? & liHomeId = `51,44,37,15`!] 

    & loHomeId (идентификатор дома для выхода)

    Идентификатор документа страницы, на которую должен быть перенаправлен пользователь после выхода из системы.

     [! WebLoginPE? & loHomeId = `4`!] 

    & regHomeId

    Идентификатор документа страницы, содержащей вызов фрагмента WebLoginPE для регистрации типа.Это полезно, если у вас есть WebLoginPE на боковой панели, но вы хотите использовать полную страницу форм ввода и т. Д., Которые не поместятся на узкой боковой панели.

     [! WebLoginPE? & regHomeId = `66`!] 

    и профильHomeId

    Идентификатор документа страницы, содержащей вызов фрагмента WebLoginPE для профиля типа. Это полезно, если у вас есть WebLoginPE на боковой панели, но вы хотите использовать полную страницу форм ввода и т. Д., Которые не поместятся на узкой боковой панели.

     [! WebLoginPE? & profileHomeID = `67`!] 

    & regSuccessId, & regSuccessPause

    Идентификатор документа страницы, на которую должен быть перенаправлен пользователь после успешной регистрации новой учетной записи.Если не установлено, это игнорируется, и пользователь остается при подтверждении регистрации. Вы можете указать время (в секундах) для задержки перед перенаправлением с помощью и regSuccessPause . Пауза по умолчанию составляет 5 секунд.

     [! WebLoginPE? & type = `register` & regSuccessId =` 71` & regSuccessPause = `3`!] 

    и userImage

    WebLoginPE может загружать и изменять размер изображения для идентификации пользователя, что-то вроде аватара. Вы можете указать максимально допустимый размер файла этого изображения (в байтах), а также его ширину и высоту (в пикселях).Значение по умолчанию — '105000,100,100' (100 КБ, 100 пикселей X 100 пикселей) .

     [! WebLoginPE? & type = `profile` & userImage =` 500000,250,250`!] 

    & dateFormat

    Вы можете указать строковый формат для даты в заполнителях, установленных WebLoginPE. см. подробности о формате. По умолчанию '% A% B% d,% Y at% I:% M% p' .

     [! WebLoginPE? & dateFormat = `% m-% d-% Y`!] 

    и loadJquery

    WebLoginPE был разработан для работы с jQuery и jQuery taconite plugin, но, если вы предпочитаете использовать другую библиотеку JavaScript… ну это тоже нормально. WebLoginPE работает так, как вы хотите. Если вы хотите, чтобы файлы jQuery загружались в заголовок вашего шаблона автоматически, установите для этого параметра значение «true». По умолчанию

    false.

     [! WebLoginPE? & loadJquery = `true`!] 

    и customJs

    URL-адрес пользовательского файла JavaScript, который вы используете с пакетом jQuery. См. «Example.js», чтобы понять, как это работает.

     [! WebLoginPE? & customJs = `assets / snippets / webloginpe / js / example.js`!] 

    & pruneDays

    Количество дней, по истечении которых неактивированные учетные записи пользователей будут удалены. Когда новый пользователь регистрируется, отметка времени для текущей даты / времени помещается в столбец cachepwd таблицы web_users. При входе в систему отметка времени удаляется. Если пользователь передает ложный адрес электронной почты или регистрируется и никогда не входит в систему, учетная запись устарела, бесполезна и занимает место в вашей базе данных.

    Например: & pruneDays = `30` проверит базу данных для всех учетных записей, у которых есть отметка времени в столбце cachepwd, затем проверит эти учетные записи, чтобы увидеть, не старше ли отметка времени в cachepwd, чем количество дней, которое мы установили в параметр & pruneDays (в данном случае 30 дней).Если он старше, учетная запись удаляется и уведомление отправляется на адрес [(emailsender)] .

    Если этот параметр не установлен в вызове фрагмента, никакие действия по отсечению пользователя выполняться не будут.

     [! WebLoginPE? & pruneDays = `7`!] 

    и inputHandler

    Параметр для сверхточного управления вводом формы. Более подробную информацию и примеры можно найти в.

    Синтаксис: & inputHandler = `LABEL: DOM_ID: FIELDNAME: FIELD_TYPE: Option (значение), Option2 (value2)` .Используйте двойные полосы для разделения входов (для входов, которых нет в стандартной таблице web_user_attributes, не забудьте указать их в & customFields.

    & inputHandler просматривает каждый параметр в поле формы (выбрать, выбрать несколько, радио или флажок) и сравнивает его с записями, хранящимися в таблице пользователя. Если у пользователя выбраны какие-либо опции, радио или флажки, в полях будет выведено selected = «selected» или checked = «checked». & inputHander также устанавливает заполнитель [+ form.fieldname +] (пример [+ form.favorite_color +] ), который включает в себя всю метку, поле, параметры и все остальное.

    Итак, в вашей форме, куда вы поместите метку-> input-> и т. Д., Вы просто поместите заполнитель формы. Вы должны использовать этот заполнитель, если хотите, чтобы флажки были отмечены, а выбранные были выбраны.

    [! WebLoginPE?
    & customFields = `website, aim, msn, address1, city, favour_color, demographic, emailprivate, aimprivate, msnprivate`
    & inputHandler = `Любимые цвета: userProfileFavoriteColor: favourite_color: выберите несколько: красный (красный), синий (синий), зеленый (зеленый), черный (черный), оранжевый (оранжевый), желтый (желтый) || Возрастная группа: userDemographic: демографические : радио: Менее 13 (1), 14–18 (2), 19–30 (3), 31–40 (4), 41–50 (5), 51–65 (6), 65 лет и старше (7) ) || Сохранять конфиденциальность моей электронной почты: userProfileEmailPrivate: emailprivate: checkbox :() || Сохранять конфиденциальность моей учетной записи AIM: userProfileAIMPrivate: aimprivate: checkbox :() || Сохранять конфиденциальность моей учетной записи MSN: userProfileMSNPrivate: msnprivate: checkbox :() `! ]
     

    Возможно, вы заметили поля xxxprivate выше.Это тоже новая функция. Возьмем, к примеру, столбец электронной почты в таблице атрибутов. если вы поместите `emailprivate` в свои & customFields, а затем установите для него флажок в & inputHandler, когда пользователь установит этот флажок в своем профиле, каждый раз, когда другой пользователь просматривает свой профиль, он будет говорить« Private »вместо фактического адреса электронной почты. Вы можете сделать это для ЛЮБОГО поля.

    и список пользователей

    Для использования как с пользователем, так и с менеджером.

    Параметр для управления списком (ами) пользователей на странице WebLoginPE `users` (ранее -« Просмотреть всех пользователей »).Это позволяет отображать несколько списков ваших веб-пользователей (все на одной странице), отфильтрованных по определенным значениям, отсортированных в порядке определенного поля в возрастающем или убывающем формате. Это действительно довольно гибко. Формат следующий.

     & usersList = `Имя списка: outerTplChunk: userTplChunk: sortField: sortOrder: filter (значение), filter2 ()` 

    Хорошо, давайте разберемся с этим. Этот параметр фрагмента состоит из семи отдельных областей. Я объясню их по одному.

    • Имя списка: Имя списка.Должен быть описательным, например «Администраторы» или «Пользователи-женщины»
    • outerTplChunk: имя блока внешнего шаблона. По сути, это «оболочка списка». Смотрите как обычный текст.
    • userTplChunk: имя блока шаблона для отображения каждого пользователя. Это будет повторяться для каждого пользователя в этом списке. Смотрите как обычный текст.
    • sortField: Любой из атрибутов пользователя (включая customFields), по которому вы хотите отсортировать список, например, имя пользователя, полное имя, internalKey и т. Д.
    • sortOrder: порядок отображения отсортированного списка (ASC для возрастания | DESC для убывания).
    • фильтр (значение): раздел фильтра выглядит сложным, но позвольте мне упростить. Фильтр может быть любым полем в атрибутах пользователя или customTable (или словом «веб-группа» или словом «онлайн»). Что касается полей базы данных, он будет проходить через ваших пользователей и исключать всех, у кого нет данных в этом поле.

    Но фильтр (значение) идет глубже. Он также может искать определенное значение. Если вы использовали электронную почту (hotmail), она вернет список всех, у кого есть строка «hotmail» в столбце «email».если бы вы использовали только email (), он вернет всех, у кого в столбце `email` есть ЛЮБОЕ значение (должно быть, все, верно?). Вместо предоставления столбца для фильтрации вы можете использовать слово «веб-группа» и передать имя веб-группы в качестве его значения. Например, веб-группа (Зарегистрированные пользователи) вернет только людей из группы «Зарегистрированные пользователи». Вы можете составить список администраторов с помощью веб-группы (администраторы сайта). Вы также можете передать «online ()» в качестве значения фильтра, и он вернет список пользователей, которые в настоящее время находятся в сети (в течение последних 15 минут).Вы можете связать их вместе, чтобы действительно их отфильтровать! Давайте создадим список под названием «Сетевые администраторы с учетными записями Gmail» с использованием шаблонов по умолчанию, отсортированных по internalKey в возрастающем порядке и отфильтрованных, конечно, должен быть в сети, должен быть администратором и должен иметь gmail в своем адресе электронной почты

    [! WebLoginPE?
    & type = `пользователи`
    & usersList = `Онлайн-администраторы с учетными записями Gmail: по умолчанию: default: internalKey: ASC: online (), веб-группа (администраторы сайта), электронная почта (gmail)`!]
     

    Для нескольких списков на странице вы разделяете списки в & usersList двойными вертикальными чертами (||).В первом списке ниже я оставил всю область фильтра пустой, потому что мне нужны ВСЕ ПОЛЬЗОВАТЕЛИ, но обратите внимание, что я оставил двоеточие (:) после порядка сортировки. Это важно.

     [! WebLoginPE? & type = `users` & usersList =` Все пользователи: по умолчанию: по умолчанию: имя пользователя: ASC: || usersList = `Женские пользователи: по умолчанию: по умолчанию: имя пользователя: ASC: пол (2)`!] 

    Если вы не хотите указывать весь этот список, а просто хотите использовать

     [! WebLoginPE? & type = `users`] 

    для получения списка веб-пользователей, WebLoginPE имеет формат списка по умолчанию.Это отменяется, когда вы указываете & usersList.

     [(site_name)] Участники: по умолчанию: по умолчанию: имя пользователя: ASC: 

    ModX Revolution Документы 20101007 | PDF | Ajax (Программирование)

    Вы читаете бесплатный превью

    Страницы с 11 по 24 не показаны при предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 30 по 43 не показаны при предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 49 по 62 не показаны при предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 68 по 79 не показаны в этом предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 93 по 107 не показаны в этом предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 114 по 115 не показаны в этом предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 124 по 126 не показаны в этом предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 130 по 131 не показаны в этом предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 135 по 138 не показаны в этом предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 142 по 157 не показаны в этом предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 161 по 162 не показаны в этом предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 172 по 174 не показаны при предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 179 по 204 не показаны при предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 209 по 212 не показаны в этом предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 217 по 226 не показаны в этом предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 236 по 248 не показаны при предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 257 по 264 не показаны в этом предварительном просмотре.

    Вы читаете бесплатный превью

    Страницы с 269 по 293 не показаны в этом предварительном просмотре.

    .

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *