function d3forum_sync_forum($mydirname, $forum_id, $sync_also_category = true) { $db =& Database::getInstance(); $forum_id = intval($forum_id); $sql = "SELECT cat_id FROM " . $db->prefix($mydirname . "_forums") . " WHERE forum_id={$forum_id}"; if (!($result = $db->query($sql))) { die("ERROR SELECT forum in sync forum"); } list($cat_id) = $db->fetchRow($result); $sql = "SELECT MAX(topic_last_post_id),MAX(topic_last_post_time),COUNT(topic_id),SUM(topic_posts_count) FROM " . $db->prefix($mydirname . "_topics") . " WHERE forum_id={$forum_id}"; if (!($result = $db->query($sql))) { die("ERROR SELECT topics in sync forum"); } list($last_post_id, $last_post_time, $topics_count, $posts_count) = $db->fetchRow($result); if (!($result = $db->queryF("UPDATE " . $db->prefix($mydirname . "_forums") . " SET forum_topics_count=" . intval($topics_count) . ",forum_posts_count=" . intval($posts_count) . ", forum_last_post_id=" . intval($last_post_id) . ", forum_last_post_time=" . intval($last_post_time) . " WHERE forum_id={$forum_id}"))) { die(_MD_D3FORUM_ERR_SQL . __LINE__); } if ($sync_also_category) { return d3forum_sync_category($mydirname, $cat_id); } else { return true; } }
// sync all forums $result = $db->query("SELECT forum_id FROM " . $db->prefix($mydirname . "_forums")); while (list($forum_id) = $db->fetchRow($result)) { d3forum_sync_forum($mydirname, $forum_id, false); } redirect_header(XOOPS_URL . "/modules/{$mydirname}/admin/index.php?page=advanced_admin", 3, _MD_A_D3FORUM_MSG_SYNCTABLESDONE); exit; } if (!empty($_POST['do_synccategories'])) { set_time_limit(0); // rebuild category's tree d3forum_sync_cattree($mydirname); // sync all categories $result = $db->query("SELECT cat_id FROM " . $db->prefix($mydirname . "_categories") . " ORDER BY cat_order_in_tree DESC"); while (list($cat_id) = $db->fetchRow($result)) { d3forum_sync_category($mydirname, $cat_id); } redirect_header(XOOPS_URL . "/modules/{$mydirname}/admin/index.php?page=advanced_admin", 3, _MD_A_D3FORUM_MSG_SYNCTABLESDONE); exit; } if (!empty($_POST['do_import']) && !empty($_POST['import_mid'])) { set_time_limit(0); if (!$xoopsGTicket->check(true, 'd3forum_admin')) { redirect_header(XOOPS_URL . '/', 3, $xoopsGTicket->getErrors()); } $import_mid = intval(@$_POST['import_mid']); if (empty($importable_modules[$import_mid])) { die(_MD_A_D3FORUM_ERR_INVALIDMID); } list($fromtype, ) = explode(':', $importable_modules[$import_mid]); switch ($fromtype) {