Jump to content

Вернуть сообщение или тему обратно на модерацию (4.6.5.1)

Featured Replies

Posted
comment_172075

Привет. Когда пользователь публикует пост/тему - она проходит модерацию, с этим понятно. Но! Бывают ситуации, когда одобренную ранее тему или пост - нужно снова вернуть на модерацию, чтобы участник изменил/отредактировал свою тему/сообщение, но при этом она должны быть скрыта для остальных посетителей. То есть тему должны видеть только Автор и Админы/Модераторы. Как такое сделать?

Я пробовал просто скрывать пост/тему, но тогда она скрывается и для автора и он не может её редактировать.

Кому интересно зачем это. Объясняю: предположим человек публикует созданную им игру. Он периодически редактирует свою тему (ведет блог) добавляя туда скриншоты, описание и тд. И вот допустим он в одном из таких редактирований - накосячил и залил не ту ссылку или не правильно оформил пост (не по правилам раздела). Просто устно просить каждого исправлять - бесполезно и того не стоит. А вот если автор будет видеть, что тема скрыта от всех, кроме него - то это предаст ему стимула почитать правила и всё оперативно исправить.

Edited by WebUser

comment_172082

Я делал такое, но из за того, что все типы modAction захардкожены, получается не очень изящно (но безопасно). Работало, базируясь на правах canHide(), меня устраивало. 

 

  • Author
comment_172090

@Desti а не поделитесь самой реализацией? Или там много чего нужно менять и лучше этого не делать?

У меня есть альтернативное решение, но оно такое себе. Это создать внизу форума раздел "Корзина" и просто перемещать туда темы/посты, которые не соответствуют правилам оформления. Когда человек всё оформит - перемещать назад.

Если ваше решение окажется сложным, тогда наверное так и сделаю.

comment_172091

Ключевое слово "делал", исходников не осталось. Плюс у меня были только темы, без сообщений. Если делать красиво (с проверками/оповещениями/модлогами и прочим ui), то получается очень много кода. Можно, конечно, обойтись и без этого, в сильно упрощенном варианте.

  • Author
comment_172094
19 минут назад, Desti сказал:

Вечером попробую вспомнить, что там было, простой плагин вроде.

Спасибо. Сгодится и самый простой вариант, без оповещений/модлогов и прочих ui. При чем достаточно возвращать только тему на модерацию (отдельные посты не обязательно).

comment_172098

Вроде работает. Тему можно только отправить на модерацию, вернуть назад можно штатными средствами. 

Send Topic To Moderation 1.0.0.xml

  • Author
comment_172126
23 часа назад, Desti сказал:

Вроде работает.

выдает ошибку, при отправки темы на модерацию

001.jpg.2f26987ee4a0de660f3d92cdf08db527.jpg

там кстати выводится какой то код ошибки

ArgumentCountError: Too few arguments to function IPS\Theme\email__core_notification_unapproved_content_subject_ru_RU_UTF_8(), 2 passed in /home/xxx/domains/test.ru/public_html/forum/system/Email/Email.php on line 1027 and exactly 3 expected (0)
#0 /home/xxx/domains/test.ru/public_html/forum/system/Email/Email.php(1027): IPS\Theme\email__core_notification_unapproved_content_subject_ru_RU_UTF_8(Object(IPS\forums\Topic), Object(IPS\Email\Outgoing\Php))
#1 /home/xxx/domains/test.ru/public_html/forum/system/Email/Email.php(516): IPS\_Email::devProcessTemplate('email__core_not...', '{$member->name|...', Array, 'plaintext')
#2 /home/xxx/domains/test.ru/public_html/forum/system/Email/Email.php(847): IPS\_Email->compileSubject(Object(IPS\Member), Object(IPS\Lang))
#3 /home/xxx/domains/test.ru/public_html/forum/system/Notification/Notification.php(925): IPS\_Email->mergeAndSend(Array, NULL, NULL, Array, Object(IPS\Lang))
#4 /home/xxx/domains/test.ru/public_html/forum/system/Notification/Notification.php(905): IPS\_Notification->sendEmails(Array, Array)
#5 /home/xxx/domains/test.ru/public_html/forum/init.php(902) : eval()'d code(39): IPS\_Notification->send()
#6 /home/xxx/domains/test.ru/public_html/forum/system/Content/Controller.php(929): IPS\forums\hook6->modAction('sendtomod')
#7 /home/xxx/domains/test.ru/public_html/forum/system/Dispatcher/Controller.php(90): IPS\Content\_Controller->moderate()
#8 /home/xxx/domains/test.ru/public_html/forum/system/Content/Controller.php(50): IPS\Dispatcher\_Controller->execute()
#9 /home/xxx/domains/test.ru/public_html/forum/applications/forums/modules/front/forums/topic.php(39): IPS\Content\_Controller->execute()
#10 /home/xxx/domains/test.ru/public_html/forum/system/Dispatcher/Dispatcher.php(153): IPS\forums\modules\front\forums\_topic->execute()
#11 /home/xxx/domains/test.ru/public_html/forum/index.php(13): IPS\_Dispatcher->run()
#12 {main}

 

Edited by WebUser

  • Author
comment_172149
7 часов назад, Desti сказал:

Под dev запускаете?

Как понять под dev?

8 часов назад, Desti сказал:

я не проверял на email оповещения

Может тогда просто отключить функцию оповещения при возвращении темы на модерацию? Если так можно.

  • Author
comment_172158
30 минут назад, Desti сказал:

Без оповещения.

Теперь работает без ошибок! Огромное спасибо! :bp::az:

  • Author
comment_172189
В 04.09.2021 в 14:50, by_ix сказал:

в режиме разработчика

В админке видел только режим дизайнера 😀

001.jpg.8be850d3a23b173d1de374f54791c60e.jpg

comment_172193
18 минут назад, WebUser сказал:

В админке видел только режим дизайнера 😀

чтоб его включить, нужно установить файлы для него.
https://invisioncommunity.com/files/file/7185-developer-tools/
https://invisioncommunity.com/developers/docs/general/enabling-developer-mode-r23/

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.