مشكلة اللغة العربية مع Ajax

منتدى عام جداً...اطرح هنا أي موضوع لايتناسب مع أحد الأقسام الخاصة
يمنع إضافة مواضيع النقاش أو طلبات الدعم حول phpBB

المشرف: alhitary

قوانين المنتدى
هذا المنتدى عام جداً ويمنع طلب الدعم الفني أو ما يخص phpBB فقط نقاشات عامة تهم أصحاب المنتديات، كذلك يمنع بتاتاً إضافة المواضيع المتعلقه بالهكر، الكراك، السيريلات، البروكسي
صورة العضو الرمزية
المشرقي
عضو جديد
عضو جديد
مشاركات: 10
اشترك في: الخميس إبريل 20, 2006 1:27 pm

????? ????? ??????? ?? Ajax

مشاركةبواسطة المشرقي » الأربعاء مايو 24, 2006 9:17 pm

?????? ???????

???? ?????? ??????? phpBB2 Plus 1.53 ??? ?????? ??? ????? ?????? ??????. ???? ????? ????? ?? ????? ?? ???? ??? ??? ????? ??? ?????/????? ???????? ?????? ?? ????? ????? ?????? ???????? ??????? ??? ???? ??? ?????.

?????? ????? ???????:

صورة

??? ??????? ???? ????? ??? ??? ??? ?? ???????:

صورة

??? ??????? ??? ????? ???? Ajax ?????? ????? phpBB2 Plus 1.53

??????? ??? ????? ?????? ??? ?????? ??????? http://www.phpbb2.de ???? ?? ??? ??? ??? ????.

?? ??? ???? ??? ???? ???




ABo.AzAzI
مشرف سابق
مشرف سابق
مشاركات: 1577
اشترك في: الأربعاء مارس 16, 2005 10:13 pm
مكان: K.s.A

مشاركةبواسطة ABo.AzAzI » الأربعاء مايو 24, 2006 9:27 pm


صورة العضو الرمزية
المشرقي
عضو جديد
عضو جديد
مشاركات: 10
اشترك في: الخميس إبريل 20, 2006 1:27 pm

مشاركةبواسطة المشرقي » الأربعاء مايو 24, 2006 11:18 pm

????? ?? ABo.AzAzI

?? ????? ?? ??? ??? ????. ???? ?? ???? ??? ??? ???:

كود: تحديد الكل

header(Content-Type: text/html;charset=windows-1256);
?? ????? ajax.php

كود: تحديد الكل

