990
10.31
14.14
за сайт
- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
На php 8 не тестировалось
Organizations — Личный кабинет организаций для CMS MODx. К одной организации может быть привязано несколько пользователей MODX с разными правами на редактирование данных (документов) организации.
Личный кабинет организовывается с помощью Login.
В ЛК создается 3 страницы:
1 регистрация
Адрес polzovateli.html (В случае другого алиаса страницы отредактировать чанк editOrgOuter в строке )
на страницу поместить вызов сниппета:
Пользователям Организации можно назначить группу прав. Группы прав редактируются в админке в настройках.
На страницах ЛК где нужно организовать проверку прав пользователя организации можно использовать сниппет checkAccess.
Например:
В сниппета можно получить id организации пользователя с помощью следующего кода:
Реализовано:
https://github.com/touol/Organizations.
Админка компонента:
Настройки:
Для работы с DaData.ru нужно ввести их ключ API в настройках системы. И там же, нужно указать ID групп менеджеров и ID групп пользователей.
Обсуждение компонента в сообществе MODX.PRO.
Поле скидка для организаций в пакете это просто поле. Для того чтобы скидки работали в минишопе нужно писать плагин.
Organizations — Личный кабинет организаций для CMS MODx. К одной организации может быть привязано несколько пользователей MODX с разными правами на редактирование данных (документов) организации.
Личный кабинет организовывается с помощью Login.
В ЛК создается 3 страницы:
1 регистрация
[[$pageRegistration]]
2 профиль<div class="loginMessage">[[+errors]]</div>
<br />
<div class="loginLogin">
<div class="loginRegister">
<a href="[[+logoutUrl]]" title="[[+actionMsg]]">[[+actionMsg]]</a>
</div>
</div>
<div class='profile block'>
<div class='right'>
<div class="update-profile">
[[!UpdateProfile? &submitVar=`login-updprof-btn` &excludeExtended=`nospam,login-updprof-btn`]]
<form class="form" action="[[~[[*id]]]]" method="post">
<input type="hidden" name="nospam" value="[[!+reg.nospam]]" />
<div class="updprof-error">[[+error.message]]</div>
<span>[[+login.update_success:if=`[[+login.update_success]]`:is=`1`:then=`[[%login.profile_updated? &namespace=`login` &topic=`updateprofile`]]`]]</span>
</div>
<span>Контактная информация</span>
<div class='person'>
<div class='info_point'>
<div class='info_text'><text class='name'>Ф.И.О.*:</text></div>
<input type="text" name="fullname" id="fullname" value="[[!+fullname]]" class="textfield" />
<div class="error">[[!+error.fullname]]</div>
</div>
<div class='info_point'>
<div class='info_text'><text class='name'>Адрес эл. почты*:</text></div>
<input type="text" name="email" id="email" value="[[!+email]]" class="textfield" />
<div class="error">[[!+error.email]]</div>
</div>
<div class='info_point'>
<div class='info_text'><text class='name'>Телефон:</text></div>
<input type="text" name="phone" id="phone" value="[[!+phone]]" class="textfield" />
<div class="error">[[!+error.phone]]</div>
</div>
</div>
<input type="button" class='update_pass' value="Обновить пароль" onclick="$(location).attr('href','smenit-parol.html');">
<input type="submit" class='edit' name="login-updprof-btn" value="Редактировать профиль">
</form>
<form class="form" action="[[~[[*id]]]]" method="post">
<div class='bis'>
<span>Данные организации:</span>
[[!getDefaultUserOrg?]]
</div>
</form>
</div>
</div>
3 пользователи Адрес polzovateli.html (В случае другого алиаса страницы отредактировать чанк editOrgOuter в строке )
на страницу поместить вызов сниппета:
[[!editOrgsUsers?]]
Пользователям Организации можно назначить группу прав. Группы прав редактируются в админке в настройках.
На страницах ЛК где нужно организовать проверку прав пользователя организации можно использовать сниппет checkAccess.
Например:
[[!checkAccess?
&access=`raschet_new`
&trueTpl=`page_new_raschet`
&falseMsg=`У Вас нет прав на создание расчета! Возможно Ваша учетная запись отключена в Вашей организации.`
]]
Здесь сниппет находит организацию пользователя и проверяет право на создание нового расчета.В сниппета можно получить id организации пользователя с помощью следующего кода:
if (!$Orgs = $modx->getService('organizations', 'Organizations',$modx->getOption('organizations_core_path', null, $modx->getOption('core_path') . 'components/organizations/') . 'model/organizations/', $scriptProperties)) {
return 'Could not load Organizations class!';
}
$userId = $modx->user->get('id');
//получить огр пользователя по умолчанию
$defaultOrg = $Orgs->getDefaultOrg($userId);
Реализовано:
- В форме регистрации пользователя на сайте и в админке, данные Организации загружаются с сервера DaData.
- После отправки формы регистрации, в каталог записываются данные Организации и создается связь между зарегистрированным пользователем MODx и Организацией.
- Данные Организации и ее связи с профилями пользователей редактируются в админке сайта (таблица OrgsUsersLink связывает таблицу Orgs с modUser, таблицей стандартного класса пользователей MODx).
- Пользователям Организации можно назначить группу прав. Группы прав редактируются в админке.
- Группа Администраторов Организации может редактировать права пользователей во фронтэнде и создавать инвайты (приглашения) для сотрудников организации на сайт. При регистрации пользователя с кодом инвайта, содается связь профиля пользователя с организацией и назначается группа прав, заданная при создании инвайта.
- Организации можно назначить менеджера и скидку. Менеджеры сайта могут самостоятельно зарегистрировать Организацию на сайте и отправить инвайт для контактного лица Организации. (Так удобнее. Можно сразу назначить скидку и нужные данные Организации. Пользователям остается только придумать свой логин, пароль и начинать работать. Ни менеджерам сайта, ни администраторам организации не нужно придумывать логины и пароли пользователей. И не нужно заботиться об их отправке пользователю и об их сохранности).
- При создании инвайта, его можно автоматически отправить на почту пользователя.
- В админке для организации можно создать купон, временную или разовую скидку, процентную или фиксированную.
https://github.com/touol/Organizations.
Админка компонента:
Настройки:
Для работы с DaData.ru нужно ввести их ключ API в настройках системы. И там же, нужно указать ID групп менеджеров и ID групп пользователей.
Обсуждение компонента в сообществе MODX.PRO.
Поле скидка для организаций в пакете это просто поле. Для того чтобы скидки работали в минишопе нужно писать плагин.
2.4.3-beta Добавлено поле Юрлицо.
2.4.2-beta Исправлено пустые поля в форме редактирования организации в PHP 7.
2.4.1-beta Добавлена выгрузка организаций. Исправлено phptype=text. Адаптация под bootstrap 4. Исправлено «modAction support is deprecated»
2.3.2-beta Добавлен поиск по id организации.
2.3.1-beta Добавлен ввод данных организации через Dadata в регистрации.
2.3.0-beta Добавлена возможность регистрации как физического лица. Исправлены предупреждения в журнале ошибок.
2.2.4-beta Исправлена ошибка редактирования связи пользователя и организации менеджером. Добавлены сниппеты: orgsTVSelect Сниппет для вывода списка организаций в TV список. getOrgDataByID Простой сниппет для вывода данных организации.
Последние обсуждения в сообществе MODX.pro