Перейти к содержанию

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


Рекомендуемые сообщения

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

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

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

Изменено пользователем WebUser
Ссылка на комментарий
Поделиться на другие сайты

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

 

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

@Desti понял. Спасибо. Пока обойдусь корзиной. 🙂

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Send Topic To Moderation 1.0.0.xml

Ссылка на комментарий
Поделиться на другие сайты

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}

 

Изменено пользователем WebUser
Ссылка на комментарий
Поделиться на другие сайты

Отключите его пока, я не проверял на email оповещения. 

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, WebUser сказал:

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

001.jpg.8be850d3a23b173d1de374f54791c60e.jpg

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...