aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/acp
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2007-05-09 17:37:20 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2007-05-09 17:37:20 +0000
commit08f98034570dd480c83d31c3c0b2a80539f27b97 (patch)
tree8bf6946b84b7f5fb298eca85d805f81842f9ea85 /phpBB/includes/acp
parenta77ded0f8d340a121ce7ea470216ad20570fad94 (diff)
downloadforums-08f98034570dd480c83d31c3c0b2a80539f27b97.tar
forums-08f98034570dd480c83d31c3c0b2a80539f27b97.tar.gz
forums-08f98034570dd480c83d31c3c0b2a80539f27b97.tar.bz2
forums-08f98034570dd480c83d31c3c0b2a80539f27b97.tar.xz
forums-08f98034570dd480c83d31c3c0b2a80539f27b97.zip
sync topics before forum.
git-svn-id: file:///svn/phpbb/trunk@7517 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/acp')
-rw-r--r--phpBB/includes/acp/acp_forums.php79
1 files changed, 39 insertions, 40 deletions
diff --git a/phpBB/includes/acp/acp_forums.php b/phpBB/includes/acp/acp_forums.php
index 5382da90de..1fc64acdbc 100644
--- a/phpBB/includes/acp/acp_forums.php
+++ b/phpBB/includes/acp/acp_forums.php
@@ -285,7 +285,9 @@ class acp_forums
trigger_error($user->lang['NO_FORUM'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
}
- $sql = 'SELECT forum_name, forum_type
+ @set_time_limit(0);
+
+ $sql = 'SELECT forum_name, forum_topics_real
FROM ' . FORUMS_TABLE . "
WHERE forum_id = $forum_id";
$result = $db->sql_query($sql);
@@ -297,43 +299,6 @@ class acp_forums
trigger_error($user->lang['NO_FORUM'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
}
- sync('forum', 'forum_id', $forum_id, false, true);
- $cache->destroy('sql', FORUMS_TABLE);
-
- $url = $this->u_action . "&amp;parent_id={$this->parent_id}&amp;f=$forum_id&amp;action=sync_topic";
- meta_refresh(0, $url);
-
- $sql = 'SELECT forum_topics_real
- FROM ' . FORUMS_TABLE . "
- WHERE forum_id = $forum_id";
- $result = $db->sql_query($sql);
- $row = $db->sql_fetchrow($result);
- $db->sql_freeresult($result);
-
- $template->assign_vars(array(
- 'U_PROGRESS_BAR' => $this->u_action . '&amp;action=progress_bar',
- 'UA_PROGRESS_BAR' => str_replace('&amp;', '&', $this->u_action) . '&action=progress_bar',
- 'S_CONTINUE_SYNC' => true,
- 'L_PROGRESS_EXPLAIN' => sprintf($user->lang['SYNC_IN_PROGRESS_EXPLAIN'], 0, $row['forum_topics_real']))
- );
-
-// add_log('admin', 'LOG_FORUM_SYNC', $row['forum_name']);
-
- return;
-
- break;
-
- case 'sync_topic':
-
- @set_time_limit(0);
-
- $sql = 'SELECT forum_name, forum_topics_real
- FROM ' . FORUMS_TABLE . "
- WHERE forum_id = $forum_id";
- $result = $db->sql_query($sql);
- $row = $db->sql_fetchrow($result);
- $db->sql_freeresult($result);
-
if ($row['forum_topics_real'])
{
$sql = 'SELECT MIN(topic_id) as min_topic_id, MAX(topic_id) as max_topic_id
@@ -343,6 +308,10 @@ class acp_forums
$row2 = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
+ // Typecast to int if there is no data available
+ $row2['min_topic_id'] = (int) $row2['min_topic_id'];
+ $row2['max_topic_id'] = (int) $row2['max_topic_id'];
+
$start = request_var('start', $row2['min_topic_id']);
$batch_size = 2000;
@@ -365,7 +334,7 @@ class acp_forums
$start += $batch_size;
- $url = $this->u_action . "&amp;parent_id={$this->parent_id}&amp;f=$forum_id&amp;action=sync_topic&amp;start=$start&amp;topics_done=$topics_done&amp;total={$row['forum_topics_real']}";
+ $url = $this->u_action . "&amp;parent_id={$this->parent_id}&amp;f=$forum_id&amp;action=sync&amp;start=$start&amp;topics_done=$topics_done&amp;total={$row['forum_topics_real']}";
meta_refresh(0, $url);
@@ -380,6 +349,36 @@ class acp_forums
}
}
+ $url = $this->u_action . "&amp;parent_id={$this->parent_id}&amp;f=$forum_id&amp;action=sync_forum";
+ meta_refresh(0, $url);
+
+ $template->assign_vars(array(
+ 'U_PROGRESS_BAR' => $this->u_action . '&amp;action=progress_bar',
+ 'UA_PROGRESS_BAR' => str_replace('&amp;', '&', $this->u_action) . '&action=progress_bar',
+ 'S_CONTINUE_SYNC' => true,
+ 'L_PROGRESS_EXPLAIN' => sprintf($user->lang['SYNC_IN_PROGRESS_EXPLAIN'], 0, $row['forum_topics_real']))
+ );
+
+ return;
+
+ break;
+
+ case 'sync_forum':
+
+ $sql = 'SELECT forum_name, forum_type
+ FROM ' . FORUMS_TABLE . "
+ WHERE forum_id = $forum_id";
+ $result = $db->sql_query($sql);
+ $row = $db->sql_fetchrow($result);
+ $db->sql_freeresult($result);
+
+ if (!$row)
+ {
+ trigger_error($user->lang['NO_FORUM'] . adm_back_link($this->u_action . '&amp;parent_id=' . $this->parent_id), E_USER_WARNING);
+ }
+
+ sync('forum', 'forum_id', $forum_id, false, true);
+
add_log('admin', 'LOG_FORUM_SYNC', $row['forum_name']);
$cache->destroy('sql', FORUMS_TABLE);
@@ -740,7 +739,7 @@ class acp_forums
// Jumpbox
$forum_box = make_forum_select($this->parent_id, false, false, false, false); //make_forum_select($this->parent_id);
- if ($action == 'sync' || $action == 'sync_topic')
+ if ($action == 'sync' || $action == 'sync_forum')
{
$template->assign_var('S_RESYNCED', true);
}