Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

email юзерам и сообщение в топик

Идеи для расширения функциональности phpBB 2.0.x
Аватара пользователя
RUFOND
phpBB 1.4.4
Сообщения: 133
Стаж: 17 лет 2 месяца
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 4 раза
Контактная информация:

email юзерам и сообщение в топик

Сообщение RUFOND »

Не подскажете есть ли такой мод, который при отправке email выбранной группе пользователей, добавлял бы отправляемое сообщение в указанный топик форума
//
приглашаю на RuFOND - Форум для трейдеров
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 17 лет 11 месяцев

Re: email юзерам и сообщение в топик

Сообщение Lektor »

лови (должно пахать .. клепанул за пару сек, но вроде не упустил ниче)

Код: Выделить всё

#
#-----[ OPEN ]------------------------------------------
#
admin/admin_mass_email.php

#
#-----[ FIND ]------------------------------------------
#
	if ( !$error )
	{

#
#-----[ BEFORE, ADD ]-----------------------------------
#
		if (!empty($HTTP_POST_VARS['create_topic']) && $HTTP_POST_VARS['f'] > 0)

			{
				include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
				include($phpbb_root_path . 'includes/functions_search.'.$phpEx);
				include($phpbb_root_path . 'includes/functions_post.'.$phpEx);


				$current_time = time();
				$forum_id = $HTTP_POST_VARS['f'];
				$topic_type = POST_NORMAL;
				$topic_vote = 0;
				$bbcode_uid=make_bbcode_uid();
				$post_message = prepare_message(trim($message), 1, 1, 1, $bbcode_uid);
	

				$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv('REMOTE_ADDR') );
				$user_ip = encode_ip($client_ip);

				$sql  = "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote) VALUES ('$subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote)";
				if (!$db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
				}
				$topic_id = $db->sql_nextid();

				$sql = "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '', $current_time, '$user_ip', 1, 1, 1, 1)";
				if (!$db->sql_query($sql, BEGIN_TRANSACTION))
				{
					message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
				}
				$post_id = $db->sql_nextid();

				$sql = "INSERT INTO " . POSTS_TEXT_TABLE . " (post_id, post_subject, bbcode_uid, post_text) VALUES ($post_id, '$subject', '$bbcode_uid', '$post_message')";
				if (!$db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
				}
				$sql="UPDATE phpbb_topics SET topic_first_post_id=$post_id, topic_last_post_id=$post_id WHERE topic_id=$topic_id";
				if (!$db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
				}

				add_search_words('single', $post_id, stripslashes($post_message), stripslashes($subject));


			}
#
#-----[ FIND ]------------------------------------------
#
include('./page_header_admin.'.$phpEx);

#
#-----[ AFTER ADD ]------------------------------------------
#
make_jumpbox('admin_mass_email.'.$phpEx);

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/user_email_body.tpl

#
#-----[ FIND ]------------------------------------------
#
	<tr> 
	  <td class="catBottom" align="center" colspan="2"><input type="submit" value="{L_EMAIL}" name="submit" class="mainoption" /></td>
	</tr>

#
#-----[ BEFORE, ADD ]-----------------------------------
#
	<tr> 
	  <td class="row1" align="left" colspan="2"><input type="checkbox" name="create_topic" />Создать топик в форуме: {S_JUMPBOX_SELECT}</td>
	</tr>
# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM 
Добавлено спустя 4 минуты 38 секунд:
хм.. эт немного не то.. в варианте выше создается тема в указанном форуме .. а нужно было - сообщение в теме (шо-то я не внимательно так :D ) ну вообщем там почти те же яйки тока с другой стороны ... сам переделаешь?
Аватара пользователя
RUFOND
phpBB 1.4.4
Сообщения: 133
Стаж: 17 лет 2 месяца
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 4 раза
Контактная информация:

Re: email юзерам и сообщение в топик

Сообщение RUFOND »

спасибо, пойду ковырять свою многострадальную двойку)...
//
приглашаю на RuFOND - Форум для трейдеров
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 17 лет 11 месяцев

Re: email юзерам и сообщение в топик

Сообщение Lektor »

Я вам помогу: предыдущую инструкцию удалите и выполните эту:

Код: Выделить всё

#
#-----[ OPEN ]------------------------------------------
#
admin/admin_mass_email.php

