LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
19.05.2013, 17:36:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 2.5 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Активация пользователей администратором  (Прочитано 19185 раз)
0 Пользователей и 1 Гость смотрят эту тему.
smart
Администратор
*******

Репутация: +1205/-14
Offline Offline

Пол: Мужской
Сообщений: 7571


снова дома...


« : 21.02.2007, 15:58:07 »

По умолчанию Joomla позволяет два способа активации учетной записи: автоматически и посредством перехода по ссылке в письме, отправляемом на e-mail зарегистрированного пользователя.

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

Для этого немного модифицируем компонент регистрации пользователей.  Открываем файл /components/com_registration/registration.php, находим в нем следующую строку:

	
$row->gid 
	
	
$acl->get_group_id'Registered''ARO' );

и добавляем сразу же после нее:

	
$row->block '1';

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

Однако, если на сайте будет включена функция активации по e-mail, блокировка будет сниматься автоматически. Нам же это не нужно, поэтому, мы находим в этом же файле строку:

	
"\n SET block = 0, activation = ''"

и заменяем ее на:

	
"\n SET activation = ''"

Т.е. ключ активации будет сбрасываться, а блокировка - нет. Таким образом с одной строны пользователю при регистрации все-таки нужен будет рабочий e-mail адрес, а с другой стороны автоматчиески он не разблокируется. Единственное что требуется, это в тексте письма об активации (константа _USEND_MSG_ACTIVATE в языковом файле, расположенном в папке /languages) надо добавить пару строк о том, что после активации необходимо дождаться утверждения учетной записи администратором.

В принципе, можно еще добавить отправку пользователю письма об утверждении учетной записи. Для этого необходимо открыть файл /administrator/components/com_user/admin.users.php, найти в нем строчки:

	
// if action is to block a user
	
if ( 
$block == ) {
	
	
foreach( 
$cid as $id ) {
	
	
// delete user acounts active sessions
	
	
	
logoutUser$id'com_users''block' );
	
	
}
	
}

и заменить на следующие:

	
// if action is to block a user
	
if ( 
$block == ) {
	
	
foreach( 
$cid as $id ) {
	
	
// delete user acounts active sessions
	
	
	
logoutUser$id'com_users''block' );
	
	
}
	
} else {
	
	
global 
$mosConfig_mailfrom$mosConfig_fromname;
	
	

	
	
$database->setQuery"SELECT email FROM #__users WHERE ( $cids )" );
	
	
$users $database->loadObjectList();

	
	
$subj 'Account is approved';
	
	
$msg 'Congratulations, your account is approved!';

	
	
foreach( 
$users as $u ) {
	
	
	
mosMail($mosConfig_mailfrom$mosConfig_fromname$u->email$subj$msg);
	
	
}
	
}

Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.18 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet