ertttert
Books-CMS.clan.su

Процесс регистрации пользователя

По умолчанию для регистрации пользователя на сайте Drupal нужно лишь ввести пользовательское имя и допустимый адрес электронной почты. Модули могут добавлять в форму регистрации пользователя собственные поля, реализуя несколько хуков пользователя. Сейчас мы напишем модуль с именем legalagree.module, который поможет сайту выжить в полном опасностей современном мире. Сначала создайте папку sites/all/modules/custom/legalagree и добавьте в каталог legalagree файлы, описанные в листингах 6.2 и 6.3. Затем активируйте модуль с помощью пункта меню AdministerSite buildingModules (Администрирование→Структура сайта→Модули).

Листинг 6.2. Файл legalagree.info

name = Legal Agreement
description = Displays a dubious legal agreement during user registration.
package = Pro Drupal Development
core = 7.x
files[] = legalagree.module

Листинг 6.3. Файл legalagree.module

<?php
/**
* @file
* Поддержка коварного текста официального соглашения
* во время регистрации пользователя.
*/

/**
* Реализация hook_form_alter().
*/

function legalagree_form_alter(&$form, &$form_state, $form_id) {

 // Проверка, выполняет ли форма регистрацию или настройку профиля пользователя.
 // Если нет — возврат без каких-либо действий.
 if (!($form_id == 'user_register_form' || $form_id == 'user_profile_form')) {return;}

 // Добавление в форму новой функции проверки для заключения официального соглашения.
 $form['#validate'][] = 'legalagree_user_form_validate';

 // Добавление набора полей для заключения официального соглашения.
 $form['account']['legal_agreement'] = array(
 '#type' => 'fieldset',
 '#title' => t('Legal agreement') //Официальное соглашение
 );

 // Добавление кнопок переключателя для заключения соглашения.
 $form['account']['legal_agreement']['decision'] = array(
 '#type' => 'radios',
 '#description' => t('Регистрируясь на сайте %site-name, вы принимаете пользовательское соглашение.',
                 array('%site-name' => variable_get('site_name', 'drupal'))
                 ),
 '#default_value' => 0,
 '#options' => array(t('I disagree'), t('I agree'))
);
}

/**
* Обработчик проверки формы для текущего пароля на user_account_form().
*
* @see user_account_form()
*/
function legalagree_user_form_validate($form, &$form_state) {

 $user;

 // Визуальная проверка.
 if ($form_state['input']['decision'] <> 1) {
    form_set_error('decision', t('You must agree to the Legal Agreement before
    registration can be completed.'));

    // Для завершения регистрации вы должны принять официальное соглашение.
 } else {

      watchdog('user', t('User %user agreed to legal terms',
      array('%user' => $user->name)));
    // Пользователь %user принял официальные условия
 }

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

Всего комментариев: 1
1 SergFooky  
0
<a href=http://zmkshop.ru/uslugi/proizvodstvo-i-montazh-metallicheskikh-rigeley/>ригель это в мк</a>

Имя *:
Email *:
Код *:


Бесплатный конструктор сайтов - uCoz