Zeile 13 | Zeile 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 59 | Zeile 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 89 | Zeile 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 103 | Zeile 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 114 | Zeile 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 166 | Zeile 167 |
---|
$sorturl = "search.php?action=results&sid={$sid}"; $thread_url = ""; $post_url = "";
|
$sorturl = "search.php?action=results&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 187 | Zeile 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 205 | Zeile 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 231 | Zeile 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 272 | Zeile 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 292 | Zeile 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 313 | Zeile 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 333 | Zeile 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 354 | Zeile 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 373 | Zeile 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 395 | Zeile 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 410 | Zeile 415 |
---|
{ $thread['threadprefix'] .= ' '; }
|
{ $thread['threadprefix'] .= ' '; }
|
|
|
$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 423 | Zeile 428 |
---|
eval("\$icon = \"".$templates->get("search_results_icon")."\";"); } else
|
eval("\$icon = \"".$templates->get("search_results_icon")."\";"); } else
|
{
| {
|
$icon = " ";
|
$icon = " ";
|
}
| }
|
if($thread['poll']) { $prefix = $lang->poll_prefix;
| if($thread['poll']) { $prefix = $lang->poll_prefix;
|
Zeile 435 | Zeile 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 502 | Zeile 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 517 | Zeile 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 534 | Zeile 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 549 | Zeile 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 567 | Zeile 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 590 | Zeile 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 611 | Zeile 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 620 | Zeile 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 634 | Zeile 668 |
---|
{ error($lang->error_nosearchresults); }
|
{ error($lang->error_nosearchresults); }
|
$multipage = multipage($threadcount, $perpage, $page, "search.php?action=results&sid=$sid&sortby=$sortby&order=$order&uid=".$mybb->get_input('uid', 1));
| $multipage = multipage($threadcount, $perpage, $page, "search.php?action=results&sid=$sid&sortby=$sortby&order=$order&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 661 | Zeile 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 679 | Zeile 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 728 | Zeile 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 739 | Zeile 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 751 | Zeile 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 766 | Zeile 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 776 | Zeile 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 815 | Zeile 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 828 | Zeile 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 = " "; }
if(!empty($forumcache[$thread['fid']])) { $post['forumlink'] = "<a href=\"".get_forum_link($post['fid'])."\">".$forumcache[$post['fid']]['name']."</a>"; } else { $post['forumlink'] = ""; }
| else { $icon = " "; }
$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 848 | Zeile 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 862 | Zeile 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 923 | Zeile 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 958 | Zeile 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 978 | Zeile 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 987 | Zeile 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&sid=".htmlspecialchars_uni($mybb->get_input('sid'))."&sortby=$sortby&order=$order&uid=".$mybb->get_input('uid', 1));
| } $multipage = multipage($postcount, $perpage, $page, "search.php?action=results&sid=".htmlspecialchars_uni($mybb->get_input('sid'))."&sortby=$sortby&order=$order&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 1038 | Zeile 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 1060 | Zeile 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 1072 | Zeile 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 1093 | Zeile 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 1201 | Zeile 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 1249 | Zeile 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 1305 | Zeile 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 1318 | Zeile 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 1344 | Zeile 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 1369 | Zeile 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 1393 | Zeile 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 1413 | Zeile 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 1434 | Zeile 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 1492 | Zeile 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 1500 | Zeile 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 1539 | Zeile 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 1550 | Zeile 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)
|