Нужен попап для определенного IP

Идеи для расширения функциональности phpBB 2.0.x
Alexgraf

Нужен попап для определенного IP

Сообщение Alexgraf »

Не встречался ли кому-либо мод, который при заходе человека с определенного IP показывал бы ему какое-либо сообщение во всплывающем окне (типа как "новое личное сообщение"). Если нет, не подскажете какие моды можно "скрестить" или из каких что выдрать что бы такую возможность осуществить ? (сам не программер)
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Зарегистрирован: 20 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

Alexgraf
проблема в одном... у многих динамические ip адреса... но в принципе можно написать... уверен в том, что сообщение будет доставляться адресату? выводим конкретному ip или по маске?
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Alexgraf

Сообщение Alexgraf »

[R: R@m$e$ :U]
у многих динамические ip адреса...
Согласен, но меня это не пугает :)
уверен в том, что сообщение будет доставляться адресату?
Уверен, за той циской, что меня интересует, это сообщение нужно будет всем. Более того, я посмотрел своих пользователей (их у меня совсем чуть-чуть), у всех разные айпи...
выводим конкретному ip или по маске?
вполне устроит конкретному...
но в принципе можно написать...
Буду очень признателен...
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Зарегистрирован: 20 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

Alexgraf
я так понял это на локалке... =) ну тогда щас напишу =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Зарегистрирован: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Alexgraf
Опять popup... Не эффективны они...
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Зарегистрирован: 20 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

Xpert
я конечно тоже так думаю... но подумай лучше... ведь не тебе его видеть =)

Alexgraf
лови набросок... вроде работает...

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

############################################################## 
## MOD Title: Message for IP 
## MOD Author: [R: R@m$e$ :U] < Ramses@FromRU.com > (Ramses) http://www.phpbbguru.net
## MOD Description: Displays a message for defined IP
## MOD Version: 1.0.0 
## 
## Installation Level: Easy
## Installation Time: ~5 Minutes 
## Files To Edit: 
##      includes/page_header.php
##      templates/subSilver/overall_header.tpl
##      language/lang_english/lang_admin.php
##      language/lang_russian/lang_admin.php
## Included Files: 
##      root/db_update.php 
##      root/msgip.php
##      root/admin/admin_msgip.php
##      root/templates/subSilver/admin/msgip_add.tpl
##      root/templates/subSilver/admin/msgip_body.tpl
##      root/templates/subSilver/admin/msgip_edit.tpl
##      root/templates/subSilver/msgip_body.tpl
############################################################## 
## For Security Purposes, Please Check: http://www.phpbbguru.net/mods/ for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. 
############################################################## 
## Author Notes: 
##      Find bug? Please write me...
## 
##      Run SQL-commands in phpMyAdmin or execute root/db_update.php
## 
############################################################## 
## MOD History: 
## 
##   2005-03-08 - Version 1.0.0 
##      - First release... =))) 
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

# 
#-----[ SQL ]------------------------------------------ 
# 
CREATE TABLE `phpbb_messages` (
`msg_id` MEDIUMINT( 8 ) DEFAULT '0' NOT NULL  AUTO_INCREMENT ,
`msg_ip` CHAR( 8 ) NOT NULL ,
`msg_text` TEXT NOT NULL ,
PRIMARY KEY ( `msg_id` ) 
);

# 
#-----[ COPY ]------------------------------------------ 
# 

root/msgip.php to msgip.php
root/admin/admin_msgip.php to admin/admin_msgip.php
root/templates/subSilver/admin/msgip_add.tpl to templates/subSilver/admin/msgip_add.tpl
root/templates/subSilver/admin/msgip_body.tpl to templates/subSilver/admin/msgip_body.tpl
root/templates/subSilver/admin/msgip_edit.tpl to templates/subSilver/admin/msgip_edit.tpl
root/templates/subSilver/msgip_body.tpl to templates/subSilver/msgip_body.tpl

# 
#-----[ OPEN ]------------------------------------------ 
# 

includes/page_header.php

# 
#-----[ FIND ]------------------------------------------ 
# 

	'U_GROUP_CP' => append_sid('groupcp.'.$phpEx),

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

	// [start] Message for IP
	'U_MSGIP' => append_sid('msgip.'.$phpEx),
	// [end] Message for IP

# 
#-----[ FIND ]------------------------------------------ 
# 

//
// Login box?
//
if ( !$userdata['session_logged_in'] )
{
	$template->assign_block_vars('switch_user_logged_out', array());
}
else
{
	$template->assign_block_vars('switch_user_logged_in', array());

	if ( !empty($userdata['user_popup_pm']) )
	{
		$template->assign_block_vars('switch_enable_pm_popup', array());
	}
}

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

// [start] Message for IP
$sql = "SELECT *
	FROM " . MSGIP_TABLE . "
	WHERE msg_ip = '" . encode_ip($client_ip) . "'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if ( !empty($row['msg_ip']) )
{
	$template->assign_block_vars('switch_enable_msgip_popup', array());
}
// [end] Message for IP

# 
#-----[ OPEN ]------------------------------------------ 
# 

templates/subSilver/overall_header.tpl

# 
#-----[ FIND ]------------------------------------------ 
# 

</head>

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
# 

<!-- BEGIN switch_enable_msgip_popup -->
<script language="Javascript" type="text/javascript">
<!--
	window.open('{U_MSGIP}', '_phpbbprivmsg', 'HEIGHT=225,resizable=yes,WIDTH=400');;
//-->
</script>
<!-- END switch_enable_msgip_popup -->

# 
#-----[ OPEN ]------------------------------------------ 
# 

language/lang_english/lang_admin.php

# 
#-----[ FIND ]------------------------------------------ 
# 

?>

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
# 

// [start] Message for IP
$lang['Msgip'] = 'Message for IP';
$lang['Msgip_title'] = 'Message Text for IP';
$lang['Msgip_title_text'] = 'Administrating message which displays for defined IP';
$lang['Msgip_id'] = 'ID';
$lang['Msgip_ip'] = 'IP';
$lang['Msgip_text'] = 'Message';
$lang['Msgip_add'] = 'Add';
$lang['Msgip_edit'] = 'Edit';
$lang['Msgip_add_success'] = 'Message was successfully added';
$lang['Msgip_edit_success'] = 'Message was successfully edited';
$lang['Msgip_delete_success'] = 'Message was successfully deleted';
$lang['Click_return_msgipadmin'] = '%sReturn to Message for IP%s';
// [end] Message for IP

# 
#-----[ OPEN ]------------------------------------------ 
# 

language/lang_russian/lang_admin.php

# 
#-----[ FIND ]------------------------------------------ 
# 

?>

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
# 

// [start] Message for IP
$lang['Msgip'] = 'Текст для IP';
$lang['Msgip_title'] = 'Текст для IP';
$lang['Msgip_title_text'] = 'Администрирование текста показываемого для определенного IP-адреса';
$lang['Msgip_id'] = 'ID';
$lang['Msgip_ip'] = 'IP';
$lang['Msgip_text'] = 'Текст сообщения';
$lang['Msgip_add'] = 'Добавить';
$lang['Msgip_edit'] = 'Изменить';
$lang['Msgip_add_success'] = 'Сообщение было успешно добавлено';
$lang['Msgip_edit_success'] = 'Сообщение было успешно изменено';
$lang['Msgip_delete_success'] = 'Сообщение было успешно удалено';
$lang['Click_return_msgipadmin'] = '%sВернуться к администрированию текста для IP%s';
// [end] Message for IP

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM
admin/admin_msgip.php

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

