AlexWB писал(а):dnk
тоже вариант
но удаление можно запретить установив соотв.права для форума
Согласен, но это будет слишком строго и потом, это запретит участнику удаление сообщения сразу после отправки.
Допустим, если участник напишет сообщение, потом ему через пару минут оно не понравится, то он хоть успеет, до "минуты X" хоть удалить свое сообщение.
вообще запрет правки или удаления сообщения можно преподнести как желание админа бороться с т.н. капризными людьми.
Пример: Участник выложил интересную информацию или ссылку на другой ресурс, а потом когда-нибудь кто-то (в т.ч. из админов) решит сделать предупреждение, скажем.Участнику это не понравиться.Он подумает: Раз так, админы, ну я Вам ... покажу, возьмет и решит потереть свои сообщения, чтобы в базе у админа хоть что-то удалить, ну т.е. зло сорватьи оставить без интересной информации.
Ну может не очень удачный пример, но Вы поняли.
Некоторые делают это, чтобы не было принципа: "Я не я и лошадь не моя", - нафлудил, потер (так сказать "поиграл с базой") - и я вновь "хороший парень".
Добавлено спустя 4 часа 56 минут 56 секунд:
Вот собственная версия переделанного мода.Автора мода, который я переделал, я позабыл:
Код: Выделить всё
#
#-----[ SQL ]-------------------------------------------
#
INSERT INTO phpbb_config (config_name, config_value) VALUES ('edit_time_limit', '60');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('delete_time_limit', '60');
#
#-----[ OPEN ]------------------------------------------------
#
viewtopic.php
#
#-----[ FIND ]------------------------------------------------
#
$temp_url = append_sid("posting.$phpEx?mode=quote&" . POST_POST_URL . "=" . $postrow[$i]['post_id']);
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$limit_time = $postrow[$i]['post_time'] + (intval($board_config['edit_time_limit']) * 60);
$limit_del_time = $postrow[$i]['post_time'] + (intval($board_config['delete_time_limit']) * 60);
#
#-----[ FIND ]------------------------------------------------
#
if ( ( $userdata['user_id'] == $poster_id && $is_auth['auth_edit'] ) || $is_auth['auth_mod'] )
#
#-----[ IN-LINE FIND ]---------------------------------------
#
$userdata['user_id'] ==
#
#-----[ IN-LINE BEFORE, ADD ]----------------------------------
#
time() <= $limit_time &&
#
#-----[ FIND ]------------------------------------------------
#
if ($userdata['user_id'] == $poster_id && $is_auth['auth_delete'] && $forum_topic_data['topic_last_post_id'] == $postrow[$i]['post_id'])
#
#-----[ IN-LINE FIND ]---------------------------------------
#
$userdata['user_id'] ==
#
#-----[ IN-LINE BEFORE, ADD ]----------------------------------
#
time() <= $limit_del_time &&
#
#-----[ OPEN ]------------------------------------------------
#
posting.php
#
#-----[ FIND ]------------------------------------------------
#
$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 . "
#
#-----[ IN-LINE FIND ]---------------------------------------
#
, p.poster_id
#
#-----[ IN-LINE AFTER, ADD ]----------------------------------
#
, p.post_time
#
#-----[ FIND ]------------------------------------------------
#
//
// Can this user edit/delete the post/poll?
//
#
#-----[ AFTER, ADD ]------------------------------------------
#
$limit_time = $post_info['post_time'] + (intval($board_config['edit_time_limit']) * 60);
if ( time() > $limit_time && ($mode == 'editpost') && !$is_auth['auth_mod'])
{
$message = sprintf($lang['post_limit_time'],$board_config['edit_time_limit']) . '<br /><br />' . sprintf($lang['Click_view_message'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $post_id) . '#' . $post_id . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}
$limit_del_time = $post_info['post_time'] + (intval($board_config['delete_time_limit']) * 60);
if ( time() > $limit_del_time && ($mode == 'delete' || $mode == 'poll_delete') && !$is_auth['auth_mod'])
{
$message = sprintf($lang['post_limit_time'],$board_config['delete_time_limit']) . '<br /><br />' . sprintf($lang['Click_view_message'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $post_id) . '#' . $post_id . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}
#
#-----[ OPEN ]------------------------------------------------
#
admin/admin_board.php
#
#-----[ FIND ]------------------------------------------------
#
"L_HOT_THRESHOLD" => $lang['Hot_threshold'],
#
#-----[ AFTER, ADD ]------------------------------------------
#
'L_EDIT_TIME_LIMIT' => $lang['edit_time_limit'],
'L_EDIT_TIME_LIMIT_EXPLAIN' => $lang['edit_time_limit_explain'],
'EDIT_TIME_LIMIT' => $new['edit_time_limit'],
'L_DELETE_TIME_LIMIT' => $lang['delete_time_limit'],
'L_DELETE_TIME_LIMIT_EXPLAIN' => $lang['delete_time_limit_explain'],
'DELETE_TIME_LIMIT' => $new['delete_time_limit'],
#
#-----[ OPEN ]------------------------------------------------
#
language/lang_english/lang_admin.php
#
#-----[ FIND ]------------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$lang['edit_time_limit'] = 'Время правки последнего сообщения';
$lang['edit_time_limit_explain'] = 'Установка времени правки последнего сообщения в теме';
$lang['delete_time_limit'] = 'Время удаления последнего сообщения';
$lang['delete_time_limit_explain'] = 'Установка времени удаления последнего сообщения в теме';
#
#-----[ OPEN ]------------------------------------------------
#
language/lang_english/lang_main.php
#
#-----[ FIND ]------------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$lang['post_limit_time'] = 'Извините, но Вы не можете больше править сообщение.';
$lang['delete_limit_time'] = 'Извините, но Вы не можете больше удалять это сообщение или опрос.';
#
#-----[ OPEN ]------------------------------------------------
#
templates/subSilver/admin/board_config_body.tpl
#
#-----[ FIND ]------------------------------------------------
#
<tr>
<td class="row1">{L_HOT_THRESHOLD}</td>
<td class="row2"><input class="post" type="text" name="hot_threshold" size="3" maxlength="4" value="{HOT_TOPIC}" /></td>
</tr>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<tr>
<td class="row1">{L_EDIT_TIME_LIMIT}<br /><span class="gensmall">{L_EDIT_TIME_LIMIT_EXPLAIN}</span></td>
<td class="row2"><input class="post" type="text" name="edit_time_limit" size="4" maxlength="5" value="{EDIT_TIME_LIMIT}" /></td>
</tr>
<tr>
<td class="row1">{L_DELETE_TIME_LIMIT}<br /><span class="gensmall">{L_DELETE_TIME_LIMIT_EXPLAIN}</span></td>
<td class="row2"><input class="post" type="text" name="delete_time_limit" size="4" maxlength="5" value="{DELETE_TIME_LIMIT}" /></td>
</tr>
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM