echo '</table></form>';
     }
     break;
 case 'mergeforum':
     loadModuleAdminMenu(2, "");
     if (!empty($_POST['dest_forum'])) {
         $forum_dest =& $forum_handler->get($_POST['dest_forum']);
         if (is_object($forum_dest)) {
             $cid = $forum_dest->getVar("cat_id");
             $sql = "\tUPDATE " . $xoopsDB->prefix('bb_posts') . "\tSET forum_id=" . intval($_POST['dest_forum']) . "\tWHERE forum_id={$forum_id}";
             $result_post = $xoopsDB->queryF($sql);
             $sql = "\tUPDATE " . $xoopsDB->prefix('bb_topics') . "\tSET forum_id=" . intval($_POST['dest_forum']) . "\tWHERE forum_id={$forum_id}";
             $result_topic = $xoopsDB->queryF($sql);
             $forum_obj =& $forum_handler->get($forum_id);
             $forum_handler->updateAll("parent_forum", intval($_POST['dest_forum']), new Criteria("parent_forum", $forum_id));
             if ($cid != $forum_obj->getVar("cat_id") && ($subforums = newbb_getSubForum($forum_id))) {
                 $forums = array_map("intval", array_values($subforums));
                 $forum_handler->updateAll("cat_id", $cid, new Criteria("forum_id", "(" . implode(", ", $forums) . ")", "IN"));
             }
             $forum_handler->delete($forum_obj);
             mod_clearCacheFile("forum", "newbb");
             $forum_handler->synchronization($forum_dest);
             unset($forum_dest);
             mod_clearCacheFile("forum", "newbb");
             redirect_header('./admin_forum_manager.php?op=manage', 2, _AM_NEWBB_MSG_FORUM_MERGED);
         } else {
             redirect_header('./admin_forum_manager.php?op=manage', 2, _AM_NEWBB_MSG_ERR_FORUM_MOVED);
         }
         exit;
     } else {
         $box = '<select name="dest_forum">';
Пример #2
0
 function getSubforumStats($subforums = null)
 {
     $stats = array();
     require_once XOOPS_ROOT_PATH . "/modules/newbb/include/functions.forum.php";
     $_subforums = newbb_getSubForum();
     if (empty($subforums)) {
         $sub_forums = $_subforums;
     } else {
         foreach ($subforums as $id) {
             $sub_forums[$id] =& $_subforums[$id];
         }
     }
     $forums_id = array();
     foreach (array_keys($sub_forums) as $id) {
         if (empty($sub_forums[$id])) {
             continue;
         }
         $forums_id = array_merge($forums_id, $sub_forums[$id]);
     }
     if (!$forums_id) {
         return $stats;
     }
     $sql = "    SELECT forum_posts AS posts, forum_topics AS topics, forum_id AS id" . "    FROM " . $this->table . "    WHERE forum_id IN (" . implode(", ", $forums_id) . ")";
     if (!($result = $this->db->query($sql))) {
         return $stats;
     }
     $forum_stats = array();
     while ($row = $this->db->fetchArray($result)) {
         $forum_stats[$row["id"]] = array("topics" => $row["topics"], "posts" => $row["posts"]);
     }
     foreach (array_keys($sub_forums) as $id) {
         if (empty($sub_forums[$id])) {
             continue;
         }
         $stats[$id] = array("topics" => 0, "posts" => 0);
         foreach ($sub_forums[$id] as $fid) {
             $stats[$id]["topics"] += $forum_stats[$fid]["topics"];
             $stats[$id]["posts"] += $forum_stats[$fid]["posts"];
         }
     }
     return $stats;
 }