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;
    }
}
Beispiel #2
0
    // 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) {