Удаление дополнительных заголовков сообщений (Re: subj)

У каждого сообщения в phpBB есть свой заголовок, отображаемый перед текстом самого сообщения. Предполагалось, что форумчане смогут указывать тему сообщения в случаях, когда она отклоняется от изначальной темы топика, однако на деле в 98% случаев этот функционал не используется — и все пользователи в итоге видят лишь ненужные повторы заголовка темы с добавлением Re: перед ним. Поэтому опишу несколько способов, как избавиться от этого рудимента.

Удаление Re: из шаблона страниц просмотра темы

удаление re: из шаблонов phpBB

Для начала уберём дополнительный заголовок со страниц просмотра тем (так называемый viewtopic). Делается это элементарно — открываем шаблон styles/prosilver/template/viewtopic_body.html и находим там строчку:

Упоминаемая здесь переменная {postrow.POST_SUBJECT} и есть тот самый заголовок сообщения. Можно убрать всю строчку, но лучше лишь эту часть:

Тогда иконки сообщений сохранятся и будут отображаться, как и раньше.

Для шаблонов, основанных на subsilver2, надо искать строчку вида:

и удалять оттуда такой код:

Разумеется, после произведённых действий не забудьте сохранить изменения в файлах, загрузить их на сервер и обновить в админке соответствующий шаблон.

Но описанный выше способ может показаться слишком уж радикальным, ибо он не будет показывать заголовки сообщений вообще никому. А иногда требуется сохранить отображение для некоторых групп пользователей, например, для администраторов и модераторов. Вспоминаем, что в phpBB есть шаблонные переменные, которые в данном случае подойдут как нельзя кстати. Алгоритм действий тот же самый, только вместо удаления части строки нужно вставлять до и после неё шаблонные условия. Условие для администраторов выглядит так:

Для модераторов:

Для тех и других одновременно (то есть будет показываться и администраторам, и модераторам):

Чтобы было совсем понятно, покажу, как надо оформить в условия нужную нам строчку:

Удаление Re: из шаблона написания сообщений

Для полноты работы теперь удалим текстовое поле для ввода дополнительного заголовка, которое отображается в форме написания ответа в тему:

удаление re: из шаблонов phpBB

За этот шаблон отвечает файл posting_editor.htmlprosilver надо редактировать styles/prosilver/template/posting_editor.html, ища в нём строчки:

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

В результате получим:

Аналогично и для subsilver2-стилей, только открывать надо уже файл styles/subsilver2/template/posting_body.html и искать такие строки:

Всё, после этого задача является выполненной.

Небольшая вариация

Отдельно рассмотрим случай, когда заголовок сообщения на странице просмотра темы надо выводить, а вот при редактировании сообщения — наоборот, не надо — но только пользователям, а администраторы и модераторы должны иметь возможность редактировать его. Тогда нужно редактировать лишь файл шаблона, отвечающего за постинг, так, чтобы пользователям не показывалось поле ввода, но при этом не удаляя его совсем. Для этого открываем всё тот же styles/prosilver/template/posting_editor.html, ища в нём строчки:

и заменяем на такой код:

Для subsilver2 надо открывать файл styles/subsilver2/template/posting_body.html и искать такие строки:

после чего заменять их на такие:

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

  • Крокодил
    24.08.2018, 15:52

    Небольшая вариация — там говнокод. После замены на этот говнокод — в сабсилвере поплыла форма расширенного редактирования.

    Прежде чем публиковать говнокоды — надо их проверять на работающем форуме!!!!!