Pereiti prie turinio

.arnas

Nariai
  • Pranešimai

    12
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

.arnas Pranešimai

  1. Sveiki,

    1) Kas domitės php-fusion gal žinote kur SQL'e ieškoti pvz user_msn ir pan. t.y. aš noriu sukurti naują laukelį, tad reikia susirasti user_msn ir paredaguoti pvz user_labas ir pvz į profilį dėti ne user_msn, o user_labas. Jei supratote padėkite. Jei ne klauskite bandysiu tiksliau paaiškinti :)

  2. Pavadinimas : Photoshop CS3 vaizdžiai

    Autorius : Lynette Kent

    Puslapiu skaičius : 246

    Aprašymas : Norite sužinoti, kaip pritaikyti "Photoshop CS3" programą saviems darbams? Kaip apkarpyti nuotraukas, keisti jų dydį? Kaip retušuoti nuotraukas? Kaip pakeisti akių spalvą? Kaip pakoreguoti spalvas ir atspalvius? Kaip pritaikyti specialiuosius efektus? Ši knyga skirta kaip tik jums! Ji pravers tiek pažengusiems Photoshop programos vartotojams, tiek pradedantiesiems. Joje rasite 100 pačių svarbiausių temų, įvairių patarimų ir gudrybių, kurie leis nuotraukas, paveikslėlius, iliustracijas, skrajutes tvarkyti greičiau ir veiksmingiau. Visos užduotys iliustruotos ir nuosekliai aprašytos, tai padės lengvai orientuotis ir rasti reikiamas temas.

    Galima pirkti internete iš : http://pigu.lt/knygos_muzika_dvd_zaidimai/...zdziai?id=46134

     

    Va čia tai knyga niekam tikusi (bent jau man..) Šito labai lengvai ir greitai galima išmokti. O Ta pirmoji knyga, nežinau reikėtų išbandyti. :rolleyes:

     

    Tiktais dabar perskaičiau kad jau seniai tą rašė kažkas.. :rolleyes:

  3. Sveiki,

    turiu phpbb2 froumą ir kai kažkokį modą įnstalivau man forume prie nicko prodo taip : .arnas[/b], ')">.arnas

     

    gal žinote kaip ištaisyti ?

     

    viewtopic.php :

     

    <?php
    /***************************************************************************
    *                               viewtopic.php
    *                            -------------------
    *   begin                : Saturday, Feb 13, 2001
    *   copyright            : © 2001 The phpBB Group
    *   email                : [email protected]
    *
    *   $Id: viewtopic.php 6772 2006-12-16 13:11:28Z acydburn $
    *
    *
    ***************************************************************************/
    
    /***************************************************************************
    *
    *   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);
    include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
    include_once($phpbb_root_path.'includes/functions_color_groups.'.$phpEx);
    
    //
    // Start initial var setup
    //
    $topic_id = $post_id = 0;
    if ( isset($HTTP_GET_VARS[post_TOPIC_URL]) )
    {
    $topic_id = intval($HTTP_GET_VARS[post_TOPIC_URL]);
    }
    else if ( isset($HTTP_GET_VARS['topic']) )
    {
    $topic_id = intval($HTTP_GET_VARS['topic']);
    }
    
    if ( isset($HTTP_GET_VARS[post_POST_URL]))
    {
    $post_id = intval($HTTP_GET_VARS[post_POST_URL]);
    }
    
    
    $start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
    $start = ($start < 0) ? 0 : $start;
    
    if (!$topic_id && !$post_id)
    {
    message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
    }
    
    //
    // Find topic id if user requested a newer
    // or older topic
    //
    if ( isset($HTTP_GET_VARS['view']) && empty($HTTP_GET_VARS[post_POST_URL]) )
    {
    if ( $HTTP_GET_VARS['view'] == 'newest' )
    {
    	if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid']) || isset($HTTP_GET_VARS['sid']) )
    	{
    		$session_id = isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid']) ? $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid'] : $HTTP_GET_VARS['sid'];
    
    		if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) 
    		{
    			$session_id = '';
    		}
    
    		if ( $session_id )
    		{
    			$sql = "SELECT p.post_id
    				FROM " . POSTS_TABLE . " p, " . SESSIONS_TABLE . " s,  " . USERS_TABLE . " u
    				WHERE s.session_id = '$session_id'
    					AND u.user_id = s.session_user_id
    					AND p.topic_id = $topic_id
    					AND p.post_time >= u.user_lastvisit
    				ORDER BY p.post_time ASC
    				LIMIT 1";
    			if ( !($result = $db->sql_query($sql)) )
    			{
    				message_die(GENERAL_ERROR, 'Could not obtain newer/older topic information', '', __LINE__, __FILE__, $sql);
    			}
    
    			if ( !($row = $db->sql_fetchrow($result)) )
    			{
    				message_die(GENERAL_MESSAGE, 'No_new_posts_last_visit');
    			}
    
    			$post_id = $row['post_id'];
    
    			if (isset($HTTP_GET_VARS['sid']))
    			{
    				redirect("viewtopic.$phpEx?sid=$session_id&" . POST_POST_URL . "=$post_id#$post_id");
    			}
    			else
    			{
    				redirect("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id");
    			}
    		}
    	}
    
    	redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true));
    }
    else if ( $HTTP_GET_VARS['view'] == 'next' || $HTTP_GET_VARS['view'] == 'previous' )
    {
    	$sql_condition = ( $HTTP_GET_VARS['view'] == 'next' ) ? '>' : '<';
    	$sql_ordering = ( $HTTP_GET_VARS['view'] == 'next' ) ? 'ASC' : 'DESC';
    
    	$sql = "SELECT t.topic_id
    		FROM " . TOPICS_TABLE . " t, " . TOPICS_TABLE . " t2
    		WHERE
    			t2.topic_id = $topic_id
    			AND t.forum_id = t2.forum_id
    			AND t.topic_moved_id = 0
    			AND t.topic_last_post_id $sql_condition t2.topic_last_post_id
    		ORDER BY t.topic_last_post_id $sql_ordering
    		LIMIT 1";
    	if ( !($result = $db->sql_query($sql)) )
    	{
    		message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql);
    	}
    
    	if ( $row = $db->sql_fetchrow($result) )
    	{
    		$topic_id = intval($row['topic_id']);
    	}
    	else
    	{
    		$message = ( $HTTP_GET_VARS['view'] == 'next' ) ? 'No_newer_topics' : 'No_older_topics';
    		message_die(GENERAL_MESSAGE, $message);
    	}
    }
    }
    
    //
    // This rather complex gaggle of code handles querying for topics but
    // also allows for direct linking to a post (and the calculation of which
    // page the post is on and the correct display of viewtopic)
    //
    $join_sql_table = (!$post_id) ? '' : ", " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2 ";
    $join_sql = (!$post_id) ? "t.topic_id = $topic_id" : "p.post_id = $post_id AND t.topic_id = p.topic_id AND p2.topic_id = p.topic_id AND p2.post_id <= $post_id";
    $count_sql = (!$post_id) ? '' : ", COUNT(p2.post_id) AS prev_posts";
    
    $order_sql = (!$post_id) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments ORDER BY p.post_id ASC";
    
    $sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments" . $count_sql . "
    FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $join_sql_table . "
    WHERE $join_sql
    	AND f.forum_id = t.forum_id
    	$order_sql";
    if ( !($result = $db->sql_query($sql)) )
    {
    message_die(GENERAL_ERROR, "Could not obtain topic information", '', __LINE__, __FILE__, $sql);
    }
    
    if ( !($forum_topic_data = $db->sql_fetchrow($result)) )
    {
    message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
    }
    
    $forum_id = intval($forum_topic_data['forum_id']);
    
    //
    // Start session management
    //
    $userdata = session_pagestart($user_ip, $forum_id);
    init_userprefs($userdata);
    //
    // End session management
    //
    
    //
    // Start auth check
    //
    $is_auth = array();
    $is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_topic_data);
    
    if( !$is_auth['auth_view'] || !$is_auth['auth_read'] )
    {
    if ( !$userdata['session_logged_in'] )
    {
    	$redirect = ($post_id) ? POST_POST_URL . "=$post_id" : POST_TOPIC_URL . "=$topic_id";
    	$redirect .= ($start) ? "&start=$start" : '';
    	redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&$redirect", true));
    }
    
    $message = ( !$is_auth['auth_view'] ) ? $lang['Topic_post_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);
    
    message_die(GENERAL_MESSAGE, $message);
    }
    //
    // End auth check
    //
    //
    // Advanced Karma Mod
    // 
    if ( $userdata['session_logged_in'] && isset($HTTP_GET_VARS['k']) && isset($HTTP_GET_VARS[post_USERS_URL]) && $board_config['karma_onoff'] == 1 )
    {
    if ( $HTTP_GET_VARS['k'] == 'p' || $HTTP_GET_VARS['k'] == 'm' )
    {
    	if ( $userdata['user_posts'] >= $board_config['min_post_karma'] || ( $board_config['admin_karma'] == 1 && $userdata['user_level'] == ADMIN ) )
    	{
    		$karma_time = $userdata['karma_time'];
    
    		if ( $board_config['lag_karmer'] == 0 )
    		{
    			$sql = "SELECT karma_time FROM " . USERS_TABLE . " WHERE user_id = '" . intval($HTTP_GET_VARS[post_USERS_URL]) . "'";
    			if ($result = $db->sql_query($sql))
    			{
    				while ($row = $db->sql_fetchrow($result))
    				{
    					$db->sql_freeresult($result);
    					$karma_time = $row['karma_time'];
    				}	
    			}
    			$db->sql_freeresult($result); 
    			}
    
    		if ( ( time() - $karma_time > $board_config['time_between_karma'] * 3600 ) || ( ( $board_config['admin_karma'] == 1 ) && ( $userdata['user_level'] == ADMIN ) ) )
    		{
    			$sql = ( $HTTP_GET_VARS['k'] == 'p' ) ? "UPDATE " . USERS_TABLE . " SET karma_plus = karma_plus + 1 WHERE user_id = '" . intval($HTTP_GET_VARS[post_USERS_URL]) . "'" : "UPDATE " . USERS_TABLE . " SET karma_minus = karma_minus + 1 WHERE user_id = '" . intval($HTTP_GET_VARS[post_USERS_URL]) . "'" ;
    
    			if ( !($result = $db->sql_query($sql)) )
    			{
    				message_die(GENERAL_ERROR, 'Could not update user karma', '', __LINE__, __FILE__, $sql);
    			}
    
    			$sql = ( $board_config['lag_karmer'] == 1 ) ? "UPDATE " . USERS_TABLE . " SET karma_time = '" . time() . "' WHERE user_id = '" . $userdata['user_id'] . "'" : "UPDATE " . USERS_TABLE . " SET karma_time = '" . time() . "' WHERE user_id = '" . intval($HTTP_GET_VARS[post_USERS_URL]) . "'";
    
    			if ( !($result = $db->sql_query($sql)) )
    			{
    				message_die(GENERAL_ERROR, 'Could not update user karma time', '', __LINE__, __FILE__, $sql);
    			}
    
    			$temp_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $HTTP_GET_VARS[post_POST_URL] . "&start=" . $start) . "#" . $HTTP_GET_VARS[post_POST_URL];
    			header("Location: " . $temp_url);
    		}
    	}
    }
    }
    
    $forum_name = $forum_topic_data['forum_name'];
    $topic_title = $forum_topic_data['topic_title'];
    $topic_id = intval($forum_topic_data['topic_id']);
    $topic_time = $forum_topic_data['topic_time'];
    
    if ($post_id)
    {
    $start = floor(($forum_topic_data['prev_posts'] - 1) / intval($board_config['posts_per_page'])) * intval($board_config['posts_per_page']);
    }
    
    //
    // Is user watching this thread?
    //
    if( $userdata['session_logged_in'] )
    {
    $can_watch_topic = TRUE;
    
    $sql = "SELECT notify_status
    	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);
    }
    
    if ( $row = $db->sql_fetchrow($result) )
    {
    	if ( isset($HTTP_GET_VARS['unwatch']) )
    	{
    		if ( $HTTP_GET_VARS['unwatch'] == 'topic' )
    		{
    			$is_watching_topic = 0;
    
    			$sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : '';
    			$sql = "DELETE $sql_priority 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 delete topic watch information", '', __LINE__, __FILE__, $sql);
    			}
    		}
    
    		$template->assign_vars(array(
    			'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=$start") . '">')
    		);
    
    		$message = $lang['No_longer_watching'] . '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=$start") . '">', '</a>');
    		message_die(GENERAL_MESSAGE, $message);
    	}
    	else
    	{
    		$is_watching_topic = TRUE;
    
    		if ( $row['notify_status'] )
    		{
    			$sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : '';
    			$sql = "UPDATE $sql_priority " . TOPICS_WATCH_TABLE . "
    				SET notify_status = 0
    				WHERE topic_id = $topic_id
    					AND user_id = " . $userdata['user_id'];
    			if ( !($result = $db->sql_query($sql)) )
    			{
    				message_die(GENERAL_ERROR, "Could not update topic watch information", '', __LINE__, __FILE__, $sql);
    			}
    		}
    	}
    }
    else
    {
    	if ( isset($HTTP_GET_VARS['watch']) )
    	{
    		if ( $HTTP_GET_VARS['watch'] == 'topic' )
    		{
    			$is_watching_topic = TRUE;
    
    			$sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : '';
    			$sql = "INSERT $sql_priority INTO " . TOPICS_WATCH_TABLE . " (user_id, topic_id, notify_status)
    				VALUES (" . $userdata['user_id'] . ", $topic_id, 0)";
    			if ( !($result = $db->sql_query($sql)) )
    			{
    				message_die(GENERAL_ERROR, "Could not insert topic watch information", '', __LINE__, __FILE__, $sql);
    			}
    		}
    
    		$template->assign_vars(array(
    			'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=$start") . '">')
    		);
    
    		$message = $lang['You_are_watching'] . '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=$start") . '">', '</a>');
    		message_die(GENERAL_MESSAGE, $message);
    	}
    	else
    	{
    		$is_watching_topic = 0;
    	}
    }
    }
    else
    {
    if ( isset($HTTP_GET_VARS['unwatch']) )
    {
    	if ( $HTTP_GET_VARS['unwatch'] == 'topic' )
    	{
    		redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&" . POST_TOPIC_URL . "=$topic_id&unwatch=topic", true));
    	}
    }
    else
    {
    	$can_watch_topic = 0;
    	$is_watching_topic = 0;
    }
    }
    
    //
    // Generate a 'Show posts in previous x days' select box. If the postdays var is POSTed
    // then get it's value, find the number of topics with dates newer than it (to properly
    // handle pagination) and alter the main query
    //
    $previous_days = array(0, 1, 7, 14, 30, 90, 180, 364);
    $previous_days_text = array($lang['All_Posts'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']);
    
    if( !empty($HTTP_POST_VARS['postdays']) || !empty($HTTP_GET_VARS['postdays']) )
    {
    $post_days = ( !empty($HTTP_POST_VARS['postdays']) ) ? intval($HTTP_POST_VARS['postdays']) : intval($HTTP_GET_VARS['postdays']);
    $min_post_time = time() - (intval($post_days) * 86400);
    
    $sql = "SELECT COUNT(p.post_id) AS num_posts
    	FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p
    	WHERE t.topic_id = $topic_id
    		AND p.topic_id = t.topic_id
    		AND p.post_time >= $min_post_time";
    if ( !($result = $db->sql_query($sql)) )
    {
    	message_die(GENERAL_ERROR, "Could not obtain limited topics count information", '', __LINE__, __FILE__, $sql);
    }
    
    $total_replies = ( $row = $db->sql_fetchrow($result) ) ? intval($row['num_posts']) : 0;
    
    $limit_posts_time = "AND p.post_time >= $min_post_time ";
    
    if ( !empty($HTTP_POST_VARS['postdays']))
    {
    	$start = 0;
    }
    }
    else
    {
    $total_replies = intval($forum_topic_data['topic_replies']) + 1;
    
    $limit_posts_time = '';
    $post_days = 0;
    }
    
    $select_post_days = '<select name="postdays">';
    for($i = 0; $i < count($previous_days); $i++)
    {
    $selected = ($post_days == $previous_days[$i]) ? ' selected="selected"' : '';
    $select_post_days .= '<option value="' . $previous_days[$i] . '"' . $selected . '>' . $previous_days_text[$i] . '</option>';
    }
    $select_post_days .= '</select>';
    
    //
    // Decide how to order the post display
    //
    if ( !empty($HTTP_POST_VARS['postorder']) || !empty($HTTP_GET_VARS['postorder']) )
    {
    $post_order = (!empty($HTTP_POST_VARS['postorder'])) ? htmlspecialchars($HTTP_POST_VARS['postorder']) : htmlspecialchars($HTTP_GET_VARS['postorder']);
    $post_time_order = ($post_order == "asc") ? "ASC" : "DESC";
    }
    else
    {
    $post_order = 'asc';
    $post_time_order = 'ASC';
    }
    
    $select_post_order = '<select name="postorder">';
    if ( $post_time_order == 'ASC' )
    {
    $select_post_order .= '<option value="asc" selected="selected">' . $lang['Oldest_First'] . '</option><option value="desc">' . $lang['Newest_First'] . '</option>';
    }
    else
    {
    $select_post_order .= '<option value="asc">' . $lang['Oldest_First'] . '</option><option value="desc" selected="selected">' . $lang['Newest_First'] . '</option>';
    }
    $select_post_order .= '</select>';
    
    //
    // Go ahead and pull all data for this topic
    //
    $sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, u.karma_plus, u.karma_minus, u.karma_time, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
    FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
    WHERE p.topic_id = $topic_id
    	$limit_posts_time
    	AND pt.post_id = p.post_id
    	AND u.user_id = p.poster_id
    ORDER BY p.post_time $post_time_order
    LIMIT $start, ".$board_config['posts_per_page'];
    if ( !($result = $db->sql_query($sql)) )
    {
    message_die(GENERAL_ERROR, "Could not obtain post/user information.", '', __LINE__, __FILE__, $sql);
    }
    
    $postrow = array();
    if ($row = $db->sql_fetchrow($result))
    {
    do
    {
    	$postrow[] = $row;
    }
    while ($row = $db->sql_fetchrow($result));
    $db->sql_freeresult($result);
    
    $total_posts = count($postrow);
    }
    else 
    { 
      include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); 
      sync('topic', $topic_id); 
    
      message_die(GENERAL_MESSAGE, $lang['No_posts_topic']); 
    } 
    
    $resync = FALSE; 
    if ($forum_topic_data['topic_replies'] + 1 < $start + count($postrow)) 
    { 
      $resync = TRUE; 
    } 
    elseif ($start + $board_config['posts_per_page'] > $forum_topic_data['topic_replies']) 
    { 
      $row_id = intval($forum_topic_data['topic_replies']) % intval($board_config['posts_per_page']); 
      if ($postrow[$row_id]['post_id'] != $forum_topic_data['topic_last_post_id'] || $start + count($postrow) < $forum_topic_data['topic_replies']) 
      { 
         $resync = TRUE; 
      } 
    } 
    elseif (count($postrow) < $board_config['posts_per_page']) 
    { 
      $resync = TRUE; 
    } 
    
    if ($resync) 
    { 
      include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); 
      sync('topic', $topic_id); 
    
      $result = $db->sql_query('SELECT COUNT(post_id) AS total FROM ' . POSTS_TABLE . ' WHERE topic_id = ' . $topic_id); 
      $row = $db->sql_fetchrow($result); 
      $total_replies = $row['total']; 
    }
    
    $sql = "SELECT *
    FROM " . RANKS_TABLE . "
    ORDER BY rank_special, rank_min";
    if ( !($result = $db->sql_query($sql)) )
    {
    message_die(GENERAL_ERROR, "Could not obtain ranks information.", '', __LINE__, __FILE__, $sql);
    }
    
    $ranksrow = array();
    while ( $row = $db->sql_fetchrow($result) )
    {
    $ranksrow[] = $row;
    }
    $db->sql_freeresult($result);
    
    //
    // Define censored word matches
    //
    $orig_word = array();
    $replacement_word = array();
    obtain_word_list($orig_word, $replacement_word);
    
    //
    // Censor topic title
    //
    if ( count($orig_word) )
    {
    $topic_title = preg_replace($orig_word, $replacement_word, $topic_title);
    }
    
    //
    // Was a highlight request part of the URI?
    //
    $highlight_match = $highlight = '';
    if (isset($HTTP_GET_VARS['highlight']))
    {
    // Split words and phrases
    $words = explode(' ', trim(htmlspecialchars($HTTP_GET_VARS['highlight'])));
    
    for($i = 0; $i < sizeof($words); $i++)
    {
    	if (trim($words[$i]) != '')
    	{
    		$highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', '\w*', preg_quote($words[$i], '#'));
    	}
    }
    unset($words);
    
    $highlight = urlencode($HTTP_GET_VARS['highlight']);
    $highlight_match = phpbb_rtrim($highlight_match, "\\");
    }
    
    //
    // Post, reply and other URL generation for
    // templating vars
    //
    $new_topic_url = append_sid("posting.$phpEx?mode=newtopic&" . POST_FORUM_URL . "=$forum_id");
    $reply_topic_url = append_sid("posting.$phpEx?mode=reply&" . POST_TOPIC_URL . "=$topic_id");
    $view_forum_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id");
    $view_prev_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=previous");
    $view_next_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=next");
    
    //
    // Mozilla navigation bar
    //
    $nav_links['prev'] = array(
    'url' => $view_prev_topic_url,
    'title' => $lang['View_previous_topic']
    );
    $nav_links['next'] = array(
    'url' => $view_next_topic_url,
    'title' => $lang['View_next_topic']
    );
    $nav_links['up'] = array(
    'url' => $view_forum_url,
    'title' => $forum_name
    );
    
    $reply_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $images['reply_locked'] : $images['reply_new'];
    $reply_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['Reply_to_topic'];
    $post_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new'];
    $post_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic'];
    
    //
    // Set a cookie for this topic
    //
    if ( $userdata['session_logged_in'] )
    {
    $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array();
    $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array();
    
    if ( !empty($tracking_topics[$topic_id]) && !empty($tracking_forums[$forum_id]) )
    {
    	$topic_last_read = ( $tracking_topics[$topic_id] > $tracking_forums[$forum_id] ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id];
    }
    else if ( !empty($tracking_topics[$topic_id]) || !empty($tracking_forums[$forum_id]) )
    {
    	$topic_last_read = ( !empty($tracking_topics[$topic_id]) ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id];
    }
    else
    {
    	$topic_last_read = $userdata['user_lastvisit'];
    }
    
    if ( count($tracking_topics) >= 150 && 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']);
    }
    
    //
    // Load templates
    //
    $template->set_filenames(array(
    'body' => 'viewtopic_body.tpl')
    );
    make_jumpbox('viewforum.'.$phpEx, $forum_id);
    
    //
    // Output page header
    //
    $page_title = $lang['View_topic'] .' - ' . $topic_title;
    include($phpbb_root_path . 'includes/page_header.'.$phpEx);
    
    //
    // User authorisation levels output
    //
    $s_auth_can = ( ( $is_auth['auth_post'] ) ? $lang['Rules_post_can'] : $lang['Rules_post_cannot'] ) . '<br />';
    $s_auth_can .= ( ( $is_auth['auth_reply'] ) ? $lang['Rules_reply_can'] : $lang['Rules_reply_cannot'] ) . '<br />';
    $s_auth_can .= ( ( $is_auth['auth_edit'] ) ? $lang['Rules_edit_can'] : $lang['Rules_edit_cannot'] ) . '<br />';
    $s_auth_can .= ( ( $is_auth['auth_delete'] ) ? $lang['Rules_delete_can'] : $lang['Rules_delete_cannot'] ) . '<br />';
    $s_auth_can .= ( ( $is_auth['auth_vote'] ) ? $lang['Rules_vote_can'] : $lang['Rules_vote_cannot'] ) . '<br />';
    
    $topic_mod = '';
    
    if ( $is_auth['auth_mod'] )
    {
    $s_auth_can .= sprintf($lang['Rules_moderate'], "<a href=\"modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id'] . '">', '</a>');
    
    $topic_mod .= "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=delete&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_delete'] . '" alt="' . $lang['Delete_topic'] . '" title="' . $lang['Delete_topic'] . '" border="0" /></a> ';
    
    $topic_mod .= "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=move&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_move'] . '" alt="' . $lang['Move_topic'] . '" title="' . $lang['Move_topic'] . '" border="0" /></a> ';
    
    $topic_mod .= ( $forum_topic_data['topic_status'] == TOPIC_UNLOCKED ) ? "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=lock&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_lock'] . '" alt="' . $lang['Lock_topic'] . '" title="' . $lang['Lock_topic'] . '" border="0" /></a> ' : "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=unlock&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_unlock'] . '" alt="' . $lang['Unlock_topic'] . '" title="' . $lang['Unlock_topic'] . '" border="0" /></a> ';
    
    $topic_mod .= "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=split&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_split'] . '" alt="' . $lang['Split_topic'] . '" title="' . $lang['Split_topic'] . '" border="0" /></a> ';
    }
    
    //
    // Topic watch information
    //
    $s_watching_topic = '';
    if ( $can_watch_topic )
    {
    if ( $is_watching_topic )
    {
    	$s_watching_topic = "<a href=\"viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&unwatch=topic&start=$start&sid=" . $userdata['session_id'] . '">' . $lang['Stop_watching_topic'] . '</a>';
    	$s_watching_topic_img = ( isset($images['topic_un_watch']) ) ? "<a href=\"viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&unwatch=topic&start=$start&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_un_watch'] . '" alt="' . $lang['Stop_watching_topic'] . '" title="' . $lang['Stop_watching_topic'] . '" border="0"></a>' : '';
    }
    else
    {
    	$s_watching_topic = "<a href=\"viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&watch=topic&start=$start&sid=" . $userdata['session_id'] . '">' . $lang['Start_watching_topic'] . '</a>';
    	$s_watching_topic_img = ( isset($images['Topic_watch']) ) ? "<a href=\"viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&watch=topic&start=$start&sid=" . $userdata['session_id'] . '"><img src="' . $images['Topic_watch'] . '" alt="' . $lang['Start_watching_topic'] . '" title="' . $lang['Start_watching_topic'] . '" border="0"></a>' : '';
    }
    }
    
    //
    // If we've got a hightlight set pass it on to pagination,
    // I get annoyed when I lose my highlight after the first page.
    //
    $pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&highlight=$highlight", $total_replies, $board_config['posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order", $total_replies, $board_config['posts_per_page'], $start);
    
    //
    // Send vars to template
    //
    $template->assign_vars(array(
    'FORUM_ID' => $forum_id,
       'FORUM_NAME' => $forum_name,
       'TOPIC_ID' => $topic_id,
       'TOPIC_TITLE' => $topic_title,
    'PAGINATION' => $pagination,
    'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / intval($board_config['posts_per_page']) ) + 1 ), ceil( $total_replies / intval($board_config['posts_per_page']) )),
    
    'POST_IMG' => $post_img,
    'REPLY_IMG' => $reply_img,
    
    'L_AUTHOR' => $lang['Author'],
    'L_MESSAGE' => $lang['Message'],
    'L_POSTED' => $lang['Posted'],
    'L_POST_SUBJECT' => $lang['Post_subject'],
    'L_VIEW_NEXT_TOPIC' => $lang['View_next_topic'],
    'L_VIEW_PREVIOUS_TOPIC' => $lang['View_previous_topic'],
    'L_POST_NEW_TOPIC' => $post_alt,
    'L_POST_REPLY_TOPIC' => $reply_alt,
    'L_BACK_TO_TOP' => $lang['Back_to_top'],
    'L_DISPLAY_POSTS' => $lang['Display_posts'],
    'L_LOCK_TOPIC' => $lang['Lock_topic'],
    'L_UNLOCK_TOPIC' => $lang['Unlock_topic'],
    'L_MOVE_TOPIC' => $lang['Move_topic'],
    'L_SPLIT_TOPIC' => $lang['Split_topic'],
    'L_DELETE_TOPIC' => $lang['Delete_topic'],
    'L_GOTO_PAGE' => $lang['Goto_page'],
    
    'S_TOPIC_LINK' => POST_TOPIC_URL,
    'S_SELECT_POST_DAYS' => $select_post_days,
    'S_SELECT_POST_ORDER' => $select_post_order,
    'S_POST_DAYS_ACTION' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $topic_id . "&start=$start"),
    'S_AUTH_LIST' => $s_auth_can,
    'S_TOPIC_ADMIN' => $topic_mod,
    'S_WATCH_TOPIC' => $s_watching_topic,
    'S_WATCH_TOPIC_IMG' => $s_watching_topic_img,
    
    'U_VIEW_TOPIC' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=$start&postdays=$post_days&postorder=$post_order&highlight=$highlight"),
    'U_VIEW_FORUM' => $view_forum_url,
    'U_VIEW_OLDER_TOPIC' => $view_prev_topic_url,
    'U_VIEW_NEWER_TOPIC' => $view_next_topic_url,
    'U_POST_NEW_TOPIC' => $new_topic_url,
    'U_POST_REPLY_TOPIC' => $reply_topic_url)
    );
    
    //
    // Does this topic contain a poll?
    //
    if ( !empty($forum_topic_data['topic_vote']) )
    {
    $s_hidden_fields = '';
    
    $sql = "SELECT vd.vote_id, vd.vote_text, vd.vote_start, vd.vote_length, vr.vote_option_id, vr.vote_option_text, vr.vote_result
    	FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr
    	WHERE vd.topic_id = $topic_id
    		AND vr.vote_id = vd.vote_id
    	ORDER BY vr.vote_option_id ASC";
    if ( !($result = $db->sql_query($sql)) )
    {
    	message_die(GENERAL_ERROR, "Could not obtain vote data for this topic", '', __LINE__, __FILE__, $sql);
    }
    
    if ( $vote_info = $db->sql_fetchrowset($result) )
    {
    	$db->sql_freeresult($result);
    	$vote_options = count($vote_info);
    
    	$vote_id = $vote_info[0]['vote_id'];
    	$vote_title = $vote_info[0]['vote_text'];
    
    	$sql = "SELECT vote_id
    		FROM " . VOTE_USERS_TABLE . "
    		WHERE vote_id = $vote_id
    			AND vote_user_id = " . intval($userdata['user_id']);
    	if ( !($result = $db->sql_query($sql)) )
    	{
    		message_die(GENERAL_ERROR, "Could not obtain user vote data for this topic", '', __LINE__, __FILE__, $sql);
    	}
    
    	$user_voted = ( $row = $db->sql_fetchrow($result) ) ? TRUE : 0;
    	$db->sql_freeresult($result);
    
    	if ( isset($HTTP_GET_VARS['vote']) || isset($HTTP_POST_VARS['vote']) )
    	{
    		$view_result = ( ( ( isset($HTTP_GET_VARS['vote']) ) ? $HTTP_GET_VARS['vote'] : $HTTP_POST_VARS['vote'] ) == 'viewresult' ) ? TRUE : 0;
    	}
    	else
    	{
    		$view_result = 0;
    	}
    
    	$poll_expired = ( $vote_info[0]['vote_length'] ) ? ( ( $vote_info[0]['vote_start'] + $vote_info[0]['vote_length'] < time() ) ? TRUE : 0 ) : 0;
    
    	if ( $user_voted || $view_result || $poll_expired || !$is_auth['auth_vote'] || $forum_topic_data['topic_status'] == TOPIC_LOCKED )
    	{
    		$template->set_filenames(array(
    			'pollbox' => 'viewtopic_poll_result.tpl')
    		);
    
    		$vote_results_sum = 0;
    
    		for($i = 0; $i < $vote_options; $i++)
    		{
    			$vote_results_sum += $vote_info[$i]['vote_result'];
    		}
    
    		$vote_graphic = 0;
    		$vote_graphic_max = count($images['voting_graphic']);
    
    		for($i = 0; $i < $vote_options; $i++)
    		{
    			$vote_percent = ( $vote_results_sum > 0 ) ? $vote_info[$i]['vote_result'] / $vote_results_sum : 0;
    			$vote_graphic_length = round($vote_percent * $board_config['vote_graphic_length']);
    
    			$vote_graphic_img = $images['voting_graphic'][$vote_graphic];
    			$vote_graphic = ($vote_graphic < $vote_graphic_max - 1) ? $vote_graphic + 1 : 0;
    
    			if ( count($orig_word) )
    			{
    				$vote_info[$i]['vote_option_text'] = preg_replace($orig_word, $replacement_word, $vote_info[$i]['vote_option_text']);
    			}
    
    			$template->assign_block_vars("poll_option", array(
    				'POLL_OPTION_CAPTION' => $vote_info[$i]['vote_option_text'],
    				'POLL_OPTION_RESULT' => $vote_info[$i]['vote_result'],
    				'POLL_OPTION_PERCENT' => sprintf("%.1d%%", ($vote_percent * 100)),
    
    				'POLL_OPTION_IMG' => $vote_graphic_img,
    				'POLL_OPTION_IMG_WIDTH' => $vote_graphic_length)
    			);
    		}
    
    		$template->assign_vars(array(
    			'L_TOTAL_VOTES' => $lang['Total_votes'],
    			'TOTAL_VOTES' => $vote_results_sum)
    		);
    
    	}
    	else
    	{
    		$template->set_filenames(array(
    			'pollbox' => 'viewtopic_poll_ballot.tpl')
    		);
    
    		for($i = 0; $i < $vote_options; $i++)
    		{
    			if ( count($orig_word) )
    			{
    				$vote_info[$i]['vote_option_text'] = preg_replace($orig_word, $replacement_word, $vote_info[$i]['vote_option_text']);
    			}
    
    			$template->assign_block_vars("poll_option", array(
    				'POLL_OPTION_ID' => $vote_info[$i]['vote_option_id'],
    				'POLL_OPTION_CAPTION' => $vote_info[$i]['vote_option_text'])
    			);
    		}
    
    		$template->assign_vars(array(
    			'L_SUBMIT_VOTE' => $lang['Submit_vote'],
    			'L_VIEW_RESULTS' => $lang['View_results'],
    
    			'U_VIEW_RESULTS' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&vote=viewresult"))
    		);
    
    		$s_hidden_fields = '<input type="hidden" name="topic_id" value="' . $topic_id . '" /><input type="hidden" name="mode" value="vote" />';
    	}
    
    	if ( count($orig_word) )
    	{
    		$vote_title = preg_replace($orig_word, $replacement_word, $vote_title);
    	}
    
    	$s_hidden_fields .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';
    
    	$template->assign_vars(array(
    		'POLL_QUESTION' => $vote_title,
    
    		'S_HIDDEN_FIELDS' => $s_hidden_fields,
    		'S_POLL_ACTION' => append_sid("posting.$phpEx?mode=vote&" . POST_TOPIC_URL . "=$topic_id"))
    	);
    
    	$template->assign_var_from_handle('POLL_DISPLAY', 'pollbox');
    }
    }
    
    //
    // Update the topic view counter
    //
    $sql = "UPDATE " . TOPICS_TABLE . "
    SET topic_views = topic_views + 1
    WHERE topic_id = $topic_id";
    if ( !$db->sql_query($sql) )
    {
    message_die(GENERAL_ERROR, "Could not update topic views.", '', __LINE__, __FILE__, $sql);
    }
    
    //
    // 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++)
    {
    $poster_id = $postrow[$i]['user_id'];
    $poster = ( $poster_id == ANONYMOUS ) ? $lang['Guest'] : $postrow[$i]['username'];
    
    $post_date = create_date($board_config['default_dateformat'], $postrow[$i]['post_time'], $board_config['board_timezone']);
    
    $poster_posts = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Posts'] . ': ' . $postrow[$i]['user_posts'] : '';
    
    $poster_from = ( $postrow[$i]['user_from'] && $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Location'] . ': ' . $postrow[$i]['user_from'] : '';
    
    $poster_joined = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Joined'] . ': ' . create_date($lang['DATE_FORMAT'], $postrow[$i]['user_regdate'], $board_config['board_timezone']) : '';
    
    $poster_avatar = '';
    if ( $postrow[$i]['user_avatar_type'] && $poster_id != ANONYMOUS && $postrow[$i]['user_allowavatar'] )
    {
    	switch( $postrow[$i]['user_avatar_type'] )
    	{
    		case USER_AVATAR_UPLOAD:
    			$poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';
    			break;
    		case USER_AVATAR_REMOTE:
    			$poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';
    			break;
    		case USER_AVATAR_GALLERY:
    			$poster_avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';
    			break;
    	}
    }
    //
    // Advanced Karma Mod
    // 
    $karma = '';
    if ( $userdata['session_logged_in'] && $poster_id != ANONYMOUS && $board_config['karma_onoff'] == 1)
    {
    	$karma = '<br />' . $lang['Karma'] . ' ' . ( ( $board_config['simple_karma'] == 1 ) ? $postrow[$i]['karma_plus'] - $postrow[$i]['karma_minus'] : '+' . $postrow[$i]['karma_plus'] . '/-' . $postrow[$i]['karma_minus'] );
    
    	if ( $userdata['user_id'] != $poster_id && ( $userdata['user_posts'] >= $board_config['min_post_karma'] || ( $board_config['admin_karma'] == 1 && $userdata['user_level'] == ADMIN ) ) )
    	{
    		$karma_time = ( $board_config['lag_karmer'] == 1 ) ? $userdata['karma_time'] : $postrow[$i]['karma_time'];
    		if ( ( time() - $karma_time > $board_config['time_between_karma'] * 3600 ) || ( ( $board_config['admin_karma'] == 1 ) && ( $userdata['user_level'] == ADMIN ) ) )
    		{
    			if ( $board_config['karma_comments'] )
    			{
    				$temp_url = append_sid("karma.$phpEx?" . POST_USERS_URL . "=" . $poster_id . "&k=p");
    				$temp_url .= '"onclick="window.open(\'' . $temp_url . '\', \'_phpbbkarma\', \'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=500\');return false;" target="_phpbbkarma';
    			}
    			else
    			{
    				$temp_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_USERS_URL . "=" . $poster_id . "&start=" . $start . "&k=p") . "#" . $postrow[$i]['post_id'];
    			}
    			$karma .= ' <a href="' . $temp_url . '"><img src="' . $images['icon_plus'] . '" alt="' . $lang['Karma_Plus'] . '" title="' . $lang['Karma_Plus'] . '" width="11" height="11" border="0" /></a>';
    
    			if ( $board_config['karma_comments'] )
    			{
    				$temp_url = append_sid("karma.$phpEx?" . POST_USERS_URL . "=" . $poster_id . "&k=m");
    				$temp_url .= '"onclick="window.open(\'' . $temp_url . '\', \'_phpbbkarma\', \'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=500\');return false;" target="_phpbbkarma';
    			}
    			else
    			{
    				$temp_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_USERS_URL . "=" . $poster_id . "&start=" . $start . "&k=m") . "#" . $postrow[$i]['post_id'];
    			}
    			$karma .= ' <a href="' . $temp_url . '"><img src="' . $images['icon_minus'] . '" alt="' . $lang['Karma_Minus'] . '" title="' . $lang['Karma_Minus'] . '" width="11" height="11" border="0" /></a>';
    		}
    	}
    }
    // Default avatar MOD, By Manipe (Begin)
    if ((!$poster_avatar) && ($board_config['default_avatar_set'] != 3)){
    	if (($board_config['default_avatar_set'] == 0) && ($poster_id == -1) && ($board_config['default_avatar_guests_url'])){
    		$poster_avatar = '<img src="' . $board_config['default_avatar_guests_url'] . '" alt="" border="0" />';
    	}
    	else if (($board_config['default_avatar_set'] == 1) && ($poster_id != -1) && ($board_config['default_avatar_users_url']) ){
    		$poster_avatar = '<img src="' . $board_config['default_avatar_users_url'] . '" alt="" border="0" />';
    	}
    	else if ($board_config['default_avatar_set'] == 2){
    		if (($poster_id == -1) && ($board_config['default_avatar_guests_url'])){
    			$poster_avatar = '<img src="' . $board_config['default_avatar_guests_url'] . '" alt="" border="0" />';
    		}
    		else if (($poster_id != -1) && ($board_config['default_avatar_users_url'])){
    			$poster_avatar = '<img src="' . $board_config['default_avatar_users_url'] . '" alt="" border="0" />';
    		}
    	}
    }
    // Default avatar MOD, By Manipe (End)
    
    //
    // Define the little post icon
    //
    if ( $userdata['session_logged_in'] && $postrow[$i]['post_time'] > $userdata['user_lastvisit'] && $postrow[$i]['post_time'] > $topic_last_read )
    {
    	$mini_post_img = $images['icon_minipost_new'];
    	$mini_post_alt = $lang['New_post'];
    }
    else
    {
    	$mini_post_img = $images['icon_minipost'];
    	$mini_post_alt = $lang['Post'];
    }
    
    $mini_post_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $postrow[$i]['post_id']) . '#' . $postrow[$i]['post_id'];
    
    //
    // Generate ranks, set them to empty string initially.
    //
    $poster_rank = '';
    $rank_image = '';
    if ( $postrow[$i]['user_id'] == ANONYMOUS )
    {
    }
    else if ( $postrow[$i]['user_rank'] )
    {
    	for($j = 0; $j < count($ranksrow); $j++)
    	{
    		if ( $postrow[$i]['user_rank'] == $ranksrow[$j]['rank_id'] && $ranksrow[$j]['rank_special'] )
    		{
    			$poster_rank = $ranksrow[$j]['rank_title'];
    			$rank_image = ( $ranksrow[$j]['rank_image'] ) ? '<img src="' . $ranksrow[$j]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
    		}
    	}
    }
    else
    {
    	for($j = 0; $j < count($ranksrow); $j++)
    	{
    		if ( $postrow[$i]['user_posts'] >= $ranksrow[$j]['rank_min'] && !$ranksrow[$j]['rank_special'] )
    		{
    			$poster_rank = $ranksrow[$j]['rank_title'];
    			$rank_image = ( $ranksrow[$j]['rank_image'] ) ? '<img src="' . $ranksrow[$j]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
    		}
    	}
    }
    
    //
    // 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 )
    {
    	$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$poster_id");
    	$profile_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_profile'] . '" alt="' . $lang['Read_profile'] . '" title="' . $lang['Read_profile'] . '" border="0" /></a>';
    	$profile = '<a href="' . $temp_url . '">' . $lang['Read_profile'] . '</a>';
    
    	$temp_url = append_sid("privmsg.$phpEx?mode=post&" . 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>';
    
    	if ( !empty($postrow[$i]['user_viewemail']) || $is_auth['auth_mod'] )
    	{
    		$email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $poster_id) : 'mailto:' . $postrow[$i]['user_email'];
    
    		$email_img = '<a href="' . $email_uri . '"><img src="' . $images['icon_email'] . '" alt="' . $lang['Send_email'] . '" title="' . $lang['Send_email'] . '" border="0" /></a>';
    		$email = '<a href="' . $email_uri . '">' . $lang['Send_email'] . '</a>';
    	}
    	else
    	{
    		$email_img = '';
    		$email = '';
    	}
    
    	$www_img = ( $postrow[$i]['user_website'] ) ? '<a href="' . $postrow[$i]['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '';
    	$www = ( $postrow[$i]['user_website'] ) ? '<a href="' . $postrow[$i]['user_website'] . '" target="_userwww">' . $lang['Visit_website'] . '</a>' : '';
    
    	if ( !empty($postrow[$i]['user_icq']) )
    	{
    		$icq_status_img = '<a href="http://wwp.icq.com/' . $postrow[$i]['user_icq'] . '#pager"><img src="http://web.icq.com/whitepages/online?icq=' . $postrow[$i]['user_icq'] . '&img=5" width="18" height="18" border="0" /></a>';
    		$icq_img = '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $postrow[$i]['user_icq'] . '"><img src="' . $images['icon_icq'] . '" alt="' . $lang['ICQ'] . '" title="' . $lang['ICQ'] . '" border="0" /></a>';
    		$icq =  '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $postrow[$i]['user_icq'] . '">' . $lang['ICQ'] . '</a>';
    	}
    	else
    	{
    		$icq_status_img = '';
    		$icq_img = '';
    		$icq = '';
    	}
    
    	$aim_img = ( $postrow[$i]['user_aim'] ) ? '<a href="aim:goim?screenname=' . $postrow[$i]['user_aim'] . '&message=Hello+Are+you+there?"><img src="' . $images['icon_aim'] . '" alt="' . $lang['AIM'] . '" title="' . $lang['AIM'] . '" border="0" /></a>' : '';
    	$aim = ( $postrow[$i]['user_aim'] ) ? '<a href="aim:goim?screenname=' . $postrow[$i]['user_aim'] . '&message=Hello+Are+you+there?">' . $lang['AIM'] . '</a>' : '';
    
    	$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$poster_id");
    	$msn_img = ( $postrow[$i]['user_msnm'] ) ? '<a href="' . $temp_url . '"><img src="' . $images['icon_msnm'] . '" alt="' . $lang['MSNM'] . '" title="' . $lang['MSNM'] . '" border="0" /></a>' : '';
    	$msn = ( $postrow[$i]['user_msnm'] ) ? '<a href="' . $temp_url . '">' . $lang['MSNM'] . '</a>' : '';
    
    	$yim_img = ( $postrow[$i]['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $postrow[$i]['user_yim'] . '&.src=pg"><img src="' . $images['icon_yim'] . '" alt="' . $lang['YIM'] . '" title="' . $lang['YIM'] . '" border="0" /></a>' : '';
    	$yim = ( $postrow[$i]['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $postrow[$i]['user_yim'] . '&.src=pg">' . $lang['YIM'] . '</a>' : '';
    }
    else
    {
    	$profile_img = '';
    	$profile = '';
    	$pm_img = '';
    	$pm = '';
    	$email_img = '';
    	$email = '';
    	$www_img = '';
    	$www = '';
    	$icq_status_img = '';
    	$icq_img = '';
    	$icq = '';
    	$aim_img = '';
    	$aim = '';
    	$msn_img = '';
    	$msn = '';
    	$yim_img = '';
    	$yim = '';
    }
    
    $temp_url = append_sid("posting.$phpEx?mode=quote&" . POST_POST_URL . "=" . $postrow[$i]['post_id']);
    $quote_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_quote'] . '" alt="' . $lang['Reply_with_quote'] . '" title="' . $lang['Reply_with_quote'] . '" border="0" /></a>';
    $quote = '<a href="' . $temp_url . '">' . $lang['Reply_with_quote'] . '</a>';
    
    $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($postrow[$i]['username']) . "&showresults=posts");
    $search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . sprintf($lang['Search_user_posts'], $postrow[$i]['username']) . '" title="' . sprintf($lang['Search_user_posts'], $postrow[$i]['username']) . '" border="0" /></a>';
    $search = '<a href="' . $temp_url . '">' . sprintf($lang['Search_user_posts'], $postrow[$i]['username']) . '</a>';
    
    if ( ( $userdata['user_id'] == $poster_id && $is_auth['auth_edit'] ) || $is_auth['auth_mod'] )
    {
    	$temp_url = append_sid("posting.$phpEx?mode=editpost&" . POST_POST_URL . "=" . $postrow[$i]['post_id']);
    	$edit_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_edit'] . '" alt="' . $lang['Edit_delete_post'] . '" title="' . $lang['Edit_delete_post'] . '" border="0" /></a>';
    	$edit = '<a href="' . $temp_url . '">' . $lang['Edit_delete_post'] . '</a>';
    }
    else
    {
    	$edit_img = '';
    	$edit = '';
    }
    
    if ( $is_auth['auth_mod'] )
    {
    	$temp_url = "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id'];
    	$ip_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_ip'] . '" alt="' . $lang['View_IP'] . '" title="' . $lang['View_IP'] . '" border="0" /></a>';
    	$ip = '<a href="' . $temp_url . '">' . $lang['View_IP'] . '</a>';
    
    	$temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id'];
    	$delpost_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_delpost'] . '" alt="' . $lang['Delete_post'] . '" title="' . $lang['Delete_post'] . '" border="0" /></a>';
    	$delpost = '<a href="' . $temp_url . '">' . $lang['Delete_post'] . '</a>';
    }
    else
    {
    	$ip_img = '';
    	$ip = '';
    
    	if ( $userdata['user_id'] == $poster_id && $is_auth['auth_delete'] && $forum_topic_data['topic_last_post_id'] == $postrow[$i]['post_id'] )
    	{
    		$temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id'];
    		$delpost_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_delpost'] . '" alt="' . $lang['Delete_post'] . '" title="' . $lang['Delete_post'] . '" border="0" /></a>';
    		$delpost = '<a href="' . $temp_url . '">' . $lang['Delete_post'] . '</a>';
    	}
    	else
    	{
    		$delpost_img = '';
    		$delpost = '';
    	}
    }
    
    $post_subject = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : '';
    
    $message = $postrow[$i]['post_text'];
    $bbcode_uid = $postrow[$i]['bbcode_uid'];
    
    $user_sig = ( $postrow[$i]['enable_sig'] && $postrow[$i]['user_sig'] != '' && $board_config['allow_sig'] ) ? $postrow[$i]['user_sig'] : '';
    $user_sig_bbcode_uid = $postrow[$i]['user_sig_bbcode_uid'];
    
    //
    // Note! The order used for parsing the message _is_ important, moving things around could break any
    // output
    //
    
    //
    // If the board has HTML off but the post has HTML
    // on then we process it, else leave it alone
    //
    if ( !$board_config['allow_html'] || !$userdata['user_allowhtml'])
    {
    	if ( $user_sig != '' )
    	{
    		$user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig);
    	}
    
    	if ( $postrow[$i]['enable_html'] )
    	{
    		$message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message);
    	}
    }
    
    //
    // Parse message and/or sig for BBCode if reqd
    //
    if ($user_sig != '' && $user_sig_bbcode_uid != '')
    {
    	$user_sig = ($board_config['allow_bbcode']) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace("/\:$user_sig_bbcode_uid/si", '', $user_sig);
    }
    
    if ($bbcode_uid != '')
    {
    	$message = ($board_config['allow_bbcode']) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace("/\:$bbcode_uid/si", '', $message);
    }
    
    if ( $user_sig != '' )
    {
    	$user_sig = make_clickable($user_sig);
    }
    $message = make_clickable($message);
    
    //
    // Parse smilies
    //
    if ( $board_config['allow_smilies'] )
    {
    	if ( $postrow[$i]['user_allowsmile'] && $user_sig != '' )
    	{
    		$user_sig = smilies_pass($user_sig);
    	}
    
    	if ( $postrow[$i]['enable_smilies'] )
    	{
    		$message = smilies_pass($message);
    	}
    }
    
    //
    // Highlight active words (primarily for search)
    //
    if ($highlight_match)
    {
    	// This has been back-ported from 3.0 CVS
    	$message = preg_replace('#(?!<.*)(?<!\w)(' . $highlight_match . ')(?!\w|[^<>]*>)#i', '<b style="color:#'.$theme['fontcolor3'].'">\1</b>', $message);
    }
    
    //
    // Replace naughty words
    //
    if (count($orig_word))
    {
    	$post_subject = preg_replace($orig_word, $replacement_word, $post_subject);
    
    	if ($user_sig != '')
    	{
    		$user_sig = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $user_sig . '<'), 1, -1));
    	}
    
    	$message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $message . '<'), 1, -1));
    }
    
    //
    // Replace newlines (we use this rather than nl2br because
    // till recently it wasn't XHTML compliant)
    //
    if ( $user_sig != '' )
    {
    	$user_sig = '<br />_________________<br />' . str_replace("\n", "\n<br />\n", $user_sig);
    }
    
    $message = str_replace("\n", "\n<br />\n", $message);
    
    //
    // 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 = '';
    }
    
    //
    // Again this will be handled by the templating
    // code at some point
    //
    $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
    $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
    
       $inline_ad_code = '';
    $display_ad = ($i == $board_config['ad_after_post'] - 1) || (($board_config['ad_every_post'] != 0) && ($i + 1) % $board_config['ad_every_post'] == 0);
      	//This if statement should keep server processing down a bit
      	if ($display_ad)
      	{
      		$display_ad = ($board_config['ad_who'] == ALL) || ($board_config['ad_who'] == ANONYMOUS && $userdata['user_id'] == ANONYMOUS) || ($board_config['ad_who'] == USER && $userdata['user_id'] != ANONYMOUS);
      		$ad_no_forums = explode(",", $board_config['ad_no_forums']);
    	for ($a=0; $a < count($ad_no_forums); $a++){
    		if ($forum_id == $ad_no_forums[$a]){
    			$display_ad = false;
    			break;	
    		}
    	}
    	if ($board_config['ad_no_groups'] != '')
    	{
    	$ad_no_groups = explode(",", $board_config['ad_no_groups']);
      		$sql = "SELECT 1
      				FROM " . USER_GROUP_TABLE . "
      				WHERE user_id=" . $userdata['user_id'] . " AND (group_id=0";
      		for ($a=0; $a < count($ad_no_groups); $a++){
    		$sql .= " OR group_id=" . $ad_no_groups[$a];
      		}
      		$sql .= ")";
      		if ( !($result = $db->sql_query($sql)) )
      		{
    		message_die(GENERAL_ERROR, 'Could not query ad information', '', __LINE__, __FILE__, $sql);
      		}
      		if ($row = $db->sql_fetchrow($result)){
      			$display_ad = false;
      		}
    	}
    	if (($board_config['ad_post_threshold'] != '') &&($userdata['user_posts'] >= $board_config['ad_post_threshold']))
    	{
    		$display_ad = false;	
    	}
      	}
      	//check once more, for server performance
    
      	if ($display_ad)
      	{
      		$sql = "SELECT a.ad_code
    			FROM " . ADS_TABLE . " a";
      		if ( !($result = $db->sql_query($sql)) )
    	{
    		message_die(GENERAL_ERROR, 'Could not query ad information', '', __LINE__, __FILE__, $sql);
    	}
    	$adRow = array();
    	$adRow = $db->sql_fetchrowset($result);
    	srand((double)microtime()*1000000);
    	$adindex = rand(1, $db->sql_numrows($result)) - 1;
    	$db->sql_freeresult($result);
      		$inline_ad_code = $adRow[$adindex]['ad_code'];
      	}
    
    $template->assign_block_vars('postrow', array(
    	'ROW_COLOR' => '#' . $row_color,
    	'ROW_CLASS' => $row_class,
    	'POSTER_NAME' => ($poster_name = color_group_colorize_name($poster_id, true)) ? $poster_name : $poster,
    	'POSTER_RANK' => $poster_rank,
    	'RANK_IMAGE' => $rank_image,
    	'POSTER_JOINED' => $poster_joined,
    	'POSTER_POSTS' => $poster_posts,
    	'POSTER_FROM' => $poster_from,
    	'POSTER_AVATAR' => $poster_avatar,
    'KARMA' => $karma,
    	'POST_DATE' => $post_date,
    	'POST_SUBJECT' => $post_subject,
    	'MESSAGE' => $message,
    	'SIGNATURE' => $user_sig,
    	'EDITED_MESSAGE' => $l_edited_by,
    
    	'MINI_POST_IMG' => $mini_post_img,
    	'PROFILE_IMG' => $profile_img,
    	'PROFILE' => $profile,
    	'SEARCH_IMG' => $search_img,
    	'SEARCH' => $search,
    	'PM_IMG' => $pm_img,
    	'PM' => $pm,
    	'EMAIL_IMG' => $email_img,
    	'EMAIL' => $email,
    	'WWW_IMG' => $www_img,
    	'WWW' => $www,
    	'ICQ_STATUS_IMG' => $icq_status_img,
    	'ICQ_IMG' => $icq_img,
    	'ICQ' => $icq,
    	'AIM_IMG' => $aim_img,
    	'AIM' => $aim,
    	'MSN_IMG' => $msn_img,
    	'MSN' => $msn,
    	'YIM_IMG' => $yim_img,
    	'YIM' => $yim,
    	'EDIT_IMG' => $edit_img,
    	'EDIT' => $edit,
    	'QUOTE_IMG' => $quote_img,
    	'QUOTE' => $quote,
    	'IP_IMG' => $ip_img,
    	'IP' => $ip,
    	'DELETE_IMG' => $delpost_img,
    	'DELETE' => $delpost,
    	'L_SPONSOR' => $lang['Sponsor'],
    	'INLINE_AD' => $inline_ad_code,
    
    	'L_MINI_POST_ALT' => $mini_post_alt,
    
    	'U_MINI_POST' => $mini_post_url,
    	'U_POST_ID' => $postrow[$i]['post_id'])
    );
    if ($display_ad){
    	if (!$board_config['ad_old_style'] && $display_ad)
    	{
    		$template->assign_block_vars('postrow.switch_ad',array());
    	}
    	else
    	{
    		$template->assign_block_vars('postrow.switch_ad_style2',array());
    	}
    }
    }
    
    
    include($phpbb_root_path . 'quick_reply.'.$phpEx);
    $template->pparse('body');
    
    include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
    
    ?>

×
×
  • Pasirinkite naujai kuriamo turinio tipą...