<?php
/***************************************************************************
*                             admin_msgip.php
*                              -------------------
*     begin                : Tue Feb 08, 2005
*     copyright            : (C) 2005 [R: R@m$e$ :U]
*     email                : Ramses@FromRU.com
*
*     $Id: admin_msgip.php,v 1.0.2 2005/03/08 12:13:07 ramses Exp $
*
****************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', true);

if ( !empty($setmodules) )
{
	$filename = basename(__FILE__);
	$module['General']['Msgip'] = $filename;

	return;
}

//
// Load default header
//
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);

//
// Get the message ID
//
if( isset($HTTP_GET_VARS['msg']) || isset($HTTP_POST_VARS['msg']) )
{
	$msg_id = ( isset($HTTP_POST_VARS['msg']) ) ? $HTTP_POST_VARS['msg'] : $HTTP_GET_VARS['msg'];

	if( $msg_id == -1 )
	{
		$msg_sql = '';
	}
	else
	{
		$msg_id = intval($msg_id);
		$msg_sql = "msg_id = $msg_id";
	}
}
else
{
	$msg_id = '';
	$msg_sql = '';
}
//
// Get a poems
//
$sql = "SELECT *
	FROM " . MSGIP_TABLE . "
	$forum_sql
	ORDER BY msg_ip ASC";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not obtain messages', '', __LINE__, __FILE__, $sql);
}

$msgs_rows = array();
while( $row = $db->sql_fetchrow($result) )
{
	$msgs_rows[] = $row;
}

if( empty($HTTP_GET_VARS['msg']) )
{
	if ( isset($HTTP_GET_VARS['add_msg']) || isset($HTTP_POST_VARS['add_msg']) )
	{
		$template->set_filenames(array(
			'body' => 'admin/msgip_add.tpl')
		);

		//
		// Assign the template variables.
		//
		$template->assign_vars(array(
			"L_IP" => $lang['Msgip_ip'],
			"L_TEXT" => $lang['Msgip_text'],
			"L_ADD_MSG" => $lang['Msgip_add'])
		);
	}
	else if ( isset($HTTP_GET_VARS['create']) || isset($HTTP_POST_VARS['create']) )
	{
		if ( isset($HTTP_GET_VARS['msg_ip']) || isset($HTTP_POST_VARS['msg_ip']) )
		{
			$msg_ip = ( isset($HTTP_GET_VARS['msg_ip']) ) ? $HTTP_GET_VARS['msg_ip'] : $HTTP_POST_VARS['msg_ip'];
		}

		if ( isset($HTTP_GET_VARS['msg_text']) || isset($HTTP_POST_VARS['msg_text']) )
		{
			$msg_text = ( isset($HTTP_GET_VARS['msg_text']) ) ? $HTTP_GET_VARS['msg_text'] : $HTTP_POST_VARS['msg_text'];
		}

		$msg_ip = htmlspecialchars($msg_ip);
		$msg_text = htmlspecialchars($msg_text);
		$sql = "INSERT INTO " . MSGIP_TABLE . " (msg_ip, msg_text)
			VALUES('" . encode_ip(str_replace("\'", "''", $msg_ip)) . "', '" . str_replace("\'", "''", $msg_text) . "')";

		if( $sql != '' )
		{
			$result = $db->sql_query($sql);
			if( !$result )
			{
				message_die(GENERAL_ERROR, "Couldn't create message!", "", __LINE__, __FILE__, $sql);
			}
		}

		$message = $lang['Msgip_add_success'] . "

" . sprintf($lang['Click_return_msgipadmin'], "<a href=\"" . append_sid("admin_msgip.$phpEx") . "\">", "</a>") . "

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

		message_die(GENERAL_MESSAGE, $message);	}
	else
	{
		$template->set_filenames(array(
			'body' => 'admin/msgip_body.tpl')
		);

		for($i = 0; $i < count($msgs_rows); $i++)
		{
			$id = $msgs_rows[$i]['msg_id'];
			$msg_ip = decode_ip($msgs_rows[$i]['msg_ip']);
			$msg_text = $msgs_rows[$i]['msg_text'];
			$edit = append_sid("admin_msgip.$phpEx?msg=$id&action=edit");
			$delete = append_sid("admin_msgip.$phpEx?msg=$id&delete");

			$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
			$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

			//
			// Assign the template variables.
			//
			$template->assign_block_vars("msgs", array(
				"ROW_COLOR" => "#" . $row_color,
				"ROW_CLASS" => $row_class,
				"IP" => $msg_ip,
				"TEXT" => $msg_text,
				"ID" => $id,

				"U_EDIT" => $edit,
				"U_DELETE" => $delete)
			);
		}
	}
}
else
{
	if ( isset($HTTP_GET_VARS['update']) || isset($HTTP_POST_VARS['update']) )
	{
		if ( isset($HTTP_GET_VARS['msg_ip']) || isset($HTTP_POST_VARS['msg_ip']) )
		{
			$msg_ip = ( isset($HTTP_GET_VARS['msg_ip']) ) ? $HTTP_GET_VARS['msg_ip'] : $HTTP_POST_VARS['msg_ip'];
		}

		if ( isset($HTTP_GET_VARS['msg_text']) || isset($HTTP_POST_VARS['msg_text']) )
		{
			$msg_text = ( isset($HTTP_GET_VARS['msg_text']) ) ? $HTTP_GET_VARS['msg_text'] : $HTTP_POST_VARS['msg_text'];
		}

		$msg_ip = htmlspecialchars($msg_ip);
		$msg_text = htmlspecialchars($msg_text);
		$sql = "UPDATE " . MSGIP_TABLE . " 
			SET msg_ip = '" . encode_ip(str_replace("\'", "''", $msg_ip)) . "', msg_text = '" . str_replace("\'", "''", $msg_text) . "' 
			WHERE msg_id = '" . $msg_id . "'";

		if( $sql != '' )
		{
			$result = $db->sql_query($sql);
			if( !$result )
			{
				message_die(GENERAL_ERROR, "Couldn't update message!", "", __LINE__, __FILE__, $sql);
			}
		}

		$message = $lang['Msgip_edit_success'] . "

" . sprintf($lang['Click_return_msgipadmin'], "<a href=\"" . append_sid("admin_msgip.$phpEx") . "\">", "</a>") . "

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

		message_die(GENERAL_MESSAGE, $message);
	}
	else if ( isset($HTTP_GET_VARS['delete']) || isset($HTTP_POST_VARS['delete']) )
	{
		$sql = "DELETE 
			FROM " . MSGIP_TABLE . "
			WHERE msg_id = " . $msg_id;
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, "Couldn't delete message", "", __LINE__, __FILE__, $sql);
		}

		$message = $lang['Msgip_delete_success'] . "

" . sprintf($lang['Click_return_msgipadmin'], "<a href=\"" . append_sid("admin_msgip.$phpEx") . "\">", "</a>") . "

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

		message_die(GENERAL_MESSAGE, $message);
	}
	else
	{
		$msg_id = intval($HTTP_GET_VARS['msg']);
		
		$template->set_filenames(array(
			'body' => 'admin/msgip_edit.tpl')
		);

		$action = append_sid("admin_msgip.$phpEx?msg=$msg_id");

		$sql = "SELECT msg_ip, msg_text
			FROM " . MSGIP_TABLE . "
			WHERE msg_id = " . $msg_id;
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, "Couldn't get message", "", __LINE__, __FILE__, $sql);
		}

		$msg = $db->sql_fetchrow($result);

		//
		// Assign the template variables.
		//
		$template->assign_vars(array(
			"IP" => decode_ip($msg['msg_ip']),
			"TEXT" => $msg['msg_text'],

			"L_IP" => $lang['Msgip_ip'],
			"L_TEXT" => $lang['Msgip_text'],
			"L_EDIT_MSG" => $lang['Msgip_edit'])
		);
	}
}
//
// Assign the template variables.
//
$template->assign_vars(array(
	"L_MSG_TITLE" => $lang['Msgip_title'],
	"L_MSG_TEXT" => $lang['Msgip_title_text'],
	"L_ADD" => $lang['Msgip_add'],
	"L_ID" => $lang['Msgip_id'],
	"L_IP" => $lang['Msgip_ip'],
	"L_TEXT" => $lang['Msgip_text'],
	"L_ACTION" => $lang['Action'],
	"L_EDIT" => $lang['Edit'], 
	"L_DELETE" => $lang['Delete'],

	"S_MSG_ACTION" => ($action) ? $action : append_sid("admin_msgip.$phpEx"))
);
//
// Actually output the page here.
//
$template->pparse('body');

include('./page_footer_admin.'.$phpEx);

?>
db_update.php

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

<? 
######################################################### 
## SQL commands to phpBB2 
## Author: Niels Chr. Rшd 
## Nickname: Niels Chr. Denmark 
## Email: ncr@db9.dk 
## 
## Ver 1.0.7 
## 
## phpBB2 database update script for mods 
## this file is intended to use with phpBB2, when installing mods 
## after so you may delete this file, but only admin can use so it really doesen't matter 
## The script will look what prefix you are using, and use the existing DB defined by congig.php 
## The execution of this script's included SQL is harmless, so you can run it as meny times you like 
## note, though that the users last visit, will be set back to his/her last login, 
## but that is a minor cosmetic isue, that will correct it self next time the use  logs in 
## 
## the following example are from my mods, and you can add some self, for other mods if you like 
## you will after execution get a list over those commands that are run with succes and those with warnings ! 
## delete the sample lines if you are using it only for other mods 
## 
######################################################### 

define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 
include($phpbb_root_path . 'includes/functions_selects.'.$phpEx); 

################################################################################################### 
## 
## put the SQL commands below here, the SQL commands listed below are only exampels, substitude them with the one you need ## 
## 
################################################################################################### 
$sql=array( 
'CREATE TABLE ' . MSGIP_TABLE . ' (
`msg_id` MEDIUMINT( 8 ) DEFAULT `0` NOT NULL  AUTO_INCREMENT ,
`msg_ip` CHAR( 8 ) NOT NULL ,
`msg_text` TEXT NOT NULL ,
PRIMARY KEY ( `msg_id` ) 
)' 
); 

$mods = array ( 
'Message for IP', 

); 

############################################### Do not change anything below this line ####################################### 

// 
// Start session management 
// 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 
// 
// End session management 
// 

if ($userdata['user_level']!=ADMIN) 
      message_die(GENERAL_ERROR, "You are not Authorised to do this"); 
$n=0; 
$message="<b>This list is a result of the SQL queries needed for mod</b><br/><br/>"; 
while($sql[$n]) 
{ 
   $message .= ($mods[$n-1] != $mods[$n]) ? '<p><b><font size=3>'.$mods[$n].'</font></b><br/>' : ''; 
   if(!$result = $db->sql_query($sql[$n])) 
   $message .= '<b><font color=#FF0000>[Already added]</font></b> line: '.($n+1).' , '.$sql[$n].'
'; 
   else $message .='<b><font color=#0000fF>[Added/Updated]</font></b> line: '.($n+1).' , '.$sql[$n].'
'; 
   $n++; 
} 
 message_die(GENERAL_MESSAGE, $message); 
?>
msgip.php

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

<?php
/***************************************************************************
 *                                msgip.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: msgip.php,v 1.0.0 2005/03/08 11:26:10 ramses Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_PROFILE);
init_userprefs($userdata);
//
// End session management
//

// session id check
if (!empty($HTTP_POST_VARS['sid']) || !empty($HTTP_GET_VARS['sid']))
{
	$sid = (!empty($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : $HTTP_GET_VARS['sid'];
}
else
{
	$sid = '';
}

$gen_simple_header = TRUE;

include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
	'body' => 'msgip_body.tpl')
);

$sql = "SELECT *
	FROM " . MSGIP_TABLE . "
	WHERE msg_ip = '" . encode_ip($client_ip) . "'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$l_message = str_replace("\n", '
', $row['msg_text']);

$template->assign_vars(array(
	'L_CLOSE_WINDOW' => $lang['Close_window'], 
	'L_MESSAGE' => $l_message)
);

$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
templates/subSilver/msgip_body.tpl

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

  <table width="100%" border="0" cellspacing="0" cellpadding="10">
	<tr>
	  <td>
		<table width="100%" border="0" cellspacing="1" cellpadding="4" class="forumline">
		  <tr> 
			<td valign="top" class="row1" align="center">
<span class="gen">{L_MESSAGE}</span>

<span class="genmed"><a href="javascript:window.close();" class="genmed">{L_CLOSE_WINDOW}</a></span>

</td>
		  </tr>
		</table>
	  </td>
	</tr>
  </table>
templates/subSilver/admin/msgip_add.tpl

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

<h1>{L_MSG_TITLE}</h1>

<P>{L_MSG_TEXT}</p>

<form method="post" action="{S_MSG_ACTION}"><table class="forumline" cellspacing="1" cellpadding="4" border="0" align="center">
	<tr>
		<th class="thHead" colspan="2">{L_MSGIP_ADD}</th>
	</tr>
	<tr>
		<td class="row2">{L_IP}</td>
		<td class="row2"><input class="post" type="text" name="msg_ip" value="" /></td>
	</tr>
	<tr>
		<td class="row2">{L_TEXT}</td>
		<td class="row2"><textarea name="msg_text" rows="15" cols="35" wrap="virtual" style="width:250px" tabindex="3" class="post"></textarea></td>
	</tr>
	<tr>
		<td class="catBottom" colspan="2" align="center"><input class="mainoption" type="submit" name="create" value="{L_ADD_MSG}" /></td>
	</tr>
</table></form>
templates/subSilver/admin/msgip_body.tpl

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

<h1>{L_MSG_TITLE}</h1>

<P>{L_MSG_TEXT}</p>

<form method="post" action="{S_MSG_ACTION}"><table cellspacing="1" cellpadding="4" border="0" align="center" class="forumline">
	<tr>
		<th class="thCornerL">{L_ID}</th>
		<th class="thTop">{L_IP}</th>
		<th class="thTop">{L_TEXT}</th>
		<th colspan="2" class="thCornerR">{L_ACTION}</th>
	</tr>
	<!-- BEGIN msgs -->
	<tr>
		<td class="{msgs.ROW_CLASS}" align="center">{msgs.ID}</td>
		<td class="{msgs.ROW_CLASS}" align="center"><a href="{msgs.U_EDIT}">{msgs.IP}</a></td>
		<td class="{msgs.ROW_CLASS}" align="center">{msgs.TEXT}</td>
		<td class="{msgs.ROW_CLASS}"><a href="{msgs.U_EDIT}">{L_EDIT}</a></td>
		<td class="{msgs.ROW_CLASS}"><a href="{msgs.U_DELETE}">{L_DELETE}</a></td>
	</tr>
	<!-- END msgs -->
	<tr>
		<td colspan="5" align="center" class="catBottom"><input type="submit" name="add_msg" value="{L_ADD}" class="mainoption" /></td>
	</tr>
</table></form>
templates/subSilver/admin/msgip_edit.tpl

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

<h1>{L_MSG_TITLE}</h1>

<P>{L_MSG_TEXT}</p>

<form method="post" action="{S_MSG_ACTION}"><table class="forumline" cellspacing="1" cellpadding="4" border="0" align="center">
	<tr>
		<th class="thHead" colspan="2">{L_MSG_EDIT}</th>
	</tr>
	<tr>
		<td class="row2">{L_IP}</td>
		<td class="row2"><input class="post" type="text" name="msg_ip" value="{IP}" /></td>
	</tr>
	<tr>
		<td class="row2">{L_TEXT}</td>
		<td class="row2"><textarea name="msg_text" rows="15" cols="35" wrap="virtual" style="width:250px" tabindex="3" class="post">{TEXT}</textarea></td>
	</tr>
	<tr>
		<td class="catBottom" colspan="2" align="center"><input class="mainoption" type="submit" name="update" value="{L_EDIT_MSG}" /></td>
	</tr>
</table></form>
вроде ни чего не забыл...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Alexgraf

Сообщение Alexgraf »

[R: R@m$e$ :U]
Большое человеческое спасибо !!!
Удалось поставить на живой форум, вроде работает... :)
Есть небольшие замечания -
db_update.php не создаёт MSGIP_TABLE, хотя говорит что добавил :(

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

This list is a result of the SQL queries needed for mod
Message for IP
[Already added] line: 1 , CREATE TABLE MSGIP_TABLE ( `msg_id` MEDIUMINT( 8 ) DEFAULT `0` NOT NULL AUTO_INCREMENT , `msg_ip` CHAR( 8 ) NOT NULL , `msg_text` TEXT NOT NULL , PRIMARY KEY ( `msg_id` ) ) 
в тексте мода, такая конструкция :

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

CREATE TABLE `phpbb_messages` (
`msg_id` MEDIUMINT( 8 ) DEFAULT '0' NOT NULL  AUTO_INCREMENT ,
`msg_ip` CHAR( 8 ) NOT NULL ,
`msg_text` TEXT NOT NULL ,
PRIMARY KEY ( `msg_id` )
);
заработало после выполнения в PhpMyAdmin вот такого запроса :

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

CREATE TABLE `MSGIP_TABLE` (
`msg_id` MEDIUMINT( 8 ) DEFAULT '0' NOT NULL  AUTO_INCREMENT ,
`msg_ip` CHAR( 8 ) NOT NULL ,
`msg_text` TEXT NOT NULL ,
PRIMARY KEY ( `msg_id` )
);
почему-то не работает перевод строки в выводимом тексте

так же, в админ панеле пишется в одну строку следующее

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

Сообщение было успешно изменено Вернуться к администрированию текста для IP Вернуться на главную страницу администраторского раздела
Как это подправить ???
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Зарегистрирован: 20 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

Alexgraf
щас найду и исправлю... ;)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Alexgraf

Сообщение Alexgraf »

И еще один моментик, хотелось бы, что бы в пределах одной сессии или там какого-то определенного времени выскакивал всего один попап...
А по маске IP задавать можно ???
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Зарегистрирован: 20 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

Alexgraf
=)) ну на предел одной сессии напишу... а определенное время расписывать больше ;)
по маске - нет...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Alexgraf

Сообщение Alexgraf »

И еще - после удаления записи в админке, она заменяется на 0.0.0.0 т.е. если было забито 5 айпишников, то после их удаления, в админке останется 5 записей 0.0.0.0
Кроме этого, я сделал попап на свой айпи, окошко исправно открывалось, потом запись о своём айпи удалил, на индекс.пхп окошко открываться перестало, но стало (или осталось) на постинг.пхп выполняя SQL запросов: 6 :(
PS и на аплоад_пик.пхп (фотоальбом) тоже открываетя пустое окошко...
может в оверал_хидер что-то поправить надо ???
PSS О, как ! После замены айпи 0.0.0.0 на 1.1.1.1 открываться перестало
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Зарегистрирован: 20 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

Alexgraf
в обновленной версии окошко появляется только на каждой странице в течении минуты после захода... пока нет времени писать нормальную защиту... но как только напишу, так сразу выложу... ;)
с удалением у меня проблем нет... странно... попробуй обновленное...
Message for IP 1.0.3.txt

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

############################################################## 
## MOD Title: Message for IP 
## MOD Author: [R: R@m$e$ :U] < Ramses@FromRU.com > (Ramses) http://www.phpbbguru.net
## MOD Description: Displays a message for defined IP
## MOD Version: 1.0.3 
## 
## Installation Level: Easy
## Installation Time: ~5 Minutes 
## Files To Edit: 
##      includes/page_header.php
##      templates/subSilver/overall_header.tpl
##      language/lang_english/lang_admin.php
## Included Files: 
##      root/db_update.php 
##      root/msgip.php
##      root/admin/admin_msgip.php
##      root/templates/subSilver/admin/msgip_add.tpl
##      root/templates/subSilver/admin/msgip_body.tpl
##      root/templates/subSilver/admin/msgip_edit.tpl
##      root/templates/subSilver/msgip_body.tpl
##
##      Translates/Russian 1.0.3.txt
##      Updates/Message for IP [Update from 1.0.0 to 1.0.3].txt
##      Updates/Message for IP [Update from 1.0.2 to 1.0.3].txt
############################################################## 
## For Security Purposes, Please Check: http://www.phpbbguru.net/mods/ for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. 
############################################################## 
## Author Notes: 
##      Find bug? Please write me...
## 
##      Run SQL-commands in phpMyAdmin or execute root/db_update.php
## 
############################################################## 
## MOD History: 
## 
##   2005-03-10 - Version 1.0.3 
##      - Fix possible error with already sent headers
##
##   2005-03-09 - Version 1.0.2 
##      - Only one message in from logging + 1 minute...
##
##   2005-03-08 - Version 1.0.1 
##      - Remake install 
## 
##   2005-03-08 - Version 1.0.0 
##      - First release... =))) 
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

# 
#-----[ SQL ]------------------------------------------ 
# 
CREATE TABLE `phpbb_messages` (
`msg_id` MEDIUMINT( 8 ) DEFAULT '0' NOT NULL  AUTO_INCREMENT ,
`msg_ip` CHAR( 8 ) NOT NULL ,
`msg_text` TEXT NOT NULL ,
PRIMARY KEY ( `msg_id` ) 
);

# 
#-----[ COPY ]------------------------------------------ 
# 

root/msgip.php to msgip.php
root/admin/admin_msgip.php to admin/admin_msgip.php
root/templates/subSilver/admin/msgip_add.tpl to templates/subSilver/admin/msgip_add.tpl
root/templates/subSilver/admin/msgip_body.tpl to templates/subSilver/admin/msgip_body.tpl
root/templates/subSilver/admin/msgip_edit.tpl to templates/subSilver/admin/msgip_edit.tpl
root/templates/subSilver/msgip_body.tpl to templates/subSilver/msgip_body.tpl

# 
#-----[ OPEN ]------------------------------------------ 
# 

includes/page_header.php

# 
#-----[ FIND ]------------------------------------------ 
# 

	'U_GROUP_CP' => append_sid('groupcp.'.$phpEx),

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

	// [start] Message for IP 1.0.3
	'U_MSGIP' => append_sid('msgip.'.$phpEx),
	// [end] Message for IP 1.0.3

# 
#-----[ FIND ]------------------------------------------ 
# 

//
// Login box?
//
if ( !$userdata['session_logged_in'] )
{
	$template->assign_block_vars('switch_user_logged_out', array());
}
else
{
	$template->assign_block_vars('switch_user_logged_in', array());

	if ( !empty($userdata['user_popup_pm']) )
	{
		$template->assign_block_vars('switch_enable_pm_popup', array());
	}
}

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

// [start] Message for IP 1.0.3
$msgiptime = time() - 60;
if ($msgiptime < $userdata['user_lastvisit'] && !($gen_simple_header))
{
	$sql = "SELECT *
		FROM " . MSGIP_TABLE . "
		WHERE msg_ip = '" . encode_ip($client_ip) . "'";
	$result = $db->sql_query($sql);
	$row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);
	if ( !empty($row['msg_ip']) )
	{
		$template->assign_block_vars('switch_enable_msgip_popup', array());
	}
}
// [end] Message for IP 1.0.3

# 
#-----[ OPEN ]------------------------------------------ 
# 

templates/subSilver/overall_header.tpl

# 
#-----[ FIND ]------------------------------------------ 
# 

</head>

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
# 

<!-- BEGIN switch_enable_msgip_popup -->
<script language="Javascript" type="text/javascript">
<!--
	window.open('{U_MSGIP}', '_phpbbprivmsg', 'HEIGHT=225,resizable=yes,WIDTH=400');;
//-->
</script>
<!-- END switch_enable_msgip_popup -->

# 
#-----[ OPEN ]------------------------------------------ 
# 

language/lang_english/lang_admin.php

# 
#-----[ FIND ]------------------------------------------ 
# 

?>

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
# 

// [start] Message for IP 1.0.3
$lang['Msgip'] = 'Message for IP';
$lang['Msgip_title'] = 'Message Text for IP';
$lang['Msgip_title_text'] = 'Administrating message which displays for defined IP';
$lang['Msgip_id'] = 'ID';
$lang['Msgip_ip'] = 'IP';
$lang['Msgip_text'] = 'Message';
$lang['Msgip_add'] = 'Add';
$lang['Msgip_edit'] = 'Edit';
$lang['Msgip_add_success'] = 'Message was successfully added';
$lang['Msgip_edit_success'] = 'Message was successfully edited';
$lang['Msgip_delete_success'] = 'Message was successfully deleted';
$lang['Click_return_msgipadmin'] = '%sReturn to Message for IP%s';
// [end] Message for IP 1.0.3

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM
Updates/Message for IP [Update from 1.0.0 to 1.0.3].txt

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

############################################################## 
## MOD Title: Message for IP [Update from 1.0.0 to 1.0.3]
## MOD Author: [R: R@m$e$ :U] < Ramses@FromRU.com > (Ramses) http://www.phpbbguru.net
## MOD Description: Displays a message for defined IP
## MOD Version: 1.0.3 
## 
## Installation Level: Easy
## Installation Time: ~1 Minutes 
## Files To Edit: 
##      includes/page_header.php
## Included Files: 
##      n/a
############################################################## 
## For Security Purposes, Please Check: http://www.phpbbguru.net/mods/ for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. 
############################################################## 
## Author Notes: 
##      Find bug? Please write me...
## 
############################################################## 
## MOD History: 
## 
##   2005-03-10 - Version 1.0.3 
##      - Fix possible error with already sent headers
##
##   2005-03-09 - Version 1.0.2 
##      - Only one message in from logging + 1 minute...
##
##   2005-03-08 - Version 1.0.1 
##      - Remake install 
## 
##   2005-03-08 - Version 1.0.0 
##      - First release... =))) 
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

# 
#-----[ OPEN ]------------------------------------------ 
# 

includes/page_header.php

# 
#-----[ FIND ]------------------------------------------ 
# 

// [start] Message for IP
$sql = "SELECT *
	FROM " . MSGIP_TABLE . "
	WHERE msg_ip = '" . encode_ip($client_ip) . "'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if ( !empty($row['msg_ip']) )
{
	$template->assign_block_vars('switch_enable_msgip_popup', array());
}
// [end] Message for IP

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 

// [start] Message for IP 1.0.3
$msgiptime = time() - 60;
if ($msgiptime < $userdata['user_lastvisit'] && !($gen_simple_header))
{
	$sql = "SELECT *
		FROM " . MSGIP_TABLE . "
		WHERE msg_ip = '" . encode_ip($client_ip) . "'";
	$result = $db->sql_query($sql);
	$row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);
	if ( !empty($row['msg_ip']) )
	{
		$template->assign_block_vars('switch_enable_msgip_popup', array());
	}
}
// [end] Message for IP 1.0.3

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM
Updates/Message for IP [Update from 1.0.2 to 1.0.3].txt

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

############################################################## 
## MOD Title: Message for IP [Update from 1.0.2 to 1.0.3]
## MOD Author: [R: R@m$e$ :U] < Ramses@FromRU.com > (Ramses) http://www.phpbbguru.net
## MOD Description: Displays a message for defined IP
## MOD Version: 1.0.3 
## 
## Installation Level: Easy
## Installation Time: ~1 Minutes 
## Files To Edit: 
##      includes/page_header.php
## Included Files: 
##      n/a
############################################################## 
## For Security Purposes, Please Check: http://www.phpbbguru.net/mods/ for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. 
############################################################## 
## Author Notes: 
##      Find bug? Please write me...
## 
############################################################## 
## MOD History: 
## 
##   2005-03-10 - Version 1.0.3 
##      - Fix possible error with already sent headers
##
##   2005-03-09 - Version 1.0.2 
##      - Only one message in from logging + 1 minute...
##
##   2005-03-08 - Version 1.0.1 
##      - Remake install 
## 
##   2005-03-08 - Version 1.0.0 
##      - First release... =))) 
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

# 
#-----[ OPEN ]------------------------------------------ 
# 

includes/page_header.php

# 
#-----[ FIND ]------------------------------------------ 
# 

// [start] Message for IP 1.0.2
$msgiptime = time() - 60;
if ($msgiptime < $userdata['user_lastvisit'])
{
	$sql = "SELECT *
		FROM " . MSGIP_TABLE . "
		WHERE msg_ip = '" . encode_ip($client_ip) . "'";
	$result = $db->sql_query($sql);
	$row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);
	if ( !empty($row['msg_ip']) )
	{
		$template->assign_block_vars('switch_enable_msgip_popup', array());
	}
}
// [start] Message for IP 1.0.2

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 

// [start] Message for IP 1.0.3
$msgiptime = time() - 60;
if ($msgiptime < $userdata['user_lastvisit'] && !($gen_simple_header))
{
	$sql = "SELECT *
		FROM " . MSGIP_TABLE . "
		WHERE msg_ip = '" . encode_ip($client_ip) . "'";
	$result = $db->sql_query($sql);
	$row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);
	if ( !empty($row['msg_ip']) )
	{
		$template->assign_block_vars('switch_enable_msgip_popup', array());
	}
}
// [end] Message for IP 1.0.3

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM
Translates/Russian 1.0.3.txt

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

############################################################## 
## MOD Title: Message for IP [Russian Translation]
## MOD Author: [R: R@m$e$ :U] < Ramses@FromRU.com > (Ramses) http://www.phpbbguru.net
## MOD Description: Displays a message for defined IP
## MOD Version: 1.0.3 
## 
## Installation Level: Easy
## Installation Time: ~1 Minutes 
## Files To Edit: 
##      includes/page_header.php
## Included Files: 
##      n/a
############################################################## 
## For Security Purposes, Please Check: http://www.phpbbguru.net/mods/ for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. 
############################################################## 
## Author Notes: 
##      Find bug? Please write me...
## 
############################################################## 
## MOD History: 
## 
##   2005-03-10 - Version 1.0.3 
##      - Fix possible error with already sent headers
##
##   2005-03-09 - Version 1.0.2 
##      - Only one message in from logging + 1 minute...
##
##   2005-03-08 - Version 1.0.1 
##      - Remake install 
## 
##   2005-03-08 - Version 1.0.0 
##      - First release... =))) 
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

# 
#-----[ OPEN ]------------------------------------------ 
# 

language/lang_russian/lang_admin.php

# 
#-----[ FIND ]------------------------------------------ 
# 

?>

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
# 

// [start] Message for IP 1.0.3
$lang['Msgip'] = 'Текст для IP';
$lang['Msgip_title'] = 'Текст для IP';
$lang['Msgip_title_text'] = 'Администрирование текста показываемого для определенного IP-адреса';
$lang['Msgip_id'] = 'ID';
$lang['Msgip_ip'] = 'IP';
$lang['Msgip_text'] = 'Текст сообщения';
$lang['Msgip_add'] = 'Добавить';
$lang['Msgip_edit'] = 'Изменить';
$lang['Msgip_add_success'] = 'Сообщение было успешно добавлено';
$lang['Msgip_edit_success'] = 'Сообщение было успешно изменено';
$lang['Msgip_delete_success'] = 'Сообщение было успешно удалено';
$lang['Click_return_msgipadmin'] = '%sВернуться к администрированию текста для IP%s';
// [end] Message for IP 1.0.3

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM
root/admin/admin_msgip.php

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

<?php
/***************************************************************************
*                             admin_msgip.php
*                              -------------------
*     begin                : Tue Feb 08, 2005
*     copyright            : (C) 2005 [R: R@m$e$ :U]
*     email                : Ramses@FromRU.com
*
*     $Id: admin_msgip.php,v 1.0.2 2005/03/08 12:13:07 ramses Exp $
*
****************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', true);

if ( !empty($setmodules) )
{
	$filename = basename(__FILE__);
	$module['General']['Msgip'] = $filename;

	return;
}

//
// Load default header
//
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);

//
// Get the message ID
//
if( isset($HTTP_GET_VARS['msg']) || isset($HTTP_POST_VARS['msg']) )
{
	$msg_id = ( isset($HTTP_POST_VARS['msg']) ) ? $HTTP_POST_VARS['msg'] : $HTTP_GET_VARS['msg'];

	if( $msg_id == -1 )
	{
		$msg_sql = '';
	}
	else
	{
		$msg_id = intval($msg_id);
		$msg_sql = "msg_id = $msg_id";
	}
}
else
{
	$msg_id = '';
	$msg_sql = '';
}
//
// Get a poems
//
$sql = "SELECT *
	FROM " . MSGIP_TABLE . "
	$forum_sql
	ORDER BY msg_ip ASC";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not obtain messages', '', __LINE__, __FILE__, $sql);
}

$msgs_rows = array();
while( $row = $db->sql_fetchrow($result) )
{
	$msgs_rows[] = $row;
}

if( empty($HTTP_GET_VARS['msg']) )
{
	if ( isset($HTTP_GET_VARS['add_msg']) || isset($HTTP_POST_VARS['add_msg']) )
	{
		$template->set_filenames(array(
			'body' => 'admin/msgip_add.tpl')
		);

		//
		// Assign the template variables.
		//
		$template->assign_vars(array(
			"L_IP" => $lang['Msgip_ip'],
			"L_TEXT" => $lang['Msgip_text'],
			"L_ADD_MSG" => $lang['Msgip_add'])
		);
	}
	else if ( isset($HTTP_GET_VARS['create']) || isset($HTTP_POST_VARS['create']) )
	{
		if ( isset($HTTP_GET_VARS['msg_ip']) || isset($HTTP_POST_VARS['msg_ip']) )
		{
			$msg_ip = ( isset($HTTP_GET_VARS['msg_ip']) ) ? $HTTP_GET_VARS['msg_ip'] : $HTTP_POST_VARS['msg_ip'];
		}

		if ( isset($HTTP_GET_VARS['msg_text']) || isset($HTTP_POST_VARS['msg_text']) )
		{
			$msg_text = ( isset($HTTP_GET_VARS['msg_text']) ) ? $HTTP_GET_VARS['msg_text'] : $HTTP_POST_VARS['msg_text'];
		}

		$msg_ip = htmlspecialchars($msg_ip);
		$msg_text = htmlspecialchars($msg_text);
		$sql = "INSERT INTO " . MSGIP_TABLE . " (msg_ip, msg_text)
			VALUES('" . encode_ip(str_replace("\'", "''", $msg_ip)) . "', '" . str_replace("\'", "''", $msg_text) . "')";

		if( $sql != '' )
		{
			$result = $db->sql_query($sql);
			if( !$result )
			{
				message_die(GENERAL_ERROR, "Couldn't create message!", "", __LINE__, __FILE__, $sql);
			}
		}

		$message = $lang['Msgip_add_success'] . "

" . sprintf($lang['Click_return_msgipadmin'], "<a href=\"" . append_sid("admin_msgip.$phpEx") . "\">", "</a>") . "

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

		message_die(GENERAL_MESSAGE, $message);	}
	else
	{
		$template->set_filenames(array(
			'body' => 'admin/msgip_body.tpl')
		);

		for($i = 0; $i < count($msgs_rows); $i++)
		{
			$id = $msgs_rows[$i]['msg_id'];
			$msg_ip = decode_ip($msgs_rows[$i]['msg_ip']);
			$msg_text = $msgs_rows[$i]['msg_text'];
			$edit = append_sid("admin_msgip.$phpEx?msg=$id&action=edit");
			$delete = append_sid("admin_msgip.$phpEx?msg=$id&delete");

			$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
			$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

			//
			// Assign the template variables.
			//
			$template->assign_block_vars("msgs", array(
				"ROW_COLOR" => "#" . $row_color,
				"ROW_CLASS" => $row_class,
				"IP" => $msg_ip,
				"TEXT" => $msg_text,
				"ID" => $id,

				"U_EDIT" => $edit,
				"U_DELETE" => $delete)
			);
		}
	}
}
else
{
	if ( isset($HTTP_GET_VARS['update']) || isset($HTTP_POST_VARS['update']) )
	{
		if ( isset($HTTP_GET_VARS['msg_ip']) || isset($HTTP_POST_VARS['msg_ip']) )
		{
			$msg_ip = ( isset($HTTP_GET_VARS['msg_ip']) ) ? $HTTP_GET_VARS['msg_ip'] : $HTTP_POST_VARS['msg_ip'];
		}

		if ( isset($HTTP_GET_VARS['msg_text']) || isset($HTTP_POST_VARS['msg_text']) )
		{
			$msg_text = ( isset($HTTP_GET_VARS['msg_text']) ) ? $HTTP_GET_VARS['msg_text'] : $HTTP_POST_VARS['msg_text'];
		}

		$msg_ip = htmlspecialchars($msg_ip);
		$msg_text = htmlspecialchars($msg_text);
		$sql = "UPDATE " . MSGIP_TABLE . " 
			SET msg_ip = '" . encode_ip(str_replace("\'", "''", $msg_ip)) . "', msg_text = '" . str_replace("\'", "''", $msg_text) . "' 
			WHERE msg_id = '" . $msg_id . "'";

		if( $sql != '' )
		{
			$result = $db->sql_query($sql);
			if( !$result )
			{
				message_die(GENERAL_ERROR, "Couldn't update message!", "", __LINE__, __FILE__, $sql);
			}
		}

		$message = $lang['Msgip_edit_success'] . "

" . sprintf($lang['Click_return_msgipadmin'], "<a href=\"" . append_sid("admin_msgip.$phpEx") . "\">", "</a>") . "

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

		message_die(GENERAL_MESSAGE, $message);
	}
	else if ( isset($HTTP_GET_VARS['delete']) || isset($HTTP_POST_VARS['delete']) )
	{
		$sql = "DELETE 
			FROM " . MSGIP_TABLE . "
			WHERE msg_id = " . $msg_id;
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, "Couldn't delete message", "", __LINE__, __FILE__, $sql);
		}

		$message = $lang['Msgip_delete_success'] . "

" . sprintf($lang['Click_return_msgipadmin'], "<a href=\"" . append_sid("admin_msgip.$phpEx") . "\">", "</a>") . "

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

		message_die(GENERAL_MESSAGE, $message);
	}
	else
	{
		$msg_id = intval($HTTP_GET_VARS['msg']);
		
		$template->set_filenames(array(
			'body' => 'admin/msgip_edit.tpl')
		);

		$action = append_sid("admin_msgip.$phpEx?msg=$msg_id");

		$sql = "SELECT msg_ip, msg_text
			FROM " . MSGIP_TABLE . "
			WHERE msg_id = " . $msg_id;
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, "Couldn't get message", "", __LINE__, __FILE__, $sql);
		}

		$msg = $db->sql_fetchrow($result);

		//
		// Assign the template variables.
		//
		$template->assign_vars(array(
			"IP" => decode_ip($msg['msg_ip']),
			"TEXT" => $msg['msg_text'],

			"L_IP" => $lang['Msgip_ip'],
			"L_TEXT" => $lang['Msgip_text'],
			"L_EDIT_MSG" => $lang['Msgip_edit'])
		);
	}
}
//
// Assign the template variables.
//
$template->assign_vars(array(
	"L_MSG_TITLE" => $lang['Msgip_title'],
	"L_MSG_TEXT" => $lang['Msgip_title_text'],
	"L_ADD" => $lang['Msgip_add'],
	"L_ID" => $lang['Msgip_id'],
	"L_IP" => $lang['Msgip_ip'],
	"L_TEXT" => $lang['Msgip_text'],
	"L_ACTION" => $lang['Action'],
	"L_EDIT" => $lang['Edit'], 
	"L_DELETE" => $lang['Delete'],

	"S_MSG_ACTION" => ($action) ? $action : append_sid("admin_msgip.$phpEx"))
);
//
// Actually output the page here.
//
$template->pparse('body');

include('./page_footer_admin.'.$phpEx);

?>
root/templates/subSilver/admin/msgip_add.tpl

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

<h1>{L_MSG_TITLE}</h1>

<P>{L_MSG_TEXT}</p>

<form method="post" action="{S_MSG_ACTION}"><table class="forumline" cellspacing="1" cellpadding="4" border="0" align="center">
	<tr>
		<th class="thHead" colspan="2">{L_MSGIP_ADD}</th>
	</tr>
	<tr>
		<td class="row2">{L_IP}</td>
		<td class="row2"><input class="post" type="text" name="msg_ip" value="" /></td>
	</tr>
	<tr>
		<td class="row2">{L_TEXT}</td>
		<td class="row2"><textarea name="msg_text" rows="15" cols="35" wrap="virtual" style="width:250px" tabindex="3" class="post"></textarea></td>
	</tr>
	<tr>
		<td class="catBottom" colspan="2" align="center"><input class="mainoption" type="submit" name="create" value="{L_ADD_MSG}" /></td>
	</tr>
</table></form>
root/templates/subSilver/admin/msgip_body.tpl

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

<h1>{L_MSG_TITLE}</h1>

<P>{L_MSG_TEXT}</p>

<form method="post" action="{S_MSG_ACTION}"><table cellspacing="1" cellpadding="4" border="0" align="center" class="forumline">
	<tr>
		<th class="thCornerL">{L_ID}</th>
		<th class="thTop">{L_IP}</th>
		<th class="thTop">{L_TEXT}</th>
		<th colspan="2" class="thCornerR">{L_ACTION}</th>
	</tr>
	<!-- BEGIN msgs -->
	<tr>
		<td class="{msgs.ROW_CLASS}" align="center">{msgs.ID}</td>
		<td class="{msgs.ROW_CLASS}" align="center"><a href="{msgs.U_EDIT}">{msgs.IP}</a></td>
		<td class="{msgs.ROW_CLASS}" align="center">{msgs.TEXT}</td>
		<td class="{msgs.ROW_CLASS}"><a href="{msgs.U_EDIT}">{L_EDIT}</a></td>
		<td class="{msgs.ROW_CLASS}"><a href="{msgs.U_DELETE}">{L_DELETE}</a></td>
	</tr>
	<!-- END msgs -->
	<tr>
		<td colspan="5" align="center" class="catBottom"><input type="submit" name="add_msg" value="{L_ADD}" class="mainoption" /></td>
	</tr>
</table></form>
root/templates/subSilver/admin/msgip_edit.tpl

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

<h1>{L_MSG_TITLE}</h1>

<P>{L_MSG_TEXT}</p>

<form method="post" action="{S_MSG_ACTION}"><table class="forumline" cellspacing="1" cellpadding="4" border="0" align="center">
	<tr>
		<th class="thHead" colspan="2">{L_MSG_EDIT}</th>
	</tr>
	<tr>
		<td class="row2">{L_IP}</td>
		<td class="row2"><input class="post" type="text" name="msg_ip" value="{IP}" /></td>
	</tr>
	<tr>
		<td class="row2">{L_TEXT}</td>
		<td class="row2"><textarea name="msg_text" rows="15" cols="35" wrap="virtual" style="width:250px" tabindex="3" class="post">{TEXT}</textarea></td>
	</tr>
	<tr>
		<td class="catBottom" colspan="2" align="center"><input class="mainoption" type="submit" name="update" value="{L_EDIT_MSG}" /></td>
	</tr>
</table></form>
root/templates/subSilver/msgip_body.tpl

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

  <table width="100%" border="0" cellspacing="0" cellpadding="10">
	<tr>
	  <td>
		<table width="100%" border="0" cellspacing="1" cellpadding="4" class="forumline">
		  <tr> 
			<td valign="top" class="row1" align="center">
<span class="gen">{L_MESSAGE}</span>

<span class="genmed"><a href="javascript:window.close();" class="genmed">{L_CLOSE_WINDOW}</a></span>

</td>
		  </tr>
		</table>
	  </td>
	</tr>
  </table>
root/db_update.php

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

<? 
######################################################### 
## SQL commands to phpBB2 
## Author: Niels Chr. Rшd 
## Nickname: Niels Chr. Denmark 
## Email: ncr@db9.dk 
## 
## Ver 1.0.7 
## 
## phpBB2 database update script for mods 
## this file is intended to use with phpBB2, when installing mods 
## after so you may delete this file, but only admin can use so it really doesen't matter 
## The script will look what prefix you are using, and use the existing DB defined by congig.php 
## The execution of this script's included SQL is harmless, so you can run it as meny times you like 
## note, though that the users last visit, will be set back to his/her last login, 
## but that is a minor cosmetic isue, that will correct it self next time the use  logs in 
## 
## the following example are from my mods, and you can add some self, for other mods if you like 
## you will after execution get a list over those commands that are run with succes and those with warnings ! 
## delete the sample lines if you are using it only for other mods 
## 
######################################################### 

define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 
include($phpbb_root_path . 'includes/functions_selects.'.$phpEx); 

################################################################################################### 
## 
## put the SQL commands below here, the SQL commands listed below are only exampels, substitude them with the one you need ## 
## 
################################################################################################### 
$sql=array( 
'CREATE TABLE ' . MSGIP_TABLE . ' (
`msg_id` MEDIUMINT( 8 ) DEFAULT `0` NOT NULL  AUTO_INCREMENT ,
`msg_ip` CHAR( 8 ) NOT NULL ,
`msg_text` TEXT NOT NULL ,
PRIMARY KEY ( `msg_id` ) 
)' 
); 

$mods = array ( 
'Message for IP', 

); 

############################################### Do not change anything below this line ####################################### 

// 
// Start session management 
// 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 
// 
// End session management 
// 

if ($userdata['user_level']!=ADMIN) 
      message_die(GENERAL_ERROR, "You are not Authorised to do this"); 
$n=0; 
$message="<b>This list is a result of the SQL queries needed for mod</b><br/><br/>"; 
while($sql[$n]) 
{ 
   $message .= ($mods[$n-1] != $mods[$n]) ? '<p><b><font size=3>'.$mods[$n].'</font></b><br/>' : ''; 
   if(!$result = $db->sql_query($sql[$n])) 
   $message .= '<b><font color=#FF0000>[Already added]</font></b> line: '.($n+1).' , '.$sql[$n].'
'; 
   else $message .='<b><font color=#0000fF>[Added/Updated]</font></b> line: '.($n+1).' , '.$sql[$n].'
'; 
   $n++; 
} 
 message_die(GENERAL_MESSAGE, $message); 
?>
root/msgip.php

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

<?php
/***************************************************************************
 *                                msgip.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: msgip.php,v 1.0.0 2005/03/08 11:26:10 ramses Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_PROFILE);
init_userprefs($userdata);
//
// End session management
//

// session id check
if (!empty($HTTP_POST_VARS['sid']) || !empty($HTTP_GET_VARS['sid']))
{
	$sid = (!empty($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : $HTTP_GET_VARS['sid'];
}
else
{
	$sid = '';
}

$gen_simple_header = TRUE;

include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
	'body' => 'msgip_body.tpl')
);

$sql = "SELECT *
	FROM " . MSGIP_TABLE . "
	WHERE msg_ip = '" . encode_ip($client_ip) . "'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$l_message = str_replace("\n", '
', $row['msg_text']);

$template->assign_vars(array(
	'L_CLOSE_WINDOW' => $lang['Close_window'], 
	'L_MESSAGE' => $l_message)
);

$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>


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

Alexgraf
окошко открываться перестало, но стало (или осталось) на постинг.пхп выполняя SQL запросов: 6
в свежей версии запрос выполнятся не должен...
PS и на аплоад_пик.пхп (фотоальбом) тоже открываетя пустое окошко...
может в оверал_хидер что-то поправить надо ???
это странно... но опять же в свежей версии не должно быть...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Alexgraf

Сообщение Alexgraf »

[R: R@m$e$ :U]
При попытке удаления открывается такое же окошко, как и для редактирования (внизу кнопка "изменить")
ссылка для удаления выглядит вот так

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

http://[host]/forum/admin/admin_msgip.php?msg=1&delete&sid=fb6d53207602ecb9a9fd23d975179f3a
почему-то перед "delete" нет "action=", но может это так и должно быть... может не хватает файлика msgip_delete.tpl ???

Я правильно понял, что для прехода от 1.0.0 к 1.0.3 надо только заменить кусок кода в includes/page_header.php ?
Тепрь у меня что-то вообще перестало открываться :(
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Зарегистрирован: 20 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

Alexgraf
для перехода надо еще и бд обновить... ;)

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

ALTER TABLE `phpbb_users` ADD `user_message` VARCHAR( 25 ) NOT NULL ;
почему-то перед "delete" нет "action=", но может это так и должно быть...
так и должно быть... странно... у меня работает... завтра посмотрю...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Alexgraf

Сообщение Alexgraf »

[R: R@m$e$ :U]
Не могу понять где хранится последнее значение для msg_id :(
Если я PhpMyAdmin удаляю все записи в MSGIP_TABLE, то при добавлении новой записи, ей присваивается значение не 1, а большее того, которое было последним при удалении...
Кроме этого, запись user_message всегда остаётся пустой. Я добавил её и в таблицу phpbb_users и в таблицу которая используется на моём форуме...
Кроме этого, окошко всплывает через раз (вернее всплывает только иногда) :(

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