##############################################################
# Title: Contact List
# Author: Thoul  thoul@users.sourceforge.net  http://darkmods.sourceforge.net
# Description: Adds a combined buddy, ignore, and disallow contact list.
# Version: 0.3.1 Beta
#
# Installation Level: Moderate
# Installation Time: 30+ Minutes
# Files To Edit:
#               memberlist.php,
#               privmsg.php,
#               viewforum.php,
#               viewtopic.php,
#               includes/functions.php,
#               includes/page_header.php,
#               includes/usercp_email.php,
#               includes/usercp_viewprofile.php,
#               admin/index.php,
#               admin/admin_users.php,
#               templates/subSilver/index_body.tpl,
#               templates/subSilver/memberlist_body.tpl,
#               templates/subSilver/overall_header.tpl,
#               templates/subSilver/posting_body.tpl,
#               templates/subSilver/profile_view_body.tpl,
#               templates/subSilver/viewforum_body.tpl,
#               templates/subSilver/viewtopic_body.tpl
# Included Files: 20+ files.  See readme.txt and docs/install.txt for details.
############################################################## 
# Author's Notes:
#
# Before proceeding, please read the file README.txt and consult the
# install.txt, upgrade.txt, or uninstall.txt for the actual installation,
# upgrade, or uninstallation instructions.
#
# This file contains instructions for editing phpBB when you have already
# installed the version of Prillian specified in those files.  In those cases,
# you should use this file in place files_edit.txt.
#
##############################################################
# BEFORE FOLLOWING THESE INSTRUCTIONS, YOU SHOULD BACK UP ALL RELATED FILES.
############################################################## 

# 
#-----[ COPY ]------------------------------------------ 
# 
hack_files/*.* to *.*


#
#-----[ OPEN ]------------------------------------------
#
memberlist.php

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

$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar 

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//

$contact_list->get_list('all');
$contact_list->get_list('ignored_by');
$contact_list->get_list('disallow_by');

//
// Contact List - End Code Addition
//------------------------------------------------------------------------

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

		$user_id = $row['user_id'];

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
		if( !defined('NO_CONTACTS') )
		{
			$contact_result = $contact_list->get_image_links($row['user_id'], $row['username'], $ignore_users);
			if( !$contact_result )
			{
				$have_ignored = true;
				continue;
			}
		}
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

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

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

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
		check_contact_data($user_id);
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

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

		$i++;

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
		assign_cl_images('memberrow.contact', $contact_result);
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

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

$template->pparse('body');

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
make_ignore_msg($have_ignored, $ignore_users, 'memberlist.' . $phpEx . '?mode=' . $mode . '&amp;order=' . $sort_order . '&amp;start=' . $start);
//
// Contact List - End Code Addition
//------------------------------------------------------------------------


# 
#-----[ OPEN ]------------------------------------------ 
# 
privmsg.php

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

//
// Var definitions
//

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//

include_once(CONTACT_PATH . 'contact_common.' . $phpEx);

//
// Contact List - End Code Addition
//------------------------------------------------------------------------

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

		$privmsg_subject = trim(strip_tags($HTTP_POST_VARS['subject']));

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
		if( $to_userdata['user_id'] )
		{
			if( $contact_list->check_user($to_userdata['user_id'], $userdata['user_id'], 'ignore') )
			{
				$error = TRUE;
				$error_msg = $lang['User_ignoring_you'];
			}
			elseif( $contact_list->check_user($to_userdata['user_id'], $userdata['user_id'], 'disallow') )
			{
				$error = TRUE;
				$error_msg = $lang['User_not_want_contact'];
			}
		}
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

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

		'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"), 

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
		'L_BUDDIES' => $lang['Buddies'],
		'U_CONTACT' => append_sid(CONTACT_URL . '?simple=1&mode=popup'), 
//
// Contact List - End Code Addition
//------------------------------------------------------------------------


# 
#-----[ OPEN ]------------------------------------------ 
# 
viewforum.php

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

		$replies = $topic_rowset[$i]['topic_replies'];

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
		/* Do a slightly complicated check to see if the topic will be displayed.
			We have only user_ids for the first and last poster in the topic, so
			we'll skip this on topics with 2+ replies. If the two user_ids are the
			same (either no replies or a reply by the original poster) and the user
			is ignored, don't display. If not the same & neither is ANONYMOUS, check to see if both are ignored - if so, don't display.
			If the viewer is ANONYMOUS, we don't even bother with the check by
			making $ignore_users false when page_header.php is included above. */

		if ( $ignore_users && $topic_rowset[$i]['user_id'] != ANONYMOUS && $replies <= 1 )
		{
			$check_first = false;
			if( $topic_rowset[$i]['id2'] != ANONYMOUS )
			{
				// Check to see if topic author is ignored
				$check_first = array_key_exists($topic_rowset[$i]['user_id'], $contact_list->ignore);
			}

			if ( $topic_rowset[$i]['user_id'] == $topic_rowset[$i]['id2'] )
			{
				// Only one poster (who may or may not have replied)
				if ( $check_first )
				{
					// Viewer is ignoring only poster: don't display
					$have_ignored = true;
					continue;
				}
			}
			elseif ( $topic_rowset[$i]['id2'] != ANONYMOUS )
			{
				// Two different posters, but neither is a guest.
				if ( $check_first )
				{
					if( array_key_exists($topic_rowset[$i]['id2'], $contact_list->ignore) )
					{
						// Ignoring both posters: don't display
						$have_ignored = true;
						continue;
					}
				}
			} // elseif
		} // if ( $ignore_users
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

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

