Пользователи сайта

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

Административная часть модуля относится к части CMS «Управление» и является обязательной для установки.

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

Подключение

Подключение используется для доступа к свойствам текущего пользователя и работой с текущим пользователем.

Подключаемая часть – файл modules/users/users.inc.php. В нем описан класс Users_inc. В модуле к объекту класса можно обратиться через переменную $this->diafan->_users. Экземпляр класса создается при первом вызове переменной.

Свойства

var id – номер текущего пользователя.

Пример:

// modules/usersettings/usersettings.php
// подобная конструкция используется очень часто, когда нужно определить,
// авторизован ли пользователь на сайте или нет. В данном примере «гость»
// будет перенаправлен на страницу ошибки 403.
*/
if(!
$this->diafan->_users->id)
{
    
Custom::inc('includes/403.php');
}

var role_id – роль текущего пользователя.

var checked – пользователь проверен по идентификационному хэшу.

Пример:

// в файле adm/includes/action.php
// при отправке форм производится проверка на уникальность каждого запроса посредством хэш-кода пользователя
if (! $this->diafan->_users->checked)
{
    echo
'Пользователь не прошел проверку.';
}

var admin – пользователь является администратором с доступом ко всем модулям.

Пример:

// Воспользуемся проверкой свойства admin для вывода приветствия администратору
if($this->diafan->_users->admin)
{
    echo
'Здравствуйте, администратор!';
}

var errauth – ошибка авторизации.

Пример:

// при ошибке авторизации содержит в себе константу данной ошибки
switch ($this->diafan->_users->errauth)
{
    case
'wrong_login_or_pass':
        echo
'Неверный логин или пароль.';
        break;

    case
'blocked_30_min':
        echo
'Вы превысили количество попыток, поэтому будете заблокированы на 30 минут';
        break;

    case
'blocked':
        echo
'Логин не активирован или заблокирован.';
        break;
}

var fields = array('name', 'fio', 'mail', 'phone', 'created', 'role_id', 'lang_id', 'htmleditor', 'admin_nastr', 'start_admin', 'useradmin', 'copy_files', 'config') – характеристики пользователя.

Поля, включенные в этот массив, можно вызывать через перменную $this->diafan->_users. Служебная функция __get() вернёт значение поля из базы данных для текущего пользователя.

Пример:

echo 'Здравствуйте, '.$this->diafan->_users->fio.'!
Ваш логин: '
.$this->diafan->_users->name.'
Ваш e-mail: '
.$this->diafan->_users->mail.'
Ваш телефон: '
.$this->diafan->_users->phone.'
Вы зарегистрировались на сайте: '
.date("d.m.Y H:i", $this->diafan->_users->created);

Методы

void set (object $user) – Определяет текущего пользователя.

  • object $user: данные о текущем пользователе

Пример:

// авторизуем текущего посетителя сайта как пользователся с ID=5
$user = DB::query_fetch_object("SELECT * FROM {users} WHERE id=5");
$this->diafan->_users->set($user);

void delete_session_hash (integer $id) – Удаляет уникальный хэш сессии.

  • integer $id: номер хэша

string get_hash () – Генерируем идентификационный пользовательский хэш.

Пример:

// includes/action.php
// используется для проверки уникальности запроса для данного пользователя
$this->result["hash"] = $this->diafan->_users->get_hash();

boolean true logout () – Очищает информацию о текущем пользователе.

Пример:

// includes/init.php
// инициирует выход пользователя из системы
if (strpos($_GET["rewrite"], "logout") !== false)
{
    
$this->_users->logout();
}

array auth (array $form_values) – Проверяет авторизован ли пользователь.

  • array $form_values: массив с данными для авторизации - логин и пароль

Пример:

// includes/init.php
// проверка данных при авторизации пользователя
if (! empty($_POST['action']) && $_POST['action'] == 'auth')
{
    
$this->_users->auth($_POST);
}

boolean auth_loginza () – Проверяет авторизован ли пользователь.

Пример:

// includes/init.php
// проверка данных при авторизации пользователя с возможностью авторизации через сервис Loginza
if (! empty($_POST['action']) && $_POST['action'] == 'auth')
{
    
$this->_users->auth($_POST);
}
elseif (! empty(
$_POST['token']))
{
    
$this->_users->auth_loginza();
}

void create_avatar (string $name, string $file) – Загружает аватар.

  • string $name: логин пользователь
  • string $file: файл аватара

Пример:

