FAQ - уведомление и простая модерация (*1.10...) мини_хак

+55
2.68K
Всем Привет!


Занялся сегодня наполнением

FAQ

на сайте и заметил такую не очень удобную штуку..
Все дело в том, что при добалении вопроса от пользователя,
он попадает в базу и ждет модерации (если включено в админке) или сразу публикуется.

Все хорошо, Но админ об этом может узнать только в админке,
на странице компонента, что не всегда удобно и быстро получается....



Решил немного доработать процесс добавления вопроса и думаю многим это пригодится,
кто использует или собирается использовать FAQ компонент в Инстанте.

Так как я не сторонник постоянного нахождения в админке,
решил прикрутить уведомление и упростить модерацию поступивших вопросов.


Правок не много и все они простые, без вмешательств в работу компонента.
Делал на 1.10., но думаю и на 1.9 примерно все так же будет.


В Файле \www\components\faq\frontend.php

После строки:
  1. $quest_id = $inDB->get_last_id('cms_faq_quests');
Добавляем:

  1. $messag = 'Задан <a href="/faq/quest'.$quest_id.'.html">вопрос #'.$quest_id.'
  2. </a> в разделе помощи и ожидает модерации!';
  3. cmsUser::sendMessage(USER_UPDATER, '1', $messag);

Цифра 1 – это ID пользователя кому придет уведомление, по умолчанию – админ


Далее в этом же файле, Перед строкой
  1. $inCore->executePluginRoute($do);
Добавляем:

  1. if ($do=='publ'){ // ks_micro_hack
  2. $quest_id = $inCore->request('quest_id', 'int', 0);
  3. $user_id = $inUser->id;
  4. $sql = "SELECT con.id, con.quest, con.category_id
  5. FROM cms_faq_quests con
  6. WHERE con.id = '$quest_id' LIMIT 1";
  7. $result = $inDB->query($sql);
  8. $quest = $inDB->fetch_assoc($result);
  9. if (!$user_id || !$quest_id || !$quest) { $inCore->redirectBack(); }
  10. if (cmsUser::userIsAdmin($user_id)){
  11. $sql = "UPDATE cms_faq_quests SET published = 1 WHERE id='$quest_id'";
  12. $result = $inDB->query($sql);
  13. $quest = $inDB->fetch_assoc($result);}
  14. $inCore->redirect('/faq/'.$quest['category_id']);}



Далее идем в файл \www\components\faq\router.php

После строки
  1. function routes_faq(){
Добавляем:

  1. $routes[] = array(
  2. '_uri' => '/^faq\/publ([0-9]+).html$/i',
  3. 'do' => 'publ',
  4. 1 => 'quest_id'
  5. );


И последнее, делается для удобства модерации:

В файле:

\www\templates\ **Ваш_Шаблон** \components\com_faq_read.tpl

В самом начале найти строку:

  1. <div class="con_heading">{$LANG.QUESTION_VIEW} {if $is_admin}<a href="/faq/delquest{$quest.id}.html">X</a>{/if}</div>
И поменять ее на эту:

  1. <div class="con_heading">{$LANG.QUESTION_VIEW} {if $is_admin}<a style="color:green" href="/faq/publ{$quest.id}.html">Публикуем?</a> или <a style="color:red" href="/faq/delquest{$quest.id}.html">Удаляем?</a>{/if}</div>

На этом все.

Теперь админу (или тому кого указать) будет приходить уведомление о необходимости модерации вопроса.
На странице вопроса можно его быстро одобрить или удалить (это может только админ)


.
+3
qwest qwest 9 лет назад #
Плюсую хороший хак. А можно прописать что бы уведомлялся админ и одновременно например несколько модераторов?
+3
KS KS 9 лет назад #
можно, если по простому , просто прописать cmsUser::sendMessage(USER_UPDATER, '1', $messag);
несколько раз, где вместо 1 - указать id получателя.

или сделать так: cmsUser::sendMessageToGroup(USER_UPDATER, '2', $messag);

где 2 - это id группы которой нужно отправить уведомление
+3
qwest qwest 9 лет назад #
Спасибо.
+3
Malanas Malanas 9 лет назад #
Полезный хак +
+3
Dost Dost 9 лет назад #
плюсик
+2
Amurland Amurland 9 лет назад #
Дело хорошее.

+1

Как-то на форуме разбирали данный вопрос. Но там делали отсылку на почту.
+3
Князь Мышкин Князь Мышкин 9 лет назад #
Плюсую!
Вообще, недурно бы было в принципе штуку придумать, которая бы уведомляла о любом типе контента, который падает в модерацию.
Наверняка же плагин можно запилить. Я бы даже купил
+4
Anonim Anonim 9 лет назад #
Удивительно, но такие элементарные вещи, просто отсутствуют в системе, причем пишут их очень давно

Давайте соберем где-нибудь все такие хаки, и попросим их авторов включить эти изменения в новую версию? было бы очень полезно
0
KS KS 9 лет назад #
2.0 настолько гибкая система, что думаю, там такое без вмешательства в файлы можно будет сделать.
В любом случае лучше подождать финальную.
А это, так, костыль для тех кому лень ждать ))
+3
Search Search 9 лет назад #
Скажите, а на 1.10.1 будет работать?
+2
KS KS 9 лет назад #
да
0
pikasso pikasso 7 лет назад #
Подскажите как точно такое сделать для v1.10.3 ???
+4
Олег Васильевич я Олег Васильевич я 9 лет назад #
KS:
Делал на 1.10., но думаю и на 1.9 примерно все так же будет.
Для 1.9 (+ статьи) Madmax делал.
Спасибо!
+3
nedoriko nedoriko 9 лет назад #
Раньше было действительно неудобно. Я о вопросе заметил чуть ли не через неделю. А так гораздо лучше будет. Спасибо.
+ и в карму тоже
+2
Kamunikator Kamunikator 9 лет назад #
Отлично! Спасибо!!! +
0
Сергей Сергей 9 лет назад #


Почему бы не вынести выбор пользователя который будет получать уведомления в настройки?
0
Def Def 9 лет назад #
а можно сделать, чтобы слал на мыло, а не в личку?) поодскажите пожалуйста, как
0
Петр Петр 9 лет назад #
такое должно быть в дистрибутиве!
0
pikasso pikasso 8 лет назад #
Ребята подскажите как точно такое сделать для v1.10.3 ???
0
pikasso pikasso 7 лет назад #
ребята подскажите как исправить фигню...в компоненте FAQ все свежие сообщения идут в низу а не сначала...куда копать?

Еще от автора

Похожие в Универсальном каталоге (хак для 1.x)
На одном из сайтов, где используется универсальный каталог для вывода различных товаров и тд, появилась необходимость сделать вывод похожих при просмо
Плагин  'Вставить фото из своих альбомов' (ver.1.10* & &uarr;)
Добрый день! Заметил одну особенность..
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.