Автор темы может видеть свою тему на премодерации

  • Автор темы amusing
  • 1640
  • Обновлено
  • 22, Sep 2014
  • #1
На одном зарубежном проекте увидел интересную тему. Смысл заключается в том, что пользователь, который создал тему и которая ушла на пре-модерацию тоже её видит, что она есть и ждет одобрения,а остальные пользователи так и не видят её. В теме был предложен вариант решения проблемы:
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']) . "))
После проделанного у меня вообще темы перестали отображаться для всех и вернул все обратно. Есть знатоки кто найдет в чем ошибка и что не так?!

amusing


Рег
14 Oct, 2012

Тем
3

Постов
11

Баллов
41
Тем
49554
Комментарии
57426
Опыт
552966

Интересно