Выбор группы пользователей при регистрации в DLE

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

Для работы использовалась CMS DLE 9.7 и материалы с сайта dle-faq.ru, которые к сожалению пришлось немного отредактировать, по причине невнимательности автора, но все же в целом код для выбора группы пользователей в DLE получился рабочим и работоспособным.

Итак что же нам надо делать (как обычно русским по белому расписываю алгоритм нашей задачи):

1st пункт

открываем: /engine/modules/register.php и находим там код

$tpl->set( '[registration]', "" );

вставляем выше

$group_select = '';</pre>
<pre>$allow_group = array(3,4); // Группы доступные при регистрации, при необходимости вставляем свои ID группы можно найти в Админ панели, настройки групп пользователей
foreach ( $allow_group as $id ) {
$group = $user_group[$id];
$group_select .= '<option value="' . $group['id'] . "\">" . $group['group_name'] . "</option>\n";
}
$tpl->set( '{group}', "<select name=\"group\">".$group_select."</select>" );

ищем там же (/engine/modules/register.php) 2 раза код

rawurlencode( base64_encode( $name . "||" . $email . "||" . md5( $password1 ) . "||" . md5( md5( $name . $email . DBHOST . DBNAME . $config['key'] ) )

далее вставляем

. "||" . (int)$_POST['group']

прим. автора обратите внимание что данный кусок кода вставляется после 2-й скобки переменного массива с ключом key, а не в конец строки.

находим все там же код

$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );

заменяем его на

$allow_group = array(3,4); // Группы доступные при регистрации</pre>
<pre>$user_arr[4] = intval($user_arr[4]);
if(!in_array($user_arr[4], $allow_group)) $user_arr[4] = 4; // Группа по умолчанию
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $user_arr[4] . "', '', '', '', '', '" . $_IP . "')" );

2nd пункт

теперь открываем шаблон ./templates/[имя шаблона]/registration.tpl и в любом месте, где в итоге будет выдвижной список выбора групп при регистрации в DLE, вставляем тег

{group}

Данный способ выбора группы при регистрации в DLE будет применен к новым зарегистрировавшимся пользователям.

Автором кода данный материал тестировался на CMS DLE 8.5-9.0, мною тестировался на DLE 9.7, полет нормальный после пары правки исходного кода.

Всегда с вами доступным и понятным языком, Aleks_Ku

P.S. код применен на сайте Web-студии копирайта и рерайта УКротова.рф.

Понравилась статья? - поделись с друзьями!

Категория: DLE