Магазин
Правила Ответы на вопросы Конфиденциальность
Магазин
Правила Ответы на вопросы Конфиденциальность
  • Быстрые действия Ярлыки
    Общие действия
    Связаться с администрацией
    • Бот

       

Минимоды и хаки для phpBB3

  • Список форумов
  • phpBB 3.0
  • Другие моды для phpBB3
  • Минимоды и хаки для phpBB3

Изображения вместо текстовых ссылок в подфорумах

автор FladeX

Небольшие моды и хаки для форума phpBB3
Правила форума
При размещении мода/статьи взятой с другого форума/сайта обязательно необходимо указывать первоисточник сообщения.

5 сообщений
 • Страница 1 из 1
Просмотры: 717 • 
guru3000
Пользователь
Сообщения: 139
Зарегистрирован: 01 мар 2010, 13:42
Сообщение 29 май 2011, 23:38
ПОЛЕЗНО ДЛЯ ТРЕКЕРОВ


Рассмотрим форум, где в одном из разделов есть много подфорумов, посвященных чем-то однотипному. В качестве конкретного примера - баскетбольный форум с разделом, посвящённым командам. Каждый подфорум соответствует какой-то команде. Задача такая - вместо названия подфорумов выводить картинку-логотип команды. Задача выполнена, ниже я объясню, как это сделать.

Вариант списка форумов до начала работ:



Видно, что текст воспринимается не слишком легко из-за большого количества подфорумов, названия которых перечислены в одной строке. Поэтому заменим их на логотипы соответствующих команд. Для этого понадобится найти эти самые логотипы, причём желательно в одинаковом формате. Затем каждый из логотипов нужно назвать в соответствии с id подфорума команды, обладающей данным логотипом. Должно получится что-то вроде 83.jpg, 84.jpg, 102.jpg и так далее.

Теперь загрузим все эти картинки в отдельную папку в директории images. В моём случае папка называлась teams. После этого с графикой всё будет закончено и можно приступать к скриптам.

Откроем файл includes/functions_display.php. Сначала нужно выделить id подфорума в отдельную переменную, чтобы с ней можно было работать - ведь все файлы-логотипы названы по id соответствующих подфорумов. Для этого найдёт такой участок кода:

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

				if ($subforum_row['display'] && $subforum_row['name'])
				{
					$subforums_list[] = array(
						'link'		=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $subforum_id),
						'name'		=> $subforum_row['name'],
						'unread'	=> $subforum_unread,
					);
				}
и добавим туда ещё одну строчку с новым элементом массива $subforums_list[]:

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

				if ($subforum_row['display'] && $subforum_row['name'])
				{
					$subforums_list[] = array(
						'link'		=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $subforum_id),
						'name'		=> $subforum_row['name'],
						'unread'	=> $subforum_unread,
						'id'		=> $subforum_id,
					);
				}
Теперь нужно при формировании списка подфорума поставить условие на id форума, а затем для выбранного форума выводить список подфорумов не текстом, а картинками. Для этого находим в этом же файле такие строки:

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

		$s_subforums_list = array();
		foreach ($subforums_list as $subforum)
		{
			$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['NEW_POSTS'] : $user->lang['NO_NEW_POSTS']) . '">' . $subforum['name'] . '</a>';
		}
		$s_subforums_list = (string) implode(', ', $s_subforums_list);
и заменим на такой код:

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

		$s_subforums_list = array();
		// by FladeX
		if ($row['forum_id'] == 82)
		{
			foreach ($subforums_list as $subforum)
			{
				$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum" title="' . (($subforum['unread']) ? $user->lang['NEW_POSTS'] : $user->lang['NO_NEW_POSTS']) . '"><img src="images/icons/teams/' . $subforum['id'] . '.jpg" alt="' . $subforum['name'] . '" /></a>';
			}
			$s_subforums_list = (string) implode(' ', $s_subforums_list);
		}
		else
		{
			foreach ($subforums_list as $subforum)
			{
				$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['NEW_POSTS'] : $user->lang['NO_NEW_POSTS']) . '">' . $subforum['name'] . '</a>';
			}
			$s_subforums_list = (string) implode(', ', $s_subforums_list);
		}
		// by FladeX
Сразу уточню, какие данные здесь являются переменными:
82 - id форума, подфорумы которого мы хотим выводить в виде картинок;
images/icons/teams/' . $subforum['id'] . '.jpg - путь к картинкам-логотипам, а также их формат.

В итоге получился такой список форумов:



Получившийся вариант не отличается компактностью - с правой стороны имеется пустое пространство, которое было бы неплохо заполнить. Для этого уберём пробелы между иконками, чтобы они выводились в ряд без автопереносов, а затем добавим
для отделения новых строк после каждых десяти иконок. Меняем код в includes/functions_display.php на такой:

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

		// by FladeX
		if ($row['forum_id'] == 82)
		{
			$lines_counter = 0;
			foreach ($subforums_list as $subforum)
			{
				$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum" title="' . (($subforum['unread']) ? $user->lang['NEW_POSTS'] : $user->lang['NO_NEW_POSTS']) . '"><img src="images/icons/teams/' . $subforum['id'] . '.jpg" alt="' . $subforum['name'] . '" /></a>';
				$lines_counter++;
				if ($lines_counter == 10)
				{
					$s_subforums_list[] = '<br />';
					$lines_counter = 0;
				}
			}
			$s_subforums_list = (string) implode('', $s_subforums_list);
		}
		else
		{
			foreach ($subforums_list as $subforum)
			{
				$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['NEW_POSTS'] : $user->lang['NO_NEW_POSTS']) . '">' . $subforum['name'] . '</a>';
			}
			$s_subforums_list = (string) implode(', ', $s_subforums_list);
		}
		// by FladeX


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

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

		// by FladeX
		if ($row['forum_id'] == 82)
		{
			$lines_counter = 0;
			foreach ($subforums_list as $subforum)
			{
				if ($subforum['unread'])
				{
					$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum" title="' . $user->lang['NEW_POSTS'] . '"><img src="images/icons/teams/' . $subforum['id'] . '.jpg" alt="' . $subforum['name'] . '" /></a>';
				}
				else
				{
					$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum" title="' . $user->lang['NO_NEW_POSTS'] . '"><img src="images/icons/teams/' . $subforum['id'] . '_read.jpg" alt="' . $subforum['name'] . '" /></a>';
				}
				$lines_counter++;
				if ($lines_counter == 10)
				{
					$s_subforums_list[] = '<br />';
					$lines_counter = 0;
				}
			}
			$s_subforums_list = (string) implode('', $s_subforums_list);
		}
		else
		{
			foreach ($subforums_list as $subforum)
			{
				$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['NEW_POSTS'] : $user->lang['NO_NEW_POSTS']) . '">' . $subforum['name'] . '</a>';
			}
			$s_subforums_list = (string) implode(', ', $s_subforums_list);
		}
		// by FladeX
На мой взгляд, очень эффектное решение. Это может пригодится спортивным форумам, автомобильным форумам и любым другим, где есть разделы с большим количеством подфорумов.

Источник: http://fladex.ru/news/a-134.html
guru3000
Аватара пользователя
votept
Донатор
Сообщения: 806
Зарегистрирован: 18 июл 2010, 17:57
Сообщение 29 май 2011, 23:43
:lol: Не я много видел всякого конечно.... Но такое извращение первый раз вижу. :shock: Без комментариев...
votept
maksvel1999
Донатор
Сообщения: 370
Зарегистрирован: 02 ноя 2009, 15:05
Сообщение 30 май 2011, 01:11
Спс пригодится.
maksvel1999
Аватара пользователя
GayveR
Донатор
Сообщения: 127
Зарегистрирован: 06 янв 2010, 18:31
Сообщение 31 май 2011, 01:24
у себя делал.... был подфорум сериалов.... и для каждого сериала была отдельная иконка, с одной стороны очень даже неплохо смотрицца
GayveR
Аватара пользователя
TFan
Донатор
Сообщения: 201
Зарегистрирован: 05 май 2011, 23:43
Сообщение 31 май 2011, 22:02
GayveR писал(а):очень даже неплохо смотрицца
Пробывал у себя на старом форуме про жанры фильмов - тоже полезная вещь и более информативная, чем набор слов...
Адаптирую любой шаблон от phpBB3 под любую версию ppkBB3cker.
TFan
5 сообщений
 • Страница 1 из 1

Вернуться в «Минимоды и хаки для phpBB3»

Time: 0.000s | Queries: 0 | Peak Memory Usage: 0.00 МБ | GZIP: Unknown | SQL Explain
  • Список форумов
2018, made with by ThemeKita Создано на основе phpBB® Forum Software © phpBB Limited Русская поддержка phpBB (C) 2009-2025 @ PPK
  • Часовой пояс: UTC+04:00
Участники темы
Список форумов Участники темы
Перейти
Сайт ↳   Новости по сайту ↳   Новости обновлений ↳   Вопросы по сайту ↳   Non-russian speakers forum phpBB 3.1-3.3 ↳   Вопросы по phpBB 3.1-3.3 ↳   Расширения для phpBB 3.1-3.3 ↳   Условно-бесплатные расширения ↳   Платные расширения ↳   Расширения для подписчиков ↳   Расширения в разработке ↳   База расширений ↳   Стили для phpBB 3.1-3.3 ↳   Переводы расширений для phpBB3.1-3.3 ↳   Поиск и запросы расширений ↳   Запросы расширений, функционала и переводов для подписчиков ppkBB3cker ↳   Новости по трекеру и обновлениям ↳   Ошибки, проблемы, недочёты ↳   Предложения по новым функциям и возможностям ↳   Вопросы, ответы и примеры решений ↳   Моды и стили для трекера ↳   Готовые стили для трекера ↳   Запросы стилей для трекера ↳   Стили в разработке ↳   Готовые моды для трекера ↳   Запросы модов для трекера ↳   Моды в разработке ↳   Остальное ↳   F.A.Q. ↳   Ваши трекеры ↳   Оффтопик xbtBB3cker ↳   Новости по трекеру и обновлениям ↳   Вопросы, ответы, ошибки и обсуждение phpBB 3.0 ↳   Другие моды для phpBB3 ↳   Минимоды и хаки для phpBB3 ↳   Вопросы по phpBB3 ↳   phpBB3 ppkBB3cker Edition ↳   Платные услуги, моды, стили ↳   BB2Spoiler/BB3Spoiler ↳   BB3Topics ↳   BB3Sape ↳   BB3UserAgentInfo