Vergleich search.php - 1.8.3 - 1.8.37

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 13Zeile 13
define('THIS_SCRIPT', 'search.php');

$templatelist = "search,forumdisplay_thread_gotounread,search_results_threads_thread,search_results_threads,search_results_posts,search_results_posts_post,search_results_icon,search_forumlist_forum,search_forumlist";

define('THIS_SCRIPT', 'search.php');

$templatelist = "search,forumdisplay_thread_gotounread,search_results_threads_thread,search_results_threads,search_results_posts,search_results_posts_post,search_results_icon,search_forumlist_forum,search_forumlist";

$templatelist .= ",multipage,multipage_breadcrumb,multipage_end,multipage_jump_page,multipage_nextpage,multipage_page,multipage_page_current,multipage_page_link_current,multipage_prevpage,multipage_start,forumdisplay_thread_multipage_more,forumdisplay_thread_multipage_page,forumdisplay_thread_multipage";
$templatelist .= ",search_results_posts_inlinecheck,search_results_posts_nocheck,search_results_threads_inlinecheck,search_results_threads_nocheck,search_results_inlinemodcol,search_results_posts_inlinemoderation_custom_tool";
$templatelist .= ",search_results_posts_inlinemoderation_custom,search_results_posts_inlinemoderation,search_results_threads_inlinemoderation_custom_tool,search_results_threads_inlinemoderation_custom,search_results_threads_inlinemoderation,search_orderarrow,search_moderator_options";
$templatelist .= ",forumdisplay_thread_attachment_count,search_threads_inlinemoderation_selectall,search_posts_inlinemoderation_selectall,post_prefixselect_prefix,post_prefixselect_multiple";


$templatelist .= ",multipage,multipage_breadcrumb,multipage_end,multipage_jump_page,multipage_nextpage,multipage_page,multipage_page_current,multipage_page_link_current,multipage_prevpage,multipage_start";
$templatelist .= ",search_results_posts_inlinecheck,search_results_posts_nocheck,search_results_threads_inlinecheck,search_results_threads_nocheck,search_results_inlinemodcol,search_results_inlinemodcol_empty,search_results_posts_inlinemoderation_custom_tool";
$templatelist .= ",search_results_posts_inlinemoderation_custom,search_results_posts_inlinemoderation,search_results_threads_inlinemoderation_custom_tool,search_results_threads_inlinemoderation_custom,search_results_threads_inlinemoderation";
$templatelist .= ",forumdisplay_thread_attachment_count,search_threads_inlinemoderation_selectall,search_posts_inlinemoderation_selectall,post_prefixselect_prefix,post_prefixselect_multiple,search_orderarrow";
$templatelist .= ",search_results_posts_forumlink,search_results_threads_forumlink,forumdisplay_thread_multipage_more,forumdisplay_thread_multipage_page,forumdisplay_thread_multipage,search_moderator_options";


require_once "./global.php";
require_once MYBB_ROOT."inc/functions_post.php";


require_once "./global.php";
require_once MYBB_ROOT."inc/functions_post.php";

Zeile 59Zeile 60
	$query = $db->simple_select("searchlog", "*", "sid='$sid'");
$search = $db->fetch_array($query);


	$query = $db->simple_select("searchlog", "*", "sid='$sid'");
$search = $db->fetch_array($query);


	if(!$search['sid'])

	if(!$search)

	{
error($lang->error_invalidsearch);
}

	{
error($lang->error_invalidsearch);
}

Zeile 89Zeile 90
			}
break;
case "forum":

			}
break;
case "forum":

			$sortfield = "t.fid";

			$sortfield = "f.name";

			break;
case "starter":
if($search['resulttype'] == "threads")

			break;
case "starter":
if($search['resulttype'] == "threads")

Zeile 103Zeile 104
			break;
case "lastpost":
default:

			break;
case "lastpost":
default:

			if($search['resulttype'] == "threads")

			if(isset($search['resulttype']) && $search['resulttype'] == "threads")

			{
$sortfield = "t.lastpost";
$sortby = "lastpost";

			{
$sortfield = "t.lastpost";
$sortby = "lastpost";

Zeile 114Zeile 115
				$sortby = "dateline";
}
break;

				$sortby = "dateline";
}
break;

	}

	}


if($order != "asc")
{
$order = "desc";
$oppsortnext = "asc";
$oppsort = $lang->asc;


if($order != "asc")
{
$order = "desc";
$oppsortnext = "asc";
$oppsort = $lang->asc;

	}
else
{

	}
else
{

		$oppsortnext = "desc";
$oppsort = $lang->desc;

		$oppsortnext = "desc";
$oppsort = $lang->desc;

	}

	}


if(!$mybb->settings['threadsperpage'] || (int)$mybb->settings['threadsperpage'] < 1)


if(!$mybb->settings['threadsperpage'] || (int)$mybb->settings['threadsperpage'] < 1)

	{

	{

		$mybb->settings['threadsperpage'] = 20;

		$mybb->settings['threadsperpage'] = 20;

	}

	}


// Work out pagination, which page we're at, as well as the limits.
$perpage = $mybb->settings['threadsperpage'];
$page = $mybb->get_input('page');
if($page > 0)


// Work out pagination, which page we're at, as well as the limits.
$perpage = $mybb->settings['threadsperpage'];
$page = $mybb->get_input('page');
if($page > 0)

	{

	{

		$start = ($page-1) * $perpage;
}
else
{
$start = 0;
$page = 1;

		$start = ($page-1) * $perpage;
}
else
{
$start = 0;
$page = 1;

	}

	}

	$end = $start + $perpage;
$lower = $start+1;
$upper = $end;

// Work out if we have terms to highlight
$highlight = "";

	$end = $start + $perpage;
$lower = $start+1;
$upper = $end;

