BPM Mod (AK. Birthday message mod)

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Аватара пользователя
Zlodey
phpBB 1.4.0
Сообщения: 36
Стаж: 18 лет 5 месяцев
Откуда: Кривой Рог

Сообщение Zlodey »

rxu
блин как нет всегда была а теперь нет???
ну та мать её, как ту таблицу создать??? подскажите!!!
Если я сказал: "Не брал!", значит не отдам.
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 10 месяцев
Откуда: Бердск

Сообщение crash »

Zlodey писал(а):хорошо а это тогда что????
а это данные в таблице. Только вы сначала поставьте моды, которые автор говорит. И не забудьте поставить мод день рождения
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Аватара пользователя
Zlodey
phpBB 1.4.0
Сообщения: 36
Стаж: 18 лет 5 месяцев
Откуда: Кривой Рог

Сообщение Zlodey »

crash писал(а):И не забудьте поставить мод день рождения
та есть уже...
Если я сказал: "Не брал!", значит не отдам.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16950
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1702 раза

Сообщение rxu »

Zlodey
Так может, у Вас просто префикс не тот в базе, как я понимаю.
Или префикс - phpbb_ ?
Изображение
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 10 месяцев
Откуда: Бердск

Сообщение crash »

Zlodey
еще раз
## Author Notes:
## 1. You also must have the wpm mod installed!
Есть?
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Аватара пользователя
Zlodey
phpBB 1.4.0
Сообщения: 36
Стаж: 18 лет 5 месяцев
Откуда: Кривой Рог

Сообщение Zlodey »

да есть
Если я сказал: "Не брал!", значит не отдам.
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 10 месяцев
Откуда: Бердск

Сообщение crash »

Zlodey
и в базе таблица есть?
млм как сказали выше, префикс другой

Добавлено спустя 2 минуты 17 секунд:

да префикса наверное вообще нет.. короче, показывайте какие таблицы у вас есть)
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Аватара пользователя
Zlodey
phpBB 1.4.0
Сообщения: 36
Стаж: 18 лет 5 месяцев
Откуда: Кривой Рог

Сообщение Zlodey »

ЗНАЧИТ ЭТО ВСЕ СДЕЛАЛ КРОМЕ ОБНОВЛЕНИЯ БАЗ
ВОТ ЭТОТ МОД

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

############################################################## 
## MOD Title:  BPM Mod (AK. Birthday message mod)
## MOD Author: Duvelske < Duvelske@planet.nl > (Richard Wagtmans) http://www.vitrax.vze.com/ 
## MOD Author, Secondary: Tuxman < tuxman@sumpfkuh.de >
## MOD Description:    With this mod you can sendt an pm or an email
##			to the user who has his birthday. The message you
##			can define in the admin panel with some functions
##			like with the wpm mod. The old pop-up wil appear,
##			but you can shut it down in the bpm panel as well as
##			in the board configuration.			
##
## MOD Version: 1.0.2
## Compatibility: You must have the birthday mod of mods.db9.dk installed
##		  In order to let this mod work.
##
## Notes: This MOD includes Tuxman's Birthday Mail Extension, available at
##        http://www.phpbb.de/viewtopic.php?t=53274 (German)
##        http://www.phpbb.com/phpBB/viewtopic.php?p=1077492#1077492 (English)
##	  This one is also edited to go with the norms of the bpm mod (by Duvelske)
## 
## Installation Level: Simple
## Installation Time:  10 Minutes
##
## Files To Edit: 2
##      index.php
##	includes/functions_post.php
##	admin/admin_board.php
##	templates/subSilver/admin/board_config_body.tpl
##
## Included Files: 5
##      language/lang_english/email/birthday.tpl
##	admin_bpm.php
##	bpm_body.tpl
##	bpm_db_install.php
##	uninstallbpm.php
##
##############################################################
## Author Notes:
## 1. You also must have the wpm mod installed! Otherwise it doesn't work!
##
## 2.Please Run before you mod the files the bpm_db_update.php file in the root of your forum
## Also if you run an older version of this mod read the Update from 105 previous versions.txt
## for further instructions
##############################################################
## MOD History:
##	1.0.2 - Let the mod sendt an pm or email when some has his birthday instead of when someone
##		who has his/hers birthday logs in.
##	      - Made an activate/deactivate pop-up button for in the bpm admin panel.
##	      - Added some suggestion code for removal of the pop-up button code in the admin panel
##		for your board configuration
##
##	1.0.1 - Fixed the sendt options.
##	      - Modified some errors.
##
##	1.0.0 - Got approval for adding the mail section to the bpm mod.
##	      - Fixed and changed some of the functions of the mail section to work with the bpm standards.
##	      - First release of the bpm mod
##
##	0.1.1 - Fixed the bpm mod now it sends a good pm
##
############################################################## 
## This MOD is released under the GPL License. 
## Intellectual Property is retained by the MOD Author(s) listed above 
############################################################## 
## For Security Purposes, Please Check: http://www.vitrax.vze.com for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. As such, Vitrax will not offer support for MOD's not offered 
## in our MOD support forum 
##############################################################
#
#-----[ SQL ]-------------------------------------------------
# Note: phpbb_ must be your table prefix otherwise
# 	replace it with you prefix. Or run the bpm_db_update.php file
INSERT INTO phpbb_wpm VALUES ('bpm_version', '1.0.2');
INSERT INTO phpbb_wpm VALUES ('bpm_username', 'Anonymous');
INSERT INTO phpbb_wpm VALUES ('bpm_userid', '-1');
INSERT INTO phpbb_wpm VALUES ('active_bpm', '0');
INSERT INTO phpbb_wpm VALUES ('active_bpmmail', '1');
INSERT INTO phpbb_wpm VALUES ('bpm_subject', 'Happy birthday [username]!');
INSERT INTO phpbb_wpm VALUES ('bpm_message', 'Happy birthday [username] with your [age] birthday!');

