## easymod compliant
############################################################## 
## MOD Title:    phpBB TrackBack
## MOD Author:   offree < offree@gmail.com >, (offree) http://phpbbc.kldp.net
## Original By:  Scott Merrill < skippy@skippy.net >
## MOD Description: PHPBB Pingback / Trackback, aside from 
##    desperately needing a catchy name, is a modification of the
##    phpBB bulletin board software to allow the use of trackbacks.
##    modifyer[offree] : change easyMOD compliant .
## 
## MOD Version: 0.0.5.050212.01
## 

#
#-----[ COPY ]------------------------------------------
#
copy pbtb_install.php to pbtb_install.php

#
#-----[ COPY ]------------------------------------------
#
#copy pbtb_uninstall.php to pbtb_uninstall.php

#
#-----[ COPY ]------------------------------------------
#
copy includes/pbtb.php to includes/pbtb.php

#
#-----[ COPY ]------------------------------------------
#
copy trackback.php to trackback.php

#
#-----[ COPY ]------------------------------------------
#
#copy sendping.php to sendping.php

#
#-----[ COPY ]------------------------------------------
#
#copy templates/subSilver/sendping_body.tpl to templates/subSilver

#
#-----[ COPY ]------------------------------------------
#
copy admin/admin_pbtb.php to admin/admin_pbtb.php

#
#-----[ COPY ]------------------------------------------
#
#copy templates/subSilver/admin/*.* to templates/subSilver/admin
copy templates/subSilver/admin/pbtb_*.tpl to templates/subSilver/admin

#
#-----[ OPEN ]------------------------------------------
# change 3 EA
index.php

