/** * Устанавливает роли (первый, последний) в своем дереве * * @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'); }