// сгенерируетм аватар для пользователя с логином alex
// из файла http://site.ru/userfiles/alex_avatar.jpg
$name_user = 'alex';
$path_to_img = ABSOLUTE_PATH.USERFILES.'/alex_avatar.jpg';
$this->diafan->_users->create_avatar($name_user, $path_to_img);

boolean roles (string $action, [string $module_name = ''], [array $roles = array()], [string $type = 'admin']) – Проверяет есть ли права у пользователя на действие для модуля.

  • string $action: действие
  • string $module_name: модуль
  • array $roles: права пользователя
  • string $type: часть сайта административная/пользовательская

Пример:

// проверка прав пользоватля на редактирование категорий товаров
if (! $this->diafan->_users->roles("edit", "shop/category"))
{
    echo
"Нет доступа к модулю.";
}

Пользователи

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

По умолчанию в системе существует главный администратор, имя и пароль которого задаются при установке DIAFAN.CMS.

Администратор не может удалить, заблокировать самого себя или изменить себе права доступа. Пользователь с правами администратора может авторизоваться на сайте только по секретному адресу панели управления сайтом.

Пользователей можно искать по ФИО.

Редактирование пользователя

Пользователи имеют следующие характеристики:

Права доступа

Список типов доступа

Часть модуля «Права доступа» позволяет редактировать возможности пользователей сайта.

Редактирование типа доступа

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

Типы доступа имеют следующие характеристики:

Регистрация

Модуль «Регистрация» позволяет регистрироваться на сайте пользователям для получения дополнительных возможностей.

Чтобы вывести форму регистрации / редактирования на сайте, нужно прикрепить модуль к странице сайта.

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

Восстановление доступа

Восстановление доступа – это отдельный модуль в пользовательской части сайта (reminding). Он устанавливается вместе с модулем «Регистрация» и необходим для восстановления пароля пользователями.

Чтобы вывести форму восстановления доступа на сайте, нужно прикрепить модуль к странице сайта.

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

Конструктор формы регистрации

Список полей

Форму регистрации / редактирования данных можно дополнить своими полями с помощью конструктора формы.

Конструктор – это дополнительные поля формы регистрации.

Редактирование поля

Дополнительные поля имеют следующие параметры.

Настройки

Настройки

Шаблонные теги

Для работы с модулем «Пользователи» служат следующие шаблонные теги:

show_block – выводит статистику пользователей на сайте.

Атрибуты:

