Убираем значки форумов из списка форумов и делаем активные иконки

Здесь обсуждается форумный движок phpBB различных версий. В дальнейшем, если понадобится, форум будет вынесен в отдельный подраздел и разбит на категории.
Ответить
Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4475
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 172
Репутация: 548
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Убираем значки форумов из списка форумов и делаем активные иконки

Сообщение DesignerMix » 09 дек 2015, 11:23


Здравствуйте, так как меня спрашивали пару раз в личке и на форуме, я решил сделать небольшую инструкцию с описанием процесса удаления значков форумов и созданием активных иконок которые-бы показывали пользователям что в форуме есть новая тема или сообщение. Все ниже перечисленное работает на движке версии 3.1.6 и ниже. В более поздних версиях возможны некоторые изменения.

Способ описанный здесь основан на двух сообщениях с форума phpbbguru (удаление значков форумов, замена иконок форумов) (спасибо их авторам!), правда правки кода немного переделаны мной для того, чтобы привести их к виду современной версии движка.

Я использую тему оформления SE Square Left которая основана на стандартной теме ProSilver, поэтому правки кода будут выполняться только в ProSilver. Если вы используете тему основанную не на ProSilver или основанную на нем но со своим файлом forumlist_body.html то правки ниже делайте в файле для вашей темы (код может незначительно отличаться).

Первым делом естественно надо присвоить всем форумам иконки. Это можно сделать из админки на вкладке Форумы в разделе Управление форумами и далее в настройках каждого форума надо ввести в поле Значок форума: путь до файла иконки форума. Когда вы зададите иконки для всех нужных вам форумов можно продолжать.

Убираем из кода темы оформления значки форумов:

Открываем файл папка_с_форумом\styles\prosilver\template\forumlist_body.html

Найдите строку:

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

<dl class="icon {forumrow.FORUM_IMG_STYLE}">


Замените на:

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

<dl class="icon">


Найдите строку:

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

<!-- IF forumrow.S_UNREAD_FORUM --><a href="{forumrow.U_VIEWFORUM}" class="icon-link"></a><!-- ENDIF -->


Добавьте после:

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

<!-- IF forumrow.FORUM_IMAGE --><span class="forum-image">{forumrow.FORUM_IMAGE}</span><!-- ENDIF -->


Найдите строку:

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

<div class="list-inner">


Замените на:

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

<div class="list-inner index">


Найдите строки:

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

<!-- IF S_ENABLE_FEEDS and forumrow.S_FEED_ENABLED --><!-- <a class="feed-icon-forum" title="{L_FEED} - {forumrow.FORUM_NAME}" href="{U_FEED}?f={forumrow.FORUM_ID}"><img src="{T_THEME_PATH}/images/feed.gif" alt="{L_FEED} - {forumrow.FORUM_NAME}" /></a> --><!-- ENDIF -->

                  <!-- IF forumrow.FORUM_IMAGE --><span class="forum-image">{forumrow.FORUM_IMAGE}</span><!-- ENDIF -->


Замените на:

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

<!-- IF S_ENABLE_FEEDS and forumrow.S_FEED_ENABLED --><!-- <a class="feed-icon-forum" title="{L_FEED} - {forumrow.FORUM_NAME}" href="{U_FEED}?f={forumrow.FORUM_ID}"><img src="{T_THEME_PATH}/images/feed.gif" alt="{L_FEED} - {forumrow.FORUM_NAME}" /></a> --><!-- ENDIF -->


Сохраните изменения и очистите кэш форума из админки и кэш браузера нажатием CTRL+F5.

Теперь надо сделать иконки форумов активными, чтобы при создании новой темы или нового сообщения в форуме иконки менялись и давали пользователям знать что в форуме за которым они следят что-то добавилось.