// Work out if we have terms to highlight
$highlight = "";

	if($search['keywords'])

	if(!empty($search['keywords']))

	{
if($mybb->seo_support == true)
{

	{
if($mybb->seo_support == true)
{

Zeile 166Zeile 167
	$sorturl = "search.php?action=results&amp;sid={$sid}";
$thread_url = "";
$post_url = "";

	$sorturl = "search.php?action=results&amp;sid={$sid}";
$thread_url = "";
$post_url = "";

	



	$orderarrow = array('replies' => '', 'views' => '', 'subject' => '', 'forum' => '', 'starter' => '', 'lastpost' => '', 'dateline' => '');

eval("\$orderarrow['$sortby'] = \"".$templates->get("search_orderarrow")."\";");

	$orderarrow = array('replies' => '', 'views' => '', 'subject' => '', 'forum' => '', 'starter' => '', 'lastpost' => '', 'dateline' => '');

eval("\$orderarrow['$sortby'] = \"".$templates->get("search_orderarrow")."\";");

Zeile 187Zeile 188
			ORDER BY pid, disporder
");


			ORDER BY pid, disporder
");


		$forumsread = my_unserialize($mybb->cookies['mybb']['forumread']);








		if(isset($mybb->cookies['mybb']['forumread']))
{
$forumsread = my_unserialize($mybb->cookies['mybb']['forumread'], false);
}
else
{
$forumsread = array();
}

	}
else
{

	}
else
{

Zeile 205Zeile 213
	{
if($mybb->user['uid'] == 0)
{

	{
if($mybb->user['uid'] == 0)
{

			if($forumsread[$forum['fid']])

			if(!empty($forumsread[$forum['fid']]))

			{
$forum['lastread'] = $forumsread[$forum['fid']];
}
}

			{
$forum['lastread'] = $forumsread[$forum['fid']];
}
}

		$readforums[$forum['fid']] = $forum['lastread'];










if(isset($forum['lastread']))
{
$readforums[$forum['fid']] = $forum['lastread'];
}
else
{
$readforums[$forum['fid']] = '';
}

	}
$fpermissions = forum_permissions();

// Inline Mod Column for moderators

	}
$fpermissions = forum_permissions();

// Inline Mod Column for moderators

	$inlinemodcol = $inlinecookie = '';
$is_mod = $is_supermod = false;

	$inlinemodcol = $inlinecookie = $inline_edit_js = '';
$is_mod = $is_supermod = $show_inline_moderation = false;

	if($mybb->usergroup['issupermod'])
{
$is_supermod = true;
}
if($is_supermod || is_moderator())
{

	if($mybb->usergroup['issupermod'])
{
$is_supermod = true;
}
if($is_supermod || is_moderator())
{

		eval("\$inlinemodcol = \"".$templates->get("search_results_inlinemodcol")."\";");

 
		$inlinecookie = "inlinemod_search".$sid;
$inlinecount = 0;
$is_mod = true;

		$inlinecookie = "inlinemod_search".$sid;
$inlinecount = 0;
$is_mod = true;

Zeile 231Zeile 246
	}

// Show search results as 'threads'

	}

// Show search results as 'threads'

	if($search['resulttype'] == "threads")

	if(isset($search['resulttype']) && $search['resulttype'] == "threads")

	{
$threadcount = 0;

	{
$threadcount = 0;


// Moderators can view unapproved threads
$query = $db->simple_select("moderators", "fid", "(id='{$mybb->user['uid']}' AND isgroup='0') OR (id='{$mybb->user['usergroup']}' AND isgroup='1')");
if($mybb->usergroup['issupermod'] == 1)
{
// Super moderators (and admins)
$unapproved_where = "t.visible>=-1";
}
elseif($db->num_rows($query))
{
// Normal moderators
$moderated_forums = '0';
while($forum = $db->fetch_array($query))
{
$moderated_forums .= ','.$forum['fid'];
}
$unapproved_where = "(t.visible>0 OR (t.visible IN (-1,0) AND t.fid IN ({$moderated_forums})))";
}
else
{
// Normal users
$unapproved_where = 't.visible>0';
}


// Moderators can view unapproved threads and deleted threads from forums they moderate
$unapproved_where_t = get_visible_where('t');






















// If we have saved WHERE conditions, execute them
if($search['querycache'] != "")
{
$where_conditions = $search['querycache'];


// If we have saved WHERE conditions, execute them
if($search['querycache'] != "")
{
$where_conditions = $search['querycache'];

			$query = $db->simple_select("threads t", "t.tid", $where_conditions. " AND {$unapproved_where} AND t.closed NOT LIKE 'moved|%' ORDER BY t.lastpost DESC {$limitsql}");

			$query = $db->simple_select("threads t", "t.tid", $where_conditions. " AND ({$unapproved_where_t}) AND t.closed NOT LIKE 'moved|%' ORDER BY t.lastpost DESC {$limitsql}");

			while($thread = $db->fetch_array($query))

			while($thread = $db->fetch_array($query))

			{

			{

				$threads[$thread['tid']] = $thread['tid'];
$threadcount++;
}

				$threads[$thread['tid']] = $thread['tid'];
$threadcount++;
}

Zeile 272Zeile 267
			if($threadcount > 0)
{
$search['threads'] = implode(",", $threads);

			if($threadcount > 0)
{
$search['threads'] = implode(",", $threads);

			}

			}

			// No results.
else

			// No results.
else

			{
error($lang->error_nosearchresults);
}
$where_conditions = "t.tid IN (".$search['threads'].")";
}

			{
error($lang->error_nosearchresults);
}
$where_conditions = "t.tid IN (".$search['threads'].")";
}

		// This search doesn't use a query cache, results stored in search table.
else
{
$where_conditions = "t.tid IN (".$search['threads'].")";

		// This search doesn't use a query cache, results stored in search table.
else
{
$where_conditions = "t.tid IN (".$search['threads'].")";

			$query = $db->simple_select("threads t", "COUNT(t.tid) AS resultcount", $where_conditions. " AND {$unapproved_where} AND t.closed NOT LIKE 'moved|%' {$limitsql}");

			$query = $db->simple_select("threads t", "COUNT(t.tid) AS resultcount", $where_conditions. " AND ({$unapproved_where_t}) AND t.closed NOT LIKE 'moved|%' {$limitsql}");

			$count = $db->fetch_array($query);

if(!$count['resultcount'])

			$count = $db->fetch_array($query);

if(!$count['resultcount'])

Zeile 292Zeile 287
				error($lang->error_nosearchresults);
}
$threadcount = $count['resultcount'];

				error($lang->error_nosearchresults);
}
$threadcount = $count['resultcount'];

		}


		}


		$permsql = "";
$onlyusfids = array();

		$permsql = "";
$onlyusfids = array();





		// Check group permissions if we can't view threads not started by us
$group_permissions = forum_permissions();
foreach($group_permissions as $fid => $forum_permissions)

		// Check group permissions if we can't view threads not started by us
$group_permissions = forum_permissions();
foreach($group_permissions as $fid => $forum_permissions)

Zeile 313Zeile 308

$unsearchforums = get_unsearchable_forums();
if($unsearchforums)


$unsearchforums = get_unsearchable_forums();
if($unsearchforums)

		{

		{

			$permsql .= " AND t.fid NOT IN ($unsearchforums)";

			$permsql .= " AND t.fid NOT IN ($unsearchforums)";

		}

		}

		$inactiveforums = get_inactive_forums();
if($inactiveforums)

		$inactiveforums = get_inactive_forums();
if($inactiveforums)

		{

		{

			$permsql .= " AND t.fid NOT IN ($inactiveforums)";

			$permsql .= " AND t.fid NOT IN ($inactiveforums)";

 
		}

$pages = ceil($threadcount / $perpage);
if($page > $pages)
{
$start = 0;
$page = 1;

		}

// Begin selecting matching threads, cache them.

		}

// Begin selecting matching threads, cache them.

Zeile 333Zeile 335
			SELECT t.*, u.username AS userusername
FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid)

			SELECT t.*, u.username AS userusername
FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid)

			WHERE $where_conditions AND {$unapproved_where} {$permsql} AND t.closed NOT LIKE 'moved|%'


			LEFT JOIN ".TABLE_PREFIX."forums f ON (t.fid=f.fid)
WHERE $where_conditions AND ({$unapproved_where_t}) {$permsql} AND t.closed NOT LIKE 'moved|%'

			ORDER BY $sortfield $order
LIMIT $start, $perpage
");

			ORDER BY $sortfield $order
LIMIT $start, $perpage
");

Zeile 354Zeile 357
		if(empty($thread_ids))
{
error($lang->error_nosearchresults);

		if(empty($thread_ids))
{
error($lang->error_nosearchresults);

		}

		}


// Fetch dot icons if enabled
if($mybb->settings['dotfolders'] != 0 && $mybb->user['uid'] && $thread_cache)


// Fetch dot icons if enabled
if($mybb->settings['dotfolders'] != 0 && $mybb->user['uid'] && $thread_cache)

		{
$query = $db->simple_select("posts", "DISTINCT tid,uid", "uid='".$mybb->user['uid']."' AND tid IN(".$thread_ids.")");


		{
$unapproved_where_p = str_replace('t.', '', $unapproved_where_t);
$query = $db->simple_select("posts", "DISTINCT tid,uid", "uid='{$mybb->user['uid']}' AND tid IN({$thread_ids}) AND ({$unapproved_where_p})");

			while($thread = $db->fetch_array($query))

			while($thread = $db->fetch_array($query))

			{

			{

				$thread_cache[$thread['tid']]['dot_icon'] = 1;

				$thread_cache[$thread['tid']]['dot_icon'] = 1;

			}

			}

		}

// Fetch the read threads.

		}

// Fetch the read threads.

Zeile 373Zeile 377
			while($readthread = $db->fetch_array($query))
{
$thread_cache[$readthread['tid']]['lastread'] = $readthread['dateline'];

			while($readthread = $db->fetch_array($query))
{
$thread_cache[$readthread['tid']]['lastread'] = $readthread['dateline'];

			}
}


			}
}


		if(!$mybb->settings['maxmultipagelinks'])
{
$mybb->settings['maxmultipagelinks'] = 5;
}

		if(!$mybb->settings['maxmultipagelinks'])
{
$mybb->settings['maxmultipagelinks'] = 5;
}





		$results = '';

foreach($thread_cache as $thread)

		$results = '';

foreach($thread_cache as $thread)

Zeile 395Zeile 399
				$bgcolor = 'trow_shaded';
}
elseif($thread['visible'] == -1)

				$bgcolor = 'trow_shaded';
}
elseif($thread['visible'] == -1)

			{

			{

				$bgcolor = 'trow_shaded trow_deleted';

				$bgcolor = 'trow_shaded trow_deleted';

			}


			}


			if($thread['userusername'])

			if($thread['userusername'])

			{

			{

				$thread['username'] = $thread['userusername'];
}

				$thread['username'] = $thread['userusername'];
}

 
			$thread['username'] = htmlspecialchars_uni($thread['username']);

			$thread['profilelink'] = build_profile_link($thread['username'], $thread['uid']);

// If this thread has a prefix, insert a space between prefix and subject

			$thread['profilelink'] = build_profile_link($thread['username'], $thread['uid']);

// If this thread has a prefix, insert a space between prefix and subject

Zeile 410Zeile 415
			{
$thread['threadprefix'] .= '&nbsp;';
}

			{
$thread['threadprefix'] .= '&nbsp;';
}





			$thread['subject'] = $parser->parse_badwords($thread['subject']);
$thread['subject'] = htmlspecialchars_uni($thread['subject']);

if(isset($icon_cache[$thread['icon']]))

			$thread['subject'] = $parser->parse_badwords($thread['subject']);
$thread['subject'] = htmlspecialchars_uni($thread['subject']);

