Заголовки сообщений (ответов) в темах форума

Что поменялось, добавилось, допилилось и отвалилось
Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Заголовки сообщений (ответов) в темах форума

Сообщение #1 aeplug » 02 апр 2016, 21:54

Особенностью некоторых форумов является наличие заголовков у сообщений, которыми никто не пользуется. Как результат в поиске часто оказываются сообщения совершенно не нужные для искателя, но содержащие ключевые слова в заголовке, скопированные из названия темы с Re:
Думаю удалить их совсем или нет? В интернете толком не ясно, есть как ярые защитники, так и противники.
Надо редактировать заголовки, которые формируются для форм ответов. Я использовал методы для удаления частички Re: из этих инструкций:
Для исходного кода нашел такой метод для отдельной странички ответа
phpBB • Knowledge Base > Remove RE: from replies
https://www.phpbb.com/support/docs/en/3 ... m-replies/
А для формы быстрого ответа нужно похимичить таким же образом в файле viewtopic.php
phpBB • How to remove "Re:" title on each answer post ?
https://www.phpbb.com/community/viewtop ... &t=2118350

Но если стоит расширение QuickReply Reloaded, то оно делает все по другому. В файле

Код: Выделить всё

ext/boardtools/quickreply/event/listener.php

сделал так

Код: Выделить всё

//         $this->template->assign_var('SUBJECT', $this->request->variable('subject', $add_re . censor_text($topic_data['topic_title']), true));
         $this->template->assign_var('SUBJECT', '');


Пока все новые сообщения ответов будут без названия и автор должен сам набрать текст, если сочтет это нужным. Может думаю зачистить заголовки для уже существующих сообщений, которые "Ре" через команду запроса для базы данных

Код: Выделить всё

UPDATE phpbb_posts SET post_subject = '' WHERE post_subject LIKE 'Re: %'

Пока не проверял ее работу :!: и не делал


Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #2 aeplug » 06 апр 2016, 00:11

Оказывается, надо еще и в "Форумных ролях" поставить "Может изменять заголовок сообщения". Кто их вообще придумал и зачем они, если их даже менять люди не могут?

А еще в файле posting.php оказывается есть еще один вариант формы с Re: и полным заголовком сразу после логина. Добавил стирание заголовка темы в форме ответа после логина (кнопка ответить-логин-форма ответа).

Код: Выделить всё

$post_data['post_subject'] = "";

строка 1617
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах

Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Last Post Avatar - Аватары пользователей

Сообщение #3 aeplug » 23 апр 2016, 17:59

Last Post Avatar not fixed.jpg
Last Post Avatar not fixed.jpg (10.94 КБ) 4544 просмотра
Last Post Avatar not fixed.jpg
Last Post Avatar not fixed.jpg (10.94 КБ) 4544 просмотра

Оказывается пустой заголовок и здесь подгадить успел! :ninja:
Картинки выводятся по евенту

Код: Выделить всё

<!-- EVENT forumlist_body_last_post_title_prepend -->

который конечно же не работает, если тема сообщения пустая! Ведь разработчики не удосужились подставить сюда заголовок темы, что само собой напрашивается.
Поэтому пришлось в стиле Prosilver в файле styles/prosilver/template/forumlist_body.html добавить новое событие forumlist_body_last_post_title_prepend2

Код: Выделить всё

                  <!-- EVENT forumlist_body_last_post_title_prepend2 -->
                  <!-- IF forumrow.S_DISPLAY_SUBJECT -->
                     <!-- EVENT forumlist_body_last_post_title_prepend -->

И переименовать файл расширения соответственно!
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах

Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #4 aeplug » 07 май 2016, 00:07

Нет заголовка.jpg
Нет заголовка.jpg (15.65 КБ) 4531 просмотр
Нет заголовка.jpg
Нет заголовка.jpg (15.65 КБ) 4531 просмотр

Как видно на картинке выше, при удалении заголовка сообщения в списке форумов вообще ничего не пишется в столбце "Последнего сообщения". Хотя по идее должно быть написано хотя бы название темы, откуда это сообщение берется. И вот я решил что-то с этим сделать! :grin:
В файле functions_posting.php нашел функцию с похожими параметрами. И на ее основе сделал такой код, определяющий по номеру поста название его темы:

Код: Выделить всё

            $sql2 = 'SELECT p.post_id, p.post_subject, t.topic_title
               FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . " t
                WHERE p.post_id = {$row['forum_last_post_id']}
               AND p.topic_id = t.topic_id";
            $result2 = $db->sql_query($sql2);
            while ($row2 = $db->sql_fetchrow($result2))
            {
               $last_post_subject = ($row2['post_subject'] AND ($row2['post_subject'] <> $row2['topic_title'])) ? ($row2['post_subject'] .' - '. $row2['topic_title']) : $row2['topic_title'];
            }
            $db->sql_freeresult($result2);

Этим блоком надо заменить стандартную строчку формирования текста заголовка в файле functions_display.php (строка 541 для версии PHPBB 3.1.8)

Код: Выделить всё

            $last_post_subject = censor_text($row['forum_last_post_subject']);

Оригинальную функцию из файла functions_posting.php можно посмотреть тут:
Оригинальная функция.jpg
Оригинальная функция.jpg (162.14 КБ) 4533 просмотра
Оригинальная функция.jpg
Оригинальная функция.jpg (162.14 КБ) 4533 просмотра

Смена типа сообщения в колонке "Последнее сообщение"

Для себя я немного переделал поведение. Вместо выбора между названием темы или названием сообщения, я объединил их в одну строку вида "сообщение - тема". Так что теперь можно узнать всю информацию, наведя мышь на ссылку.
Вложения
Полное название.jpg
Полное название.jpg (16.2 КБ) 4530 просмотров
Полное название.jpg
Полное название.jpg (16.2 КБ) 4530 просмотров
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


Вернуться в «Лог изменений форума (ChangeLog)»

Кто сейчас на конференции

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