Zeile 166 | Zeile 166 |
---|
$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 208 | Zeile 208 |
---|
if($forumsread[$forum['fid']]) { $forum['lastread'] = $forumsread[$forum['fid']];
|
if($forumsread[$forum['fid']]) { $forum['lastread'] = $forumsread[$forum['fid']];
|
}
| }
|
} $readforums[$forum['fid']] = $forum['lastread']; }
| } $readforums[$forum['fid']] = $forum['lastread']; }
|
Zeile 236 | Zeile 236 |
---|
$threadcount = 0;
// Moderators can view unapproved threads
|
$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')");
| $query = $db->simple_select("moderators", "fid, canviewunapprove, canviewdeleted", "(id='{$mybb->user['uid']}' AND isgroup='0') OR (id='{$mybb->user['usergroup']}' AND isgroup='1')");
|
if($mybb->usergroup['issupermod'] == 1) { // Super moderators (and admins)
| if($mybb->usergroup['issupermod'] == 1) { // Super moderators (and admins)
|
Zeile 245 | Zeile 245 |
---|
elseif($db->num_rows($query)) { // Normal moderators
|
elseif($db->num_rows($query)) { // Normal moderators
|
$moderated_forums = '0'; while($forum = $db->fetch_array($query))
| $unapprove_forums = array(); $deleted_forums = array(); $unapproved_where = '(t.visible = 1'; while($moderator = $db->fetch_array($query))
|
{
|
{
|
$moderated_forums .= ','.$forum['fid'];
| if($moderator['canviewunapprove'] == 1) { $unapprove_forums[] = $moderator['fid']; }
if($moderator['canviewdeleted'] == 1) { $deleted_forums[] = $moderator['fid']; } }
if(!empty($unapprove_forums)) { $unapproved_where .= " OR (t.visible = 0 AND t.fid IN(".implode(',', $unapprove_forums)."))"; } if(!empty($deleted_forums)) { $unapproved_where .= " OR (t.visible = -1 AND t.fid IN(".implode(',', $deleted_forums)."))";
|
}
|
}
|
$unapproved_where = "(t.visible>0 OR (t.visible IN (-1,0) AND t.fid IN ({$moderated_forums})))";
| $unapproved_where .= ')';
|
} else {
| } else {
|
Zeile 275 | Zeile 294 |
---|
} // 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'].")";
|
Zeile 334 | Zeile 353 |
---|
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|%'
|
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|%'
|
ORDER BY $sortfield $order LIMIT $start, $perpage ");
| ORDER BY $sortfield $order LIMIT $start, $perpage ");
|
$threadprefixes = build_prefixes(); $thread_cache = array();
| $threadprefixes = build_prefixes(); $thread_cache = array();
|
Zeile 359 | Zeile 378 |
---|
// 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.")");
| $p_unapproved_where = str_replace('t.', '', $unapproved_where); $query = $db->simple_select("posts", "DISTINCT tid,uid", "uid='{$mybb->user['uid']}' AND tid IN({$thread_ids}) AND {$p_unapproved_where}");
|
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;
|
Zeile 501 | Zeile 521 |
---|
$folder_label .= $lang->icon_hot; } if($thread['closed'] == 1)
|
$folder_label .= $lang->icon_hot; } if($thread['closed'] == 1)
|
{ $folder .= "lock";
| { $folder .= "lock";
|
$folder_label .= $lang->icon_lock; } $folder .= "folder";
| $folder_label .= $lang->icon_lock; } $folder .= "folder";
|
Zeile 510 | Zeile 530 |
---|
if(!$mybb->settings['postsperpage'] || (int)$mybb->settings['postsperpage'] < 1) { $mybb->settings['postsperpage'] = 20;
|
if(!$mybb->settings['postsperpage'] || (int)$mybb->settings['postsperpage'] < 1) { $mybb->settings['postsperpage'] = 20;
|
}
| }
|
$thread['pages'] = 0; $thread['multipage'] = ''; $threadpages = ''; $morelink = ''; $thread['posts'] = $thread['replies'] + 1; if(is_moderator($thread['fid'], "canviewunapprove"))
|
$thread['pages'] = 0; $thread['multipage'] = ''; $threadpages = ''; $morelink = ''; $thread['posts'] = $thread['replies'] + 1; if(is_moderator($thread['fid'], "canviewunapprove"))
|
{
| {
|
$thread['posts'] += $thread['unapprovedposts']; }
|
$thread['posts'] += $thread['unapprovedposts']; }
|
| if(is_moderator($thread['fid'], "canviewdeleted")) { $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 687 | Zeile 712 |
---|
$postcount = 0;
// Moderators can view unapproved threads
|
$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')");
| $query = $db->simple_select("moderators", "fid, canviewunapprove, canviewdeleted", "(id='{$mybb->user['uid']}' AND isgroup='0') OR (id='{$mybb->user['usergroup']}' AND isgroup='1')");
|
if($mybb->usergroup['issupermod'] == 1) { // Super moderators (and admins)
|
if($mybb->usergroup['issupermod'] == 1) { // Super moderators (and admins)
|
$p_unapproved_where = "visible >= -1"; $t_unapproved_where = "visible < -1";
| $unapproved_where = "visible >= -1";
|
} elseif($db->num_rows($query)) { // Normal moderators
|
} elseif($db->num_rows($query)) { // Normal moderators
|
$moderated_forums = '0'; while($forum = $db->fetch_array($query))
| $unapprove_forums = array(); $deleted_forums = array(); $unapproved_where = '(visible = 1';
while($moderator = $db->fetch_array($query)) { if($moderator['canviewunapprove'] == 1) { $unapprove_forums[] = $moderator['fid']; }
if($moderator['canviewdeleted'] == 1) { $deleted_forums[] = $moderator['fid']; } }
if(!empty($unapprove_forums)) { $unapproved_where .= " OR (visible = 0 AND fid IN(".implode(',', $unapprove_forums)."))"; } if(!empty($deleted_forums))
|
{
|
{
|
$moderated_forums .= ','.$forum['fid']; $test_moderated_forums[$forum['fid']] = $forum['fid'];
| $unapproved_where .= " OR (visible = -1 AND fid IN(".implode(',', $deleted_forums)."))";
|
}
|
}
|
$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})))";
| $unapproved_where .= ')';
|
} else { // Normal users
|
} else { // Normal users
|
$p_unapproved_where = 'visible=1'; $t_unapproved_where = 'visible < 1'; }
| $unapproved_where = 'visible = 1'; }
|
$post_cache_options = array(); if((int)$mybb->settings['searchhardlimit'] > 0) {
| $post_cache_options = array(); if((int)$mybb->settings['searchhardlimit'] > 0) {
|
Zeile 720 | Zeile 761 |
---|
}
if(strpos($sortfield, 'p.') !== false)
|
}
if(strpos($sortfield, 'p.') !== false)
|
{
| {
|
$post_cache_options['order_by'] = str_replace('p.', '', $sortfield); $post_cache_options['order_dir'] = $order;
|
$post_cache_options['order_by'] = str_replace('p.', '', $sortfield); $post_cache_options['order_dir'] = $order;
|
}
| }
|
$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 738 | Zeile 779 |
---|
if(!empty($pids)) { $temp_pids = array();
|
if(!empty($pids)) { $temp_pids = array();
|
| $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)"; }
|
// Check the thread records as well. If we don't have permissions, remove them from the listing.
|
// 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|%')");
| $query = $db->simple_select("threads", "tid", "tid IN(".$db->escape_string(implode(',', $pids)).") AND ({$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) != true)
|
{ $temp_pids = $tids[$thread['tid']]; foreach($temp_pids as $pid)
| { $temp_pids = $tids[$thread['tid']]; foreach($temp_pids as $pid)
|
Zeile 782 | Zeile 850 |
---|
$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;
|
Zeile 1340 | Zeile 1408 |
---|
foreach($fids as $key => $fid) { $fids[$key] = (int)$fid;
|
foreach($fids as $key => $fid) { $fids[$key] = (int)$fid;
|
}
| }
|
if(!empty($fids)) { $where_sql .= " AND t.fid IN (".implode(',', $fids).")";
| if(!empty($fids)) { $where_sql .= " AND t.fid IN (".implode(',', $fids).")";
|
Zeile 1501 | Zeile 1569 |
---|
{ // Fetch thread info $thread = get_thread($mybb->get_input('tid', MyBB::INPUT_INT));
|
{ // Fetch thread info $thread = get_thread($mybb->get_input('tid', MyBB::INPUT_INT));
|
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))
| $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); }
|