# 
#-----[ OPEN ]------------------------------------------ 
#
includes/functions_post.php

# 
#-----[ FIND ]------------------------------------------ 
#
//
// This function will prepare a posted message for
// entry into the database.
//
# 
#-----[ BEFORE, ADD ]------------------------------------------ 
#
// start bpm mod by Duvelske (http://www.vitrax.vze.com)
function bpm_send_pm($user_to_id, $bpm_subject, $bpm_message, $send_email)
{
	global $board_config, $swpm_config, $lang, $db, $phpbb_root_path, $phpEx;

	$sql = "SELECT *
		FROM " . USERS_TABLE . " 
		WHERE user_id = " . $user_to_id . "
		AND user_id <> " . ANONYMOUS;
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Tried obtaining data for a non-existent user', '', __LINE__, __FILE__, $sql);
	}
	$usertodata = $db->sql_fetchrow($result);

	// prepare bpm message
	$bbcode_uid = make_bbcode_uid();
	$bpm_message = str_replace("'", "''", $bpm_message);

	if(empty($bpm_message))
	{
		$bpm_message = "Happy Birthday.";
	}
	$bpm_message = prepare_message(trim($bpm_message), 0, 1, 1, $bbcode_uid);

	$msg_time = time();

	// Do inbox limit stuff
	$sql = "SELECT COUNT(privmsgs_id) AS inbox_items, MIN(privmsgs_date) AS oldest_post_time 
		FROM " . PRIVMSGS_TABLE . " 
		WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " 
			OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "  
			OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) 
			AND privmsgs_to_userid = " . $usertodata['user_id'];
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_MESSAGE, $lang['No_such_user']);
	}

	$sql_priority = ( SQL_LAYER == 'mysql' ) ? 'LOW_PRIORITY' : '';

	if ( $inbox_info = $db->sql_fetchrow($result) )
	{
		if ( $inbox_info['inbox_items'] >= $board_config['max_inbox_privmsgs'] )
		{
			$sql = "DELETE $sql_priority FROM " . PRIVMSGS_TABLE . " 
				WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " 
					OR privmsgs_type = " . PRIVMSGS_READ_MAIL . " 
					OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "  ) 
					AND privmsgs_date = " . $inbox_info['oldest_post_time'] . " 
					AND privmsgs_to_userid = " . $usertodata['user_id'];
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete your oldest privmsgs', '', __LINE__, __FILE__, $sql);
			}
		}
	}

	$sql_info = "INSERT INTO " . PRIVMSGS_TABLE . " (privmsgs_type, privmsgs_subject, privmsgs_from_userid, privmsgs_to_userid, privmsgs_date, privmsgs_ip, privmsgs_enable_html, privmsgs_enable_bbcode, privmsgs_enable_smilies, privmsgs_attach_sig)
		VALUES (" . PRIVMSGS_NEW_MAIL . ", '" . str_replace("\'", "''", $bpm_subject) . "', " . $swpm_config['bpm_userid'] . ", " . $usertodata['user_id'] . ", $msg_time, '$user_ip', 0, 1, 1, 1)";

	if ( !($result = $db->sql_query($sql_info, BEGIN_TRANSACTION)) )
	{
		message_die(GENERAL_ERROR, "Could not insert private message sent info.", "", __LINE__, __FILE__, $sql_info);
	}

	$privmsg_sent_id = $db->sql_nextid();

	$sql = "INSERT INTO " . PRIVMSGS_TEXT_TABLE . " (privmsgs_text_id, privmsgs_bbcode_uid, privmsgs_text)
		VALUES ($privmsg_sent_id, '" . $bbcode_uid . "', '" . str_replace("\'", "''", $bpm_message) . "')";

	if ( !$db->sql_query($sql, END_TRANSACTION) )
	{
		message_die(GENERAL_ERROR, "Could not insert/update private message sent text.", "", __LINE__, __FILE__, $sql_info);
	}

	// Add to the users new pm counter
	$sql = "UPDATE " . USERS_TABLE . "
		SET user_new_privmsg = user_new_privmsg + 1, user_last_privmsg = '9999999999'
		WHERE user_id = " . $usertodata['user_id']; 
	if ( !$status = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, 'Could not update private message new/read status for user', '', __LINE__, __FILE__, $sql);
	}

	if ( $send_email && $usertodata['user_notify_pm'] && !empty($usertodata['user_email']) && $usertodata['user_active'] )
	{
		$email_headers = 'From: ' . $board_config['board_email'] . "\nReturn-Path: " . $board_config['board_email'] . "\r\n";

		$script_name = preg_replace('/^\/?(.*?)\/?$/', "\\1", trim($board_config['script_path']));
		$script_name = ( $script_name != '' ) ? $script_name . '/privmsg.'.$phpEx : 'privmsg.'.$phpEx;
		$server_name = trim($board_config['server_name']);
		$server_protocol = ( $board_config['cookie_secure'] ) ? 'https://' : 'http://';
		$server_port = ( $board_config['server_port'] <> 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/';

		include($phpbb_root_path . 'includes/emailer.'.$phpEx);
		$emailer = new emailer($board_config['smtp_delivery']);
			
		$emailer->use_template('privmsg_notify', $usertodata['user_lang']);
		$emailer->extra_headers($email_headers);
		$emailer->email_address($usertodata['user_email']);
		$emailer->set_subject(); //$lang['Notification_subject']
			
		$emailer->assign_vars(array(
			'USERNAME' => $usertodata['username'], 
			'SITENAME' => $board_config['sitename'],
			'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']), 

			'U_INBOX' => $server_protocol . $server_name . $server_port . $script_name . '?folder=inbox')
		);

		$emailer->send();
		$emailer->reset();
	}

	return;
}
// end bpm mod
#
#-----[ OPEN ]------------------------------------------------
#
index.php
#
#-----[ FIND ]------------------------------------------------
#
				$birthday_today_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,'; 
