function newbb_createParentForumList()
{
    $forum_handler =& xoops_getModuleHandler("forum", "newbb");
    $criteria = new Criteria("1", 1);
    $criteria->setSort("parent_forum");
    $criteria->setOrder("ASC");
    $forums_obj = $forum_handler->getObjects($criteria);
    require_once XOOPS_ROOT_PATH . "/modules/newbb/class/tree.php";
    $tree = new newbbObjectTree($forums_obj, "forum_id", "parent_forum");
    $forum_array = array();
    foreach (array_keys($forums_obj) as $key) {
        $parent_forum = $forums_obj[$key]->getVar("parent_forum");
        if (!$parent_forum) {
            continue;
        }
        if (isset($forum_array[$parent_forum])) {
            $forum_array[$forums_obj[$key]->getVar("forum_id")] = $forum_array[$parent_forum];
            $forum_array[$forums_obj[$key]->getVar("forum_id")][] = $parent_forum;
        } else {
            $forum_array[$forums_obj[$key]->getVar("forum_id")] = $tree->getParentForums($forums_obj[$key]->getVar("forum_id"));
        }
    }
    unset($forums_obj, $tree, $criteria);
    require_once XOOPS_ROOT_PATH . '/Frameworks/art/functions.cache.php';
    mod_createCacheFile($forum_array, "forum_parent", "newbb");
    return $forum_array;
}
Beispiel #2
0
 /**
  * get a hierarchical array tree of forums
  * 
  * {@link newbbTree} 
  *
  * @param     int        $cat_id category ID
  * @param     int        $pid     Top forum ID
  * @param     string    $permission    permission type
  * @param     string    $tags        variables to fetch
  * @param   integer    $depth    level of subcategories
  * @return    array    associative array of category IDs and sanitized titles
  */
 function &getArrayTree($cat_id = 0, $pid = 0, $permission = "access", $tags = null, $depth = 0)
 {
     $pid = intval($pid);
     $perm_string = $permission;
     if (!is_array($tags) || count($tags) == 0) {
         $tags = array("forum_id", "parent_forum", "forum_name", "forum_order", "cat_id");
     }
     $forums_obj =& $this->getByPermission($cat_id, $perm_string, $tags);
     require_once dirname(__FILE__) . "/tree.php";
     $forums_structured = array();
     foreach (array_keys($forums_obj) as $key) {
         $forum_obj =& $forums_obj[$key];
         $forums_structured[$forum_obj->getVar("cat_id")][$key] =& $forums_obj[$key];
     }
     foreach (array_keys($forums_structured) as $cid) {
         $tree = new newbbObjectTree($forums_structured[$cid]);
         $forum_array[$cid] = $tree->makeArrayTree($pid, $tags, $depth);
         unset($tree);
     }
     return $forum_array;
 }