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

amusing

Пользователь
Регистрация
14.10.12
Сообщения
11
Реакции
2
Баллы
3
На одном зарубежном проекте увидел интересную тему. Смысл заключается в том, что пользователь, который создал тему и которая ушла на пре-модерацию тоже её видит, что она есть и ждет одобрения,а остальные пользователи так и не видят её. В теме был предложен вариант решения проблемы:
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']) . "))

После проделанного у меня вообще темы перестали отображаться для всех и вернул все обратно.
Есть знатоки кто найдет в чем ошибка и что не так?!
 

Статистика форума

Темы
200.635
Сообщения
380.523
Пользователи
327.873
Новый пользователь
lightnight
Сверху Снизу