Для начала естественно потребуется придумать как изменить иконку таким образом, чтобы пользователи однозначно понимали что в форуме есть изменения. Я у себя добавил красную звездочку в угол каждой иконки. Однако помните что оригинальные и измененные иконки должны иметь одно и то же имя, расширение и размеры! Когда вы сделали необходимые изменения создайте в корне форума папку, например с названием unread и в ней уже создайте такой-же путь как и путь до ваших иконок. Например я храню иконки в папке images в корне форума, поэтому в папке unread я создаю только одну папку images и загружаю туда измененные иконки (с теми-же именами, расширениями и размерами что и оригиналы).

Когда это сделано можно приступить к правке ядра форума учитывая имя папки (в моем случае unread). Эти правки позволят иконкам стать "живыми".

Открываем файл папка_с_форумом/includes/functions_display.php

Найдите строку:

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

$folder_image = $folder_alt = $l_subforums = '';


Замените на:

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

/* $folder_image = $folder_alt = $l_subforums = ''; */
      $folder_image = $folder_alt = $l_subforums = $forum_image_unread = '';
      $forum_image_unread = ($forum_unread) ? 'unread/' : '';


Найдите строку:

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

$folder_image = ($forum_unread) ? 'forum_unread_subforum' : 'forum_read_subforum';


Добавьте после:

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

$forum_image_unread = ($forum_unread) ? 'unread/' : '';


Найдите строку:

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

$folder_image = ($forum_unread) ? 'forum_unread' : 'forum_read';


Добавьте после:

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

$forum_image_unread = ($forum_unread) ? 'unread/' : '';


Найдите строку:

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

$folder_image = ($forum_unread) ? 'forum_unread_locked' : 'forum_read_locked';


Добавьте после:

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

$forum_image_unread = ($forum_unread) ? 'unread/' : '';


Найдите строку:

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

'FORUM_IMAGE'         => ($row['forum_image']) ? '<img src="' . $phpbb_root_path . $row['forum_image'] . '" alt="' . $user->lang[$folder_alt] . '" />' : '',


Замените на:

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

'FORUM_IMAGE'         => ($row['forum_image']) ? '<img src="' . $phpbb_root_path . $forum_image_unread . $row['forum_image'] . '" alt="' . $user->lang[$folder_alt] . '" />' : '',


Сохраните файл и снова очистите кэш форума.

Вроде как я ничего не забыл, но прошу отписаться если у кого-то возникнут сложности.

Теги:


vanart
Новичок
Сообщения: 11
Зарегистрирован: 30 ноя 2015, 06:26
Репутация: 0
Статус: Не в сети

Убираем значки форумов из списка форумов и делаем активные иконки

Сообщение vanart » 09 дек 2015, 22:45


Спасибо за ваше терпение!

Для тех кто на бронепоезде :thinking: как отчистить кеш, если форум хоститься не на домашнем компьютере т.е. все происходит через c panel?

И еще, вы говорите, что надо все иконки сначала подставить, я так понимаю что речь идет о главной странице, а на подфорумы иконки ставить не обязательно :
http://bajawindsports.com/forum/
- так как на вашем форуме?
Спасибо!

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

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4475
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 172
Репутация: 548
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Убираем значки форумов из списка форумов и делаем активные иконки

Сообщение DesignerMix » 09 дек 2015, 22:55


Кэш очищается с главной страницы админки, там одноименная кнопка.

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


vanart
Новичок
Сообщения: 11
Зарегистрирован: 30 ноя 2015, 06:26
Репутация: 0
Статус: Не в сети

Убираем значки форумов из списка форумов и делаем активные иконки

Сообщение vanart » 09 дек 2015, 23:28


IT is miracle! it works!
God bless you Man!

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

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4475
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 172
Репутация: 548
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Убираем значки форумов из списка форумов и делаем активные иконки

Сообщение DesignerMix » 09 дек 2015, 23:31


А, нет, сейчас проверил - значки форумов удаляются и с главной и с подфорумов. Дополнительных правок не требуется. Так что ставьте иконки и на подфорумы, иначе там будут пустые места.

Отправлено спустя 1 минуту 8 секунд:
vanart писал(а):Источник цитаты it works!

:super: