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

       

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

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

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

автор FladeX

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

5 сообщений
 • Страница 1 из 1
Просмотры: 767 • 
  • guru3000 Сообщение 29.05.2011
    ПОЛЕЗНО ДЛЯ ТРЕКЕРОВ


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

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



    Видно, что текст воспринимается не слишком легко из-за большого количества подфорумов, названия которых перечислены в одной строке. Поэтому заменим их на логотипы соответствующих команд. Для этого понадобится найти эти самые логотипы, причём желательно в одинаковом формате. Затем каждый из логотипов нужно назвать в соответствии с 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 Сообщение 29.05.2011
    :lol: Не я много видел всякого конечно.... Но такое извращение первый раз вижу. :shock: Без комментариев...
votept
  • maksvel1999 Сообщение 30.05.2011
    Спс пригодится.
maksvel1999
  • Аватара пользователя
    GayveR Сообщение 31.05.2011
    у себя делал.... был подфорум сериалов.... и для каждого сериала была отдельная иконка, с одной стороны очень даже неплохо смотрицца
GayveR
  • Аватара пользователя
    TFan Сообщение 31.05.2011
    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-2026 @ PPK
  • Часовой пояс: UTC+04:00
Участники темы
Список форумов Участники темы
Перейти
Сайт ↳   Новости по сайту ↳   Новости обновлений ↳   Вопросы по сайту ↳   Non-russian speakers forum Форумы по phpBB 3.1-3.3 ↳   Расширения для phpBB 3.1-3.3 ↳   Бета-версии и расширения в разработке ↳   База расширений ↳   Поиск и запросы расширений ↳   Расширения для phpBB 3.1-3.3 для донаторов ↳   Условно-бесплатные расширения ↳   Платные расширения ↳   Расширения для подписчиков ↳   Запросы расширений, функционала и переводов для подписчиков ↳   Переводы расширений для phpBB3.1-3.3 ↳   Стили для phpBB 3.1-3.3 ↳   Вопросы по phpBB 3.1-3.3 Форумы по phpBB 3.0 ↳   Мод трекера ppkBB3cker ↳   Новости по трекеру и обновлениям ↳   Ошибки, проблемы, недочёты ↳   Предложения по новым функциям и возможностям ↳   Вопросы, ответы и примеры решений ↳   Моды и стили для трекера ↳   Готовые стили для трекера ↳   Запросы стилей для трекера ↳   Стили в разработке ↳   Готовые моды для трекера ↳   Запросы модов для трекера ↳   Моды в разработке ↳   Остальное ↳   Часто задаваемые вопросы ↳   Ваши трекеры ↳   Мод трекера xbtBB3cker ↳   Новости по трекеру и обновлениям ↳   Вопросы, ответы, ошибки и обсуждение ↳   Другие моды для phpBB 3.0 ↳   Минимоды и хаки для phpBB3 ↳   phpBB 3.0 ppkBB3cker Edition ↳   Платные услуги, моды, стили для phpBB 3.0 ↳   BB2Spoiler/BB3Spoiler ↳   BB3Topics ↳   BB3Sape ↳   BB3UserAgentInfo ↳   Вопросы по phpBB 3.0 ↳   Вне тематики форума