//
// Parse the page and print
//
$template->pparse('body');

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
make_ignore_msg($have_ignored, $ignore_users, 'viewforum.' . $phpEx . '?' . POST_FORUM_URL . '=' . $forum_id . '&amp;topicdays=' . $topic_days . '&amp;start=' . $start);
//
// Contact List - End Code Addition
//------------------------------------------------------------------------


# 
#-----[ OPEN ]------------------------------------------ 
# 
viewtopic.php

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

//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
//

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//

$contact_list->get_list('all');
$contact_list->get_list('ignored_by');
$contact_list->get_list('disallow_by');
$contact_list->build_quote_regexp();
$highlight_str = ( $highlight ) ? "highlight=$highlight&amp;" : '';
$baseurl = 'viewtopic.' . $phpEx . '?' . $highlight_str . POST_TOPIC_URL . '=' . $topic_id . '&amp;postdays=' . $post_days . '&amp;postorder=' . $post_order . '&amp;start=' . $start;

//
// Contact List - End Code Addition
//------------------------------------------------------------------------

#
#-----[ FIND ]------------------------------------------
#
	$poster_id = $postrow[$i]['user_id'];

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
	if( $postrow[$i]['user_id'] != ANONYMOUS && !defined('NO_CONTACTS') )
	{
		$contact_result = $contact_list->get_image_links($postrow[$i]['user_id'], $postrow[$i]['username'], $ignore_users);
		if( !$contact_result )
		{
			$have_ignored = true;
			continue;
		}
	}
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

#
#-----[ FIND ]------------------------------------------
#
		$yim = ( $postrow[$i]['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $postrow[$i]['user_yim'] . '&amp;.src=pg">' . $lang['YIM'] . '</a>' : '';

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
		check_contact_data($poster_id);
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

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

	//
	// Parse message and/or sig for BBCode if reqd
	//
	if ( $board_config['allow_bbcode'] )
	{

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
		check_quotes($message, $bbcode_uid, $baseurl, $contact_list, $ignore_users);
//
// Contact List - End Code Addition
//------------------------------------------------------------------------


#
#-----[ FIND ]------------------------------------------
#
		'U_POST_ID' => $postrow[$i]['post_id'])
	);

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
	assign_cl_images('postrow.contact', $contact_result);
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

#
#-----[ FIND ]------------------------------------------
#
$template->pparse('body');

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//

make_ignore_msg($have_ignored, $ignore_users, $baseurl);

//
// Contact List - End Code Addition
//------------------------------------------------------------------------

#
#-----[ OPEN ]------------------------------------------
#
# This is only necessary when using with Prillian 0.7.1 or older. Later versions
# of Prillian will include this, so skip to the next file if you're using one of
# them.
#
includes/functions.php


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

		//
		// Load the Page Header
		//

#
#-----[ AFTER, ADD ]------------------------------------------
#
//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
		if ( !defined('NO_CONTACTS') )
		{
			// Prevent pulling of unneeded contact data from DB
			define('NO_CONTACTS', true);
		}
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

# 
#-----[ OPEN ]------------------------------------------ 
# 
# Special Note for phpBB 2.0.3 users: Some spacing in the FIND statements for
# this file are different in phpBB 2.0.3.  Adjust your searches accordingly.
#
includes/page_header.php

#
#-----[ FIND ]------------------------------------------
#
	$user_forum_sql = ( !empty($forum_id) ) ? "AND s.session_page = " . intval($forum_id) : '';

#
#-----[ REPLACE WITH ]------------------------------------------
#
/*  Original phpBB code - commented out for Contact List
	$user_forum_sql = ( !empty($forum_id) ) ? "AND s.session_page = " . intval($forum_id) : '';
*/
//
//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
	$user_forum_sql = '';
	if( !empty($forum_id) && defined('NO_CONTACTS') )
	{
		$user_forum_sql = 'AND s.session_page = ' . intval($forum_id);
	}
	$contact_list->get_list('ignore');
//
//
// On the next line, this was added:
//   , s.session_page
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

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

	$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
# 

s.session_ip

# 
#-----[ IN-LINE AFTER, ADD ]------------------------------------------ 
# 

, s.session_page

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

//------------------------------------------------------------------------
// Prillian - Begin Code Addition
//
				$online_array[] = $row['user_id'];
//
// Prillian - End Code Addition
//------------------------------------------------------------------------

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
				if ( !empty($forum_id) && !defined('NO_CONTACTS') )
				{
					if( $forum_id != $row['session_page'] )
					{
						continue;
					}
				}
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

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

				if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )

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