#
#-----[ FIND ]------------------------------------------
#
include($phpbb_root_path . 'common.'.$phpEx);

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
include($phpbb_root_path . 'includes/pbtb.'.$phpEx);
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
#
                                                        if ( $forum_data[$j]['forum_last_post_id'] )
                                                        {
                                                                $last_post_time = create_date($board_config['default_dateformat'], $forum_data[$j]['post_time'], $board_config['board_timezone']);

                                                                $last_post = $last_post_time . '<br />';

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
                                                                // *** trackbacks
                                                                if ( $forum_data[$j]['user_id'] == $pbtb['pbtb_user_id'] ) {
                                                                        $last_post .= '<a href="' . pbtb_trackback_url($forum_data[$j]['forum_last_post_id']) . '">' . pbtb_trackback_blogname ($forum_data[$j]['forum_last_post_id']) . '</a>';
                                                                } else {
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
#
                                                                $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> ';

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
                                                                }
// phpBB_TrackBack - end

#
#-----[ OPEN ]------------------------------------------
# change 4 EA
viewforum.php

#
#-----[ FIND ]------------------------------------------
#
include($phpbb_root_path . 'common.'.$phpEx);

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
include($phpbb_root_path . 'includes/pbtb.'.$phpEx);
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 623
                $topic_author .= ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? '</a>' : '';

                $first_post_time = create_date($board_config['default_dateformat'], $topic_rowset[$i]['topic_time'], $board_config['board_timezone']);

                $last_post_time = create_date($board_config['default_dateformat'], $topic_rowset[$i]['post_time'], $board_config['board_timezone']);

#
#-----[ AFTER, ADD ]------------------------------------------
# confirm - delete or not .
// phpBB_TrackBack - begin
                // *** trackbacks
                if ( $topic_rowset[$i]['id2'] == $pbtb['pbtb_user_id'] ) {
			$topic_author = pbtb_trackback_blogname ( $topic_rowset[$i]['topic_last_post_id'] ) ;
                        $last_post_author = '<a href="' . pbtb_trackback_url($topic_rowset[$i]['topic_last_post_id']) . '">' . pbtb_trackback_blogname ($topic_rowset[$i]['topic_last_post_id']) . '</a>';
                } else {
// phpBB_TrackBack - end


#
#-----[ FIND ]------------------------------------------
# around line 629
		$last_post_author = ( $topic_rowset[$i]['id2'] == ANONYMOUS ) ? ( ($topic_rowset[$i]['post_username2'] != '' ) ? $topic_rowset[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $topic_rowset[$i]['id2']) . '">' . $topic_rowset[$i]['user2'] . '</a>';

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
                } // end pbtb_user_id checking.
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 662
	$topics_count -= $total_announcements;

	$template->assign_vars(array(

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
	// trackback forum enable confirm
        // are trackbacks enabled for this forum, or is the default setting permissive?
        $sql = "SELECT trackback FROM " . PBTB_FORUMS . " WHERE forum_id='" . $forum_id ."'";
        $result = $db->sql_query($sql);
        $row = $db->sql_fetchrow($result);
        if ( ($row[trackback] == '1') || ( $pbtb['trackback_default']) ) {
                // are trackbacks limited to moderators?
                if ( (! $pbtb['trackback_admin_only']) || $is_auth['auth_mod'] ) {

                        $template->assign_block_vars('switch_forum_trackback_top', array());
                        $template->assign_block_vars('switch_forum_trackback_bottom', array());

			$script_name = preg_replace('/^\/?(.*?)\/?$/', '\1', trim($board_config['script_path']));
			$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'])  : '';

			if( $script_name != "" ) $script_name = "/" . $script_name;

			$server_script_url = $server_protocol . $server_name . $server_port . $script_name;

			$trackback_forum = $server_script_url . "/trackback.php?ftb=" . $forum_id ;

			$template->assign_vars(array(
				'Trackback_forum' => $trackback_forum	)
			);

                } // if admin check
        } // if forum or default check
// phpBB_TrackBack - end



#
#-----[ OPEN ]------------------------------------------
# change 8 EA
viewtopic.php

#
#-----[ FIND ]------------------------------------------
# around line 26
include($phpbb_root_path . 'common.'.$phpEx);

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
include($phpbb_root_path . 'includes/pbtb.'.$phpEx);
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 413
else
{
   include($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
   sync('topic', $topic_id);

   message_die(GENERAL_MESSAGE, $lang['No_posts_topic']);
}

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
// Pingback / Trackback collection : pb_type = 1 ( trackback )
/////////////////////////////////////////////////////////
$sql = "SELECT  pb.pbtb_id, pb.pbtb_url, pb.pbtb_blogname , pb.pbtb_title , pb.post_id , pt.pbtb_text  FROM " . PBTB_TABLE . " 
	pb , " . PBTB_TEXT . " pt 
        WHERE pb.topic_id = $topic_id
	AND pb.pbtb_id = pt.pbtb_id
        AND pb.pbtb_type = '1'
        ORDER BY pb.pbtb_id";
if ( !($result = $db->sql_query($sql)) )
{
        message_die(GENERAL_ERROR, "Could not obtain pingback/trackback information.", '', __LINE__, __FILE__, $sql);
}
$trackbacks = array();
if ($row = $db->sql_fetchrow($result))
{
        do
        {
                // trackbacks ordered by post_id - change offree : not post_id , auto_increment.
                //$trackbacks[$row['pbtb_id']] = $row;
                $trackbacks[] = $row;
        }
        while ($row = $db->sql_fetchrow($result));
        $db->sql_freeresult($result);
}
/////////////////////////////////////////////////////////
// end trackback collection
/////////////////////////////////////////////////////////
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 824
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
//
for($i = 0; $i < $total_posts; $i++)
{

#
#-----[ AFTER, ADD ]------------------------------------------
#
	// modify the postrow[] values with any trackback data we have
	// if forum trackback contents .
	if( $i == 0 )
	{
		$temp_topic_id = $postrow[$i]['post_id'];
		if( $trackbacks[0]['post_id'] == $temp_topic_id )
		{
			if ($trackbacks[0]['pbtb_blogname'] != '')
			{
				$postrow[$i]['username'] = $trackbacks[0]['pbtb_blogname'];
			}
			if ($trackbacks[0]['pbtb_url'] != '')
			{
				$postrow[$i]['user_website'] = $trackbacks[0]['pbtb_url'];
			}
			$trackback_forum_enable_set = 1 ;
		}
	}
        // end trackback modifications


#
#-----[ FIND ]------------------------------------------
# around line 905
        // Handle anon users posting with usernames
        //
        if ( $poster_id == ANONYMOUS && $postrow[$i]['post_username'] != '' )
        {
                $poster = $postrow[$i]['post_username'];
                $poster_rank = $lang['Guest'];
        }

	$temp_url = '';

        if ( $poster_id != ANONYMOUS )
        {

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
// *** trackbacks
        if ( $poster_id != $pbtb['pbtb_user_id'] ) {
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 922
		$temp_url = append_sid("privmsg.$phpEx?mode=post&amp;" . POST_USERS_URL . "=$poster_id");
		$pm_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
		$pm = '<a href="' . $temp_url . '">' . $lang['Send_private_message'] . '</a>';

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
        } else {
                $profile = '';
                $profile_img = '';
                $pm_img = '';
                $pm = '';
        }  // end if ( $poster_id != $pbtb['pbtb_user_id'] )
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 926
		if ( !empty($postrow[$i]['user_viewemail']) || $is_auth['auth_mod'] )

#
#-----[ REPLACE WITH ]------------------------------------------
#
// phpBB_TrackBack - begin
		if ( ( $poster_id != $pbtb['pbtb_user_id'] ) && ( !empty($postrow[$i]['user_viewemail']) || $is_auth['auth_mod'] ) )
// phpBB_TrackBack - end


#
#-----[ FIND ]------------------------------------------
# around line 1138
        //
        // Editing information
        //
        if ( $postrow[$i]['post_edit_count'] )
        {
                $l_edit_time_total = ( $postrow[$i]['post_edit_count'] == 1 ) ? $lang['Edited_time_total'] : $lang['Edited_times_total'];

                $l_edited_by = '<br /><br />' . sprintf($l_edit_time_total, $poster, create_date($board_config['default_dateformat'], $postrow[$i]['post_edit_time'], $board_config['board_timezone']), $postrow[$i]['post_edit_count']);
        }
        else
        {
                $l_edited_by = '';
        }

#
#-----[ AFTER, ADD ]------------------------------------------
#
# by offree . disable ?  only $i=0 , only first topic show trackback
// phpBB_TrackBack - begin
// modify the postrow[] values with any trackback data we have

	// msg below trackback msg, link
	$trackback_msg = "";
	$trackback_lnk = "";

	// *** trackbacks
        //$trackback_link = '';
        // *** sendping
        $sendping_link = '';

        // insert a trackback link if trackbacks are enabled
        // and this is the first post
	if( $i == 0 ) 
	{
		if( $pbtb['trackback_allow_receipt'] || $pbtb['trackback_allow_send'] )
		{
			// enable trackback in forum
			$sql = "SELECT trackback FROM " . PBTB_FORUMS . " WHERE forum_id=$forum_id";
			if ( $result = $db->sql_query($sql) )
			{
				if ( $row = $db->sql_fetchrow($result) )
				{
					$forum_okay = $row['trackback'];
				}
				else
				{
					$forum_okay = $pbtb['trackback_default'];
				}
			}
			else
			{
				$forum_okay = $pbtb['trackback_default'];
			}
			$sql = "SELECT trackback FROM " . PBTB_TOPICS . " WHERE topic_id=$topic_id";
			if ( $result = $db->sql_query($sql) )
			{
				if ( $row = $db->sql_fetchrow($result) )
				{
					$topic_okay = $row['trackback'];
				}
				else
				{
					$topic_okay = $pbtb['trackback_default'];
				}
			}
			else
			{
				$topic_okay = $pbtb['trackback_default'];
			}
		}


		if( $pbtb['trackback_allow_receipt'] )
		{
			if ( $is_auth['auth_mod']  || 
				( $forum_okay && $topic_okay ) )
			{

				$script_name = preg_replace('/^\/?(.*?)\/?$/', '\1', trim($board_config['script_path']));
				$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'])  : '';

				if( $script_name != "" ) $script_name = "/" . $script_name;

				$server_script_url = $server_protocol . $server_name . $server_port . $script_name;

				$trackback_url_href = $server_script_url . "/trackback.php?tb=" . $topic_id ;
				$trackback_lnk = '<br />_________________<br />Trackback URL : ' . $trackback_url_href . '<br />' ;

				// if forum trackback .
				if( $trackback_forum_enable_set == 1 ) $tb_count_first_value = 1 ;
				else $tb_count_first_value = 0 ;

				for($j = $tb_count_first_value ; $j < count($trackbacks); $j++)
				{
					$trackbacks[$j]['pbtb_url'] = make_clickable( $trackbacks[$j]['pbtb_url'] ) ;

					// deletion check - admin/post user enable
					// delete : admin or poster 
					$trackback_delete = ""; // initial value. caution.
					if ( $is_auth['auth_mod']  || 
						( $forum_okay && $topic_okay && $userdata['user_id'] == $poster_id && $is_auth['auth_delete'] ) )
					{
						$delete_temp_url = append_sid("posting.$phpEx?mode=tb_delete&amp;" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&amp;" . "pbtb_id" . "=" . $trackbacks[$j]['pbtb_id'] ) ;
						$trackback_delete = "<a href=\"$delete_temp_url\" title=\"Delete trackback msg\">[X]</a>";
					}

					$trackback_msg .= ' [' . $trackbacks[$j]['pbtb_title'] . ']' . $trackback_delete . '<br />' . $trackbacks[$j]['pbtb_text'] . '<br />' . $trackbacks[$j]['pbtb_blogname'] . ' : ' . $trackbacks[$j]['pbtb_url']  . '<br /><br />';
				}

				// disable
				//$trackback_link = "<a href=\"trackback.php?tb=" . $topic_id . "\" title=\"Use this URI to send a trackback\">[TrackBack]</a>";
			}
		}
		// end trackback link , msg

		if ( $trackback_msg != '' )
		{
			// new line ? no ?
			//$trackback_msg = '<br />' . str_replace("\n", "\n<br />\n", $trackback_msg);
			$trackback_msg = '<br />' . $trackback_msg ;
		}


		// insert a sendping link if sendping are enabled
		// and this is the first post
		if ( $pbtb['trackback_allow_send'] )
		{
			// delete : admin or poster 
			if ( $is_auth['auth_mod']  || 
				( $forum_okay && $topic_okay && $userdata['user_id'] == $poster_id && $is_auth['auth_delete'] ) )
			{
				$temp_url = append_sid("posting.$phpEx?mode=sendping&amp;" . POST_POST_URL . "=" . $postrow[$i]['post_id']);
				$sendping_link = "<a href=\"$temp_url\" title=\"Send Ping to trackback\">[SendPing]</a>";
			}
		}
		// end sendping link

	}


// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 1201
                'DELETE_IMG' => $delpost_img,
                'DELETE' => $delpost,

#
#-----[ AFTER, ADD ]------------------------------------------
#
#                'TRACKBACK' => $trackback_link, 
// phpBB_TrackBack - begin
                'SENDPING' => $sendping_link, 
                'TRACKBACK_LNK' => $trackback_lnk, 
                'TRACKBACK_MSG' => $trackback_msg, 
// phpBB_TrackBack - end


#
#-----[ OPEN ]------------------------------------------
# change 20 EA
posting.php

#
#-----[ FIND ]------------------------------------------
# around line 26
include($phpbb_root_path . 'common.'.$phpEx);

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
include($phpbb_root_path . 'includes/pbtb.'.$phpEx);
// phpBB_TrackBack - end


#
#-----[ FIND ]------------------------------------------
# around line 33
$params = array('submit' => 'post', 'preview' => 'preview', 'delete' => 'delete', 'poll_delete' => 'poll_delete', 'poll_add' => 'add_poll_option', 'poll_edit' => 'edit_poll_option', 'mode' => 'mode');

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
$params = array_merge( array('pbtb_id' => 'pbtb_id') , $params ) ;
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 148
	case 'editpost':
		$is_auth_type = 'auth_edit';
		break;

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
	case 'sendping':
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 151
	case 'delete':
	case 'poll_delete':
		$is_auth_type = 'auth_delete';
		break;

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
	case 'tb_delete':
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 199
	case 'editpost':
	case 'delete':
	case 'poll_delete':
		if ( empty($post_id) )

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
	case 'sendping':
	case 'tb_delete':
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 242
	if ( $mode == 'editpost' || $mode == 'delete' || $mode == 'poll_delete' )

#
#-----[ REPLACE WITH ]------------------------------------------
#
// phpBB_TrackBack - begin
	if ( $mode == 'tb_delete' || $mode == 'sendping' || $mode == 'editpost' || $mode == 'delete' || $mode == 'poll_delete' )
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 348
		case 'editpost':
			$redirect = "mode=quote&" . POST_POST_URL ."=" . $post_id;
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
	case 'sendping':
	case 'tb_delete':
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 390
else
{
        if ( $mode != 'newtopic' && $userdata['session_logged_in'] && $is_auth['auth_read'] )
        {
                $sql = "SELECT topic_id
                        FROM " . TOPICS_WATCH_TABLE . "
                        WHERE topic_id = $topic_id
                                AND user_id = " . $userdata['user_id'];
                if ( !($result = $db->sql_query($sql)) )
                {
                        message_die(GENERAL_ERROR, 'Could not obtain topic watch information', '', __LINE__, __FILE__, $sql);
                }

                $notify_user = ( $db->sql_fetchrow($result) ) ? TRUE : $userdata['user_notify'];
		$db->sql_freeresult($result);
        }
        else
        {
                $notify_user = ( $userdata['session_logged_in'] && $is_auth['auth_read'] ) ? $userdata['user_notify'] : 0;
        }
}

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
        // *** trackbacks
        if ( ($submit || $refresh) && $is_auth['auth_read'] )
        {
                $trackback = ( ! empty($HTTP_POST_VARS['trackback']) ) ? TRUE : 0;
        }
        else
        {
                if ( $pbtb['trackback_allow_receipt'] )
                {
                        $sql = "SELECT trackback FROM " . PBTB_FORUMS . " WHERE forum_id=$forum_id";
                        if ( $result = $db->sql_query($sql) )
                        {
				$row = $db->sql_fetchrow($result) ;
                                $trackback = ( $row[trackback] ) ? TRUE : 0;
                        }
                        else
                        {
                                $trackback = $pbtb['trackback_default'];
                        }
                }
        } 
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 417
if ( ( $delete || $poll_delete || $mode == 'delete' ) && !$confirm )

#
#-----[ REPLACE WITH ]------------------------------------------
#
// phpBB_TrackBack - begin
if ( ( $delete || $poll_delete || $mode == 'delete' || $mode == 'tb_delete' ) && !$confirm )
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 425
	$l_confirm = ( $delete || $mode == 'delete' ) ? $lang['Confirm_delete'] : $lang['Confirm_delete_poll'];

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
	if( $mode == 'tb_delete' )
	{
		$s_hidden_fields = '<input type="hidden" name="' . POST_POST_URL . '" value="' . $post_id . '" />';
		$s_hidden_fields .= '<input type="hidden" name="pbtb_id" value="' . $pbtb_id . '" />';
		$s_hidden_fields .= '<input type="hidden" name="mode" value="tb_delete" />' ;
		$l_confirm = $lang['TB_Msg_Confirm_Delete'] ;
	}
// phpBB_TrackBack - end


#
#-----[ FIND ]------------------------------------------
# around line 538
		case 'editpost':
		case 'newtopic':
		case 'reply':
			$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
			$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : '';
			$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
	case 'tb_delete':
			$pbtb_id = ( !empty($HTTP_POST_VARS['pbtb_id']) ) ? $HTTP_POST_VARS['pbtb_id'] : '';

			list( $return_meta , $return_message ) = pbtb_trackback_delete( $pbtb_id , $topic_id ) ;

			break;

	case 'sendping':
			$send_tb_url = ( !empty($HTTP_POST_VARS['sendping_tb_url']) ) ? $HTTP_POST_VARS['sendping_tb_url'] : '';
			$send_tb_encoding = ( !empty($HTTP_POST_VARS['sendping_tb_encoding']) ) ? $HTTP_POST_VARS['sendping_tb_encoding'] : '';

			$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
			$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : '';
			$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';

			$script_name = preg_replace('/^\/?(.*?)\/?$/', '\1', trim($board_config['script_path']));
			$viewtopic = ( $script_name != '' ) ? $script_name . '/viewtopic.' . $phpEx : 'viewtopic.'. $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']) . '/' : '/';

			$viewtopic_url = $server_protocol . $server_name . $server_port . $viewtopic;

			$pbtb_blogname = $board_config['sitename'] ; // sites name
			$pbtb_title = $subject ;
			$pbtb_excerpt = $message ;
			$pbtb_url = $viewtopic_url . "?" . POST_TOPIC_URL . "=$topic_id";

			list( $return_meta , $return_message ) = sendping( $send_tb_url , $send_tb_encoding , $pbtb_blogname , $pbtb_title , $pbtb_excerpt , $pbtb_url , $topic_id ) ;

			break;
// phpBB_TrackBack - end


#
#-----[ FIND ]------------------------------------------
# around line 577
		if ( $mode == 'newtopic' || $mode == 'reply' )
		{
			$tracking_topics = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array();
			$tracking_forums = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array();

			if ( count($tracking_topics) + count($tracking_forums) == 100 && empty($tracking_topics[$topic_id]) )
			{
				asort($tracking_topics);
				unset($tracking_topics[key($tracking_topics)]);
			}

			$tracking_topics[$topic_id] = time();

			setcookie($board_config['cookie_name'] . '_t', serialize($tracking_topics), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
		}

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
                // *** trackback
		// new topic - trackback setting. 
                if ($mode == 'newtopic')
                {
                        $sql = "INSERT INTO " . PBTB_TOPICS . " (topic_id, trackback) VALUES ($topic_id, $trackback)";
                        if (!$db->sql_query($sql))
                        {
                                message_die(GENERAL_ERROR, 'Could not insert topic watch information', '', __LINE__, __FILE__,
$sql);
                        }
                }

                if ( ($mode == 'editpost') && $post_data['first_post'])
                {
                        // does this post have a trackback value assigned already?
                        $sql = "SELECT trackback from " . PBTB_TOPICS . " WHERE topic_id=$topic_id";
                        if ($result = $db->sql_query($sql))
                        {
                                if (! ($db->sql_fetchrow($result) == $trackback ) )
                                // post value and database are different; update the db
                                {
                                        $sql = "UPDATE " . PBTB_TOPICS . " SET trackback=$trackback";
                                        $db->sql_query($sql);
                                }
                        }
                        else
                        {
                                // no database entry for this topic yet
                                $sql = "INSERT INTO " . PBTB_TOPICS . " (topic_id, trackback) VALUES ($topic_id, $trackback)";
                        }
                } 
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 634
	else if ( $mode == 'editpost' )
#
#-----[ REPLACE WITH ]------------------------------------------
#
// phpBB_TrackBack - begin
	else if ( $mode == 'sendping' || $mode == 'editpost' )
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 754
	else if ( $mode == 'quote' || $mode == 'editpost' )
#
#-----[ REPLACE WITH ]------------------------------------------
#
// phpBB_TrackBack - begin
	else if ( $mode == 'sendping' || $mode == 'quote' || $mode == 'editpost' )
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 759
		if ( $mode == 'editpost' )
		{
			$attach_sig = ( $post_info['enable_sig'] && $post_info['user_sig'] != '' ) ? TRUE : 0; 
			$user_sig = $post_info['user_sig'];

			$html_on = ( $post_info['enable_html'] ) ? true : false;
			$bbcode_on = ( $post_info['enable_bbcode'] ) ? true : false;
			$smilies_on = ( $post_info['enable_smilies'] ) ? true : false;
		}

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
		if ( $mode == 'sendping' )
		{
			$attach_sig = ( $post_info['enable_sig'] && $post_info['user_sig'] != '' ) ? TRUE : 0; 
			$user_sig = $post_info['user_sig'];

			$html_on = ( $post_info['enable_html'] ) ? true : false;
			$bbcode_on = ( $post_info['enable_bbcode'] ) ? true : false;
			$smilies_on = ( $post_info['enable_smilies'] ) ? true : false;

			// disable  why?? editable or not ? new posting_body.tpl -> posting_body_sendping.tpl ??
			$bbcode_on = 0;
			$html_on = 0;
			$smilies_on = 0;
			$notify_user = 0;
			$attach_sig = 0;

			$board_config['allow_html'] = 0 ;
			$board_config['allow_bbcode'] = 0 ;
			$board_config['allow_smilies'] = 0 ;
			$user_sig = '' ;
			$board_config['allow_html'] = 0 ;
		}
		else
// phpBB_TrackBack - end


#
#-----[ FIND ]------------------------------------------
# around line 872
        if ( $mode != 'editpost' || ( $mode == 'editpost' && $post_info['poster_id'] != ANONYMOUS ) )

#
#-----[ REPLACE WITH ]------------------------------------------
# by offree, caution.!!!!
// phpBB_TrackBack - begin
        if ( ( $mode != 'editpost' && $mode != 'sendping' ) || ( $mode == 'editpost' && $post_info['poster_id'] != ANONYMOUS ) )
// phpBB_TrackBack - end


#
#-----[ FIND ]------------------------------------------
# around line 873
	{
                $template->assign_block_vars('switch_notify_checkbox', array());
        }
}

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
// *** trackbacks
//
// Trackback checkbox - only show if user is logged in, and trackback settings allow
//
// first, are trackbacks enabled?
if ( $userdata['session_logged_in'] && $is_auth['auth_read'] && $pbtb['trackback_allow_receipt'] && ( ($mode == 'newtopic') || ($mode == 'edit')) )
{
        // are trackbacks enabled for this forum, or is the default setting permissive?
        $sql = "SELECT trackback FROM " . PBTB_FORUMS . " WHERE forum_id='" . $forum_id ."'";
        $result = $db->sql_query($sql);
        $row = $db->sql_fetchrow($result);
        if ( ($row[trackback] == '1') || ( $pbtb['trackback_default']) ) {
                // are trackbacks limited to moderators?
                if ( (! $pbtb['trackback_admin_only']) || $is_auth['auth_mod'] ) {
                        $template->assign_block_vars('switch_trackback_checkbox', array());
                } // if admin check
        } // if forum or default check
} // if overall check

// *** sendping
//
if ( $userdata['session_logged_in'] && $is_auth['auth_read'] && $pbtb['trackback_allow_send'] && $mode == 'sendping' )
{
        // are trackbacks enabled for this forum, or is the default setting permissive?
        $sql = "SELECT trackback FROM " . PBTB_FORUMS . " WHERE forum_id='" . $forum_id ."'";
        $result = $db->sql_query($sql);
        $row = $db->sql_fetchrow($result);
        if ( ($row[trackback] == '1') || ( $pbtb['trackback_default']) ) {
                // are trackbacks limited to moderators?
                if ( (! $pbtb['trackback_admin_only']) || $is_auth['auth_mod'] ) {
                        $template->assign_block_vars('switch_sendping_trackback_url', array());
                } // if admin check
        } // if forum or default check
} // if overall check
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
# around line 934
	case 'editpost':
		$page_title = $lang['Edit_Post'];
		$hidden_form_fields .= '<input type="hidden" name="' . POST_POST_URL . '" value="' . $post_id . '" />';
		break;

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
	case 'sendping':
		$page_title = $lang['SendPing_Post'];
		$hidden_form_fields .= '<input type="hidden" name="' . POST_POST_URL . '" value="' . $post_id . '" />';
		break;
// phpBB_TrackBack - end



#
#-----[ FIND ]------------------------------------------
#
        'L_DISABLE_SMILIES' => $lang['Disable_Smilies_post'],
        'L_ATTACH_SIGNATURE' => $lang['Attach_signature'],
        'L_NOTIFY_ON_REPLY' => $lang['Notify'],
        'L_DELETE_POST' => $lang['Delete_post'],

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
        // *** trackbacks
        'L_TRACKBACK' => $lang['Trackback'],
        'L_SENDPING_TB_URL' => $lang['SendPing_TB_URL'],
        'L_SENDPING_TB_ENCODING' => $lang['SendPing_TB_Encoding'],
// phpBB_TrackBack - end

#
#-----[ FIND ]------------------------------------------
#
        'S_HTML_CHECKED' => ( !$html_on ) ? 'checked="checked"' : '',
        'S_BBCODE_CHECKED' => ( !$bbcode_on ) ? 'checked="checked"' : '',
        'S_SMILIES_CHECKED' => ( !$smilies_on ) ? 'checked="checked"' : '',
        'S_SIGNATURE_CHECKED' => ( $attach_sig ) ? 'checked="checked"' : '',
        'S_NOTIFY_CHECKED' => ( $notify_user ) ? 'checked="checked"' : '',

#
#-----[ AFTER, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
        // *** trackbacks
        'S_TRACKBACK_CHECKED' => ( $trackback ) ? 'checked="checked"' : '', 
// phpBB_TrackBack - end

#
#-----[ OPEN ]------------------------------------------
# change 1 EA
language/lang_english/lang_admin.php

#
#-----[ FIND ]------------------------------------------
#
//
// That's all
#// That's all Folks!
#// -------------------------------------------------

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
//
// Pingback/Trackback
//
$lang['PBTB'] = 'TrackBack/PB';
$lang['PBTB_General'] = 'Configuration';
$lang['PBTB_Forums'] = 'Forum Settings';
$lang['PBTB_Topics'] = 'Topic Settings';
$lang['PBTB_Config'] = 'Pingback / Trackback Configuration';
$lang['PBTB_General_Explain'] = 'Here you can configure overall pingback and trackback settings.';
$lang['PBTB_Pingback_settings'] = 'Pingback Settings';
$lang['PBTB_Trackback_settings'] = 'Trackback Settings';
$lang['PBTB_Other_settings'] = 'Other Settings';
$lang['PBTB_pb_receive_allow'] = 'Receive Pingbacks';
$lang['PBTB_pb_receive_allow_explain'] = 'Turn this off to completely disable receipt of incoming pingbacks.';
$lang['PBTB_pb_send_allow'] = 'Send Pingbacks';
$lang['PBTB_pb_send_allow_explain'] = 'Turn this off to completely disable sending pingbacks.';
$lang['PBTB_pb_default'] = 'Pingback Default Setting';
$lang['PBTB_pb_default_explain'] = 'Do you want to enable pingbacks by default on new posts?';
$lang['PBTB_pb_admin_only'] = 'Pingbacks for admins only';
$lang['PBTB_pb_admin_only_explain'] = 'Restrict per-post pingbacks to admins only?';
$lang['PBTB_tb_receive_allow'] = 'Receive trackbacks';
$lang['PBTB_tb_receive_allow_explain'] = 'Turn this off to completely disable receipt of incoming trackbacks.';
$lang['PBTB_tb_send_allow'] = 'Send trackbacks';
$lang['PBTB_tb_send_allow_explain'] = 'Turn this off to completely disable sending trackbacks.';
$lang['PBTB_tb_default'] = 'Trackback Default Setting';
$lang['PBTB_tb_default_explain'] = 'Do you want to enable trackbacks by default on new posts?';
$lang['PBTB_tb_admin_only'] = 'Trackbacks for admins only';
$lang['PBTB_tb_admin_only_explain'] = 'Restrict per-post trackbacks to admins only?';
$lang['PBTB_tb_check'] = 'Check incoming trackbacks?';
$lang['PBTB_tb_check_explain'] = 'Check incoming trackbacks to prevent spoofing attempts?';
$lang['PBTB_user_id'] = 'Pingback / Trackback UserID';
$lang['PBTB_user_id_explain'] = 'This is the UserID that will be used to insert pingbacks and trackbacks into the database.';
$lang['PBTB_encoding'] = 'Pingback / Trackback Base Encoding';
$lang['PBTB_encoding_explain'] = 'When send / recv trackback , process this encoding.';
$lang['PBTB_send_ex_length'] = 'Trackback send excerpt string length limit';
$lang['PBTB_send_ex_length_explain'] = 'When send trackback , set limits to string length ';
$lang['PBTB_recv_ex_length'] = 'Trackback receive excerpt string length limit';
$lang['PBTB_recv_ex_length_explain'] = 'When receive trackback , set limits to string length .';

$lang['PBTB_Perms_Title'] = 'Per-Item Permissions';

$lang['PBTB_Pingback'] = "Pingback";
$lang['PBTB_Trackback'] = "Trackback";

$lang['PBTB_Forums_Title'] = 'Forums Administration';
$lang['PBTB_Forums_Explain'] = 'Here you can enable or disable pingbacks and trackbacks for each forum in your board.'; 
// phpBB_TrackBack - end

#
#-----[ OPEN ]------------------------------------------
# change 1 EA
language/lang_english/lang_main.php

#
#-----[ FIND ]------------------------------------------
#
//
// That's all
#// That's all, Folks!
#// -------------------------------------------------

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// phpBB_TrackBack - begin
// PINGBACKS / TRACKBACKS
$lang['Trackback'] = 'Allow Trackbacks on this topic'; 
$lang['SendPing_Post'] = 'Send Ping post to trackback '; 
$lang['SendPing_TB_URL'] = 'Trackback URL '; 
$lang['SendPing_TB_Encoding'] = 'Trackback Encoding'; 
$lang['SendPing_Send_OK'] = 'Send Ping OK '; 
$lang['SendPing_Send_ERR'] = 'Send Ping ERROR '; 
$lang['TB_Msg_Delete_OK'] = 'Trackback msg delete OK '; 
$lang['TB_Msg_Confirm_Delete'] = 'Are you sure you want to delete this trackback msg ? '; 
// phpBB_TrackBack - end

#
#-----[ OPEN ]------------------------------------------
# change 2 EA
templates/subSilver/viewforum_body.tpl

#
#-----[ FIND ]------------------------------------------
# around line 4
	<tr> 
	  <td align="left" valign="bottom" colspan="2"><a class="maintitle" href="{U_VIEW_FORUM}">{FORUM_NAME}</a><br /><span class="gensmall"><b>{L_MODERATOR}: {MODERATORS}<br /><br />{LOGGED_IN_USER_LIST}</b></span></td>
	  <td align="right" valign="bottom" nowrap="nowrap"><span class="gensmall"><b>{PAGINATION}</b></span></td>
	</tr>

#
#-----[ AFTER, ADD ]------------------------------------------
#
<!--  phpBB_TrackBack - begin -->
	<!-- BEGIN switch_forum_trackback_top -->
	<tr>
	  <td align="left" colspan="3"><span class="nav">TrackBack : {Trackback_forum}</span></td>
	</tr>
	<!-- END switch_forum_trackback_top -->
<!--  phpBB_TrackBack - end -->

#
#-----[ FIND ]------------------------------------------
# around line 53
	<tr>
	  <td align="left" colspan="3"><span class="nav">{PAGE_NUMBER}</span></td>
	</tr>

#
#-----[ BEFORE, ADD ]------------------------------------------
#
<!--  phpBB_TrackBack - begin -->
	<!-- BEGIN switch_forum_trackback_bottom -->
	<tr>
	  <td align="left" colspan="3"><span class="nav">TrackBack : {Trackback_forum}</span></td>
	</tr>
	<!-- END switch_forum_trackback_bottom -->
<!--  phpBB_TrackBack - end -->


#
#-----[ OPEN ]------------------------------------------
# change 2 EA
templates/subSilver/viewtopic_body.tpl

#
#-----[ FIND ]------------------------------------------
# around line 31
                        <tr>
                                <td width="100%"><a href="{postrow.U_MINI_POST}"><img src="{postrow.MINI_POST_IMG}" width="12" height="9" alt="{postrow.L_MINI_POST_ALT}" title="{postrow.L_MINI_POST_ALT}" border="0" /></a><span class="postdetails">{L_POSTED}: {postrow.POST_DATE}<span class="gen">&nbsp;</span>&nbsp; &nbsp;{L_POST_SUBJECT}: {postrow.POST_SUBJECT}</span></td>
                                <td valign="top" nowrap="nowrap">{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}</td>
                        </tr>

#
#-----[ IN-LINE FIND ]------------------------------------------
# around line 33
{postrow.QUOTE_IMG}

#
#-----[ IN-LINE BEFORE, ADD ]------------------------------------------
# by offree, caution.!!!!
#{postrow.TRACKBACK} 
{postrow.SENDPING} 

#
#-----[ FIND ]------------------------------------------
# around line 38
			<tr>
				<td colspan="2"><span class="postbody">{postrow.MESSAGE}{postrow.SIGNATURE}</span><span class="gensmall">{postrow.EDITED_MESSAGE}</span></td>
			</tr>

#
#-----[ IN-LINE FIND ]------------------------------------------
# around line 39
{postrow.SIGNATURE}

#
#-----[ IN-LINE BEFORE, ADD ]------------------------------------------
# 
{postrow.TRACKBACK_LNK}{postrow.TRACKBACK_MSG}

#
#-----[ OPEN ]------------------------------------------
# change 2 EA
templates/subSilver/posting_body.tpl

#
#-----[ FIND ]------------------------------------------
# around line 282
	<!-- BEGIN switch_privmsg -->
	<tr> 
		<td class="row1"><span class="gen"><b>{L_USERNAME}</b></span></td>
		<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>
	</tr>
	<!-- END switch_privmsg -->

#
#-----[ AFTER, ADD ]------------------------------------------
#
<!-- phpBB_TrackBack - begin -->
	<!-- BEGIN switch_sendping_trackback_url -->
	<tr> 
	  <td class="row1" width="22%"><span class="gen"><b>{L_SENDPING_TB_URL}</b></span></td>
	  <td class="row2" width="78%"> <span class="gen"> 
		<input type="text" name="sendping_tb_url" size="45" maxlength="60" style="width:450px" tabindex="2" class="post" value="" />
		</span> </td>
	</tr>
	<tr> 
	  <td class="row1" width="22%"><span class="gen"><b>{L_SENDPING_TB_ENCODING}</b></span></td>
	  <td class="row2" width="78%"> <span class="gen"> 
		<input type="radio" name="sendping_tb_encoding" tabindex="2" class="post" value="UTF-8" /> UTF-8
		<input type="radio" name="sendping_tb_encoding" tabindex="2" class="post" value="EUC-KR" checked="checked" /> EUC-KR
		</span> </td>
	</tr>
	<!-- END switch_sendping_trackback_url -->
<!-- phpBB_TrackBack - end -->

#
#-----[ FIND ]------------------------------------------
# around line 437
                  <!-- BEGIN switch_notify_checkbox -->
                  <tr>
                        <td>
                          <input type="checkbox" name="notify" {S_NOTIFY_CHECKED} />
                        </td>
                        <td><span class="gen">{L_NOTIFY_ON_REPLY}</span></td>
                  </tr>
                  <!-- END switch_notify_checkbox -->

#
#-----[ AFTER, ADD ]------------------------------------------
#
<!-- phpBB_TrackBack - begin -->
                  <!-- BEGIN switch_trackback_checkbox -->
                        <td>
                          <input type="checkbox" name="trackback" {S_TRACKBACK_CHECKED} />
                        </td>
                        <td><span class="gen">{L_TRACKBACK}</span></td>
                  <!-- END switch_trackback_checkbox -->
<!-- phpBB_TrackBack - end -->

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

# Install complete . set trackback Mod setting.

# EoM

