Vergleich search.php - 1.6.0 - 1.6.8

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 6Zeile 6
 * Website: http://mybb.com
* License: http://mybb.com/about/license
*

 * Website: http://mybb.com
* License: http://mybb.com/about/license
*

 * $Id: search.php 5160 2010-08-01 09:46:26Z RyanGordon $

 * $Id: search.php 5828 2012-05-08 16:06:16Z Tomm $

 */



 */



Zeile 184Zeile 184
			ORDER BY pid, disporder
");


			ORDER BY pid, disporder
");


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

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

	}
else
{

	}
else
{

Zeile 197Zeile 197
			ORDER BY pid, disporder
");
}

			ORDER BY pid, disporder
");
}

 


	while($forum = $db->fetch_array($query))
{
if($mybb->user['uid'] == 0)

	while($forum = $db->fetch_array($query))
{
if($mybb->user['uid'] == 0)

Zeile 243Zeile 244
			// Normal moderators
$moderated_forums = '0';
while($forum = $db->fetch_array($query))

			// Normal moderators
$moderated_forums = '0';
while($forum = $db->fetch_array($query))

			{

			{

				$moderated_forums .= ','.$forum['fid'];
}
$unapproved_where = "(t.visible>0 OR (t.visible=0 AND t.fid IN ({$moderated_forums})))";

				$moderated_forums .= ','.$forum['fid'];
}
$unapproved_where = "(t.visible>0 OR (t.visible=0 AND t.fid IN ({$moderated_forums})))";

Zeile 270Zeile 271
				$search['threads'] = implode(",", $threads);
}
// No results.

				$search['threads'] = implode(",", $threads);
}
// No results.

			else

			else

			{
error($lang->error_nosearchresults);
}

			{
error($lang->error_nosearchresults);
}

Zeile 278Zeile 279
		}
// This search doesn't use a query cache, results stored in search table.
else

		}
// 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}");
$count = $db->fetch_array($query);

			$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}");
$count = $db->fetch_array($query);

Zeile 286Zeile 287
			if(!$count['resultcount'])
{
error($lang->error_nosearchresults);

			if(!$count['resultcount'])
{
error($lang->error_nosearchresults);

			}

			}

			$threadcount = $count['resultcount'];

			$threadcount = $count['resultcount'];

 
		}

$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($forum_permissions['canonlyviewownthreads'] == 1)
{
$onlyusfids[] = $fid;
}
}
if(!empty($onlyusfids))
{
$permsql .= "AND ((t.fid IN(".implode(',', $onlyusfids).") AND t.uid='{$mybb->user['uid']}') OR t.fid NOT IN(".implode(',', $onlyusfids)."))";
}

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

		}

// Begin selecting matching threads, cache them.

		}

// Begin selecting matching threads, cache them.

Zeile 302Zeile 331
			FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid)
LEFT JOIN ".TABLE_PREFIX."threadprefixes p ON (p.pid=t.prefix)

			FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid)
LEFT JOIN ".TABLE_PREFIX."threadprefixes p ON (p.pid=t.prefix)

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

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

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

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

Zeile 325Zeile 354
			while($thread = $db->fetch_array($query))
{
$thread_cache[$thread['tid']]['dot_icon'] = 1;

			while($thread = $db->fetch_array($query))
{
$thread_cache[$thread['tid']]['dot_icon'] = 1;

			}
}


			}
}


		// Fetch the read threads.
if($mybb->user['uid'] && $mybb->settings['threadreadcut'] > 0)

		// Fetch the read threads.
if($mybb->user['uid'] && $mybb->settings['threadreadcut'] > 0)

		{

		{

			$query = $db->simple_select("threadsread", "tid,dateline", "uid='".$mybb->user['uid']."' AND tid IN(".$thread_ids.")");
while($readthread = $db->fetch_array($query))
{
$thread_cache[$readthread['tid']]['lastread'] = $readthread['dateline'];
}

			$query = $db->simple_select("threadsread", "tid,dateline", "uid='".$mybb->user['uid']."' AND tid IN(".$thread_ids.")");
while($readthread = $db->fetch_array($query))
{
$thread_cache[$readthread['tid']]['lastread'] = $readthread['dateline'];
}

 
		}

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

		}

foreach($thread_cache as $thread)

		}

foreach($thread_cache as $thread)

Zeile 416Zeile 450
				else
{
$last_read = $read_cutoff;

				else
{
$last_read = $read_cutoff;

				}
}
else

				}
}
else

			{
$last_read = my_get_array_cookie("threadread", $thread['tid']);
}

			{
$last_read = my_get_array_cookie("threadread", $thread['tid']);
}