#
#-----[ FIND ]------------------------------------------
#
	if ( !$error )
	{

#
#-----[ AFTER, ADD ]-----------------------------------
#
		if ((!empty($HTTP_POST_VARS['create_topic']) && $HTTP_POST_VARS['f'] > 0) || (!empty($HTTP_POST_VARS['post_message']) && !empty($HTTP_POST_VARS['destination_topic'])))
			{
				require_once($phpbb_root_path . 'includes/bbcode.'.$phpEx);
				require_once($phpbb_root_path . 'includes/functions_search.'.$phpEx);
				require_once($phpbb_root_path . 'includes/functions_post.'.$phpEx);
				require_once($phpbb_root_path . 'includes/functions_admin.'.$phpEx);


				$current_time = time();
				$forum_id = $HTTP_POST_VARS['f'];
				$topic_type = POST_NORMAL;
				$topic_vote = 0;
				$bbcode_uid=make_bbcode_uid();
				$post_message = prepare_message(trim($message), 1, 1, 1, $bbcode_uid);
	

				$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv('REMOTE_ADDR') );
				$user_ip = encode_ip($client_ip);
				if(!empty($HTTP_POST_VARS['create_topic']))
				{
					$sql  = "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote) VALUES ('$subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote)";
					if (!$db->sql_query($sql))
					{
						message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
					}
					$topic_id = $db->sql_nextid();

					$sql = "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '', $current_time, '$user_ip', 1, 1, 1, 1)";
					if (!$db->sql_query($sql, BEGIN_TRANSACTION)) 
					{
						message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
					}
					$post_id = $db->sql_nextid();
	
					$sql = "INSERT INTO " . POSTS_TEXT_TABLE . " (post_id, post_subject, bbcode_uid, post_text) VALUES ($post_id, '$subject', '$bbcode_uid', '$post_message')";
					if (!$db->sql_query($sql))
					{
						message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
					}
					$sql="UPDATE phpbb_topics SET topic_first_post_id=$post_id, topic_last_post_id=$post_id WHERE topic_id=$topic_id";
					if (!$db->sql_query($sql))
					{
						message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
					}
	
					add_search_words('single', $post_id, stripslashes($post_message), stripslashes($subject));
				}
				if(!empty($HTTP_POST_VARS['post_message']))
				{

					$destination_topic = $HTTP_POST_VARS['destination_topic'];

					// the next block of code is borrowed from the simply merge mod...it extracts the topic id from topic_id, topic url or post url
					// is this a direct value ?
					$num_topic = intval($destination_topic);
					if ($destination_topic == "$num_topic")
					{
						$destination_topic_id = $num_topic;
					}
					// is this a url with topic id or post id ?
					else
					{
						$name = explode('?', $destination_topic);
						$parms = ( isset($name[1]) ) ? $name[1] : $name[0];
						parse_str($parms, $parm);
						$found = false;
						$destination_topic_id = 0;
						while ((list($key, $val) = each($parm)) && !$found)
						{
							$vals = explode('#', $val);
							$val = $vals[0];
							if (empty($val))
							{
								$val = 0;
							}
							else $val = intval($val);
							switch($key)
							{
								case POST_POST_URL:
								$sql = "SELECT topic_id FROM " . POSTS_TABLE . " WHERE post_id=$val";
								if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, 'Could not get post information', '', __LINE__, __FILE__, $sql);
								if ($row = $db->sql_fetchrow($result))
								{
									$val = $row['topic_id'];
									$found = true;
								}
								break;

								case POST_TOPIC_URL:
								$found = true;
								break;
							}
							if ($found)
							{
								$destination_topic_id = $val;
							}
						}
					}
					$topic_id = $destination_topic_id;
					$sql = "SELECT forum_id
						FROM " . TOPICS_TABLE . "
						WHERE topic_id = $destination_topic_id";
					if ( !($result = $db->sql_query($sql)) )
					{
						message_die(GENERAL_ERROR, 'Could not get forum information for destination topic', '', __LINE__, __FILE__, $sql);
					}
					$row = $db->sql_fetchrow($result);
					$forum_id = $row['forum_id'];

					$db->sql_freeresult($result);
					if ($forum_id == '') message_die(GENERAL_MESSAGE, 'Could not get forum information (no such topic_id?)');


					$sql = "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '', $current_time, '$user_ip', 1, 1, 1, 1)";
					if (!$db->sql_query($sql, BEGIN_TRANSACTION))
					{
						message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
					}
					$post_id = $db->sql_nextid();
	
					$sql = "INSERT INTO " . POSTS_TEXT_TABLE . " (post_id, post_subject, bbcode_uid, post_text) VALUES ($post_id, '$subject', '$bbcode_uid', '$post_message')";
					if (!$db->sql_query($sql))
					{
						message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
					}
					$sql="UPDATE phpbb_topics SET topic_last_post_id=$post_id WHERE topic_id=$topic_id";
					if (!$db->sql_query($sql))
					{
						message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
					}
					sync('topic', $topic_id);

				}
				sync('forum', $forum_id);
			}

