Отображение подфорумов в списке форумов

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
ibndoom
phpBB 1.0.0
Сообщения: 5
Стаж: 14 лет 1 месяц

Отображение подфорумов в списке форумов

Сообщение ibndoom »

Здравствуйте

У меня появилась проблема.
Версия форума 3.0.10
Есть форум со структурой:
Форум
- Под-форум уровень 1
-- Под-форум уровень 2

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

Мне нужно чтобы при заходе на главную страницу у меня меня отображался список форумов, а в легенде только те под-форумы, прямым родителем которых является этот форум.
При заходе внутрь любого форума у его дочерних под-форумов также должны отображаться под-форумы в легенде.

Если я правильно понял, формирования списка под-форумов идёт в файле includes/functions_display.php в районе строки 367

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

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,
						);
										
				}
				else
				{
					unset($subforums[$forum_id][$subforum_id]);
				}

Кто-нибудь решал подобную задачу?
ibndoom
phpBB 1.0.0
Сообщения: 5
Стаж: 14 лет 1 месяц

Re: Отображение подфорумов в списке форумов

Сообщение ibndoom »

Вопрос решился практически сам собой :)

достаточно было добавить всего 1 проверку:

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

if ($subforum_row['display'] && $subforum_row['name'])
				{
					
					
					if (check_parent($subforum_id) == $forum_id){
	
						$subforums_list[] = array(
							'link'		=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $subforum_id),
							'name'		=> $subforum_row['name'],
							'unread'	=> $subforum_unread,
						);
					}
					
					if ( $subforums[$parent_id] ) {
						
					}
				}
				else
				{
					unset($subforums[$forum_id][$subforum_id]);
				}
Здесь функция check_parent() - написана лично мной, возвращает id родителя от переданного ей id
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2229
Стаж: 18 лет 9 месяцев
Откуда: Астана
Благодарил (а): 7 раз
Поблагодарили: 344 раза

Re: Отображение подфорумов в списке форумов

Сообщение nissin »

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

Добавлено спустя 7 минут 43 секунды:
[FAQ] Создание категорий (форумов, подкатегорий, подфорумов)
В две строки без функции:
Как отключить вывод подподфорумов?
ibndoom
phpBB 1.0.0
Сообщения: 5
Стаж: 14 лет 1 месяц

Re: Отображение подфорумов в списке форумов

Сообщение ibndoom »

Спасибо большое.
Я уже тоже нашёл решение :)

Только мой ответ с ним долго апрувится.
Но ваше с использованием

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

if ($subforum_row['display'] && $subforum_row['name'] && $subforum_row['parent_id'] == $forum_id)
значительно лучше.
Спасибо

Вернуться в «Для авторов (phpBB 3.0.x)»