if(isset($icon_cache[$thread['icon']]))

			{

			{

				$posticon = $icon_cache[$thread['icon']];
$posticon['path'] = str_replace("{theme}", $theme['imgdir'], $posticon['path']);
$posticon['path'] = htmlspecialchars_uni($posticon['path']);

				$posticon = $icon_cache[$thread['icon']];
$posticon['path'] = str_replace("{theme}", $theme['imgdir'], $posticon['path']);
$posticon['path'] = htmlspecialchars_uni($posticon['path']);

Zeile 423Zeile 428
				eval("\$icon = \"".$templates->get("search_results_icon")."\";");
}
else

				eval("\$icon = \"".$templates->get("search_results_icon")."\";");
}
else

			{

			{

				$icon = "&nbsp;";

				$icon = "&nbsp;";

			}

			}

			if($thread['poll'])
{
$prefix = $lang->poll_prefix;

			if($thread['poll'])
{
$prefix = $lang->poll_prefix;

Zeile 435Zeile 440
			$folder = '';
$folder_label = '';
if(isset($thread['dot_icon']))

			$folder = '';
$folder_label = '';
if(isset($thread['dot_icon']))

			{

			{

				$folder = "dot_";
$folder_label .= $lang->icon_dot;

				$folder = "dot_";
$folder_label .= $lang->icon_dot;

			}

			}

			$gotounread = '';
$isnew = 0;
$donenew = 0;
$last_read = 0;

			$gotounread = '';
$isnew = 0;
$donenew = 0;
$last_read = 0;





			if($mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'])

			if($mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'])

			{

			{

				$forum_read = $readforums[$thread['fid']];

$read_cutoff = TIME_NOW-$mybb->settings['threadreadcut']*60*60*24;
if($forum_read == 0 || $forum_read < $read_cutoff)

				$forum_read = $readforums[$thread['fid']];

$read_cutoff = TIME_NOW-$mybb->settings['threadreadcut']*60*60*24;
if($forum_read == 0 || $forum_read < $read_cutoff)

				{

				{

					$forum_read = $read_cutoff;
}
}
else
{

					$forum_read = $read_cutoff;
}
}
else
{

				$forum_read = $forumsread[$thread['fid']];








				if(isset($forumsread[$thread['fid']]))
{
$forum_read = $forumsread[$thread['fid']];
}
else
{
$forum_read = '';
}

			}

if($mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'] && $thread['lastpost'] > $forum_read)
{

			}

if($mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'] && $thread['lastpost'] > $forum_read)
{

				if($thread['lastread'])

				if(isset($thread['lastread']))

				{
$last_read = $thread['lastread'];
}

				{
$last_read = $thread['lastread'];
}

Zeile 502Zeile 514
			}
if($thread['closed'] == 1)
{

			}
if($thread['closed'] == 1)
{

				$folder .= "lock";
$folder_label .= $lang->icon_lock;

				$folder .= "close";
$folder_label .= $lang->icon_close;

			}
$folder .= "folder";


			}
$folder .= "folder";


Zeile 517Zeile 529
			$threadpages = '';
$morelink = '';
$thread['posts'] = $thread['replies'] + 1;

			$threadpages = '';
$morelink = '';
$thread['posts'] = $thread['replies'] + 1;

			if(is_moderator($thread['fid'], "canviewunapprove"))

			if(is_moderator($thread['fid'], "canviewdeleted") == true || is_moderator($thread['fid'], "canviewunapprove") == true)

			{

			{

				$thread['posts'] += $thread['unapprovedposts'];












				if(is_moderator($thread['fid'], "canviewdeleted") == true)
{
$thread['posts'] += $thread['deletedposts'];
}
if(is_moderator($thread['fid'], "canviewunapprove") == true)
{
$thread['posts'] += $thread['unapprovedposts'];
}
}
elseif($group_permissions[$thread['fid']]['canviewdeletionnotice'] != 0)
{
$thread['posts'] += $thread['deletedposts'];

			}

			}

 


			if($thread['posts'] > $mybb->settings['postsperpage'])
{
$thread['pages'] = $thread['posts'] / $mybb->settings['postsperpage'];

			if($thread['posts'] > $mybb->settings['postsperpage'])
{
$thread['pages'] = $thread['posts'] / $mybb->settings['postsperpage'];

Zeile 534Zeile 558
				else
{
$pagesstop = $thread['pages'];

				else
{
$pagesstop = $thread['pages'];

				}

				}

				for($i = 1; $i <= $pagesstop; ++$i)
{
$page_link = get_thread_link($thread['tid'], $i).$highlight;

				for($i = 1; $i <= $pagesstop; ++$i)
{
$page_link = get_thread_link($thread['tid'], $i).$highlight;

Zeile 549Zeile 573
				$thread['multipage'] = '';
}
$lastpostdate = my_date('relative', $thread['lastpost']);

				$thread['multipage'] = '';
}
$lastpostdate = my_date('relative', $thread['lastpost']);

			$lastposter = $thread['lastposter'];

 
			$thread['lastpostlink'] = get_thread_link($thread['tid'], 0, "lastpost");
$lastposteruid = $thread['lastposteruid'];

			$thread['lastpostlink'] = get_thread_link($thread['tid'], 0, "lastpost");
$lastposteruid = $thread['lastposteruid'];

 
			if(!$lastposteruid && !$thread['lastposter'])
{
$lastposter = htmlspecialchars_uni($lang->guest);
}
else
{
$lastposter = htmlspecialchars_uni($thread['lastposter']);
}

			$thread_link = get_thread_link($thread['tid']);

// Don't link to guest's profiles (they have no profile).

			$thread_link = get_thread_link($thread['tid']);

// Don't link to guest's profiles (they have no profile).

Zeile 567Zeile 598
			$thread['replies'] = my_number_format($thread['replies']);
$thread['views'] = my_number_format($thread['views']);


			$thread['replies'] = my_number_format($thread['replies']);
$thread['views'] = my_number_format($thread['views']);


 
			$thread['forumlink'] = '';

			if($forumcache[$thread['fid']])
{

			if($forumcache[$thread['fid']])
{

				$thread['forumlink'] = "<a href=\"".get_forum_link($thread['fid'])."\">".$forumcache[$thread['fid']]['name']."</a>";
}
else
{
$thread['forumlink'] = "";

				$thread['forumlink_link'] = get_forum_link($thread['fid']);
$thread['forumlink_name'] = $forumcache[$thread['fid']]['name'];
eval("\$thread['forumlink'] = \"".$templates->get("search_results_threads_forumlink")."\";");



			}

// If this user is the author of the thread and it is not closed or they are a moderator, they can edit
if(($thread['uid'] == $mybb->user['uid'] && $thread['closed'] != 1 && $mybb->user['uid'] != 0 && $fpermissions[$thread['fid']]['caneditposts'] == 1) || is_moderator($thread['fid'], "caneditposts"))
{
$inline_edit_class = "subject_editable";

			}

// If this user is the author of the thread and it is not closed or they are a moderator, they can edit
if(($thread['uid'] == $mybb->user['uid'] && $thread['closed'] != 1 && $mybb->user['uid'] != 0 && $fpermissions[$thread['fid']]['caneditposts'] == 1) || is_moderator($thread['fid'], "caneditposts"))
{
$inline_edit_class = "subject_editable";

			}

			}

			else

			else

			{

			{

				$inline_edit_class = "";
}


				$inline_edit_class = "";
}


Zeile 590Zeile 620
			if($mybb->settings['enableattachments'] == 1 && $thread['attachmentcount'] > 0)
{
if($thread['attachmentcount'] > 1)

			if($mybb->settings['enableattachments'] == 1 && $thread['attachmentcount'] > 0)
{
if($thread['attachmentcount'] > 1)

				{

				{

					$attachment_count = $lang->sprintf($lang->attachment_count_multiple, $thread['attachmentcount']);

					$attachment_count = $lang->sprintf($lang->attachment_count_multiple, $thread['attachmentcount']);

				}
else
{

				}
else
{

					$attachment_count = $lang->attachment_count;
}


					$attachment_count = $lang->attachment_count;
}


Zeile 611Zeile 641
			$inline_mod_checkbox = '';
if($is_supermod || is_moderator($thread['fid']))
{

			$inline_mod_checkbox = '';
if($is_supermod || is_moderator($thread['fid']))
{

				if(isset($mybb->cookies[$inlinecookie]) && my_strpos($mybb->cookies[$inlinecookie], "|{$thread['tid']}|"))

				if(isset($mybb->cookies[$inlinecookie]) && my_strpos($mybb->cookies[$inlinecookie], "|{$thread['tid']}|") !== false)

				{
$inlinecheck = "checked=\"checked\"";
++$inlinecount;

				{
$inlinecheck = "checked=\"checked\"";
++$inlinecount;

Zeile 620Zeile 650
				{
$inlinecheck = '';
}

				{
$inlinecheck = '';
}

 

// If this user is allowed to use the inline moderation tools for at least one thread, include the necessary scripts
$show_inline_moderation = true;


				eval("\$inline_mod_checkbox = \"".$templates->get("search_results_threads_inlinecheck")."\";");
}
elseif($is_mod)

				eval("\$inline_mod_checkbox = \"".$templates->get("search_results_threads_inlinecheck")."\";");
}
elseif($is_mod)

Zeile 634Zeile 668
		{
error($lang->error_nosearchresults);
}

		{
error($lang->error_nosearchresults);
}

		$multipage = multipage($threadcount, $perpage, $page, "search.php?action=results&amp;sid=$sid&amp;sortby=$sortby&amp;order=$order&amp;uid=".$mybb->get_input('uid', 1));

		$multipage = multipage($threadcount, $perpage, $page, "search.php?action=results&amp;sid=$sid&amp;sortby=$sortby&amp;order=$order&amp;uid=".$mybb->get_input('uid', MyBB::INPUT_INT));

		if($upper > $threadcount)

		if($upper > $threadcount)

		{
$upper = $threadcount;
}





		{
$upper = $threadcount;
}

$selectall = '';
$inlinemod = '';


		// Inline Thread Moderation Options

		// Inline Thread Moderation Options

		if($is_mod)

		if($show_inline_moderation)

		{

		{

 
			eval("\$inlinemodcol = \"".$templates->get("search_results_inlinemodcol")."\";");


			// If user has moderation tools available, prepare the Select All feature
$lang->page_selected = $lang->sprintf($lang->page_selected, count($thread_cache));
$lang->all_selected = $lang->sprintf($lang->all_selected, (int)$threadcount);
$lang->select_all = $lang->sprintf($lang->select_all, (int)$threadcount);
eval("\$selectall = \"".$templates->get("search_threads_inlinemoderation_selectall")."\";");

			// If user has moderation tools available, prepare the Select All feature
$lang->page_selected = $lang->sprintf($lang->page_selected, count($thread_cache));
$lang->all_selected = $lang->sprintf($lang->all_selected, (int)$threadcount);
$lang->select_all = $lang->sprintf($lang->select_all, (int)$threadcount);
eval("\$selectall = \"".$templates->get("search_threads_inlinemoderation_selectall")."\";");





			$customthreadtools = '';
switch($db->type)
{

			$customthreadtools = '';
switch($db->type)
{

Zeile 661Zeile 700
			}

while($tool = $db->fetch_array($query))

			}

while($tool = $db->fetch_array($query))

			{


			{
$tool['name'] = htmlspecialchars_uni($tool['name']);

				eval("\$customthreadtools .= \"".$templates->get("search_results_threads_inlinemoderation_custom_tool")."\";");

				eval("\$customthreadtools .= \"".$templates->get("search_results_threads_inlinemoderation_custom_tool")."\";");

			}

			}

			// Build inline moderation dropdown
if(!empty($customthreadtools))
{
eval("\$customthreadtools = \"".$templates->get("search_results_threads_inlinemoderation_custom")."\";");
}
eval("\$inlinemod = \"".$templates->get("search_results_threads_inlinemoderation")."\";");

			// Build inline moderation dropdown
if(!empty($customthreadtools))
{
eval("\$customthreadtools = \"".$templates->get("search_results_threads_inlinemoderation_custom")."\";");
}
eval("\$inlinemod = \"".$templates->get("search_results_threads_inlinemoderation")."\";");

		}






		}
elseif($is_mod)
{
eval("\$inlinemodcol = \"".$templates->get("search_results_inlinemodcol_empty")."\";");
}


		$plugins->run_hooks("search_results_end");

eval("\$searchresults = \"".$templates->get("search_results_threads")."\";");

		$plugins->run_hooks("search_results_end");

eval("\$searchresults = \"".$templates->get("search_results_threads")."\";");

Zeile 679Zeile 723
	}
else // Displaying results as posts
{

	}
else // Displaying results as posts
{

		if(!$search['posts'])
{
error($lang->error_nosearchresults);
}


		if(empty($search['posts']))
{
error($lang->error_nosearchresults);
}


		$postcount = 0;


		$postcount = 0;


		// Moderators can view unapproved threads
$query = $db->simple_select("moderators", "fid", "(id='{$mybb->user['uid']}' AND isgroup='0') OR (id='{$mybb->user['usergroup']}' AND isgroup='1')");
if($mybb->usergroup['issupermod'] == 1)
{
// Super moderators (and admins)
$p_unapproved_where = "visible >= -1";
$t_unapproved_where = "visible < -1";
}
elseif($db->num_rows($query))
{
// Normal moderators
$moderated_forums = '0';
while($forum = $db->fetch_array($query))
{
$moderated_forums .= ','.$forum['fid'];
$test_moderated_forums[$forum['fid']] = $forum['fid'];
}
$p_unapproved_where = "(visible>0 OR (visible IN (-1,0) AND fid IN ({$moderated_forums})))";
$t_unapproved_where = "(visible<0 AND (visible <1 OR fid NOT IN ({$moderated_forums})))";
}
else
{
// Normal users
$p_unapproved_where = 'visible=1';
$t_unapproved_where = 'visible < 1';
}

		// Moderators can view unapproved threads and deleted threads from forums they moderate
$unapproved_where = get_visible_where();


























$post_cache_options = array();
if((int)$mybb->settings['searchhardlimit'] > 0)


$post_cache_options = array();
if((int)$mybb->settings['searchhardlimit'] > 0)

Zeile 728Zeile 748
		$tids = array();
$pids = array();
// Make sure the posts we're viewing we have permission to view.

		$tids = array();
$pids = array();
// Make sure the posts we're viewing we have permission to view.

		$query = $db->simple_select("posts", "pid, tid", "pid IN(".$db->escape_string($search['posts']).") AND {$p_unapproved_where}", $post_cache_options);

		$query = $db->simple_select("posts", "pid, tid", "pid IN(".$db->escape_string($search['posts']).") AND ({$unapproved_where})", $post_cache_options);

		while($post = $db->fetch_array($query))
{
$pids[$post['pid']] = $post['tid'];

		while($post = $db->fetch_array($query))
{
$pids[$post['pid']] = $post['tid'];

Zeile 739Zeile 759
		{
$temp_pids = array();


		{
$temp_pids = array();


			// Check the thread records as well. If we don't have permissions, remove them from the listing.
$query = $db->simple_select("threads", "tid", "tid IN(".$db->escape_string(implode(',', $pids)).") AND ({$t_unapproved_where} OR closed LIKE 'moved|%')");




























			$group_permissions = forum_permissions();
$permsql = '';
$onlyusfids = array();

foreach($group_permissions as $fid => $forum_permissions)
{
if(!empty($forum_permissions['canonlyviewownthreads']))
{
$onlyusfids[] = $fid;
}
}

if($onlyusfids)
{
$permsql .= " OR (fid IN(".implode(',', $onlyusfids).") AND uid!={$mybb->user['uid']})";
}
$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{
$permsql .= " OR fid IN ($unsearchforums)";
}
$inactiveforums = get_inactive_forums();
if($inactiveforums)
{
$permsql .= " OR fid IN ($inactiveforums)";
}

// Find threads in our list that we don't have permission to view and remove them
$query = $db->simple_select("threads", "tid", "tid IN(".$db->escape_string(implode(',', array_keys($tids))).") AND (NOT ({$unapproved_where}){$permsql} OR closed LIKE 'moved|%')");

			while($thread = $db->fetch_array($query))
{

			while($thread = $db->fetch_array($query))
{

				if(array_key_exists($thread['tid'], $tids) != false)

				if(array_key_exists($thread['tid'], $tids))

				{
$temp_pids = $tids[$thread['tid']];
foreach($temp_pids as $pid)

				{
$temp_pids = $tids[$thread['tid']];
foreach($temp_pids as $pid)

Zeile 751Zeile 798
						unset($pids[$pid]);
unset($tids[$thread['tid']]);
}

						unset($pids[$pid]);
unset($tids[$thread['tid']]);
}

 
					unset($tids[$thread['tid']]);

				}
}
unset($temp_pids);

				}
}
unset($temp_pids);

Zeile 766Zeile 814

// And now we have our sanatized post list
$search['posts'] = implode(',', array_keys($pids));


// And now we have our sanatized post list
$search['posts'] = implode(',', array_keys($pids));





		$tids = implode(",", array_keys($tids));

		$tids = implode(",", array_keys($tids));





		// Read threads
if($mybb->user['uid'] && $mybb->settings['threadreadcut'] > 0)
{

		// Read threads
if($mybb->user['uid'] && $mybb->settings['threadreadcut'] > 0)
{

Zeile 776Zeile 824
			while($readthread = $db->fetch_array($query))
{
$readthreads[$readthread['tid']] = $readthread['dateline'];

			while($readthread = $db->fetch_array($query))
{
$readthreads[$readthread['tid']] = $readthread['dateline'];

			}
}

			}
}


$dot_icon = array();
if($mybb->settings['dotfolders'] != 0 && $mybb->user['uid'] != 0)
{


$dot_icon = array();
if($mybb->settings['dotfolders'] != 0 && $mybb->user['uid'] != 0)
{

			$query = $db->simple_select("posts", "DISTINCT tid,uid", "uid='".$mybb->user['uid']."' AND tid IN(".$db->escape_string($tids).")");

			$query = $db->simple_select("posts", "DISTINCT tid,uid", "uid='{$mybb->user['uid']}' AND tid IN({$db->escape_string($tids)}) AND ({$unapproved_where})");

			while($post = $db->fetch_array($query))
{
$dot_icon[$post['tid']] = true;

			while($post = $db->fetch_array($query))
{
$dot_icon[$post['tid']] = true;

			}
}


			}
}


		$results = '';

		$results = '';

 

$pages = ceil($postcount / $perpage);
if($page > $pages)
{
$start = 0;
$page = 1;
}


$query = $db->query("
SELECT p.*, u.username AS userusername, t.subject AS thread_subject, t.replies AS thread_replies, t.views AS thread_views, t.lastpost AS thread_lastpost, t.closed AS thread_closed, t.uid as thread_uid
FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."threads t ON (t.tid=p.tid)
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=p.uid)


$query = $db->query("
SELECT p.*, u.username AS userusername, t.subject AS thread_subject, t.replies AS thread_replies, t.views AS thread_views, t.lastpost AS thread_lastpost, t.closed AS thread_closed, t.uid as thread_uid
FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."threads t ON (t.tid=p.tid)
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=p.uid)

 
			LEFT JOIN ".TABLE_PREFIX."forums f ON (t.fid=f.fid)

			WHERE p.pid IN (".$db->escape_string($search['posts']).")
ORDER BY $sortfield $order
LIMIT $start, $perpage

			WHERE p.pid IN (".$db->escape_string($search['posts']).")
ORDER BY $sortfield $order
LIMIT $start, $perpage

Zeile 815Zeile 871
			{
$post['username'] = $post['userusername'];
}

			{
$post['username'] = $post['userusername'];
}

 
			$post['username'] = htmlspecialchars_uni($post['username']);

			$post['profilelink'] = build_profile_link($post['username'], $post['uid']);
$post['subject'] = $parser->parse_badwords($post['subject']);
$post['thread_subject'] = $parser->parse_badwords($post['thread_subject']);

			$post['profilelink'] = build_profile_link($post['username'], $post['uid']);
$post['subject'] = $parser->parse_badwords($post['subject']);
$post['thread_subject'] = $parser->parse_badwords($post['thread_subject']);

Zeile 828Zeile 885
				$posticon['name'] = htmlspecialchars_uni($posticon['name']);
eval("\$icon = \"".$templates->get("search_results_icon")."\";");
}

				$posticon['name'] = htmlspecialchars_uni($posticon['name']);
eval("\$icon = \"".$templates->get("search_results_icon")."\";");
}

			else
{
$icon = "&nbsp;";
}

if(!empty($forumcache[$thread['fid']]))
{
$post['forumlink'] = "<a href=\"".get_forum_link($post['fid'])."\">".$forumcache[$post['fid']]['name']."</a>";
}
else
{
$post['forumlink'] = "";
}

			else
{
$icon = "&nbsp;";
}

$post['forumlink'] = '';
if(!empty($forumcache[$post['fid']]))
{
$post['forumlink_link'] = get_forum_link($post['fid']);
$post['forumlink_name'] = $forumcache[$post['fid']]['name'];
eval("\$post['forumlink'] = \"".$templates->get("search_results_posts_forumlink")."\";");
}


			// Determine the folder
$folder = '';
$folder_label = '';

			// Determine the folder
$folder = '';
$folder_label = '';

Zeile 848Zeile 905
			$isnew = 0;
$donenew = 0;
$last_read = 0;

			$isnew = 0;
$donenew = 0;
$last_read = 0;

			$post['thread_lastread'] = $readthreads[$post['tid']];










if(isset($readthreads[$post['tid']]))
{
$post['thread_lastread'] = $readthreads[$post['tid']];
}
else
{
$post['thread_lastread'] = '';
}


if($mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'])
{


if($mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'])
{

Zeile 862Zeile 927
			}
else
{

			}
else
{

				$forum_read = $forumsread[$post['fid']];








				if(isset($forumsread[$post['fid']]))
{
$forum_read = $forumsread[$post['fid']];
}
else
{
$forum_read = '';
}

			}

if($mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'] && $post['thread_lastpost'] > $forum_read)

			}

if($mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'] && $post['thread_lastpost'] > $forum_read)

Zeile 923Zeile 995
			}
if($post['thread_closed'] == 1)
{

			}
if($post['thread_closed'] == 1)
{

				$folder .= "lock";
$folder_label .= $lang->icon_lock;

				$folder .= "close";
$folder_label .= $lang->icon_close;

			}
$folder .= "folder";

$post['thread_replies'] = my_number_format($post['thread_replies']);
$post['thread_views'] = my_number_format($post['thread_views']);


			}
$folder .= "folder";

$post['thread_replies'] = my_number_format($post['thread_replies']);
$post['thread_views'] = my_number_format($post['thread_views']);


 
			$post['forumlink'] = '';

			if($forumcache[$post['fid']])

			if($forumcache[$post['fid']])

			{
$post['forumlink'] = "<a href=\"".get_forum_link($post['fid'])."\">".$forumcache[$post['fid']]['name']."</a>";
}
else
{
$post['forumlink'] = "";
}

if(!$post['subject'])
{

			{
$post['forumlink_link'] = get_forum_link($post['fid']);
$post['forumlink_name'] = $forumcache[$post['fid']]['name'];
eval("\$post['forumlink'] = \"".$templates->get("search_results_posts_forumlink")."\";");
}

if(!$post['subject'])
{



				$post['subject'] = $post['message'];
}
if(my_strlen($post['subject']) > 50)

				$post['subject'] = $post['message'];
}
if(my_strlen($post['subject']) > 50)

Zeile 958Zeile 1029
				'allow_mycode' => 1,
'allow_smilies' => 0,
'allow_imgcode' => 0,

				'allow_mycode' => 1,
'allow_smilies' => 0,
'allow_imgcode' => 0,

 
				'me_username' => $post['username'],

				'filter_badwords' => 1
);

				'filter_badwords' => 1
);

			$post['message'] = strip_tags($parser->parse_message($post['message'], $parser_options));

			$post['message'] = strip_tags($parser->text_parse_message($post['message'], $parser_options));

			if(my_strlen($post['message']) > 200)

			if(my_strlen($post['message']) > 200)

			{

			{

				$prev = my_substr($post['message'], 0, 200)."...";
}
else

				$prev = my_substr($post['message'], 0, 200)."...";
}
else

Zeile 978Zeile 1050
			$inline_mod_checkbox = '';
if($is_supermod || is_moderator($post['fid']))
{

			$inline_mod_checkbox = '';
if($is_supermod || is_moderator($post['fid']))
{

				if(isset($mybb->cookies[$inlinecookie]) && my_strpos($mybb->cookies[$inlinecookie], "|{$post['pid']}|"))

				if(isset($mybb->cookies[$inlinecookie]) && my_strpos($mybb->cookies[$inlinecookie], "|{$post['pid']}|") !== false)

				{
$inlinecheck = "checked=\"checked\"";
++$inlinecount;

				{
$inlinecheck = "checked=\"checked\"";
++$inlinecount;

Zeile 987Zeile 1059
				{
$inlinecheck = '';
}

				{
$inlinecheck = '';
}

 

$show_inline_moderation = true;


				eval("\$inline_mod_checkbox = \"".$templates->get("search_results_posts_inlinecheck")."\";");
}
elseif($is_mod)
{
eval("\$inline_mod_checkbox = \"".$templates->get("search_results_posts_nocheck")."\";");
}

				eval("\$inline_mod_checkbox = \"".$templates->get("search_results_posts_inlinecheck")."\";");
}
elseif($is_mod)
{
eval("\$inline_mod_checkbox = \"".$templates->get("search_results_posts_nocheck")."\";");
}





			$plugins->run_hooks("search_results_post");
eval("\$results .= \"".$templates->get("search_results_posts_post")."\";");
}
if(!$results)

			$plugins->run_hooks("search_results_post");
eval("\$results .= \"".$templates->get("search_results_posts_post")."\";");
}
if(!$results)

		{

		{

			error($lang->error_nosearchresults);

			error($lang->error_nosearchresults);

		}
$multipage = multipage($postcount, $perpage, $page, "search.php?action=results&amp;sid=".htmlspecialchars_uni($mybb->get_input('sid'))."&amp;sortby=$sortby&amp;order=$order&amp;uid=".$mybb->get_input('uid', 1));

		}
$multipage = multipage($postcount, $perpage, $page, "search.php?action=results&amp;sid=".htmlspecialchars_uni($mybb->get_input('sid'))."&amp;sortby=$sortby&amp;order=$order&amp;uid=".$mybb->get_input('uid', MyBB::INPUT_INT));

		if($upper > $postcount)
{
$upper = $postcount;
}

		if($upper > $postcount)
{
$upper = $postcount;
}

 

$selectall = '';
$inlinemod = '';


// Inline Post Moderation Options


// Inline Post Moderation Options

		if($is_mod)

		if($show_inline_moderation)

		{

		{

 
			eval("\$inlinemodcol = \"".$templates->get("search_results_inlinemodcol")."\";");


			// If user has moderation tools available, prepare the Select All feature
$num_results = $db->num_rows($query);
$lang->page_selected = $lang->sprintf($lang->page_selected, (int)$num_results);

			// If user has moderation tools available, prepare the Select All feature
$num_results = $db->num_rows($query);
$lang->page_selected = $lang->sprintf($lang->page_selected, (int)$num_results);

Zeile 1038Zeile 1118
				eval("\$customposttools = \"".$templates->get("search_results_posts_inlinemoderation_custom")."\";");
}
eval("\$inlinemod = \"".$templates->get("search_results_posts_inlinemoderation")."\";");

				eval("\$customposttools = \"".$templates->get("search_results_posts_inlinemoderation_custom")."\";");
}
eval("\$inlinemod = \"".$templates->get("search_results_posts_inlinemoderation")."\";");

 
		}
elseif($is_mod)
{
eval("\$inlinemodcol = \"".$templates->get("search_results_inlinemodcol_empty")."\";");

		}

$plugins->run_hooks("search_results_end");

		}

$plugins->run_hooks("search_results_end");





		eval("\$searchresults = \"".$templates->get("search_results_posts")."\";");
output_page($searchresults);
}
}

		eval("\$searchresults = \"".$templates->get("search_results_posts")."\";");
output_page($searchresults);
}
}

elseif($mybb->input['action'] == "findguest")

















































































elseif($mybb->input['action'] == "findguest")
{
$where_sql = "uid='0'";

$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{
$where_sql .= " AND fid NOT IN ($unsearchforums)";
}
$inactiveforums = get_inactive_forums();
if($inactiveforums)
{
$where_sql .= " AND fid NOT IN ($inactiveforums)";
}

// Moderators can view unapproved threads and deleted threads from forums they moderate
$unapproved_where = get_visible_where();
$where_sql .= " AND ({$unapproved_where})";

$permsql = "";
$onlyusfids = array();

// Check group permissions if we can't view threads not started by us
$group_permissions = forum_permissions();
foreach($group_permissions as $fid => $forum_permissions)
{
if(isset($forum_permissions['canonlyviewownthreads']) && $forum_permissions['canonlyviewownthreads'] == 1)
{
$onlyusfids[] = $fid;
}
}
if(!empty($onlyusfids))
{
$where_sql .= " AND fid NOT IN(".implode(',', $onlyusfids).")";
}

$options = array(
'order_by' => 'dateline DESC, pid DESC',
);

// Do we have a hard search limit?
if($mybb->settings['searchhardlimit'] > 0)
{
$options['limit'] = (int)$mybb->settings['searchhardlimit'];
}

$pids = '';
$comma = '';
$query = $db->simple_select("posts", "pid", "{$where_sql}", $options);
while($pid = $db->fetch_field($query, "pid"))
{
$pids .= $comma.$pid;
$comma = ',';
}

$tids = '';
$comma = '';
$query = $db->simple_select("threads", "tid", $where_sql);
while($tid = $db->fetch_field($query, "tid"))
{
$tids .= $comma.$tid;
$comma = ',';
}

$sid = md5(uniqid(microtime(), true));
$searcharray = array(
"sid" => $db->escape_string($sid),
"uid" => $mybb->user['uid'],
"dateline" => TIME_NOW,
"ipaddress" => $db->escape_binary($session->packedip),
"threads" => $db->escape_string($tids),
"posts" => $db->escape_string($pids),
"resulttype" => "posts",
"querycache" => '',
"keywords" => ''
);
$plugins->run_hooks("search_do_search_process");
$db->insert_query("searchlog", $searcharray);
redirect("search.php?action=results&sid=".$sid, $lang->redirect_searchresults);
}
elseif($mybb->input['action'] == "finduser")

{

{

	$where_sql = "uid='0'";

	$where_sql = "uid='".$mybb->get_input('uid', MyBB::INPUT_INT)."'";


$unsearchforums = get_unsearchable_forums();
if($unsearchforums)


$unsearchforums = get_unsearchable_forums();
if($unsearchforums)

Zeile 1060Zeile 1224
	{
$where_sql .= " AND fid NOT IN ($inactiveforums)";
}

	{
$where_sql .= " AND fid NOT IN ($inactiveforums)";
}

 

// Moderators can view unapproved threads and deleted threads from forums they moderate
$unapproved_where = get_visible_where();
$where_sql .= " AND ({$unapproved_where})";


$permsql = "";
$onlyusfids = array();


$permsql = "";
$onlyusfids = array();

Zeile 1072Zeile 1240
		{
$onlyusfids[] = $fid;
}

		{
$onlyusfids[] = $fid;
}

	}

	}

	if(!empty($onlyusfids))

	if(!empty($onlyusfids))

	{
$where_sql .= " AND fid NOT IN(".implode(',', $onlyusfids).")";
}

	{
$where_sql .= "AND ((fid IN(".implode(',', $onlyusfids).") AND uid='{$mybb->user['uid']}') OR fid NOT IN(".implode(',', $onlyusfids)."))";
}


$options = array(


$options = array(

		'order_by' => 'dateline',
'order_dir' => 'desc'

		'order_by' => 'dateline DESC, pid DESC',


	);

// Do we have a hard search limit?
if($mybb->settings['searchhardlimit'] > 0)

	);

// Do we have a hard search limit?
if($mybb->settings['searchhardlimit'] > 0)

	{

	{

		$options['limit'] = (int)$mybb->settings['searchhardlimit'];
}


		$options['limit'] = (int)$mybb->settings['searchhardlimit'];
}


Zeile 1093Zeile 1260
	$comma = '';
$query = $db->simple_select("posts", "pid", "{$where_sql}", $options);
while($pid = $db->fetch_field($query, "pid"))

	$comma = '';
$query = $db->simple_select("posts", "pid", "{$where_sql}", $options);
while($pid = $db->fetch_field($query, "pid"))

	{
$pids .= $comma.$pid;
$comma = ',';
}


	{
$pids .= $comma.$pid;
$comma = ',';
}


	$tids = '';
$comma = '';
$query = $db->simple_select("threads", "tid", $where_sql);
while($tid = $db->fetch_field($query, "tid"))
{

	$tids = '';
$comma = '';
$query = $db->simple_select("threads", "tid", $where_sql);
while($tid = $db->fetch_field($query, "tid"))
{

			$tids .= $comma.$tid;
$comma = ',';
}

$sid = md5(uniqid(microtime(), true));
$searcharray = array(
"sid" => $db->escape_string($sid),
"uid" => $mybb->user['uid'],
"dateline" => TIME_NOW,
"ipaddress" => $db->escape_binary($session->packedip),
"threads" => $db->escape_string($tids),
"posts" => $db->escape_string($pids),
"resulttype" => "posts",
"querycache" => '',
"keywords" => ''
);
$plugins->run_hooks("search_do_search_process");
$db->insert_query("searchlog", $searcharray);
redirect("search.php?action=results&sid=".$sid, $lang->redirect_searchresults);
}
elseif($mybb->input['action'] == "finduser")
{
$where_sql = "uid='".$mybb->get_input('uid', 1)."'";

$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{
$where_sql .= " AND fid NOT IN ($unsearchforums)";
}
$inactiveforums = get_inactive_forums();
if($inactiveforums)
{
$where_sql .= " AND fid NOT IN ($inactiveforums)";
}

$permsql = "";
$onlyusfids = array();

// Check group permissions if we can't view threads not started by us
$group_permissions = forum_permissions();
foreach($group_permissions as $fid => $forum_permissions)
{
if(isset($forum_permissions['canonlyviewownthreads']) && $forum_permissions['canonlyviewownthreads'] == 1)
{
$onlyusfids[] = $fid;
}
}
if(!empty($onlyusfids))
{
$where_sql .= "AND ((fid IN(".implode(',', $onlyusfids).") AND uid='{$mybb->user['uid']}') OR fid NOT IN(".implode(',', $onlyusfids)."))";
}

$options = array(
'order_by' => 'dateline',
'order_dir' => 'desc'
);

// Do we have a hard search limit?
if($mybb->settings['searchhardlimit'] > 0)
{
$options['limit'] = (int)$mybb->settings['searchhardlimit'];
}

$pids = '';
$comma = '';
$query = $db->simple_select("posts", "pid", "{$where_sql}", $options);
while($pid = $db->fetch_field($query, "pid"))
{
$pids .= $comma.$pid;
$comma = ',';
}

$tids = '';
$comma = '';
$query = $db->simple_select("threads", "tid", $where_sql);
while($tid = $db->fetch_field($query, "tid"))
{
$tids .= $comma.$tid;
$comma = ',';

		$tids .= $comma.$tid;
$comma = ',';














































































	}

$sid = md5(uniqid(microtime(), true));

	}

$sid = md5(uniqid(microtime(), true));

Zeile 1201Zeile 1291
	redirect("search.php?action=results&sid=".$sid, $lang->redirect_searchresults);
}
elseif($mybb->input['action'] == "finduserthreads")

	redirect("search.php?action=results&sid=".$sid, $lang->redirect_searchresults);
}
elseif($mybb->input['action'] == "finduserthreads")

{
$where_sql = "t.uid='".$mybb->get_input('uid', 1)."'";

$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{
$where_sql .= " AND t.fid NOT IN ($unsearchforums)";
}
$inactiveforums = get_inactive_forums();
if($inactiveforums)
{
$where_sql .= " AND t.fid NOT IN ($inactiveforums)";
}

$permsql = "";
$onlyusfids = array();

// Check group permissions if we can't view threads not started by us
$group_permissions = forum_permissions();
foreach($group_permissions as $fid => $forum_permissions)
{
if(isset($forum_permissions['canonlyviewownthreads']) && $forum_permissions['canonlyviewownthreads'] == 1)
{
$onlyusfids[] = $fid;
}
}
if(!empty($onlyusfids))
{
$where_sql .= "AND ((t.fid IN(".implode(',', $onlyusfids).") AND t.uid='{$mybb->user['uid']}') OR t.fid NOT IN(".implode(',', $onlyusfids)."))";
}

$sid = md5(uniqid(microtime(), true));
$searcharray = array(
"sid" => $db->escape_string($sid),














{
$where_sql = "uid='".$mybb->get_input('uid', MyBB::INPUT_INT)."'";

$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{
$where_sql .= " AND fid NOT IN ($unsearchforums)";
}
$inactiveforums = get_inactive_forums();
if($inactiveforums)
{
$where_sql .= " AND fid NOT IN ($inactiveforums)";
}

// Moderators can view unapproved threads and deleted threads from forums they moderate
$unapproved_where = get_visible_where();
$where_sql .= " AND ({$unapproved_where})";

$permsql = "";
$onlyusfids = array();

// Check group permissions if we can't view threads not started by us
$group_permissions = forum_permissions();
foreach($group_permissions as $fid => $forum_permissions)
{
if(isset($forum_permissions['canonlyviewownthreads']) && $forum_permissions['canonlyviewownthreads'] == 1)
{
$onlyusfids[] = $fid;
}
}
if(!empty($onlyusfids))
{
$where_sql .= "AND ((fid IN(".implode(',', $onlyusfids).") AND uid='{$mybb->user['uid']}') OR fid NOT IN(".implode(',', $onlyusfids)."))";
}

$tids = '';
$comma = '';
$query = $db->simple_select("threads", "tid", $where_sql);
while($tid = $db->fetch_field($query, "tid"))
{
$tids .= $comma.$tid;
$comma = ',';
}

$sid = md5(uniqid(microtime(), true));
$searcharray = array(
"sid" => $db->escape_string($sid),

		"uid" => $mybb->user['uid'],
"dateline" => TIME_NOW,
"ipaddress" => $db->escape_binary($session->packedip),

		"uid" => $mybb->user['uid'],
"dateline" => TIME_NOW,
"ipaddress" => $db->escape_binary($session->packedip),

		"threads" => '',

		"threads" => $db->escape_string($tids),

		"posts" => '',
"resulttype" => "threads",
"querycache" => $db->escape_string($where_sql),

		"posts" => '',
"resulttype" => "threads",
"querycache" => $db->escape_string($where_sql),

Zeile 1249Zeile 1352
	redirect("search.php?action=results&sid=".$sid, $lang->redirect_searchresults);
}
elseif($mybb->input['action'] == "getnew")

	redirect("search.php?action=results&sid=".$sid, $lang->redirect_searchresults);
}
elseif($mybb->input['action'] == "getnew")

{

$where_sql = "t.lastpost >= '".(int)$mybb->user['lastvisit']."'";

if($mybb->get_input('fid', 1))
{
$where_sql .= " AND t.fid='".$mybb->get_input('fid', 1)."'";
}
else if($mybb->get_input('fids'))
{
$fids = explode(',', $mybb->get_input('fids'));
foreach($fids as $key => $fid)
{
$fids[$key] = (int)$fid;
}

if(!empty($fids))
{
$where_sql .= " AND t.fid IN (".implode(',', $fids).")";
}
}

$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{
$where_sql .= " AND t.fid NOT IN ($unsearchforums)";
}
$inactiveforums = get_inactive_forums();
if($inactiveforums)
{
$where_sql .= " AND t.fid NOT IN ($inactiveforums)";
}

$permsql = "";
$onlyusfids = array();





{

$where_sql = "lastpost >= '".(int)$mybb->user['lastvisit']."'";

if($mybb->get_input('fid', MyBB::INPUT_INT))
{
$where_sql .= " AND fid='".$mybb->get_input('fid', MyBB::INPUT_INT)."'";
}
else if($mybb->get_input('fids'))
{
$fids = explode(',', $mybb->get_input('fids'));
foreach($fids as $key => $fid)
{
$fids[$key] = (int)$fid;
}

if(!empty($fids))
{
$where_sql .= " AND fid IN (".implode(',', $fids).")";
}
}

$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{
$where_sql .= " AND fid NOT IN ($unsearchforums)";
}
$inactiveforums = get_inactive_forums();
if($inactiveforums)
{
$where_sql .= " AND fid NOT IN ($inactiveforums)";
}

// Moderators can view unapproved threads and deleted threads from forums they moderate
$unapproved_where = get_visible_where();
$where_sql .= " AND ({$unapproved_where})";

$permsql = "";
$onlyusfids = array();


// Check group permissions if we can't view threads not started by us
$group_permissions = forum_permissions();
foreach($group_permissions as $fid => $forum_permissions)


// Check group permissions if we can't view threads not started by us
$group_permissions = forum_permissions();
foreach($group_permissions as $fid => $forum_permissions)

	{

	{

		if(isset($forum_permissions['canonlyviewownthreads']) && $forum_permissions['canonlyviewownthreads'] == 1)
{
$onlyusfids[] = $fid;
}

		if(isset($forum_permissions['canonlyviewownthreads']) && $forum_permissions['canonlyviewownthreads'] == 1)
{
$onlyusfids[] = $fid;
}

	}

	}

	if(!empty($onlyusfids))
{

	if(!empty($onlyusfids))
{

		$where_sql .= "AND ((t.fid IN(".implode(',', $onlyusfids).") AND t.uid='{$mybb->user['uid']}') OR t.fid NOT IN(".implode(',', $onlyusfids)."))";










		$where_sql .= "AND ((fid IN(".implode(',', $onlyusfids).") AND uid='{$mybb->user['uid']}') OR fid NOT IN(".implode(',', $onlyusfids)."))";
}

$tids = '';
$comma = '';
$query = $db->simple_select("threads", "tid", $where_sql);
while($tid = $db->fetch_field($query, "tid"))
{
$tids .= $comma.$tid;
$comma = ',';

	}

$sid = md5(uniqid(microtime(), true));

	}

$sid = md5(uniqid(microtime(), true));

Zeile 1305Zeile 1421
		"uid" => $mybb->user['uid'],
"dateline" => TIME_NOW,
"ipaddress" => $db->escape_binary($session->packedip),

		"uid" => $mybb->user['uid'],
"dateline" => TIME_NOW,
"ipaddress" => $db->escape_binary($session->packedip),

		"threads" => '',

		"threads" => $db->escape_string($tids),

		"posts" => '',
"resulttype" => "threads",
"querycache" => $db->escape_string($where_sql),

		"posts" => '',
"resulttype" => "threads",
"querycache" => $db->escape_string($where_sql),

Zeile 1318Zeile 1434
}
elseif($mybb->input['action'] == "getdaily")
{

}
elseif($mybb->input['action'] == "getdaily")
{

	if($mybb->get_input('days', 1) < 1)
{

	if($mybb->get_input('days', MyBB::INPUT_INT) < 1)
{

		$days = 1;

		$days = 1;

	}
else
{
$days = $mybb->get_input('days', 1);
}
$datecut = TIME_NOW-(86400*$days);

$where_sql = "t.lastpost >='".$datecut."'";

if($mybb->get_input('fid', 1))

	}
else
{
$days = $mybb->get_input('days', MyBB::INPUT_INT);
}
$datecut = TIME_NOW-(86400*$days);

$where_sql = "lastpost >='".$datecut."'";

if($mybb->get_input('fid', MyBB::INPUT_INT))

	{

	{

		$where_sql .= " AND t.fid='".$mybb->get_input('fid', 1)."'";

		$where_sql .= " AND fid='".$mybb->get_input('fid', MyBB::INPUT_INT)."'";

	}
else if($mybb->get_input('fids'))
{

	}
else if($mybb->get_input('fids'))
{

Zeile 1344Zeile 1460

if(!empty($fids))
{


if(!empty($fids))
{

			$where_sql .= " AND t.fid IN (".implode(',', $fids).")";

			$where_sql .= " AND fid IN (".implode(',', $fids).")";

		}

		}

	}

	}


$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{


$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{

		$where_sql .= " AND t.fid NOT IN ($unsearchforums)";

		$where_sql .= " AND fid NOT IN ($unsearchforums)";

	}
$inactiveforums = get_inactive_forums();

	}
$inactiveforums = get_inactive_forums();

	if($inactiveforums)
{
$where_sql .= " AND t.fid NOT IN ($inactiveforums)";
}






	if($inactiveforums)
{
$where_sql .= " AND fid NOT IN ($inactiveforums)";
}

// Moderators can view unapproved threads and deleted threads from forums they moderate
$unapproved_where = get_visible_where();
$where_sql .= " AND ({$unapproved_where})";


	$permsql = "";

	$permsql = "";

	$onlyusfids = array();

	$onlyusfids = array();


// Check group permissions if we can't view threads not started by us
$group_permissions = forum_permissions();


// Check group permissions if we can't view threads not started by us
$group_permissions = forum_permissions();

Zeile 1369Zeile 1489
		if(isset($forum_permissions['canonlyviewownthreads']) && $forum_permissions['canonlyviewownthreads'] == 1)
{
$onlyusfids[] = $fid;

		if(isset($forum_permissions['canonlyviewownthreads']) && $forum_permissions['canonlyviewownthreads'] == 1)
{
$onlyusfids[] = $fid;

		}
}
if(!empty($onlyusfids))
{
$where_sql .= "AND ((t.fid IN(".implode(',', $onlyusfids).") AND t.uid='{$mybb->user['uid']}') OR t.fid NOT IN(".implode(',', $onlyusfids)."))";
}

$sid = md5(uniqid(microtime(), true));










		}
}
if(!empty($onlyusfids))
{
$where_sql .= "AND ((fid IN(".implode(',', $onlyusfids).") AND uid='{$mybb->user['uid']}') OR fid NOT IN(".implode(',', $onlyusfids)."))";
}

$tids = '';
$comma = '';
$query = $db->simple_select("threads", "tid", $where_sql);
while($tid = $db->fetch_field($query, "tid"))
{
$tids .= $comma.$tid;
$comma = ',';
}

$sid = md5(uniqid(microtime(), true));

	$searcharray = array(
"sid" => $db->escape_string($sid),
"uid" => $mybb->user['uid'],
"dateline" => TIME_NOW,
"ipaddress" => $db->escape_binary($session->packedip),

	$searcharray = array(
"sid" => $db->escape_string($sid),
"uid" => $mybb->user['uid'],
"dateline" => TIME_NOW,
"ipaddress" => $db->escape_binary($session->packedip),

		"threads" => '',

		"threads" => $db->escape_string($tids),

		"posts" => '',
"resulttype" => "threads",
"querycache" => $db->escape_string($where_sql),

		"posts" => '',
"resulttype" => "threads",
"querycache" => $db->escape_string($where_sql),

Zeile 1393Zeile 1522
	$db->insert_query("searchlog", $searcharray);
redirect("search.php?action=results&sid=".$sid, $lang->redirect_searchresults);
}

	$db->insert_query("searchlog", $searcharray);
redirect("search.php?action=results&sid=".$sid, $lang->redirect_searchresults);
}

elseif($mybb->input['action'] == "do_search" && $mybb->request_method == "post")

elseif($mybb->input['action'] == "do_search")

{
$plugins->run_hooks("search_do_search_start");

{
$plugins->run_hooks("search_do_search_start");


// Check if search flood checking is enabled and user is not admin
if($mybb->settings['searchfloodtime'] > 0 && $mybb->usergroup['cancp'] != 1)
{


// Check if search flood checking is enabled and user is not admin
if($mybb->settings['searchfloodtime'] > 0 && $mybb->usergroup['cancp'] != 1)
{

		// Fetch the time this user last searched
if($mybb->user['uid'])
{

		// Fetch the time this user last searched
if($mybb->user['uid'])
{

Zeile 1413Zeile 1542
		$query = $db->simple_select("searchlog", "*", "$conditions AND dateline > '$timecut'", array('order_by' => "dateline", 'order_dir' => "DESC"));
$last_search = $db->fetch_array($query);
// Users last search was within the flood time, show the error

		$query = $db->simple_select("searchlog", "*", "$conditions AND dateline > '$timecut'", array('order_by' => "dateline", 'order_dir' => "DESC"));
$last_search = $db->fetch_array($query);
// Users last search was within the flood time, show the error

		if($last_search['sid'])

		if(!empty($last_search['sid']))

		{
$remaining_time = $mybb->settings['searchfloodtime']-(TIME_NOW-$last_search['dateline']);
if($remaining_time == 1)

		{
$remaining_time = $mybb->settings['searchfloodtime']-(TIME_NOW-$last_search['dateline']);
if($remaining_time == 1)

Zeile 1434Zeile 1563
	else
{
$resulttype = "posts";

	else
{
$resulttype = "posts";

 
	}

if(isset($mybb->input['forums']) && is_array($mybb->input['forums']))
{
$forums = $mybb->get_input('forums', MyBB::INPUT_ARRAY);
}
else
{
$forums = array($mybb->get_input('forums'));

	}

$search_data = array(
"keywords" => $mybb->input['keywords'],
"author" => $mybb->get_input('author'),

	}

$search_data = array(
"keywords" => $mybb->input['keywords'],
"author" => $mybb->get_input('author'),

		"postthread" => $mybb->get_input('postthread', 1),
"matchusername" => $mybb->get_input('matchusername', 1),
"postdate" => $mybb->get_input('postdate', 1),
"pddir" => $mybb->get_input('pddir', 1),
"forums" => $mybb->input['forums'],
"findthreadst" => $mybb->get_input('findthreadst', 1),
"numreplies" => $mybb->get_input('numreplies', 1),
"threadprefix" => $mybb->get_input('threadprefix', 2)

		"postthread" => $mybb->get_input('postthread', MyBB::INPUT_INT),
"matchusername" => $mybb->get_input('matchusername', MyBB::INPUT_INT),
"postdate" => $mybb->get_input('postdate', MyBB::INPUT_INT),
"pddir" => $mybb->get_input('pddir', MyBB::INPUT_INT),
"forums" => $forums,
"findthreadst" => $mybb->get_input('findthreadst', MyBB::INPUT_INT),
"numreplies" => $mybb->get_input('numreplies', MyBB::INPUT_INT),
"threadprefix" => $mybb->get_input('threadprefix', MyBB::INPUT_ARRAY)

	);

if(is_moderator() && !empty($mybb->input['visible']))

	);

if(is_moderator() && !empty($mybb->input['visible']))

	{
$search_data['visible'] = $mybb->get_input('visible', 1);

	{
$search_data['visible'] = $mybb->get_input('visible', MyBB::INPUT_INT);

	}

if($db->can_search == true)

	}

if($db->can_search == true)

Zeile 1492Zeile 1630
	else
{
$sortorder = "desc";

	else
{
$sortorder = "desc";

	}

	}

	$sortby = htmlspecialchars_uni($mybb->get_input('sortby'));
$plugins->run_hooks("search_do_search_end");
redirect("search.php?action=results&sid=".$sid."&sortby=".$sortby."&order=".$sortorder, $lang->redirect_searchresults);

	$sortby = htmlspecialchars_uni($mybb->get_input('sortby'));
$plugins->run_hooks("search_do_search_end");
redirect("search.php?action=results&sid=".$sid."&sortby=".$sortby."&order=".$sortorder, $lang->redirect_searchresults);

Zeile 1500Zeile 1638
else if($mybb->input['action'] == "thread")
{
// Fetch thread info

else if($mybb->input['action'] == "thread")
{
// Fetch thread info

	$thread = get_thread($mybb->get_input('tid', 1));
if(is_moderator($fid))
{
$ismod = true;
}
else
{
$ismod = false;
}
if(!$thread || ($thread['visible'] != 1 && $ismod == false && ($thread['visible'] != -1 || $mybb->settings['soft_delete'] != 1 || $mybb->settings['soft_delete_show_own'] != 1 || !$mybb->user['uid'] || $mybb->user['uid'] != $thread['uid'])) || ($thread['visible'] > 1 && $ismod == true))

	$thread = get_thread($mybb->get_input('tid', MyBB::INPUT_INT));
$ismod = is_moderator($thread['fid']);

if(!$thread || ($thread['visible'] != 1 && $ismod == false && ($thread['visible'] != -1 || $mybb->settings['soft_delete'] != 1 || !$mybb->user['uid'] || $mybb->user['uid'] != $thread['uid'])) || ($thread['visible'] > 1 && $ismod == true))







	{
error($lang->error_invalidthread);
}

	{
error($lang->error_invalidthread);
}

Zeile 1539Zeile 1671
	{
// Fetch the time this user last searched
if($mybb->user['uid'])

	{
// Fetch the time this user last searched
if($mybb->user['uid'])

		{

		{

			$conditions = "uid='{$mybb->user['uid']}'";
}
else

			$conditions = "uid='{$mybb->user['uid']}'";
}
else

Zeile 1550Zeile 1682
		$query = $db->simple_select("searchlog", "*", "$conditions AND dateline > '$timecut'", array('order_by' => "dateline", 'order_dir' => "DESC"));
$last_search = $db->fetch_array($query);


		$query = $db->simple_select("searchlog", "*", "$conditions AND dateline > '$timecut'", array('order_by' => "dateline", 'order_dir' => "DESC"));
$last_search = $db->fetch_array($query);


		// We shouldn't show remaining time if time is 0 or under.
$remaining_time = $mybb->settings['searchfloodtime']-(TIME_NOW-$last_search['dateline']);
// Users last search was within the flood time, show the error.
if($last_search['sid'] && $remaining_time > 0)

		if($last_search)




		{

		{

			if($remaining_time == 1)




			// We shouldn't show remaining time if time is 0 or under.
$remaining_time = $mybb->settings['searchfloodtime']-(TIME_NOW-$last_search['dateline']);
// Users last search was within the flood time, show the error.
if($remaining_time > 0)

			{

			{

				$lang->error_searchflooding = $lang->sprintf($lang->error_searchflooding_1, $mybb->settings['searchfloodtime']);









				if($remaining_time == 1)
{
$lang->error_searchflooding = $lang->sprintf($lang->error_searchflooding_1, $mybb->settings['searchfloodtime']);
}
else
{
$lang->error_searchflooding = $lang->sprintf($lang->error_searchflooding, $mybb->settings['searchfloodtime'], $remaining_time);
}
error($lang->error_searchflooding);

			}

			}

			else
{
$lang->error_searchflooding = $lang->sprintf($lang->error_searchflooding, $mybb->settings['searchfloodtime'], $remaining_time);
}
error($lang->error_searchflooding);

 
		}
}

$search_data = array(
"keywords" => $mybb->input['keywords'],
"postthread" => 1,

		}
}

$search_data = array(
"keywords" => $mybb->input['keywords'],
"postthread" => 1,

		"tid" => $mybb->get_input('tid', 1)

		"tid" => $mybb->get_input('tid', MyBB::INPUT_INT)

	);

if($db->can_search == true)

	);

if($db->can_search == true)