1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 14:00:31 +02:00

Split posts works, split beyond this post does not. Still needs interface work as well

git-svn-id: file:///svn/phpbb/trunk@649 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
James Atkinson
2001-07-13 16:42:20 +00:00
parent df799b8a16
commit 8e49899bce
4 changed files with 119 additions and 8 deletions

View File

@@ -503,4 +503,110 @@ function validate_username($username)
return(TRUE);
}
function sync($type, $id)
{
global $db;
switch($type)
{
case 'forum':
$sql = "SELECT max(post_id) AS last_post FROM ".POSTS_TABLE." WHERE forum_id = $id";
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'];
}
$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'];
}
$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'];
}
$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);
}
if($row = $db->sql_fetchrowset($result))
{
$last_post = $row[0]["last_post"];
}
$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;
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);
}
?>