<?php
/***************************************************************************
 *                                 ajax.php
 *                            -------------------
 *   begin                : Friday, Dec 09, 2005
 *   copyright            : (C) 2005 alcaeus
 *   email                : mods@alcaeus.org
 *
 *   $Id: ajax.php,v 1.6 2006/02/04 11:12:16 alcaeus Exp $
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path .'extension.inc');
include($phpbb_root_path .'common.'. $phpEx);

// Define constant to keep page_header.php from sending headers
define('AJAX_HEADERS', True);

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

// Get SID and check it
if (isset($HTTP_POST_VARS['sid']) || isset($HTTP_GET_VARS['sid']))
{
	$sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : $HTTP_GET_VARS['sid'];
}
else
{
	$sid = '';
}
if ($sid != $userdata['session_id'])
{
	$result_ar = array(
		'result' => AJAX_ERROR,
		'error_msg' => 'Invalid session_id'
	);
	AJAX_message_die($result_ar);
}

// Get mode
if (isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']))
{
	$mode = (isset($HTTP_POST_VARS['mode'])) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
	$mode = '';
}

// Send AJAX headers - this is to prevent browsers from caching possible error pages
AJAX_headers();

// Flush the output, this will send any headers to the browsers, including session cookies (if necessary)
// mark_topic and mark_forum however set cookies, therefore we're not allowed to send the headers yet. They'll be sent at the end of the script.
if (($mode != 'mark_topic') && ($mode != 'mark_forum'))
{
	flush();
}

//
// Editing of post subject
//
if ($mode == 'edit_post_subject')
{
	include($phpbb_root_path .'includes/functions_search.'. $phpEx);
	
	// Determine post_id and new subject
	if (isset($HTTP_POST_VARS[POST_POST_URL]) || isset($HTTP_GET_VARS[POST_POST_URL]))
	{
		$post_id = (isset($HTTP_POST_VARS[POST_POST_URL])) ? intval($HTTP_POST_VARS[POST_POST_URL]) : intval($HTTP_GET_VARS[POST_POST_URL]);
	}
	else
	{
		$post_id = 0;
	}
	$subject = (isset($HTTP_POST_VARS['subject'])) ? htmlspecialchars(trim($HTTP_POST_VARS['subject'])) : '';
	
	// Check if data was submitted
	if (empty($post_id))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'postid' => $post_id,
			'error_msg' => 'No post_id specified'
		);
		AJAX_message_die($result_ar);
	}
	
	// Get post/topic information
	$sql = 'SELECT t.topic_id, t.topic_first_post_id, t.topic_last_post_id, t.topic_poster, t.forum_id, t.topic_status, p.poster_id, p.post_edit_time, p.post_edit_count, u.username, p.post_username 
	        FROM '. TOPICS_TABLE .' t, '. POSTS_TABLE .' p, '. USERS_TABLE ." u 
	        WHERE t.topic_id = p.topic_id 
	        AND p.poster_id = u.user_id 
	        AND p.post_id = $post_id";
	if (!($result = $db->sql_query($sql)))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'postid' => $post_id,
			'error_msg' => 'Could not fetch post details'
		);
		AJAX_message_die($result_ar);
	}
	$row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);
	if (!$row)
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'postid' => $post_id,
			'error_msg' => 'Invalid post_id'
		);
		AJAX_message_die($result_ar);
	}
	$forum_id = $row['forum_id'];
	
	if (($post_id == $row['topic_first_post_id']) && empty($subject))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'postid' => $post_id,
			'error_msg' => 'No subject specified'
		);
		AJAX_message_die($result_ar);
	}
	
	//Check auth settings
	$is_auth = array();
	$is_auth = auth(AUTH_ALL, $forum_id, $userdata);
	if ((($row['poster_id'] != $userdata['user_id']) || ($row['topic_status'] == TOPIC_LOCKED)) && !$is_auth['auth_mod'])
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'postid' => $post_id,
			'error_msg' => 'You\'re not allowed to edit this post'
		);
		AJAX_message_die($result_ar);
	}
	
	// Edit post subject and topic subject (if necessary)
	$topic_title = str_replace("\'", "''", $subject);
   	$topic_title = str_replace("%2b", "+", $topic_title);
	if ($row['topic_first_post_id'] == $post_id)
	{
		$sql = 'UPDATE '. TOPICS_TABLE ." 
		        SET topic_title = '$topic_title' 
		        WHERE topic_id = ". $row['topic_id'];
		if (!$db->sql_query($sql))
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'postid' => $post_id,
				'error_msg' => 'Could not update topic title'
			);
			AJAX_message_die($result_ar);
		}
	}
	
	$sql = 'UPDATE '. POSTS_TEXT_TABLE ." 
	        SET post_subject = '$topic_title' 
	        WHERE post_id = $post_id";
	if (!$db->sql_query($sql))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'postid' => $post_id,
			'error_msg' => 'Could not update post subject'
		);
		AJAX_message_die($result_ar);
	}
	
	// Update post edited message (if necessary)
	if (($row['poster_id'] == $userdata['user_id']) && ($post_id != $row['topic_last_post_id']))
	{
		$time_now = time();
		$sql = 'UPDATE '. POSTS_TABLE ." 
		        SET post_edit_time = $time_now, post_edit_count = post_edit_count + 1
		        WHERE post_id = $post_id";
		if (!$db->sql_query($sql))
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'postid' => $post_id,
				'error_msg' => 'Could not update post edit information'
			);
			AJAX_message_die($result_ar);
		}
		
		$row['post_edit_time'] = $time_now;
		$row['post_edit_count'] = ($row['post_edit_count'] == NULL) ? 0 : $row['post_edit_count'] + 1;
	}
	// Get new edited message
	if ($row['post_edit_count'])
	{
		$l_edit_time_total = ($row['post_edit_count'] == 1) ? $lang['Edited_time_total'] : $lang['Edited_times_total'];

		if (($row['poster_id'] == ANONYMOUS) && !empty($row['post_username']))
		{
			$row['username'] = $row['post_username'];
		}
		$editmessage = '<br /><br />'. sprintf($l_edit_time_total, $row['username'], create_date($board_config['default_dateformat'], $row['post_edit_time'], $board_config['board_timezone']), $row['post_edit_count']);
	}
	else
	{
		$editmessage = '';
	}
	
	// Truncate the topic title...just like it will be in the database
	$subject = substr(stripslashes($subject), 0, 60);
	
	// Refresh search index for this post (subject only)
	remove_search_post($post_id, True, False);
	add_search_words('single', $post_id, '', $subject);
	
	// Censor the subject
	$raw_subject = $subject;
	$orig_word = array();
	$replacement_word = array();
	obtain_word_list($orig_word, $replacement_word);
	if (count($orig_word))
	{
		$subject = preg_replace($orig_word, $replacement_word, $subject);
	}
    $subject = str_replace("%2b", "+", $subject);
	
	// Send it back to client for further processing
	$result_ar = array(
		'result' => AJAX_POST_SUBJECT_EDITED,
		'postid' => $post_id,
		'subject' => (empty($subject)) ? $lang['No_subject'] : unhtmlspecialchars($subject),
		'rawsubject' => unhtmlspecialchars($raw_subject),
		'editmessage' => $editmessage
	);
	AJAX_message_die($result_ar);
}
// Editing of post text
else if ($mode == 'edit_post_text')
{
	include($phpbb_root_path .'includes/functions_post.'. $phpEx);
	include($phpbb_root_path .'includes/functions_search.'. $phpEx);
	include($phpbb_root_path .'includes/bbcode.'. $phpEx);
	
	// Determine post_id and message
	if (isset($HTTP_POST_VARS[POST_POST_URL]) || isset($HTTP_GET_VARS[POST_POST_URL]))
	{
		$post_id = (isset($HTTP_POST_VARS[POST_POST_URL])) ? intval($HTTP_POST_VARS[POST_POST_URL]) : intval($HTTP_GET_VARS[POST_POST_URL]);
	}
	else
	{
		$post_id = 0;
	}
	$message = (isset($HTTP_POST_VARS['message'])) ? $HTTP_POST_VARS['message'] : '';
    $message = str_replace("%2b", "+", $message);
	
	// This is only needed on the search page
	if (isset($HTTP_POST_VARS['return_chars']) || isset($HTTP_GET_VARS['return_chars']))
	{
		$return_chars = (isset($HTTP_POST_VARS['return_chars'])) ? intval($HTTP_POST_VARS['return_chars']) : intval($HTTP_GET_VARS['return_chars']);
	}
	else
	{
		$return_chars = -1;
	}
	$highlight_match = $highlight = '';
	if (isset($HTTP_GET_VARS['highlight']) || isset($HTTP_POST_VARS['highlight']))
	{
		// Split words and phrases
		$highlight_string = (isset($HTTP_POST_VARS['highlight'])) ? $HTTP_POST_VARS['highlight'] : $HTTP_GET_VARS['highlight'];
		$words = explode(' ', trim(htmlspecialchars($highlight_string)));
	
		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, "\\");
	}
	
	// Check if data was submitted
	if (empty($post_id) || empty($message))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'postid' => $post_id,
			'error_msg' => 'No post_id or message specified'
		);
		AJAX_message_die($result_ar);
	}
	
	$sql = 'SELECT p.poster_id, p.forum_id, p.enable_bbcode, p.enable_html, p.enable_smilies, t.topic_last_post_id, t.topic_status, p.post_edit_time, p.post_edit_count, u.username, p.post_username 
	        FROM '. POSTS_TABLE .' p, '. POSTS_TEXT_TABLE .' pt, '. TOPICS_TABLE .' t, '. USERS_TABLE ." u 
	        WHERE p.post_id = $post_id 
	        AND p.topic_id = t.topic_id 
	        AND p.poster_id = u.user_id 
	        AND p.post_id = pt.post_id";
	if (!($result = $db->sql_query($sql)))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'postid' => $post_id,
			'error_msg' => 'Could not fetch post details'
		);
		AJAX_message_die($result_ar);
	}
	$row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);
	if (!$row)
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'postid' => $post_id,
			'error_msg' => 'Invalid post_id'
		);
		AJAX_message_die($result_ar);
	}
	$forum_id = $row['forum_id'];
	
	//Check auth settings
	$is_auth = array();
	$is_auth = auth(AUTH_ALL, $forum_id, $userdata);
	if ((($row['poster_id'] != $userdata['user_id']) || ($row['topic_status'] == TOPIC_LOCKED)) && !$is_auth['auth_mod'])
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'postid' => $post_id,
			'error_msg' => 'You are not allowed to edit this post'
		);
		AJAX_message_die($result_ar);
	}
	
	// Prepare message for posting and edit post text
	$bbcode_uid = ($row['enable_bbcode']) ? make_bbcode_uid() : '';
	$message = prepare_message(trim($message), $row['enable_html'], $row['enable_bbcode'], $row['enable_smilies'], $bbcode_uid);
	
	$sql = 'UPDATE '. POSTS_TEXT_TABLE ." 
	        SET post_text = '$message', bbcode_uid = '$bbcode_uid' 
	        WHERE post_id = $post_id";
	if (!$db->sql_query($sql))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'postid' => $post_id,
			'error_msg' => 'Could not update post'
		);
		AJAX_message_die($result_ar);
	}
	
	// Update post edited message (if necessary)
	if (($row['poster_id'] == $userdata['user_id']) && ($post_id != $row['topic_last_post_id']))
	{
		$time_now = time();
		$sql = 'UPDATE '. POSTS_TABLE ." 
		        SET post_edit_time = $time_now, post_edit_count = post_edit_count + 1
		        WHERE post_id = $post_id";
		if (!$db->sql_query($sql))
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'postid' => $post_id,
				'error_msg' => 'Could not update post edit information'
			);
			AJAX_message_die($result_ar);
		}
		
		$row['post_edit_time'] = $time_now;
		$row['post_edit_count'] = ($row['post_edit_count'] == NULL) ? 0 : $row['post_edit_count'] + 1;
	}
	// Get new edited message
	if ($row['post_edit_count'])
	{
		$l_edit_time_total = ($row['post_edit_count'] == 1) ? $lang['Edited_time_total'] : $lang['Edited_times_total'];

		if (($row['poster_id'] == ANONYMOUS) && !empty($row['post_username']))
		{
			$row['username'] = $row['post_username'];
		}
		$editmessage = '<br /><br />'. sprintf($l_edit_time_total, $row['username'], create_date($board_config['default_dateformat'], $row['post_edit_time'], $board_config['board_timezone']), $row['post_edit_count']);
	}
	else
	{
		$editmessage = '';
	}
	
	$raw_message = $message = stripslashes($message);
	
	// Refresh search index for this post (message only)
	remove_search_post($post_id, False);
	add_search_words('single', $post_id, $message);
	
	// Prepare the new raw message for the textarea
	if (!empty($bbcode_uid))
	{
		$raw_message = preg_replace('#\:(([a-z0-9]\:)?)'. $bbcode_uid .'#s', '', $raw_message);
	}
	
	$raw_message = str_replace('<', '<', $raw_message);
	$raw_message = str_replace('>', '>', $raw_message);
	$raw_message = str_replace('<br />', "\n", $raw_message);
	
	// Now parse the message
	if ($return_chars == -1)
	{
		if ((!$board_config['allow_html'] || !$userdata['user_allowhtml']) && $row['enable_html'])
		{
			$message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message);
		}
		if ($bbcode_uid != '')
		{
			$message = ($board_config['allow_bbcode']) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace("/\:$bbcode_uid/si", '', $message);
		}
		$message = make_clickable($message);
		
		if ($highlight_match)
		{
			// This was shamelessly 'borrowed' from volker at multiartstudio dot de
			// via php.net's annotated manual
			$message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace('#\b(" . str_replace('\\', '\\\\', addslashes($highlight_match)) . ")\b#i', '<span style=\"color:#" . $theme['fontcolor3'] . "\"><b>\\\\1</b></span>', '\\0')", '>' . $message . '<'), 1, -1));
		}
	}
	else
	{
		$message = strip_tags($message);
		$message = preg_replace("/\[.*?:$bbcode_uid:?.*?\]/si", '', $message);
		$message = preg_replace('/\[url\]|\[\/url\]/si', '', $message);
		$message = ( strlen($message) > $return_chars ) ? substr($message, 0, $return_chars) . ' ...' : $message;
	}
	
	$orig_word = array();
	$replacement_word = array();
	obtain_word_list($orig_word, $replacement_word);
	if (count($orig_word))
	{
		$message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $message . '<'), 1, -1));
	}
	
	if ($board_config['allow_smilies'] && $row['enable_smilies'])
	{
		$message = smilies_pass($message);
	}
	
	$message = str_replace("\n", "\n<br />\n", $message);
	
	// Send it back to client for further processing
	$result_ar = array(
		'result' => AJAX_POST_TEXT_EDITED,
		'postid' => $post_id,
		'message' => '<span class="postbody">'. $message .'</span>',
		'rawmessage' => unhtmlspecialchars($raw_message),
		'editmessage' => $editmessage
	);
	AJAX_message_die($result_ar);
}
// Voting/Viewing of polls
else if (($mode == 'vote_poll') || ($mode == 'view_poll'))
{
	// Get topic_id
	if (isset($HTTP_POST_VARS[POST_TOPIC_URL]) || isset($HTTP_GET_VARS[POST_TOPIC_URL]))
	{
		$topic_id = (isset($HTTP_POST_VARS[POST_TOPIC_URL])) ? intval($HTTP_POST_VARS[POST_TOPIC_URL]) : intval($HTTP_GET_VARS[POST_TOPIC_URL]);
	}
	else
	{
		$topic_id = 0;
	}
	
	if (empty($topic_id))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'No topic_id'
		);
		AJAX_message_die($result_ar);
	}
	
	// Voting
	if ($mode == 'vote_poll')
	{
		// Get vote_option_id and vote_id
		if (isset($HTTP_POST_VARS['vote_option_id']) || isset($HTTP_GET_VARS['vote_option_id']))
		{
			$vote_option_id = (isset($HTTP_POST_VARS['vote_option_id'])) ? intval($HTTP_POST_VARS['vote_option_id']) : intval($HTTP_GET_VARS['vote_option_id']);
		}
		else
		{
			$vote_option_id = 0;
		}
		
		if (!empty($vote_option_id))
		{
			// Get vote_id from vote_option_id
			$sql = 'SELECT vd.vote_id, t.forum_id, t.topic_id, t.topic_status 
			        FROM '. VOTE_DESC_TABLE .' vd, '. VOTE_RESULTS_TABLE .' vr, '. TOPICS_TABLE ." t 
			        WHERE vr.vote_id = vd.vote_id 
			        AND t.topic_id = vd.topic_id 
			        AND vr.vote_option_id = $vote_option_id 
			        AND t.topic_id = $topic_id 
			        GROUP BY vd.vote_id";
			if (!($result = $db->sql_query($sql)))
			{
				$error = $db->sql_error();
				$result_ar = array(
					'result' => AJAX_ERROR,
					'error_msg' => 'Could not query vote information'
				);
				AJAX_message_die($result_ar);
			}
			$vote_info = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);

			if ($vote_info)
			{
				// Check if the user is allowed to vote
				$is_auth = auth(AUTH_ALL, $vote_info['forum_id'], $userdata);
				if ($is_auth['auth_vote'] && (($vote_info['topic_status'] != TOPIC_LOCKED) || ($is_auth['auth_mod'])))
				{
					$vote_id = intval($vote_info['vote_id']);
				
					// Check if the user already voted
					$sql = 'SELECT * FROM '. VOTE_USERS_TABLE ." 
					        WHERE vote_id = $vote_id 
					        AND vote_user_id = ". $userdata['user_id'];
					if (!($result = $db->sql_query($sql)))
					{
						$result_ar = array(
							'result' => AJAX_ERROR,
							'error_msg' => 'Could not obtain user vote data for this topic'
						);
						AJAX_message_die($result_ar);
					}
					$row = $db->sql_fetchrow($result);
					$db->sql_freeresult($result);

					if (!$row)
					{
						$sql = 'UPDATE '. VOTE_RESULTS_TABLE ." 
						        SET vote_result = vote_result + 1 
						        WHERE vote_id = $vote_id 
						        AND vote_option_id = $vote_option_id";
						if (!$db->sql_query($sql, BEGIN_TRANSACTION))
						{
							$result_ar = array(
								'result' => AJAX_ERROR,
								'error_msg' => 'Could not update poll result'
							);
							AJAX_message_die($result_ar);
						}
					
						$sql = 'INSERT INTO '. VOTE_USERS_TABLE ." (vote_id, vote_user_id, vote_user_ip) 
						        VALUES ($vote_id, ". $userdata['user_id'] .", '$user_ip')";
						if (!$db->sql_query($sql, END_TRANSACTION))
						{
							$result_ar = array(
								'result' => AJAX_ERROR,
								'error_msg' => 'Could not update poll result'
							);
							AJAX_message_die($result_ar);
						}
					}
				}
			}
		}
	}
	
	// Display vote information
	$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)))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'Could not get vote information'
		);
		AJAX_message_die($result_ar);
	}
	$vote_info = $db->sql_fetchrowset($result);
	$db->sql_freeresult($result);
	
	if (!$vote_info)
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'Could not get vote information'
		);
		AJAX_message_die($result_ar);
	}

	
	$vote_options = count($vote_info);

	$vote_id = $vote_info[0]['vote_id'];
	$vote_title = $vote_info[0]['vote_text'];

	$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']);

	$orig_word = array();
	$replacement_word = array();
	obtain_word_list($orig_word, $replacement_word);
	
	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)
		);
	}

	if (count($orig_word))
	{
		$vote_title = preg_replace($orig_word, $replacement_word, $vote_title);
	}
	
	$template->assign_vars(array(
		'POLL_QUESTION' => $vote_title,
		'L_TOTAL_VOTES' => $lang['Total_votes'],
		'TOTAL_VOTES' => $vote_results_sum)
	);
	
	// Get the compiled code for the pollbox
	$template->assign_var_from_handle('__POLL_RESULT__', 'pollbox');
	$tpl_code = trim($template->_tpldata['.'][0]['__POLL_RESULT__']);
	unset($template->_tpldata['.'][0]['__POLL_RESULT__']);
	
	// Get rid of the sorrounding <tr> and <td> tags. May not work with some templates
	// We have no other choice, because Firefox does not support outerHTML :(
	// Then on the other hand, IE seems to have a problem with setting innerHTML on a <tr> tag...did I mention that I hate browsers?
	$tpl_code = trim(preg_replace("#^\<tr\>(.*)\<\/tr\>$#si", '\1', $tpl_code));
	$tpl_code = trim(preg_replace("#^\<td(.*?)\>(.*)\<\/td\>$#si", '\2', $tpl_code));
	
	$result_ar = array(
		'result' => AJAX_POLL_RESULT,
		'error_msg' => $tpl_code
	);
	AJAX_message_die($result_ar);
}
else if ($mode == 'watch_topic')
{
	// Get topic_id
	if (isset($HTTP_POST_VARS[POST_TOPIC_URL]) || isset($HTTP_GET_VARS[POST_TOPIC_URL]))
	{
		$topic_id = (isset($HTTP_POST_VARS[POST_TOPIC_URL])) ? intval($HTTP_POST_VARS[POST_TOPIC_URL]) : intval($HTTP_GET_VARS[POST_TOPIC_URL]);
	}
	else
	{
		$topic_id = 0;
	}
	
	if (empty($topic_id))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'No topic_id'
		);
		AJAX_message_die($result_ar);
	}
	
	// Get watch_status
	if (isset($HTTP_POST_VARS['watch_status']) || isset($HTTP_GET_VARS['watch_status']))
	{
		$watch_status = (isset($HTTP_POST_VARS['watch_status'])) ? intval($HTTP_POST_VARS['watch_status']) : intval($HTTP_GET_VARS['watch_status']);
	}
	else
	{
		$watch_status = 0;
	}
	
	// Get start
	if (isset($HTTP_POST_VARS['start']) || isset($HTTP_GET_VARS['start']))
	{
		$start = (isset($HTTP_POST_VARS['start'])) ? intval($HTTP_POST_VARS['start']) : intval($HTTP_GET_VARS['start']);
	}
	else
	{
		$start = 0;
	}
	
	// Not logged in? Bye bye
	if (!$userdata['session_logged_in'])
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'Not logged in'
		);
		AJAX_message_die($result_ar);
	}
	
	// Get the forum_id for the auth check below, also a nice way to check if the topic exists
	$sql = 'SELECT forum_id FROM '. TOPICS_TABLE ." 
	        WHERE topic_id = $topic_id";
	if (!($result = $db->sql_query($sql)))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'Could not query topics table'
		);
		AJAX_message_die($result_ar);
	}
	$topic_row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);
	
	if (!$topic_row)
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'This topic does not exist'
		);
		AJAX_message_die($result_ar);
	}
	
	// Check the permissions, don't want people to watch topics they're not supposed to read.
	// If the person is not authed, we'll just pretend that the topic doesn't exist, just like phpBB does...
	$is_auth = auth(AUTH_READ, $topic_row['forum_id'], $userdata);
	if (!$is_auth['auth_read'])
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'This topic does not exist'
		);
		AJAX_message_die($result_ar);
	}
	
	// Check if the user is already watching this topic
	$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)))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'Could not query topics watch table'
		);
		AJAX_message_die($result_ar);
	}
	$watch_row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);
	
	if ($watch_row)
	{
		// User is watching this topic
		if ($watch_status)
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'error_msg' => 'You are already watching this topic'
			);
			AJAX_message_die($result_ar);
		}
		
		// Remove topic from watch list
		$sql = 'DELETE FROM '. TOPICS_WATCH_TABLE ." 
		        WHERE topic_id = $topic_id 
		        AND user_id = ". $userdata['user_id'];
		if (!$db->sql_query($sql))
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'error_msg' => 'Could not delete topic from watch table'
			);
			AJAX_message_die($result_ar);
		}
		
		$link_url = append_sid("viewtopic.$phpEx?". POST_TOPIC_URL . "=$topic_id&watch=topic&start=$start");
		$link_text = $lang['Start_watching_topic'];
		$img_url = $images['Topic_watch'];
		$watching = 0;
	}
	else
	{
		// User is not watching this topic
		if (!$watch_status)
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'error_msg' => 'You are not watching this topic'
			);
			AJAX_message_die($result_ar);
		}
		
		// Add topic to watch list
		$sql = 'INSERT INTO '. TOPICS_WATCH_TABLE .' (user_id, topic_id, notify_status) 
		        VALUES ('. $userdata['user_id'] .", $topic_id, 0)";
		if (!$db->sql_query($sql))
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'error_msg' => 'Could not add topic to watch table'
			);
			AJAX_message_die($result_ar);
		}
		
		$link_url = append_sid("viewtopic.$phpEx?". POST_TOPIC_URL . "=$topic_id&unwatch=topic&start=$start");
		$link_text = $lang['Stop_watching_topic'];
		$img_url = $images['topic_un_watch'];
		$watching = 1;
	}
	
	$result_ar = array(
		'result' => AJAX_WATCH_TOPIC,
		'topicid' => $topic_id,
		'linkurl' => $link_url,
		'linktext' => $link_text,
		'imgurl' => $img_url,
		'start' => $start,
		'watching' => $watching
	);
	AJAX_message_die($result_ar);
}
else if ($mode == 'lock_topic')
{
	// Get topic_id
	if (isset($HTTP_POST_VARS[POST_TOPIC_URL]) || isset($HTTP_GET_VARS[POST_TOPIC_URL]))
	{
		$topic_id = (isset($HTTP_POST_VARS[POST_TOPIC_URL])) ? intval($HTTP_POST_VARS[POST_TOPIC_URL]) : intval($HTTP_GET_VARS[POST_TOPIC_URL]);
	}
	else
	{
		$topic_id = 0;
	}
	
	if (empty($topic_id))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'No topic_id'
		);
		AJAX_message_die($result_ar);
	}
	
	// Get watch_status
	if (isset($HTTP_POST_VARS['lock_status']) || isset($HTTP_GET_VARS['lock_status']))
	{
		$lock_status = (isset($HTTP_POST_VARS['lock_status'])) ? intval($HTTP_POST_VARS['lock_status']) : intval($HTTP_GET_VARS['lock_status']);
	}
	else
	{
		$lock_status = 0;
	}
	
	$sql = 'SELECT forum_id, topic_status FROM '. TOPICS_TABLE ." 
	        WHERE topic_id = $topic_id";
	if (!($result = $db->sql_query($sql)))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'Could not query topics table'
		);
		AJAX_message_die($result_ar);
	}
	$topic_row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);
	
	if (!$topic_row)
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'This topic does not exist'
		);
		AJAX_message_die($result_ar);
	}
	
	$is_auth = auth(AUTH_MOD, $topic_row['forum_id'], $userdata);
	if (!$is_auth['auth_mod'])
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'You cannot lock/unlock this topic'
		);
		AJAX_message_die($result_ar);
	}
	
	if ($topic_row['topic_status'] == TOPIC_LOCKED)
	{
		if ($lock_status)
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'error_msg' => 'Topic already locked'
			);
			AJAX_message_die($result_ar);
		}
		
		$sql = 'UPDATE '. TOPICS_TABLE .' 
		        SET topic_status = '. TOPIC_UNLOCKED ." 
		        WHERE topic_id = $topic_id";
		if (!$db->sql_query($sql))
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'error_msg' => 'Could not update topics table'
			);
			AJAX_message_die($result_ar);
		}
		
		$linkurl = "modcp.$phpEx?". POST_TOPIC_URL ."=$topic_id&mode=lock&sid=". $userdata['session_id'];
		$imgurl = $images['topic_mod_lock'];
		$imgtext = $lang['Lock_topic'];
		$replyurl = $images['reply_new'];
		$replytext = $lang['Reply_to_topic'];
		$locked = 0;
	}
	else
	{
		if (!$lock_status)
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'error_msg' => 'Topic not locked'
			);
			AJAX_message_die($result_ar);
		}
		
		$sql = 'UPDATE '. TOPICS_TABLE .' 
		        SET topic_status = '. TOPIC_LOCKED ." 
		        WHERE topic_id = $topic_id";
		if (!$db->sql_query($sql))
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'error_msg' => 'Could not update topics table'
			);
			AJAX_message_die($result_ar);
		}
		
		$linkurl = "modcp.$phpEx?". POST_TOPIC_URL ."=$topic_id&mode=unlock&sid=". $userdata['session_id'];
		$imgurl = $images['topic_mod_unlock'];
		$imgtext = $lang['Unlock_topic'];
		$replyurl = $images['reply_locked'];
		$replytext = $lang['Topic_locked'];
		$locked = 1;
	}
	
	$result_ar = array(
		'result' => AJAX_LOCK_TOPIC,
		'topicid' => $topic_id,
		'linkurl' => $linkurl,
		'imgurl' => $imgurl,
		'imgtext' => $imgtext,
		'replyurl' => $replyurl,
		'replytext' => $replytext,
		'locked' => $locked
	);
	AJAX_message_die($result_ar);
}
else if ($mode == 'mark_topic')
{
	if (!$userdata['session_logged_in'])
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'Not logged in'
		);
		AJAX_message_die($result_ar);
	}
	
	// Get topic_id
	if (isset($HTTP_POST_VARS[POST_TOPIC_URL]) || isset($HTTP_GET_VARS[POST_TOPIC_URL]))
	{
		$topic_id = (isset($HTTP_POST_VARS[POST_TOPIC_URL])) ? intval($HTTP_POST_VARS[POST_TOPIC_URL]) : intval($HTTP_GET_VARS[POST_TOPIC_URL]);
	}
	else
	{
		$topic_id = 0;
	}
	
	if (empty($topic_id))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'No topic_id'
		);
		AJAX_message_die($result_ar);
	}
	
	$sql = 'SELECT topic_type, topic_status, topic_replies FROM '. TOPICS_TABLE ." 
	        WHERE topic_id = $topic_id";
	if (!($result = $db->sql_query($sql)))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'Could not query topics table'
		);
		AJAX_message_die($result_ar);
	}
	$topic_row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);
	
	if (!$topic_row)
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'This topic does not exist'
		);
		AJAX_message_die($result_ar);
	}
	
	if ($topic_row['topic_status'] == TOPIC_MOVED)
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'Cannot mark move stubs'
		);
		AJAX_message_die($result_ar);
	}
	
	$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 (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']);
	
	if ($topic_row['topic_type'] == POST_ANNOUNCE)
	{
		$topic_image = $images['folder_announce'];
	}
	else if ($topic_row['topic_type'] == POST_STICKY)
	{
		$topic_image = $images['folder_sticky'];
	}
	else if ($topic_row['topic_status'] == TOPIC_LOCKED)
	{
		$topic_image = $images['folder_locked'];
	}
	else if ($topic_row['topic_replies'] >= $board_config['hot_threshold'])
	{
		$topic_image = $images['folder_hot'];
	}
	else
	{
		$topic_image = $images['folder'];
	}
	
	$result_ar = array(
		'result' => AJAX_MARK_TOPIC,
		'topicid' => $topic_id,
		'topicimage' => $topic_image,
		'imagetext' => $lang['No_new_posts']
	);
	AJAX_message_die($result_ar);
}
else if ($mode == 'mark_forum')
{
	if (!$userdata['session_logged_in'])
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'Not logged in'
		);
		AJAX_message_die($result_ar);
	}
	
	// Get forum_id
	if (isset($HTTP_POST_VARS[POST_FORUM_URL]) || isset($HTTP_GET_VARS[POST_FORUM_URL]))
	{
		$forum_id = (isset($HTTP_POST_VARS[POST_FORUM_URL])) ? intval($HTTP_POST_VARS[POST_FORUM_URL]) : intval($HTTP_GET_VARS[POST_FORUM_URL]);
	}
	else
	{
		$forum_id = 0;
	}
	
	if (empty($forum_id))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'No forum_id'
		);
		AJAX_message_die($result_ar);
	}
	
	$sql = 'SELECT forum_status FROM '. FORUMS_TABLE ." 
	        WHERE forum_id = $forum_id";
	if (!($result = $db->sql_query($sql)))
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'Could not query forums table'
		);
		AJAX_message_die($result_ar);
	}
	$forum_row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);
	
	if (!$forum_row)
	{
		$result_ar = array(
			'result' => AJAX_ERROR,
			'error_msg' => 'This forum does not exist'
		);
		AJAX_message_die($result_ar);
	}
	
	$tracking_forums = (isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] .'_f'])) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] .'_f']) : array();
	$tracking_topics = (isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] .'_t'])) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] .'_t']) : array();

	if ((count($tracking_forums) + count($tracking_topics)) >= 150 && empty($tracking_forums[$forum_id]))
	{
		asort($tracking_forums);
		unset($tracking_forums[key($tracking_forums)]);
	}
	
	$tracking_forums[$forum_id] = time();
	
	setcookie($board_config['cookie_name'] .'_f', serialize($tracking_forums), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
	
	if ($forum_row['forum_status'] == FORUM_LOCKED)
	{
		$forum_image = $images['forum_locked'];
		$image_text = $lang['Forum_locked'];
	}
	else
	{
		$forum_image = $images['forum'];
		$image_text = $lang['No_new_posts'];
	}
	
	$result_ar = array(
		'result' => AJAX_MARK_FORUM,
		'forumid' => $forum_id,
		'forumimage' => $forum_image,
		'imagetext' => $image_text
	);
	AJAX_message_die($result_ar);
}
else if ($mode == 'checkusername_post')
{
	include($phpbb_root_path .'includes/functions_validate.'. $phpEx);
	
	if (isset($HTTP_GET_VARS['username']) || isset($HTTP_POST_VARS['username']))
	{
		$username = (isset($HTTP_POST_VARS['username'])) ? $HTTP_POST_VARS['username'] : $HTTP_GET_VARS['username'];
	}
	else
	{
		$username = '';
	}
	
	$result_code = AJAX_OP_COMPLETED;
	$error_msg = '';
	if (!empty($username))
	{
		$username = phpbb_clean_username($username);

		if (!$userdata['session_logged_in'] || ($userdata['session_logged_in'] && $username != $userdata['username']))
		{
			$result = validate_username($username);
			if ($result['error'])
			{
				$result_code = AJAX_ERROR;
				$error_msg = $result['error_msg'];
			}
		}
	}
	
	$result_ar = array(
		'result' => $result_code
	);
	if (!empty($error_msg))
	{
		$result_ar['error_msg'] = $error_msg;
	}
	AJAX_message_die($result_ar);
}
else if (($mode == 'checkusername_pm') || ($mode == 'search_user'))
{
	include($phpbb_root_path .'includes/functions_validate.'. $phpEx);
	
	// Get username
	if (isset($HTTP_GET_VARS['username']) || isset($HTTP_POST_VARS['username']))
	{
		$username = (isset($HTTP_POST_VARS['username'])) ? $HTTP_POST_VARS['username'] : $HTTP_GET_VARS['username'];
	}
	else
	{
		$username = '';
	}
	if (isset($HTTP_GET_VARS['search']) || isset($HTTP_POST_VARS['search']))
	{
		$search = (isset($HTTP_POST_VARS['search'])) ? intval($HTTP_POST_VARS['search']) : intval($HTTP_GET_VARS['search']);
	}
	else
	{
		$search = 0;
	}
	
	if (empty($username))
	{
		if ($mode == 'checkusername_pm')
		{
			$error_msg = $lang['No_to_user'];
		}
		else if (!$search)
		{
			$error_msg = $lang['No_username'];
		}
		else
		{
			$error_msg = ' ';
		}
		$result_ar = array(
			'result' => AJAX_PM_USERNAME_ERROR,
			'error_msg' => $error_msg
		);
		AJAX_message_die($result_ar);
	}
	
	$username = phpbb_clean_username($username);
	if ($mode == 'search_user')
	{
		$has_wildcards = (strpos($username, '*') !== False) ? True : False;
		$username = preg_replace('#\*#', '%', phpbb_clean_username($username));
	}
	
	$username_row = False;
	if (($mode == 'checkusername_pm') || (($mode == 'search_user') && !$has_wildcards))
	{
		$sql = 'SELECT user_id 
		        FROM '. USERS_TABLE ."
		        WHERE username='$username' 
		        AND user_id <> ". ANONYMOUS;
		if (!($result = $db->sql_query($sql)))
		{
			$result_ar = array(
				'result' => AJAX_OP_COMPLETED
			);
			AJAX_message_die($result_ar);
		}
		$username_row = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);
	}
	
	if ($username_row)
	{
		$result_ar = array(
			'result' => AJAX_PM_USERNAME_FOUND
		);
		AJAX_message_die($result_ar);
	}
	else
	{
		if (substr($username, -1, 1) !== '%')
		{
			$username .= '%';
		}
		$sql = 'SELECT username 
		        FROM '. USERS_TABLE ."
		        WHERE username LIKE '{$username}' 
		        AND user_id <> ". ANONYMOUS .' 
		        ORDER BY username';
		if (!($result = $db->sql_query($sql)))
		{
			$result_ar = array(
				'result' => AJAX_OP_COMPLETED
			);
			AJAX_message_die($result_ar);
		}
		$username_rows = $db->sql_fetchrowset($result);
		$db->sql_freeresult($result);
		
		if (!($username_count = count($username_rows)))
		{
			$result_ar = array(
				'result' => AJAX_PM_USERNAME_ERROR,
				'error_msg' => $lang['No_such_user']
			);
			AJAX_message_die($result_ar);
		}
		else
		{
			if ($mode == 'checkusername_pm')
			{
				$username_select = ' <select onclick="AJAXSelectPMUsername(this)" onblur="AJAXSelectPMUsername(this);" tabindex="1">';
			}
			else
			{
				if ($search)
				{
					$username_select = '<select name="username_list" onclick="refresh_username(this.form.username_list.options[this.form.username_list.selectedIndex].value);" onblur="refresh_username(this.form.username_list.options[this.form.username_list.selectedIndex].value);">';
				}
				else
				{
					$username_select = ' <select onclick="AJAXSelectUsername(this)" onblur="AJAXSelectUsername(this);" tabindex="1">';
				}
			}
			$username_select .= '<option value="-1"> --- </option>';
			for ($i = 0; $i < $username_count; $i++)
			{
				$username_select .= '<option value="'. $username_rows[$i]['username'] .'">'. $username_rows[$i]['username'] .'</option>';
			}
			$username_select .= '</select>';
			
			$result_ar = array(
				'result' => AJAX_PM_USERNAME_SELECT,
				'error_msg' => $username_select
			);
			AJAX_message_die($result_ar);
		}
	}
	
	$result_ar = array(
		'result' => AJAX_OP_COMPLETED
	);
	AJAX_message_die($result_ar);
}
else if ($mode == 'checkemail')
{
	include($phpbb_root_path .'includes/functions_validate.'. $phpEx);
	
	if (isset($HTTP_GET_VARS['email']) || isset($HTTP_POST_VARS['email']))
	{
		$email = (isset($HTTP_POST_VARS['email'])) ? stripslashes($HTTP_POST_VARS['email']) : stripslashes($HTTP_GET_VARS['email']);
	}
	else
	{
		$email = '';
	}
	
	$result_code = AJAX_OP_COMPLETED;
	$error_msg = '';
	if ((!empty($email)) && ((($email != $userdata['user_email']) && $userdata['session_logged_in']) || !$userdata['session_logged_in']))
	{
			$result = validate_email($email);
			if ($result['error'])
			{
				$result_code = AJAX_ERROR;
				$error_msg = $result['error_msg'];
			}
	}
	
	$result_ar = array(
		'result' => $result_code
	);
	if (!empty($error_msg))
	{
		$result_ar['error_msg'] = $error_msg;
	}
	AJAX_message_die($result_ar);
}
else if ($mode == 'post_preview')
{
	include($phpbb_root_path .'includes/functions_post.'. $phpEx);
	include($phpbb_root_path .'includes/bbcode.'. $phpEx);
	
	// Get post_id
	if (isset($HTTP_POST_VARS[POST_POST_URL]) || isset($HTTP_GET_VARS[POST_POST_URL]))
	{
		$post_id = (isset($HTTP_POST_VARS[POST_POST_URL])) ? intval($HTTP_POST_VARS[POST_POST_URL]) : intval($HTTP_GET_VARS[POST_POST_URL]);
	}
	else
	{
		$post_id = 0;
	}
	if (!empty($post_id))
	{
		$sql = 'SELECT p.poster_id, p.post_username, u.username, u.user_sig, u.user_sig_bbcode_uid, u.user_allowhtml, u.user_allowbbcode, u.user_allowsmile 
		        FROM '. POSTS_TABLE .' p, '. USERS_TABLE ." u 
		        WHERE p.post_id = $post_id 
		        AND p.poster_id = u.user_id";
		if (!($result = $db->sql_query($sql)))
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'error_msg' => 'Could not get post information'
			);
			AJAX_message_die($result_ar);
		}
		$row = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);
		
		if (!$row)
		{
			$result_ar = array(
				'result' => AJAX_ERROR,
				'error_msg' => 'This post does not exist'
			);
			AJAX_message_die($result_ar);
		}
		
		$user_sig_bbcode_uid = $row['user_sig_bbcode_uid'];
		$user_sig = $row['user_sig'];
		$username = ($row['poster_id'] == ANONYMOUS) ? ((!empty($row['post_username'])) ? $row['post_username'] : '') : $row['username'];
		$user_allowhtml = $row['user_allowhtml'];
		$user_allowbbcode = $row['user_allowbbcode'];
		$user_allowsmile = $row['user_allowsmile'];
	}
	else
	{
		$user_sig_bbcode_uid = $userdata['user_sig_bbcode_uid'];
		$user_sig = $userdata['user_sig'];
		$username = ($userdata['user_id'] == ANONYMOUS) ? '' : $userdata['username'];
		$user_allowhtml = $userdata['user_allowhtml'];
		$user_allowbbcode = $userdata['user_allowbbcode'];
		$user_allowsmile = $userdata['user_allowsmile'];
	}
	
	$username = (isset($HTTP_POST_VARS['username'])) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['username']))) : $username;
	$subject = (isset($HTTP_POST_VARS['subject'])) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['subject']))) : '';
	$message = (isset($HTTP_POST_VARS['message'])) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['message']))) : '';

	if (!$board_config['allow_html'])
	{
		$html_on = 0;
	}
	else
	{
		$html_on = (!empty($HTTP_POST_VARS['disable_html'])) ? 0 : True;
	}
	if (!$board_config['allow_bbcode'])
	{
		$bbcode_on = 0;
	}
	else
	{
		$bbcode_on = (!empty($HTTP_POST_VARS['disable_bbcode'])) ? 0 : True;
	}
	if (!$board_config['allow_smilies'])
	{
		$smilies_on = 0;
	}
	else
	{
		$smilies_on = (!empty($HTTP_POST_VARS['disable_smilies'])) ? 0 : True;
	}
	$attach_sig = (!empty($HTTP_POST_VARS['attach_sig'])) ? True : 0;
	
	$bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : '';
	$message = stripslashes(prepare_message(addslashes(unprepare_message($message)), $html_on, $bbcode_on, $smilies_on, $bbcode_uid));

	//
	// Finalise processing as per viewtopic
	//
	if (!$html_on)
	{
		if (($user_sig != '') || !$user_allowhtml)
		{
			$user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', '<\2>', $user_sig);
		}
	}

	if ($attach_sig && ($user_sig != '') && $user_sig_bbcode_uid)
	{
		$user_sig = bbencode_second_pass($user_sig, $user_sig_bbcode_uid);
	}

	if ($bbcode_on)
	{
		$message = bbencode_second_pass($message, $bbcode_uid);
	}

	$orig_word = array();
	$replacement_word = array();
	obtain_word_list($orig_word, $replacement_word);
	if (count($orig_word))
	{
		$username = (!empty($username)) ? preg_replace($orig_word, $replacement_word, $username) : '';
		$subject = (!empty($subject)) ? preg_replace($orig_word, $replacement_word, $subject) : '';
		$message = (!empty($message)) ? preg_replace($orig_word, $replacement_word, $message) : '';
	}
	
	if (empty($username))
	{
		$username = $lang['Guest'];
	}

	if ($user_sig != '')
	{
		$user_sig = make_clickable($user_sig);
	}
	$message = make_clickable($message);

	if ($smilies_on)
	{
		if ($user_allowsmile && ($user_sig != ''))
		{
			$user_sig = smilies_pass($user_sig);
		}

		$message = smilies_pass($message);
	}

	if ($attach_sig && ($user_sig != ''))
	{
		$message = $message .'<br /><br />_________________<br />'. $user_sig;
	}

	$message = str_replace("\n", '<br />', $message);

	$template->set_filenames(array(
		'preview' => 'posting_preview.tpl')
	);

	$template->assign_vars(array(
		'TOPIC_TITLE' => $subject,
		'POST_SUBJECT' => $subject,
		'POSTER_NAME' => $username,
		'POST_DATE' => create_date($board_config['default_dateformat'], time(), $board_config['board_timezone']),
		'MESSAGE' => $message,

		'L_POST_SUBJECT' => $lang['Post_subject'], 
		'L_PREVIEW' => $lang['Preview'],
		'L_POSTED' => $lang['Posted'], 
		'L_POST' => $lang['Post'])
	);
	$template->assign_var_from_handle('__PREVIEW__', 'preview');
	$tpl_code = trim($template->_tpldata['.'][0]['__PREVIEW__']);
	unset($template->_tpldata['.'][0]['__PREVIEW__']);
	
	$result_ar = array(
		'result' => AJAX_PREVIEW,
		'error_msg' => $tpl_code
	);
	AJAX_message_die($result_ar);
}
else if ($mode == 'pm_preview')
{
	include($phpbb_root_path .'includes/functions_post.'. $phpEx);
	include($phpbb_root_path .'includes/bbcode.'. $phpEx);
	
	$user_sig = $userdata['user_sig'];
	
	$to_username = (isset($HTTP_POST_VARS['username']) ) ? trim(htmlspecialchars(stripslashes($HTTP_POST_VARS['username']))) : '';
	$subject = ( isset($HTTP_POST_VARS['subject']) ) ? trim(strip_tags(stripslashes($HTTP_POST_VARS['subject']))) : '';
	$message = ( isset($HTTP_POST_VARS['message']) ) ? trim($HTTP_POST_VARS['message']) : '';

	if (!$board_config['allow_html'])
	{
		$html_on = 0;
	}
	else
	{
		$html_on = (!empty($HTTP_POST_VARS['disable_html'])) ? 0 : True;
	}
	if (!$board_config['allow_bbcode'])
	{
		$bbcode_on = 0;
	}
	else
	{
		$bbcode_on = (!empty($HTTP_POST_VARS['disable_bbcode'])) ? 0 : True;
	}
	if (!$board_config['allow_smilies'])
	{
		$smilies_on = 0;
	}
	else
	{
		$smilies_on = (!empty($HTTP_POST_VARS['disable_smilies'])) ? 0 : True;
	}
	$attach_sig = (!empty($HTTP_POST_VARS['attach_sig'])) ? True : 0;
	
	$bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : '';
	$message = stripslashes(prepare_message($message, $html_on, $bbcode_on, $smilies_on, $bbcode_uid));
	
	//
	// Finalise processing as per viewtopic
	//
	if (!$html_on || !$board_config['allow_html'] || !$userdata['user_allowhtml'])
	{
		if ($user_sig != '')
		{
			$user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig);
		}
	}

	if ($attach_sig && ($user_sig != '') && $userdata['user_sig_bbcode_uid'])
	{
		$user_sig = bbencode_second_pass($user_sig, $userdata['user_sig_bbcode_uid']);
	}

	if ($bbcode_on)
	{
		$message = bbencode_second_pass($message, $bbcode_uid);
	}

	if ($attach_sig && ($user_sig != ''))
	{
		$message = $message .'<br /><br />_________________<br />'. $user_sig;
	}
	
	if (count($orig_word))
	{
		$subject = preg_replace($orig_word, $replacement_word, $subject);
		$message = preg_replace($orig_word, $replacement_word, $message);
	}

	if ($smilies_on)
	{
		$message = smilies_pass($message);
	}

	$message = make_clickable($message);
	$message = str_replace("\n", '<br />', $message);
	
	$template->set_filenames(array(
		'preview' => 'privmsgs_preview.tpl')
	);

	$template->assign_vars(array(
		'TOPIC_TITLE' => $subject,
		'POST_SUBJECT' => $subject,
		'MESSAGE_TO' => $to_username, 
		'MESSAGE_FROM' => $userdata['username'], 
		'POST_DATE' => create_date($board_config['default_dateformat'], time(), $board_config['board_timezone']),
		'MESSAGE' => $message,

		'S_HIDDEN_FIELDS' => $s_hidden_fields,

		'L_SUBJECT' => $lang['Subject'],
		'L_DATE' => $lang['Date'],
		'L_FROM' => $lang['From'],
		'L_TO' => $lang['To'],
		'L_PREVIEW' => $lang['Preview'],
		'L_POSTED' => $lang['Posted'])
	);

	$template->assign_var_from_handle('__PREVIEW__', 'preview');
	$tpl_code = trim($template->_tpldata['.'][0]['__PREVIEW__']);
	unset($template->_tpldata['.'][0]['__PREVIEW__']);
	
	$result_ar = array(
		'result' => AJAX_PREVIEW,
		'error_msg' => $tpl_code
	);
	AJAX_message_die($result_ar);
}
else
{
	$result_ar = array(
		'result' => AJAX_ERROR,
		'error_msg' => "Invalid mode: $mode",
	);
	AJAX_message_die($result_ar);
}

?>
?? ???? ????? ??? ?? ???? ?? ??? ??? ????? ?? ?????? ??????? phpBB2 Plus 1.53

????? ??? ????? ???? ABo.AzAzI

ABo.AzAzI
مشرف سابق
مشرف سابق
مشاركات: 1577
اشترك في: الأربعاء مارس 16, 2005 10:13 pm
مكان: K.s.A

مشاركةبواسطة ABo.AzAzI » الخميس مايو 25, 2006 12:17 am

??? ???? ??? :

كود: تحديد الكل

define('IN_PHPBB', true); 
:roll:

the shadow
مشرف سابق
مشرف سابق
مشاركات: 763
اشترك في: الاثنين يونيو 20, 2005 8:30 pm
مكان: keyboard
اتصال:

مشاركةبواسطة the shadow » الخميس مايو 25, 2006 7:54 pm

?????? ????? ??? ??????

??? ????? ???

??? ?? ?? ?????? ????? :)

??? ??? ?????

http://img130.imageshack.us/img130/9248/arajax2zb.jpg

http://img462.imageshack.us/img462/1426/arajax28kc.jpg

http://img457.imageshack.us/img457/2057/arajax35qk.jpg

???? ??? ??? ????? ??????? ??? ??????? ????? ?????

http://www.phpbb.maroc10.com/download/o ... d4arab.zip

?????? ???? :)

????????

صورة العضو الرمزية
المشرقي
عضو جديد
عضو جديد
مشاركات: 10
اشترك في: الخميس إبريل 20, 2006 1:27 pm

مشاركةبواسطة المشرقي » الجمعة مايو 26, 2006 12:40 am

?????? ?????? ????? ???? ???????

???? ????? ??? ????? ?? ??? ?????. ????? ????? ????? ????.

??? ??? ???? ??? ??? ???????? ??? ????? ?? ???. ??? ???? ?? ???? ??.

??????? ???? ?? ?????. ???? ???????.

???? ??? ???? ???? ?? ???? ?? ????.

??? ????? ??? ????? ???? ?????? ???? ???? ???? ??? ??? ??? ??? ??????? ????? ??????? ??? ???? ???? ??????? ??? ???? ?????.

??? ????? ???? ???????:
??? ????? ????? ?????? ??? ??? ????? ??? ???? ??????? ???? ??? ???? ?????? ??????? ?????? ???? ?????? ???? ????.

???? ??? ????? ??????? ??? ???? ???? ?? ???? ?? ??????? ???? ???????.

?? ???? ?? ?????? ???? ???.

????? ????? ???? ABo.AzAzI ??? ?????? ?????? ?? ????????? ???? ???? ??????? ??? ??? ?????? ??? ?????.

صورة العضو الرمزية
المشرقي
عضو جديد
عضو جديد
مشاركات: 10
اشترك في: الخميس إبريل 20, 2006 1:27 pm

مشاركةبواسطة المشرقي » الأربعاء مايو 31, 2006 2:23 pm

??? ?????? the shadow

?? ??? ???? ???? ????.

?? ??? ????????.

the shadow
مشرف سابق
مشرف سابق
مشاركات: 763
اشترك في: الاثنين يونيو 20, 2005 8:30 pm
مكان: keyboard
اتصال:

مشاركةبواسطة the shadow » الأربعاء مايو 31, 2006 2:41 pm

??? ?????? ???????

????? ??? ?????? ???? ????
??? ???

???? ????? ????? ??? ?????? ????? ????? ??? ?? ????? :wink:

صورة العضو الرمزية
المشرقي
عضو جديد
عضو جديد
مشاركات: 10
اشترك في: الخميس إبريل 20, 2006 1:27 pm

مشاركةبواسطة المشرقي » الأربعاء مايو 31, 2006 5:18 pm

????? ????? ???? ??? ??????.

??? ???? ??? the shadow ?? ??? ???? ??? ??? ????.

صورة العضو الرمزية
الباهي
عضو متميز
عضو متميز
مشاركات: 291
اشترك في: الأحد مايو 02, 2004 12:01 pm
اتصال:

مشاركةبواسطة الباهي » الجمعة يونيو 09, 2006 11:59 am

?????? ?????

??? ?????? the shadow ???? ??? ???? ?????? ????????? ???? ??? ??? ?? ?????.
تفضل بزيارة موقع
مجتمع ماكنتوش العربي
صورة


العودة إلى ”ساحه عامه“

الموجودون الآن

المتصفحون للمنتدى الآن: لا يوجد أعضاء مسجلين متصلين و 15 زائرًا