# 
#-----[ BEFORE, ADD ]------------------------------------------ 
#
				// START Birthday Mail Extension & bpm mod
				{
					$sql = "SELECT *
						FROM " . WPM;
					if(!$result = $db->sql_query($sql))
					{
						message_die(GENERAL_ERROR, "", "", __LINE__, __FILE__, $sql);
					}
					else
					{
						while($row = $db->sql_fetchrow($result))
						{
							$swpm_config[$row['name']] = $row['value'];
						}
					}
					if($swpm_config['active_bpm'])
					{
						$bpm_subject = str_replace("[username]", $username, $swpm_config['bpm_subject']);
						$bpm_subject = str_replace("[age]", $user_age, $bpm_subject);
						$bpm_subject = str_replace("[sitename]", $board_config['sitename'], $bpm_subject);
						$bpm_message = str_replace("[username]", $username, $swpm_config['bpm_message']);
						$bpm_message = str_replace("[age]", $user_age, $bpm_message);
						$bpm_message = str_replace("[sitename]", $board_config['sitename'], $bpm_message);

						bpm_send_pm($user_id, $bpm_subject, $bpm_message, 1);
						}
					}
					if($swpm_config['active_bpmmail'])
					{
						$sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = " . $userdata['user_id'];
						if ( !($result = $db->sql_query($sql)) )
						{
							message_die(GENERAL_ERROR, "", "", __LINE__, __FILE__, $sql);
						}
						while( $row = $db->sql_fetchrow($result) )
						{
							$bd_mail = intval($row['user_email']);
						}
						$sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = $user_id";
						if ( !($result = $db->sql_query($sql)) )
						{
							message_die(GENERAL_ERROR, "", "", __LINE__, __FILE__, $sql);
						}
						while ($row = $db->sql_fetchrow($result))
							$emailer->from($board_config['board_email']); 
							$emailer->replyto($board_config['board_email']); 
							$emailer->email_address(trim($row['user_email'])); 
							$emailer->use_template("birthday", $row['user_lang']);
							$emailer->set_subject($bpm_subject);
							$emailer->set_message($bpm_message);
							$bpm_subject = str_replace("[username]", $username, $swpm_config['bpm_subject']);
							$bpm_subject = str_replace("[age]", $user_age, $bpm_subject);
							$bpm_subject = str_replace("[sitename]", $board_config['sitename'], $bpm_subject);
							$bpm_message = str_replace("[username]", $username, $swpm_config['bpm_message']);
							$bpm_message = str_replace("[age]", $user_age, $bpm_message);
							$bpm_message = str_replace("[sitename]", $board_config['sitename'], $bpm_message);
							$emailer->assign_vars(array(
								'MESSAGE' => str_replace($bpm_message),
								'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $row['username']), 0, 25)),
								'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']))
								);
							$emailer->send();
							$emailer->reset();
					}