#
#-----[ FIND ]------------------------------------------
#
include('./page_header_admin.'.$phpEx);

#
#-----[ AFTER ADD ]------------------------------------------
#
make_jumpbox('admin_mass_email.'.$phpEx);

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/user_email_body.tpl

#
#-----[ FIND ]------------------------------------------
#
	<tr> 
	  <td class="catBottom" align="center" colspan="2"><input type="submit" value="{L_EMAIL}" name="submit" class="mainoption" /></td>
	</tr>

#
#-----[ BEFORE, ADD ]-----------------------------------
#
	<tr> 
	  <td class="row2" align="left" colspan="2"><input type="checkbox" name="create_topic" />Создать топик в форуме: {S_JUMPBOX_SELECT}</td>
	</tr>
	<tr> 
	  <td class="row2" align="left" colspan="2"><input type="checkbox" name="post_message" />Отправить сообщение в тему: <input class="post" type="text" size="35" style="width: 340px" maxlength="60" name="destination_topic" value="(вставьте id или URL темы, или URL сообщения в теме)" onfocus="javascript:if (this.value=='(вставьте id или URL темы, или URL сообщения в теме)') {this.value=''}" onblur="javascript:if (this.value=='') {this.value='(вставьте id или URL темы, или URL сообщения в теме)'}"   /> </td>
	</tr>

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM 
Будет так:
Изображение
Аватара пользователя
RUFOND
phpBB 1.4.4
Сообщения: 133
Стаж: 17 лет 2 месяца
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 4 раза
Контактная информация:

Re: email юзерам и сообщение в топик

Сообщение RUFOND »

ну что я могу сказать)... благодарю за оперативность и ещё раз спасибо
//
приглашаю на RuFOND - Форум для трейдеров
Аватара пользователя
RUFOND
phpBB 1.4.4
Сообщения: 133
Стаж: 17 лет 2 месяца
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 4 раза
Контактная информация:

Re: email юзерам и сообщение в топик

Сообщение RUFOND »

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

Код: Выделить всё

Error in posting

DEBUG MODE

UPDATE phpbb_topics SET topic_last_post_id=1425 WHERE topic_id=1297

Line : 229
File : admin_mass_email.php
и не отправляются email выбранной группе

Добавлено спустя 4 минуты 17 секунд:
похоже нашёл ошибку... префиксы phpbb_topics
//
приглашаю на RuFOND - Форум для трейдеров
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 17 лет 11 месяцев

Re: email юзерам и сообщение в топик

Сообщение Lektor »

Да я не использовал константы и не предупредил на счет префиксов ... в них судя по всему проблема?

Добавлено спустя 40 секунд:
Если префиксы не те как тогда сообщение добавляется?. у меня все работает еще раз проверил (писал под чистый пхпбб2023)

Добавлено спустя 2 минуты 58 секунд:
Письма должны отправляться группам на имейл.. если им не приходят значит они бы и не пришлы и до установки модификации .. ибо она отправку не трогает .. опять таки у меня этой проблемы нет на тестовом форуме .. гляньте сюда на мое последнее сообщение.

зы
RUFOND писал(а): всё как на вашей картинке)
а вы сомневались? ;)
Аватара пользователя
RUFOND
phpBB 1.4.4
Сообщения: 133
Стаж: 17 лет 2 месяца
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 4 раза
Контактная информация:

Re: email юзерам и сообщение в топик

