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

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

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

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

Сообщение 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
Администратор
Администратор
Сообщения: 5213
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 189
Репутация: 601
Откуда: Белгород
Контактная информация:
Статус: Не в сети

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

Сообщение 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
Администратор
Администратор
Сообщения: 5213
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 189
Репутация: 601
Откуда: Белгород
Контактная информация:
Статус: Не в сети

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

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

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

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

Ответить

Вернуться в «Движок phpBB»

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

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