defer – маркер отложенной загрузки шаблонного тега: event – загрузка контента только по желанию пользователя при нажатии кнопки "Загрузить", emergence – загрузка контента только при появлении в окне браузера клиента, async – асинхронная (одновременная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, sync – синхронная (последовательная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, по умолчанию отложенная загрузка не используется, обычный вывод шаблонных тегов в коде страницы;

defer_title – текстовая строка, выводимая на месте появления загружаемого контента с помощью отложенной загрузки шаблонного тега;

template – шаблон тега (файл modules/users/views/users.view.show_block_template.php; по умолчанию шаблон modules/users/views/users.view.show_block.php).

Пример:

<insert name="show_block" module="users">

выведет «Сейчас на сайте: 13 гостей, 9 пользователей.»

В шаблоне тега можно получить значение любого атрибута через переменную $result["attributes"]["название атрибута"].

show_login module="registration" – выводит форму авторизации или приветствие и ссылки на редактирование данных и выход, если пользователь авторизован.

Атрибуты:

defer – маркер отложенной загрузки шаблонного тега: event – загрузка контента только по желанию пользователя при нажатии кнопки "Загрузить", emergence – загрузка контента только при появлении в окне браузера клиента, async – асинхронная (одновременная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, sync – синхронная (последовательная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, по умолчанию отложенная загрузка не используется, обычный вывод шаблонных тегов в коде страницы;

defer_title – текстовая строка, выводимая на месте появления загружаемого контента с помощью отложенной загрузки шаблонного тега;

template – шаблон тега (файл modules/registration/views/registration.view.show_login_template.php; по умолчанию шаблон modules/registration/views/registration.view.show_login.php).

Пример:

<insert name="show_login" module="registration">

выведет форму авторизации

В шаблоне тега можно получить значение любого атрибута через переменную $result["attributes"]["название атрибута"].

База данных

{users} – Пользователи

{users_actlink} – Код активации аккаунта

{users_param} – Дополнительные поля с данными о пользователях

{users_param_element} – Значения дополнительных полей с данными о пользователях

{users_param_role_rel} – Связи дополнительных полей с данными о пользователях и типов пользователей

{users_param_select} – Варианты значений дополнительных полей с данными о пользователях для типа список

{users_role} – Типы пользователей

{users_role_perm} – Права типов пользователей

{users_token} – Электронные ключи пользователей

Файлы

  1. modules/registration/js/registration.form.js – JS-сценарий модуля «Регистрация»;

  2. modules/registration/registration.php – контроллер модуля «Регистрация»;

  3. modules/registration/registration.action.php – обработка запроса при регистрации пользователя;

  4. modules/registration/registration.api.php – обрабатывает полученные данные из формы;

  5. modules/registration/registration.model.php – модель модуля «Регистрация»;

  6. modules/registration/views/registration.view.act.php – шаблон страницы активации аккаунта;

  7. modules/registration/views/registration.view.form.php – шаблон формы регистрации;

  8. modules/registration/views/registration.view.images.php – шаблон прикрепленных изображений;

  9. modules/registration/views/registration.view.show_login.php – шаблон блока авторизации;

  10. modules/registration/views/registration.view.show_login_top.php – шаблон блока авторизации;

  11. modules/registration/views/registration.view.show_param.php – шаблон дополнительных полей в форме регистрации данных;

  12. modules/registration/views/registration.view.success.php – шаблон страницы успешной регистрации;

  13. modules/reminding/reminding.php – контроллер модуля «Восстановление пароля»;

  14. modules/reminding/reminding.action.php – обработка запроса при отправке данных из формы восстановления пароля;

  15. modules/reminding/reminding.model.php – модель модуля «Восстановление пароля»;

  16. modules/reminding/views/reminding.view.form_change_password.php – шаблон формы смены пароля;

  17. modules/reminding/views/reminding.view.form_mail.php – шаблон формы восстановления доступа;

  18. modules/reminding/views/reminding.view.success.php – шаблон страницы успешной смены пароля;

  19. modules/userpage/userpage.php – контроллер модуля «Страница пользователя»;

  20. modules/userpage/userpage.model.php – модель модуля «Страница пользователя»;

  21. modules/userpage/views/userpage.view.orders.php – шаблон заказов пользователя;

  22. modules/userpage/views/userpage.view.show.php – шаблон страницы пользователя;

  23. modules/users/admin/js/users.admin.edit.js – редактирование пользователей, JS-сценарий;

  24. modules/users/admin/js/users.admin.role.js – редактирование типов пользователей, JS-сценарий;

  25. modules/users/admin/users.admin.php – редактирование пользователей сайта;

  26. modules/users/admin/users.admin.config.php – настройки модуля;

  27. modules/users/admin/users.admin.inc.php – подключение модуля к административной части других модулей;

  28. modules/users/admin/users.admin.param.php – конструктор формы регистрации;

  29. modules/users/admin/users.admin.role.php – редактирование типов пользователей;

  30. modules/users/users.php – котроллер модуля «Пользователи на сайте»;

  31. modules/users/users.api.php – обрабатывает полученные данные из формы;

  32. modules/users/users.inc.php – подключение модуля;

  33. modules/users/users.install.php – установка модуля;

  34. modules/users/users.model.php – модель модуля «Пользователи на сайте»;

  35. modules/users/views/users.view.show_block.php – шаблон статистики пользователей на сайте;

  36. modules/usersettings/js/usersettings.form.js – JS-сценарий модуля «Настройки аккаунта»;

  37. modules/usersettings/usersettings.php – контроллер модуля «Настройки аккаунта»;

  38. modules/usersettings/usersettings.action.php – обработка запроса при изменении данных о пользователе;

  39. modules/usersettings/usersettings.model.php – модель модуля «Настройки аккаунта»;

  40. modules/usersettings/views/usersettings.view.attachments.php – шаблон прикрепленных файлов в настройках аккаунта;

  41. modules/usersettings/views/usersettings.view.avatar.php – шаблон аватара;

  42. modules/usersettings/views/usersettings.view.form.php – шаблон формы настроек аккаунта;

  43. modules/usersettings/views/usersettings.view.images.php – шаблон прикрепленных изображений;

  44. modules/usersettings/views/usersettings.view.show_param.php – шаблон дополнительных в настройках аккаунта.

Дополнения

База знаний

Ваши комментарии и дополнения
10 февраля 2018 г.
где в админке увидеть id пользователя, чтоб потом прописать ему индивидуальную скидку?
11 февраля 2018 г.
Roman, если в списке пользователей подвести мышью к имени пользователя, то выйдет подсказка "Редактировать (ID)". Или в ссылке страницы редактирования пользователя можно посмотреть: http://site.ru/admin/users/editID/

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