Пропустить

Мод Admin Userlist

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).

Re: Мод Admin Userlist

Сообщение Stass » 22.12.2008 11:42

Обнаружена неприятная особенность. Если на форуме стоит активация юзеров админом, и с помощью этого мода активировать юзеров, то письмо об активации юзеру не приходит (конкретно даже не создается)
Аватара пользователя
Stass
phpBB 1.4.2
 
Сообщения: 56
Зарегистрирован: 21.08.2008 13:56
Откуда: у тебя пистолет и деньги?
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Мод Admin Userlist

Сообщение Поручик » 22.12.2008 12:01

Да, не создаётся. Потому что нет соответствующего кода.

Добавлено спустя 21 минуту 50 секунд:
Попробуй. Код между этих строк в admin_userlist.php

	case 'activate':
	Заменяемый код
	................
	................
	case 'group':
заменить на этот
		//
		// activate or deactivate the seleted users
		//
		include($phpbb_root_path . 'includes/emailer.'.$phpEx);
		$emailer = new emailer($board_config['smtp_delivery']);
		$i = 0;
		while( $i < count($user_ids) )
		{
			$user_id = intval($user_ids[$i]);
			$sql = "SELECT user_active, user_lang, user_email, username FROM " . USERS_TABLE . "
				WHERE user_id = $user_id";
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql);
			}
			$row = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);

			$new_status = ( $row['user_active'] ) ? 0 : 1;

			$sql = "UPDATE " .  USERS_TABLE . " 
				SET user_active = '$new_status'
				WHERE user_id = $user_id";
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not update user status', '', __LINE__, __FILE__, $sql);
			}
			if ($new_status == 1)
			{
				$emailer->from($board_config['board_email']);
				$emailer->replyto($board_config['board_email']);
	
				$emailer->use_template('admin_welcome_activated', $row['user_lang']);
				$emailer->email_address($row['user_email']);
				$emailer->set_subject($lang['Account_activated_subject']);
	
				$emailer->assign_vars(array(
					'SITENAME' => $board_config['sitename'], 
					'USERNAME' => $row['username'],
					'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
				);
				$emailer->send();
				$emailer->reset();
			}
			
			unset($user_id);
			$i++;
		}

		$message = $lang['User_status_updated'] . "<br /><br />" . sprintf($lang['Click_return_userlist'], "<a href=\"" . append_sid("admin_userlist.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

		message_die(GENERAL_MESSAGE, $message);
		break;
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Поручик
Former team member
 
Сообщения: 3988
Зарегистрирован: 12.05.2005 17:25
Откуда: Оренбург (Южный Урал)
Благодарил (а): 26 раз.
Поблагодарили: 50 раз.

Re: Мод Admin Userlist

Сообщение Stass » 10.02.2009 11:28

Небольшое добавление к моду. При удалении пользователя(ей) отсылается ему(им) письмо на e-mail с соответствующим текстом.

1. Нужно создать файл user_delete.tpl в language/lang_russian/email такого содержания:
Subject: Ваша учётная запись удалена
Charset: windows-1251

Здравствуйте, {USERNAME}.

Ваша учётная запись удалена с форума {SITENAME}.

{EMAIL_SIG}


2. Отредактировать файл admin/admin_userlist.php
После строк:
// delete users
                        $i = 0;
Вставить:
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
$emailer = new emailer($board_config['smtp_delivery']);

Заменить строку:
$sql = "SELECT u.username, g.group_id

Этой строкой:
$sql = "SELECT u.username, g.group_id, user_email

Перед строками:
$sql = "DELETE FROM " . USERS_TABLE . "
                                        WHERE user_id = $user_id";
                                if( !$db->sql_query($sql) )
Вставить:
//---------------------------------------------
	$emailer->from($board_config['board_email']);
            $emailer->replyto($board_config['board_email']);
   
            $emailer->use_template('user_delete', $row['user_lang']);
            $emailer->email_address($row['user_email']);
           
            $emailer->assign_vars(array(
               'SITENAME' => $board_config['sitename'], 
               'USERNAME' => $row['username'],
               'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
            );
            $emailer->send();
            $emailer->reset();
//----------------------------------------------

Проверил на локалхосте. Ставить сразу на Ваш форум не рекомендую, еще не все протестил. Так что прошу сильно ногами не бить, если что не правильно
Аватара пользователя
Stass
phpBB 1.4.2
 
Сообщения: 56
Зарегистрирован: 21.08.2008 13:56
Откуда: у тебя пистолет и деньги?
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Пред.

Вернуться в Поддержка модов для phpBB 2.0.x

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы