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

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

920
03.07.2015

Обратились сегодня ко мне клиенты с задачей. Суть задачи: на сайте, реализованном самоучкой на базе 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)



Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


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


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

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