- 22, Sep 2014
- #1
На одном зарубежном проекте увидел интересную тему. Смысл заключается в том, что пользователь, который создал тему и которая ушла на пре-модерацию тоже её видит, что она есть и ждет одобрения,а остальные пользователи так и не видят её. В теме был предложен вариант решения проблемы:
forumdisplay.php, Найти:
showthread.php Найти :
forumdisplay.php, Найти:
if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canseedelnotice']))
{
$visiblethreads = " AND visible = 1 ";
}
else
{
$visiblethreads = " AND visible IN (1,2)";
}
Заменить на:
if ($vbulletin->userinfo['userid'])
{
if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canseedelnotice']))
{
$visiblethreads = " AND (visible = 1 OR (visible = 0 AND postuserid = " . intval($vbulletin->userinfo['userid']) . "))";
}
else
{
$visiblethreads = " AND (visible IN (1,2) OR (visible = 0 AND postuserid = " . intval($vbulletin->userinfo['userid']) . "))";
}
}
else
{
if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canseedelnotice']))
{
$visiblethreads = " AND visible = 1 ";
}
else
{
$visiblethreads = " AND visible IN (1,2)";
}
}
showthread.php Найти :
if ((!$thread['visible'] AND !can_moderate($thread['forumid'], 'canmoderateposts'))
Меняем на:
if ((!$thread['visible'] AND !can_moderate($thread['forumid'], 'canmoderateposts') AND ($thread['postuserid'] != $vbulletin->userinfo['userid'] OR !$vbulletin->userinfo['userid']))
и находим:
AND post.visible = 1
Меняем на:
AND (post.visible = 1 OR (post.visible = 0 AND post.userid = " . intval($vbulletin->userinfo['userid']) . "))
После проделанного у меня вообще темы перестали отображаться для всех и вернул все обратно.
Есть знатоки кто найдет в чем ошибка и что не так?!