Jag testade lite och det verkar fungera som tänkt, men om jag missat något så skyller jag på hunden.
Först SQL
Kod: Markera allt
ALTER TABLE `phpbb_posts` ADD `upptagen` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0';
Find
Kod: Markera allt
// Posting/Replying (Not private messaging!)
//
Kod: Markera allt
$lang['To_late'] = 'Långnäsa, någon hann före.';
$lang['Post_upptagen'] = 'Det är redan någon som grottar med denna.';
Find
Kod: Markera allt
$sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : 0;
Kod: Markera allt
$to_late = (isset($HTTP_POST_VARS['upptagen'])) ? $HTTP_POST_VARS['upptagen'] : 0;
Kod: Markera allt
$sql = "SELECT f.*, t.topic_id, t.topic_status, t.topic_type, t.topic_first_post_id, t.topic_last_post_id, t.topic_vote, p.post_id, p.poster_id" . $select_sql . "
Kod: Markera allt
p.poster_id
Kod: Markera allt
, p.upptagen
Kod: Markera allt
if ( ($result = $db->sql_query($sql)) && ($post_info = $db->sql_fetchrow($result)) )
{
$db->sql_freeresult($result);
Kod: Markera allt
if($to_late && !$post_info['upptagen'])
{
message_die(GENERAL_MESSAGE, $lang['To_late']);
}
$upptagen = time();
if($post_info['upptagen'] > $upptagen - 300 && !$submit)
{
message_die(GENERAL_MESSAGE, $lang['Post_upptagen']);
}
if($mode == 'editpost' && !$submit)
{
$sql = "UPDATE " . POSTS_TABLE . " SET upptagen = $upptagen WHERE post_id = $post_id";
$db->sql_query($sql);
$post_info['upptagen'] = $upptagen;
}
else if($mode == 'editpost' && $submit)
{
$sql = "UPDATE " . POSTS_TABLE . " SET upptagen = 0 WHERE post_id = $post_id";
$db->sql_query($sql);
$post_info['upptagen'] = 0;
}
Kod: Markera allt
'S_POST_ACTION' => append_sid("posting.$phpEx"),
Kod: Markera allt
'S_UPPTAGEN' => $post_info['upptagen'],
Find
Kod: Markera allt
{S_HIDDEN_FORM_FIELDS}
Kod: Markera allt
<input type="hidden" name="upptagen" value="{S_UPPTAGEN}" />
Happy testing.
/J