#
#-----[ COPY ]------------------------------------------------
#
copy root/english/birthday.tpl to language/lang_english/email/birthday.tpl
copy root/admin_bpm.php to admin/admin_bpm.php
copy root/bpm_body.tpl to templates/subSilver/admin/bpm_body.tpl
copy root/english/lang_admin_bpm.php to language/lang_english/lang_admin_bpm.php
copy root/dutch/lang_admin_bpm.php to language/lang_dutch/lang_admin_bpm.php


# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
#

#sugestion code for removal of the section of the birthday mod in your board config

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

#
#-----[ FIND, DELETE ]------------------------------------------------
#
$birthday_greeting_yes = ( $new['birthday_greeting'] ) ? "checked=\"checked\"" : "";
$birthday_greeting_no = ( !$new['birthday_greeting'] ) ? "checked=\"checked\"" : "";

#
#-----[ FIND, DELETE ]------------------------------------------------
#
	"BIRTHDAY_GREETING_YES" => $birthday_greeting_yes,
	"BIRTHDAY_GREETING_NO" => $birthday_greeting_no,
#
#-----[ OPEN ]------------------------------------------------
#
templates/subSilver/admin/board_config_body.tpl

#
#-----[ FIND,DELETE ]------------------------------------------------
#
	<tr>
		<td class="row1">{L_ENABLE_BIRTHDAY_GREETING}<br /><span class="gensmall">{L_BIRTHDAY_GREETING_EXPLAIN}</span></td>
		<td class="row2"><input type="radio" name="birthday_greeting" value="1" {BIRTHDAY_GREETING_YES} /> {L_YES}&nbsp;&nbsp;<input type="radio" name="birthday_greeting" value="0" {BIRTHDAY_GREETING_NO} /> {L_NO}</td>
	</tr>
#
#-----[ OPEN ]------------------------------------------------
#
language/lang_english/lang_admin.php

#
#-----[ FIND,DELETE ]------------------------------------------------
#
$lang['Enable_birthday_greeting'] = 'Enable birthday greetings';
$lang['Birthday_greeting_expain'] = 'Users who have submitted a birthday can have a birthday greeting, when thy visit the board';
Если я сказал: "Не брал!", значит не отдам.
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 10 месяцев
Откуда: Бердск

Сообщение crash »

Zlodey
ваш мод скачивайте в первой ссылке, не обязщательно его показывать.
Какие моды у вас стоят?
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Аватара пользователя
Zlodey
phpBB 1.4.0
Сообщения: 36
Стаж: 18 лет 5 месяцев
Откуда: Кривой Рог

Сообщение Zlodey »

crash
так это же и есть ваш мод, а не мой, там и скачал!!!
Если я сказал: "Не брал!", значит не отдам.
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 10 месяцев
Откуда: Бердск

Сообщение crash »

Zlodey писал(а):так это же и есть ваш мод,а
это не мой
Zlodey писал(а):MOD Author: Duvelske
Zlodey
ты меян честно достал. Ты отвечать на вопросы будешь или мы так и будем я задаю, а ты пургу несешь?
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса

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