/*  Original phpBB code - commented out for Contact List MOD
				if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
*/
//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
				$ignore_check = false;
				if ( !defined('NO_CONTACTS') )
				{
					$ignore_check = array_key_exists($row['user_id'], $contact_list->ignore);
					if( array_key_exists($row['user_id'], $contact_list->buddy) )
					{
						$online_buddylist .= ( $online_buddylist != '' ) ? ', ' . $user_online_link : $user_online_link;
					}
				}

				if ( !$ignore_check && ($row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN) )
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

#
#-----[ FIND ]------------------------------------------
#
	if ( $total_online_users > $board_config['record_online_users'])

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
	if ( empty($online_buddylist) )
	{
		$online_buddylist = $lang['None'];
	}
	$online_buddylist = $lang['Buddies_Online'] . ': ' . $online_buddylist;
	$contact_list->alert_check();
//
// Contact List - End Code Addition
//------------------------------------------------------------------------

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

//
// The following assigns all _common_ variables that may be used at any point
// in a template.
//
$template->assign_vars(array(

#
#-----[ AFTER, ADD ]------------------------------------------
#
//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//
	'BUDDIES_USER_LIST' => $online_buddylist,
//
// Contact List - End Code Addition
//------------------------------------------------------------------------


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

#
#-----[ FIND ]------------------------------------------
#
$sql = "SELECT username, user_email, user_viewemail, user_lang  

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//

include_once(CONTACT_PATH . 'contact_common.' . $phpEx);

if ( $contact_list->check_user($user_id, $userdata['user_id'], 'disallow') )
{
	message_die(GENERAL_MESSAGE, $lang['User_not_want_contact']);
}

if ( $contact_list->check_user($user_id, $userdata['user_id'], 'ignore') )
{
	message_die(GENERAL_MESSAGE, $lang['User_ignoring_you']);
}

//
// Contact List - End Code Addition
//------------------------------------------------------------------------


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

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

//
// Generate page
//

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

//------------------------------------------------------------------------
// Contact List - Begin Code Addition
//

if( $userdata['user_id'] != ANONYMOUS )
{
	include_once(CONTACT_PATH . 'contact_common.' . $phpEx);
	$contact_list->get_list('all');
	$contact_result = $contact_list->get_image_links($profiledata['user_id'], $profiledata['username'], false);

	assign_cl_images('contact', $contact_result);
	check_contact_data($profiledata['user_id'], $userdata['user_id']);
}

//
// Contact List - End Code Addition
//------------------------------------------------------------------------


#
#-----[ PLEASE NOTE ]------------------------------------------
#
# All of the edits below are for template files. subSilver is used as an example
# because it is the default phpBB template. If you have other templates, adapt
# these changes to fit each one. Some FIND code may be different or not exist in 
# your template; in these cases, try looking for smaller portions of the FIND.
#


#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/index_body.tpl

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

	<td class="row1" align="center" valign="middle" rowspan="2"><img src="templates/subSilver/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>

#
#-----[ IN-LINE FIND ]------------------------------------------
#
# Depending on other hacks installed, this may be different on your template.
# The point here is just to increase the number by one.
#

rowspan="2"

#
#-----[ IN-LINE REPLACE WITH ]------------------------------------------
#

rowspan="3"

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

  <tr> 
	<td class="row1" align="left"><span class="gensmall">{TOTAL_USERS_ONLINE} &nbsp; [ {L_WHOSONLINE_ADMIN} ] &nbsp; [ {L_WHOSONLINE_MOD} ]<br />{RECORD_USERS}<br />{LOGGED_IN_USER_LIST}</span></td>
  </tr>

#
#-----[ AFTER, ADD ]------------------------------------------
#
  <tr> 
	<td class="row1" align="left"><span class="gensmall">{BUDDIES_USER_LIST}</span></td>
  </tr>


# 
#-----[ OPEN ]------------------------------------------ 
# 
templates/subSilver/memberlist_body.tpl

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

	  <th class="thTop" nowrap="nowrap">{L_POSTS}</th>

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

	  <th class="thTop" nowrap="nowrap">&nbsp;</th>

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

	  <td class="{memberrow.ROW_CLASS}" align="center">&nbsp;{memberrow.WWW_IMG}&nbsp;</td>

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

	  <td class="{memberrow.ROW_CLASS}" align="center">
		<!-- BEGIN contact -->
			<a href="{memberrow.contact.U_BUDDY}" target="_blank" onclick="javascript:window.open('{memberrow.contact.U_BUDDY}', '_blank', 'width=225, innerWidth=225, height=175, innerHeight=175'); return false" title="{memberrow.contact.L_ALT_BUDDY}"><img border="0" src="{memberrow.contact.IMG_BUDDY}" alt="{memberrow.contact.L_ALT_BUDDY}" /></a>
			<a href="{memberrow.contact.U_IGNORE}" target="_blank" onclick="javascript:window.open('{memberrow.contact.U_IGNORE}', '_blank', 'width=225, innerWidth=225, height=175, innerHeight=175'); return false" title="{memberrow.contact.L_ALT_IGNORE}"><img border="0" src="{memberrow.contact.IMG_IGNORE}" alt="{memberrow.contact.L_ALT_IGNORE}" /></a>
			<a href="{memberrow.contact.U_DISALLOW}" target="_blank" onclick="javascript:window.open('{memberrow.contact.U_DISALLOW}', '_blank', 'width=225, innerWidth=225, height=175, innerHeight=175'); return false" title="{memberrow.contact.L_ALT_DISALLOW}"><img border="0" src="{memberrow.contact.IMG_DISALLOW}" alt="{memberrow.contact.L_ALT_DISALLOW}" /></a>
		<!-- END contact -->
      </td>

# 
#-----[ FIND ]------------------------------------------ 
# Note: Prior to phpBB 2.0.5, the captial B in this line was a lowercase b. That
#	was a phpBB mistake - change it if you have a lowercase b.
# Note: If your colspan number is higher, the point here is just to increase it
#	by one.
#
	  <td class="catBottom" colspan="8" height="28">&nbsp;</td>

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

	  <td class="catBottom" colspan="9" height="28">&nbsp;</td>

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

	<td valign="top" align="right">{JUMPBOX}</td>

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

	<td valign="top" align="left"><span class="genmed">{IGNORED_MSG}</span></td>


#
#-----[ OPEN ]------------------------------------------
#
# Note: This is another Prillian 0.7.1 or earlier only edit.
#
templates/subSilver/overall_header.tpl


#
#-----[ FIND ]------------------------------------------
#
<!-- BEGIN buddy_alert -->
<script language="Javascript" type="text/javascript">
	if ( {buddy_alert.BUDDY_ALERT} )
	{
		window.open('{buddy_alert.U_BUDDY_ALERT}', '_buddyalert', 'HEIGHT=225,resizable=yes,WIDTH=400');
	}
</script>
<!-- END buddy_alert -->


#
#-----[ REPLACE WITH ]------------------------------------------
#
<!-- Contact List - Begin Code Additions -->
<!-- BEGIN buddy_alert -->
<script language="JavaScript" type="text/javascript" src="header.js"></script>
<script language="Javascript" type="text/javascript">
	var buddy_alert = "{buddy_alert.BUDDY_ALERT}";
	var u_buddy_alert = "{buddy_alert.U_BUDDY_ALERT}";
	contact_buddy_alert();
</script>
<!-- END buddy_alert -->
<!-- Contact List - End Code Additions -->


# 
#-----[ OPEN ]------------------------------------------ 
# 
templates/subSilver/posting_body.tpl

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

		<td class="row2"><span class="genmed"><input type="text"  class="post" name="username" maxlength="25" size="25" tabindex="1" value="{USERNAME}" />&nbsp;<input type="submit" name="usersubmit" value="{L_FIND_USERNAME}" class="liteoption" onClick="window.open('{U_SEARCH_USER}', '_phpbbsearch', 'HEIGHT=250,resizable=yes,WIDTH=400');return false;" /></span></td>
#
#-----[ IN-LINE FIND ]------------------------------------------
#
</span>

#
#-----[ IN-LINE BEFORE, ADD ]------------------------------------------
#
&nbsp;<input type="submit" name="usersubmit" value="{L_BUDDIES}" class="liteoption" onClick="window.open('{U_CONTACT}', '_phpbbcontact', 'HEIGHT=225,resizable=yes,WIDTH=275');return false;" />


# 
#-----[ OPEN ]------------------------------------------ 
# 
templates/subSilver/profile_view_body.tpl

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

</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr> 
	<td align="right"><span class="nav"><br />{JUMPBOX}</span></td>

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

<!-- BEGIN contact -->
  <tr> 
	<td class="catLeft" height="28" align="center" colspan="2"><b><span class="gen">{L_CONTACT_MAN}</span></b></td>
  </tr>
  <tr> 
	<td valign="top" nowrap="nowrap" colspan="2" class="row1" align="center"><span class="gen">
		<a href="{contact.U_BUDDY}" class="gen" target="_blank" onclick="javascript:window.open('{contact.U_BUDDY}', '_blank', 'width=225, innerWidth=225, height=175, innerHeight=175'); return false" title="{contact.L_ALT_BUDDY}"><img border="0" src="{contact.IMG_BUDDY}" alt="{contact.L_ALT_BUDDY}" align="top" /> {contact.L_ALT_BUDDY}</a><br /><br />
		<a href="{contact.U_IGNORE}" class="gen" target="_blank" onclick="javascript:window.open('{contact.U_IGNORE}', '_blank', 'width=225, innerWidth=225, height=175, innerHeight=175'); return false" title="{contact.L_ALT_IGNORE}"><img border="0" src="{contact.IMG_IGNORE}" alt="{contact.L_ALT_IGNORE}" align="top" /> {contact.L_ALT_IGNORE}</a><br /><br />
		<a href="{contact.U_DISALLOW}" class="gen" target="_blank" onclick="javascript:window.open('{contact.U_DISALLOW}', '_blank', 'width=225, innerWidth=225, height=175, innerHeight=175'); return false" title="{contact.L_ALT_DISALLOW}"><img border="0" src="{contact.IMG_DISALLOW}" alt="{contact.L_ALT_DISALLOW}" align="top" /> {contact.L_ALT_DISALLOW}</a>
	</span></td>
  </tr>
<!-- END contact -->


# 
#-----[ OPEN ]------------------------------------------ 
# 
templates/subSilver/viewforum_body.tpl

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
# 

{L_MODERATOR}: {MODERATORS}

# 
#-----[ IN-LINE AFTER, ADD ]------------------------------------------ 
# 

<br />{IGNORED_MSG}

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

	<td align="right">{JUMPBOX}</td>

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

	<td valign="top" align="left"><span class="genmed">{IGNORED_MSG}</span></td>


# 
#-----[ OPEN ]------------------------------------------ 
# 
templates/subSilver/viewtopic_body.tpl

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

	  <span class="gensmall"><b>{PAGINATION}</b><br />

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

	  <span class="gensmall"><b>{IGNORED_MSG}</b><br />
	  &nbsp; </span>

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
# 

{postrow.POSTER_FROM}</span><br />

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
# Take care! The BEGIN and END lines cannot be on the same line as anything else
# unless you have the eXtreme Styles hack installed.
#
		<!-- BEGIN contact -->
			<a href="{postrow.contact.U_BUDDY}" target="_blank" onclick="javascript:window.open('{postrow.contact.U_BUDDY}', '_blank', 'width=225, innerWidth=225, height=175, innerHeight=175'); return false"><img border="0" src="{postrow.contact.IMG_BUDDY}" alt="{postrow.contact.L_ALT_BUDDY}" title="{postrow.contact.L_ALT_BUDDY}" /></a> 
			<a href="{postrow.contact.U_IGNORE}" target="_blank" onclick="javascript:window.open('{postrow.contact.U_IGNORE}', '_blank', 'width=225, innerWidth=225, height=175, innerHeight=175'); return false"><img border="0" src="{postrow.contact.IMG_IGNORE}" alt="{postrow.contact.L_ALT_IGNORE}" title="{postrow.contact.L_ALT_IGNORE}" /></a> 
			<a href="{postrow.contact.U_DISALLOW}" target="_blank" onclick="javascript:window.open('{postrow.contact.U_DISALLOW}', '_blank', 'width=225, innerWidth=225, height=175, innerHeight=175'); return false"><img border="0" src="{postrow.contact.IMG_DISALLOW}" alt="{postrow.contact.L_ALT_DISALLOW}" title="{postrow.contact.L_ALT_DISALLOW}" /></a> 
		<!-- END contact -->

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

	  &nbsp;<br />
	  {S_TOPIC_ADMIN}

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

	  <span class="gensmall">{IGNORED_MSG}</span><br />

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