Zeile 473Zeile 507
			{
$thread['pages'] = $thread['posts'] / $mybb->settings['postsperpage'];
$thread['pages'] = ceil($thread['pages']);

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

				if($thread['pages'] > 4)

				if($thread['pages'] > $mybb->settings['maxmultipagelinks'])

				{

				{

					$pagesstop = 4;

					$pagesstop = $mybb->settings['maxmultipagelinks'] - 1;

					$page_link = get_thread_link($thread['tid'], $thread['pages']).$highlight;
eval("\$morelink = \"".$templates->get("forumdisplay_thread_multipage_more")."\";");
}

					$page_link = get_thread_link($thread['tid'], $thread['pages']).$highlight;
eval("\$morelink = \"".$templates->get("forumdisplay_thread_multipage_more")."\";");
}

Zeile 526Zeile 560
			}

// If this user is the author of the thread and it is not closed or they are a moderator, they can edit

			}

// 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($fid, "caneditposts"))

			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";
}

			{
$inline_edit_class = "subject_editable";
}

Zeile 566Zeile 600
			elseif($is_mod)
{
eval("\$inline_mod_checkbox = \"".$templates->get("search_results_threads_nocheck")."\";");

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

			}


			}


			$plugins->run_hooks("search_results_thread");
eval("\$results .= \"".$templates->get("search_results_threads_thread")."\";");
}

			$plugins->run_hooks("search_results_thread");
eval("\$results .= \"".$templates->get("search_results_threads_thread")."\";");
}

Zeile 586Zeile 620
		if($upper > $threadcount)
{
$upper = $threadcount;

		if($upper > $threadcount)
{
$upper = $threadcount;

		}

		}

		
// Inline Thread Moderation Options
if($is_mod)

		
// Inline Thread Moderation Options
if($is_mod)

Zeile 641Zeile 675
			// Super moderators (and admins)
$p_unapproved_where = "visible >= 0";
$t_unapproved_where = "visible < 0";

			// Super moderators (and admins)
$p_unapproved_where = "visible >= 0";
$t_unapproved_where = "visible < 0";

		}

		}

		elseif($db->num_rows($query))
{
// Normal moderators

		elseif($db->num_rows($query))
{
// Normal moderators

Zeile 660Zeile 694
			$p_unapproved_where = 'visible=1';
$t_unapproved_where = 'visible < 1';
}

			$p_unapproved_where = 'visible=1';
$t_unapproved_where = 'visible < 1';
}

		

		

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

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

Zeile 678Zeile 712
		// 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);
while($post = $db->fetch_array($query))

		// 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);
while($post = $db->fetch_array($query))

		{

		{

			$pids[$post['pid']] = $post['tid'];
$tids[$post['tid']][$post['pid']] = $post['pid'];
}

			$pids[$post['pid']] = $post['tid'];
$tids[$post['tid']][$post['pid']] = $post['pid'];
}

Zeile 714Zeile 748
		
// 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));

// Read threads

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

// Read threads

Zeile 724Zeile 758
			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();

		}

$dot_icon = array();

Zeile 788Zeile 822
			$donenew = 0;
$last_read = 0;
$post['thread_lastread'] = $readthreads[$post['tid']];

			$donenew = 0;
$last_read = 0;
$post['thread_lastread'] = $readthreads[$post['tid']];

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


















if($mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'])
{
$forum_read = $readforums[$post['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 = $forumsread[$post['fid']];
}

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

			{
$cutoff = TIME_NOW-$mybb->settings['threadreadcut']*60*60*24;
if($post['thread_lastpost'] > $cutoff)

			{
$cutoff = TIME_NOW-$mybb->settings['threadreadcut']*60*60*24;
if($post['thread_lastpost'] > $cutoff)

Zeile 813Zeile 863
			if(!$last_read)
{
$readcookie = $threadread = my_get_array_cookie("threadread", $post['tid']);

			if(!$last_read)
{
$readcookie = $threadread = my_get_array_cookie("threadread", $post['tid']);

				if($readcookie > $forumread)

				if($readcookie > $forum_read)

				{
$last_read = $readcookie;
}

				{
$last_read = $readcookie;
}

				elseif($forumread > $mybb->user['lastvisit'])

				elseif($forum_read > $mybb->user['lastvisit'])

				{

				{

					$last_read = $forumread;

					$last_read = $forum_read;

				}
else
{

				}
else
{