CASE: вывод модераторам списка статей на модерацию

Обратились сегодня ко мне клиенты с задачей. Суть задачи: на сайте, реализованном самоучкой на базе 1С-Битрикс размещаются публикации разного уровня сложности, публикации находятся в большом количестве инфоблоков, смена статуса настроена через статусы модуля документооборота. Необходимо разработать страницу, на которой будут выводиться все публикации, которые необходимо промодерировать.

Обратились сегодня ко мне клиенты с задачей. Суть задачи: на сайте, реализованном самоучкой на базе 1С-Битрикс размещаются публикации разного уровня сложности, публикации находятся в большом количестве инфоблоков, смена статуса настроена через статусы модуля документооборота. Необходимо разработать страницу, на которой будут выводиться все публикации, которые необходимо промодерировать. 

Решение задачи.

Для начала создаем раздел, в котором будут выводиться все данные (пусть это будет moder). Раздел закрываем от неавторизованных пользователей, добавляем доступ только всем группам модераторов. Либо можно в самом начале страницы добавить проверку на принадлежность пользователей нужным группам:

 if ( CSite::InGroup( array(1,7) ) ){
     /*тут будет основной функционал*/ 
     } else { 
     ShowError('Данный раздел только для модераторов');
     }

Далее необходимо отобрать список всех публикаций, который находятся на публикации (По умолчанию ID статуса "На модерации" = 4). В результате получаем функцию выборки данных:

     function GetWFElements($statusID = 4)
     {
        if (!\Bitrix\Main\Loader::includeModule('iblock')) return false; 
       $arSelect = Array("ID", "IBLOCK_ID", "IBLOCK_TYPE_ID", "NAME", "DATE_CREATE", "TIMESTAMP_X", "WF_STATUS_ID");
       $arFilter = Array("WF_STATUS_ID" => IntVal($statusID), "SHOW_HISTORY" => 'Y', "ACTIVE" => "Y");
       $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect); 
       $Items = array(); 
       while ($arFields = $res->GetNext()) {
         $arFields['ADMIN_URL'] = '/bitrix/admin/iblock_element_edit.php?IBLOCK_ID='
           . $arFields['IBLOCK_ID'] . '&type=' . $arFields['IBLOCK_TYPE_ID'] . '&ID=' . $arFields['ID'] . '&lang=ru&WF=Y';
         $Items[$arFields['IBLOCK_ID']][] = $arFields;
       }
       return $Items;
     }

Функция получает список всех публикация во всех инфоблоках и раскидывает эти публикации по ID инфоблоков. Каждой публикации добавляем ссылку на редактирование публикации в административном разделе (ADMIN_URL)

Количество показов: 2814
03.07.2015

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.