Example #1
0
/**
 * Устанавливает роли (первый, последний) в своем дереве
 *
 * @param	array	$aForums
 * @return	array
 */
function forums_set_role($aForums)
{
    /**
     * Первый элемент ветки
     */
    $oFirst = current($aForums);
    $oFirst->setFirst(1);
    /**
     * Последний элемент ветки
     */
    $oLast = end($aForums);
    $oLast->setLast(1);
    /**
     * Устанавливаем роли для дочерних элементов
     */
    foreach ($aForums as $oForum) {
        $aChildrens = $oForum->getChildren();
        $bHasChildren = !empty($aChildrens);
        if ($bHasChildren) {
            $aChildrens = forums_set_role($aChildrens);
            $oForum->setChildren($aChildrens);
        }
    }
    return $aForums;
}
 /**
  * Управление форумами
  */
 protected function _adminForums()
 {
     /**
      * Получаем список форумов
      */
     $aForums = $this->PluginForum_Forum_LoadTreeOfForum(array('#order' => array('forum_sort' => 'asc')));
     $aForumsList = $aForumsTree = array();
     if ($aForums) {
         /**
          * Кое-какие правила
          */
         $aForums = forums_set_role($aForums);
         /**
          * Дерево форумов
          */
         $aForumsList = forum_create_list($aForums);
         $aForumsTree = $this->PluginForum_Forum_buildTree($aForums);
     }
     /**
      * Загружаем переменные в шаблон
      */
     $this->Viewer_Assign('aForums', $aForums);
     $this->Viewer_Assign('aForumsTree', $aForumsTree);
     $this->Viewer_Assign('aForumsList', $aForumsList);
     /**
      * Загружаем в шаблон JS текстовки
      */
     $this->Lang_AddLangJs(array('plugin.forum.delete_confirm'));
     /**
      * Устанавливаем шаблон вывода
      */
     $this->SetTemplateAction('admin/forums_list');
 }