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

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

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

Сообщение 23 июн 2009, 11: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
Разработчик скинов
 
Сообщений: 1066
Зарегистрирован:
13 дек 2008, 14:26
Благодарил (а): 0 раз.
Поблагодарили: 115 раз.

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

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


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

 


  • Похожие темы
    Ответов
    Просмотров
    Последнее сообщение

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Форум поддержки phpBB
2008 - 2017 © BB3x.ru - русская поддержка форума phpBB3
Создано на основе phpBB® Forum Software © phpBB Group
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама