Центр пользователя  |  Ваши сообщения
Форум поддержки phpBB » phpBB3 » Опыт применения phpBB3

Отображение информации о редактировании сообщений

Решения типовых проблем в использовании phpBB3. FAQ

Сообщение 23 июн 2009, 10:27

Проблема
Вы хотите, чтобы информация о редактировании сообщения отображалась для всех сообщений, а не только для тех, на которые дан ответ.

Решение
Поведение по умолчанию для редактируемых сообщений, даже с включённой соответствующей опцией в панели администрирования, не отображает времени редактирования сообщения, если сообщение является последним в теме, или оно отредактировано администратором или модератором без указания причины редактирования сообщения. Я не хотел оставаться в неведении относительно редактирования сообщений, поэтому внёс некоторые изменения в файл includes/functions_posting.php, и теперь информация о редактировании сообщений отображается всегда, независимо от того, кто и когда редактировал сообщение.

Открыть: includes/functions_posting.php
Найти:

Код: выделить все
        case 'edit_topic':

            // If edit reason is given always display edit info

            // If editing last post then display no edit info
            // If m_edit permission then display no edit info
            // If normal edit display edit info

            // Display edit info if edit reason given or user is editing his post, which is not the last within the topic.
            if ($data['post_edit_reason'] || (!$auth->acl_get('m_edit', $data['forum_id']) && ($post_mode == 'edit' || $post_mode == 'edit_first_post')))
            {
                $data['post_edit_reason']        = truncate_string($data['post_edit_reason'], 255, false);

                $sql_data[POSTS_TABLE]['sql']    = array(
                    'post_edit_time'    => $current_time,
                    'post_edit_reason'    => $data['post_edit_reason'],
                    'post_edit_user'    => (int) $data['post_edit_user'],
                );

                $sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1';
            }
            else if (!$data['post_edit_reason'] && $mode == 'edit' && $auth->acl_get('m_edit', $data['forum_id']))
            {
                $sql_data[POSTS_TABLE]['sql'] = array(
                    'post_edit_reason'    => '',
                );
            }

            // If the person editing this post is different to the one having posted then we will add a log entry stating the edit
            // Could be simplified by only adding to the log if the edit is not tracked - but this may confuse admins/mods
            if ($user->data['user_id'] != $poster_id)
            {
                $log_subject = ($subject) ? $subject : $data['topic_title'];
                add_log('mod', $data['forum_id'], $data['topic_id'], 'LOG_POST_EDITED', $log_subject, (!empty($username)) ? $username : $user->lang['GUEST']);
            }

            if (!isset($sql_data[POSTS_TABLE]['sql']))

Заменить на:

Код: выделить все
        case 'edit_topic':

            // If edit reason is given always display edit info

            // If editing last post then display no edit info
            // If m_edit permission then display no edit info
            // If normal edit display edit info

            // Display edit info if edit reason given or user is editing his post, which is not the last within the topic.
                $sql_data[POSTS_TABLE]['sql'] = array(
                    'post_edit_time'   => $current_time,
                    'post_edit_reason'   => $data['post_edit_reason'],
                    'post_edit_user'   => (int) $data['post_edit_user'],
                );

                $sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1';

            // If the person editing this post is different to the one having posted then we will add a log entry stating the edit
            // Could be simplified by only adding to the log if the edit is not tracked - but this may confuse admins/mods
                    $log_subject = ($subject) ? $subject : $data['topic_title'];
                add_log('mod', $data['forum_id'], $data['topic_id'], 'LOG_POST_EDITED', $log_subject, (!empty($username)) ? $username : $user->lang['GUEST']);

            if (!isset($sql_data[POSTS_TABLE]['sql']))


Оригинал: ktuk.net

Перевод: Kastaneda
Источник: teosofia.ru
Искренне Ваш,
Евгений
Аватар пользователя
Tarus
Локализатор
 
Сообщений: 404
Зарегистрирован:
13 дек 2008, 13:26

Сообщение 10 янв 2011, 22:10

Работает эта вещь неправильно. Всегда указывает, что редактировал автор сообщения.
Аватар пользователя
Key
Локализатор
 
Сообщений: 183
Зарегистрирован:
02 июн 2009, 18:50
Откуда:
г. Саранск


Вернуться в Опыт применения phpBB3

Кто сейчас на форуме

Зарегистрированные пользователи: Google [Bot], Yandex [Bot]

Форум поддержки phpBB
 
2008 - 2011 © BB3x.ru
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group