Сообщение RUFOND »

не-не, после того как префиксы поправил стало всё пучком, и ошибка пропала и email стали приходить... теперь только красоту наводить) вот сразу пара вопросиков) как изменить выводимую по-умолчанию группу рассылки и как добавить несколько вариантов выбора в нижней закладке (там где сейчас написано Вставить УРЛ и т.п.)
//
приглашаю на RuFOND - Форум для трейдеров
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 17 лет 11 месяцев

Re: email юзерам и сообщение в топик

Сообщение Lektor »

на счет первого щас выложу .. на счет:
"как добавить несколько вариантов выбора" - добавить их по аналогии с приведенными выше изменениями ...

зы называйте вещи своими именами, http://ru.wikipedia.org/wiki/Закладка

Добавлено спустя 32 минуты 31 секунду:
Поправте префиксы )

Код: Выделить всё

#
#-----[ SQL ]------------------------------------------
#
INSERT INTO phpbb_config (config_name, config_value) VALUES ('default_group_select','-1');

#
#-----[ OPEN ]------------------------------------------
#
admin/admin_mass_email.php

#
#-----[ FIND ]------------------------------------------
#
   if ( !$error )
   {

#
#-----[ AFTER, ADD ]-----------------------------------
#
		if (!empty($HTTP_POST_VARS['defsel']))
			{
				$sql="update phpbb_config set config_value=$group_id where config_name='default_group_select'";
				if (!$db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, 'Error ...', '', __LINE__, __FILE__, $sql);
				}

			}
#
#-----[ FIND ]------------------------------------------
#
		$select_list .= '<option value = "' . $row['group_id'] . '"'.$selected.'>' . $row['group_name'] . '</option>';

#
#-----[ REPLACE WITH ]-----------------------------------
#
		$selected = ($row['group_id']=== $board_config['default_group_select'])? 'selected':'';
		$select_list .= '<option value = "' . $row['group_id'] . '"'.$selected.'>' . $row['group_name'] . '</option>';
#
#-----[ FIND ]------------------------------------------
#
	'S_GROUP_SELECT' => $select_list)

#
#-----[ REPLACE WITH ]-----------------------------------
#
	'S_GROUP_SELECT' => $select_list.' '. '<input type="checkbox" name="defsel" /> Сделать текущий выбор выбором по умолчанию')
я тут подумал, может оформить по phpbb стандартам, чуток доделать: сделать проверку при отправке писем заполнены ли поля "активированные" галочками и если нет, выдавать ошибку(чтоб по случайности не провтыкать и не отправить масс письма без постинга темы или сообщения т.к. сейчас в случае не заполнении полей скрипт игнорит постинг и только шлет письма) и выложить это дело модом .. а то кому-то тоже понадобится и а найти не смогут это здесь ...
Аватара пользователя
RUFOND
phpBB 1.4.4
Сообщения: 133
Стаж: 17 лет 2 месяца
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 4 раза
Контактная информация:

Re: email юзерам и сообщение в топик

Сообщение RUFOND »

в добавленном сообщении время выставляется вот в таком виде
Добавлено: 01 Янв 1970 04:00 am
что совсем не есть хорошо
пробовал всяко менять вот эту функцию

Код: Выделить всё

$current_time = time();
но тогда при добавлении сообщения мускул выдаёт ошибку...

и ещё, вот в этой вставке случаем нет ошибки, а то смущает пустое поле перед $current_time

Код: Выделить всё

$sql = "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '', $current_time, '$user_ip', 1, 1, 1, 1)";
//
приглашаю на RuFOND - Форум для трейдеров
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 17 лет 11 месяцев

Re: email юзерам и сообщение в топик

Сообщение Lektor »

Страно т.к. у меня этого бага нету.. завтра гляну шо там может быть..
Аватара пользователя
RUFOND
phpBB 1.4.4
Сообщения: 133
Стаж: 17 лет 2 месяца
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 4 раза
Контактная информация:

Re: email юзерам и сообщение в топик

Сообщение RUFOND »

что-нибудь удалось накопать?... пробовал и на локалхосте и на рабочем сайте, время выставляется неправильно...
//
приглашаю на RuFOND - Форум для трейдеров
Закрыто

Вернуться в «Запросы модов для phpBB 2.0.x»