mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-24 03:54:10 +01:00
Tidied up the sync functions
git-svn-id: file:///svn/phpbb/trunk@961 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
0316d0a490
commit
d48ebf9e04
@ -567,109 +567,109 @@ function validate_username($username)
|
||||
function sync($type, $id)
|
||||
{
|
||||
global $db;
|
||||
|
||||
switch($type)
|
||||
{
|
||||
case 'all forums':
|
||||
$sql = "SELECT forum_id
|
||||
FROM " . FORUMS_TABLE;
|
||||
if( !$result = $db->sql_query($sql) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get forum IDs", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
$rowset = $db->sql_fetchrowset($result);
|
||||
|
||||
for($i = 0; $i < count($rowset); $i++)
|
||||
{
|
||||
sync($row[$i]['forum_id'], "forum");
|
||||
}
|
||||
break;
|
||||
|
||||
switch($type)
|
||||
{
|
||||
case 'forum':
|
||||
$sql = "SELECT max(p.post_id) AS last_post FROM ".POSTS_TABLE." p, ".TOPICS_TABLE." t WHERE p.forum_id = $id AND p.topic_id = t.topic_id AND t.topic_status <> ".TOPIC_MOVED;
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get post ID", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
if($rowset = $db->sql_fetchrowset($result))
|
||||
{
|
||||
$last_post = $rowset[0]['last_post'];
|
||||
}
|
||||
if($last_post == "")
|
||||
{
|
||||
$last_post = 0;
|
||||
}
|
||||
case 'all topics':
|
||||
$sql = "SELECT topic_id
|
||||
FROM " . TOPICS_TABLE;
|
||||
if( !$result = $db->sql_query($sql) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get topic ID's", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
$rowset = $db->sql_fetchrowset($result);
|
||||
|
||||
$sql = "SELECT count(post_id) AS total FROM ".POSTS_TABLE." WHERE forum_id = $id";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get post count", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
if($rowset = $db->sql_fetchrowset($result))
|
||||
{
|
||||
$total_posts = $rowset[0]['total'];
|
||||
}
|
||||
for($i = 0; $i < count($rowset); $i++)
|
||||
{
|
||||
sync($row[$i]['topic_id'], "topic");
|
||||
}
|
||||
break;
|
||||
|
||||
$sql = "SELECT count(topic_id) AS total FROM ".TOPICS_TABLE." WHERE forum_id = $id";
|
||||
if(!$result = $db->sql_query($sql, $db))
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get topic count", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
if($rowset = $db->sql_fetchrowset($result))
|
||||
{
|
||||
$total_topics = $rowset[0]['total'];
|
||||
}
|
||||
case 'forum':
|
||||
$sql = "SELECT MAX(p.post_id) AS last_post
|
||||
FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t
|
||||
WHERE p.forum_id = $id
|
||||
AND p.topic_id = t.topic_id
|
||||
AND t.topic_status <> " . TOPIC_MOVED;
|
||||
if( !$result = $db->sql_query($sql) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get post ID", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
$last_post = ( $row = $db->sql_fetchrow($result) ) ? $row['last_post'] : 0;
|
||||
|
||||
$sql = "UPDATE ".FORUMS_TABLE." SET forum_last_post_id = '$last_post', forum_posts = $total_posts, forum_topics = $total_topics WHERE forum_id = $id";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not update forum $id", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
break;
|
||||
$sql = "SELECT COUNT(post_id) AS total
|
||||
FROM " . POSTS_TABLE . "
|
||||
WHERE forum_id = $id";
|
||||
if( !$result = $db->sql_query($sql) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get post count", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
$total_posts = ( $row = $db->sql_fetchrow($result) ) ? $row['total'] : 0;
|
||||
|
||||
case 'topic':
|
||||
$sql = "SELECT max(post_id) AS last_post FROM ".POSTS_TABLE." WHERE topic_id = $id";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get post ID", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
if($row = $db->sql_fetchrowset($result))
|
||||
{
|
||||
$last_post = $row[0]["last_post"];
|
||||
}
|
||||
$sql = "SELECT COUNT(topic_id) AS total
|
||||
FROM " . TOPICS_TABLE . "
|
||||
WHERE forum_id = $id";
|
||||
if( !$result = $db->sql_query($sql) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get topic count", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
$total_topics = ( $row = $db->sql_fetchrow($result) ) ? $row['total'] : 0;
|
||||
|
||||
$sql = "SELECT count(post_id) AS total FROM ".POSTS_TABLE." WHERE topic_id = $id";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get post count", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
if($row = $db->sql_fetchrowset($result))
|
||||
{
|
||||
$total_posts = $row[0]["total"];
|
||||
}
|
||||
$total_posts -= 1;
|
||||
$sql = "UPDATE ".TOPICS_TABLE." SET topic_replies = $total_posts, topic_last_post_id = $last_post WHERE topic_id = $id";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not update topic $id", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
break;
|
||||
$sql = "UPDATE " . FORUMS_TABLE . "
|
||||
SET forum_last_post_id = $last_post, forum_posts = $total_posts, forum_topics = $total_topics
|
||||
WHERE forum_id = $id";
|
||||
if( !$result = $db->sql_query($sql) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not update forum $id", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'topic':
|
||||
$sql = "SELECT MAX(post_id) AS last_post
|
||||
FROM " . POSTS_TABLE . "
|
||||
WHERE topic_id = $id";
|
||||
if( !$result = $db->sql_query($sql) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get post ID", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
$last_post = ( $row = $db->sql_fetchrow($result) ) ? $row['last_post'] : 0;
|
||||
|
||||
$sql = "SELECT COUNT(post_id) AS total
|
||||
FROM " . POSTS_TABLE . "
|
||||
WHERE topic_id = $id";
|
||||
if( !$result = $db->sql_query($sql) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get post count", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
$total_posts = ( $row = $db->sql_fetchrow($result) ) ? $row['total'] - 1 : 0;
|
||||
|
||||
$sql = "UPDATE " . TOPICS_TABLE . "
|
||||
SET topic_replies = $total_posts, topic_last_post_id = $last_post
|
||||
WHERE topic_id = $id";
|
||||
if( !$result = $db->sql_query($sql) )
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not update topic $id", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 'all forums':
|
||||
$sql = "SELECT forum_id FROM ".FORUMS_TABLE;
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get forum IDs", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
$rowset = $db->sql_fetchrowset($result);
|
||||
$count = $db->sql_numrows($result);
|
||||
for($i = 0; $i < $count; $i++)
|
||||
{
|
||||
$id = $row[$i]['forum_id'];
|
||||
sync($db, $id, "forum");
|
||||
}
|
||||
break;
|
||||
case 'all topics':
|
||||
$sql = "SELECT topic_id FROM topics";
|
||||
if(!$result = $db->sql_query($sql))
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Could not get topic ID's", "Error", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
$rowset = $db->sql_fetchrowset($result);
|
||||
$count = $db->sql_numrows($result);
|
||||
for($i = 0; $i < $count; $i++)
|
||||
{
|
||||
$id = $row[$i]['topic_id'];
|
||||
sync($db, $id, "topic");
|
||||
}
|
||||
break;
|
||||
}
|
||||
return(TRUE);
|
||||
|
||||
}
|
||||
|
||||
function language_select($default, $dirname="language/")
|
||||
|
Loading…
x
Reference in New Issue
Block a user