Проверка на категорию

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
recorder
phpBB 1.4.1
Сообщения: 44
Стаж: 13 лет 9 месяцев
Благодарил (а): 5 раз

Проверка на категорию

Сообщение recorder »

Здравствуйте! Подскажите пожалуйста как сделать условие IF для категорий. Скин subsilver2.

Например, имеется Форум(главная) => Новости(категория) => Москва(список тем с подфорумом). Для подфорума я сделал отдельный шаблон и добавил свой заголовок. Проблема в том что при просмотре категории движок использует шаблон подфорума, соответственно и заголовок выводится как у шаблона, а нужно название категории. Предполагаю что можно сделать условие вида:

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

<!-- IF THE_CATEGORY --><h2>Категория</h2><!-- ELSE --><h2>Подфорумы</h2><!-- ENDIF -->
но каким образом это сделать незнаю. По крайней мере функцию проверки на категорию не нашёл, если она есть. Рассчитываю на вашу помощь форумчане.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Проверка на категорию

Сообщение Sheer »

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

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

<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS -->
Поиск по конференции: подфорумы рулит!
Список подфорумов в столбик

В мусор!
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Проверка на категорию

Сообщение Shredder »

Смотри функцию generate_forum_nav в includes/functions_display.php. Пример оттуда:

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

		'S_IS_CAT'		=> ($forum_data['forum_type'] == FORUM_CAT) ? true : false,
Сделать можно по аналогии, как там: сначала делается запрос о данных форума из БД, затем используется поле forum_type, полученное из этого запроса, и сравнивается с константой FORUM_CAT, как в примере выше.
Последний раз редактировалось Shredder 02.01.2014 2:47, всего редактировалось 2 раза.
Аватара пользователя
recorder
phpBB 1.4.1
Сообщения: 44
Стаж: 13 лет 9 месяцев
Благодарил (а): 5 раз

Re: Проверка на категорию

Сообщение recorder »

В админке оно значится как "категория", там где "тип форума". Прошуршал поиск, решения не нашел. Или видимо знаний не хватает. Буду благодарен если тыкните носом на решение данной проблемы.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Проверка на категорию

Сообщение Shredder »

recorder
Написал выше.

Только одно условие: чтобы такая проверка работала, в настройках форума в админке должен быть указан тип форума "Категория". Только тогда этот форум будет считаться категорией для движка.

Добавлено спустя 4 минуты 12 секунд:
recorder
В каком файле шаблона нужно сделать эту проверку?
Аватара пользователя
recorder
phpBB 1.4.1
Сообщения: 44
Стаж: 13 лет 9 месяцев
Благодарил (а): 5 раз

Re: Проверка на категорию

Сообщение recorder »

Shredder
Спасибо за подсказки, пока что ничего не выходит правда...

Файл forumlist_body.html стандартно.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Проверка на категорию

Сообщение Shredder »

В forumlist_body.html уже есть готовое условие, и оно там даже используется:

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

<!-- IF forumrow.S_IS_CAT -->
Аватара пользователя
recorder
phpBB 1.4.1
Сообщения: 44
Стаж: 13 лет 9 месяцев
Благодарил (а): 5 раз

Re: Проверка на категорию

Сообщение recorder »

Пробовал, не работает, если конечно я всё правильно сделал.

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

<!-- BEGIN forumrow -->
	<!-- IF forumrow.S_IS_CAT -->
                <tr>
                        <td>Информация не выводится</td>
               </tr>
		<tr>
			<td class="cat" colspan="2"><h4><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a></h4></td>
			<td class="catdiv" colspan="3">&nbsp;</td>
		</tr>
	<!-- ELSEIF forumrow.S_IS_LINK -->
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Проверка на категорию

Сообщение Shredder »

Подозреваю, что та вещь, которую вы хотите изменить, находится вовсе не в forumlist_body.html
Покажите стрелкой на скрине, что и на какой странице хотите поменять. Так будет более понятно.
Аватара пользователя
recorder
phpBB 1.4.1
Сообщения: 44
Стаж: 13 лет 9 месяцев
Благодарил (а): 5 раз

Re: Проверка на категорию

Сообщение recorder »

Вполне вероятно что я не совсем понятно изъяснил, хотя в первом посте вроде попытался подробно расписать ) Попробую ещё подробнее.

Для вывода подфорумов я сделал subforum.html, с начинкой от forumlist_body.html. Единственное изменение - добавил заголовок "Подфорумы". В файле viewforum_body.html есть условие для подфорумов:

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

<!-- IF S_HAS_SUBFORUM -->
	<!-- INCLUDE forumlist_body.html -->
	<br clear="all" />
<!-- ENDIF -->
собственно forumlist_body.html заменил на subforum.html
Всё выводит как положено, НО единственная загвоздка - при просмотре категории со списком форумов используется шаблон subforum.html и соответственно вместо названия категории выводится "Подфорумы".

Скрины
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
recorder
phpBB 1.4.1
Сообщения: 44
Стаж: 13 лет 9 месяцев
Благодарил (а): 5 раз

Re: Проверка на категорию

Сообщение recorder »

Sheer писал(а):В phpbb3 нет категорий, есть форумы. Категория является особым типом форума.

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

<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS -->
В мусор!
Sheer

В поиске ничего подобного нет. Прежде чем удалять тему тыкните носом пожалуйста на решение.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Проверка на категорию

Сообщение Sheer »

recorder писал(а):В поиске ничего подобного нет
Пример кода с условием тут Список подфорумов в столбик
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
recorder
phpBB 1.4.1
Сообщения: 44
Стаж: 13 лет 9 месяцев
Благодарил (а): 5 раз

Re: Проверка на категорию

Сообщение recorder »

Это условие работает только в forumrow и при добавлении заголовки множатся. Вот код шаблона:

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

<table class="tablebg" cellspacing="1" width="100%">
<tr><th colspan="5"><!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS -->{forumrow.FORUM_NAME}<!-- ELSE -->Подфорумы<!-- ENDIF --></th></tr>
<tr class="desc">
	<td colspan="2">&nbsp;{L_FORUM}&nbsp;</td>
	<td>&nbsp;{L_TOPICS}&nbsp;</td>
	<td>&nbsp;{L_POSTS}&nbsp;</td>
	<td>&nbsp;{L_LAST_POST}&nbsp;</td>
</tr>
<!-- BEGIN forumrow -->
<!-- IF forumrow.S_IS_CAT -->
<tr><th colspan="5"><h4><a href="{forumrow.U_VIEWFORUM}" class="forumtitle">{forumrow.FORUM_NAME}</a></h4></th></tr>
	<!-- ELSEIF forumrow.S_IS_LINK -->
		<tr>
			<td class="row1" width="1%" align="center">{forumrow.FORUM_FOLDER_IMG}</td>
			<td class="row1">
				<!-- IF forumrow.FORUM_IMAGE -->
					<div style="float: {S_CONTENT_FLOW_BEGIN}; margin-{S_CONTENT_FLOW_END}: 5px;">{forumrow.FORUM_IMAGE}</div>
				<!-- ENDIF -->
				<a class="forumlink" href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a>
				<p class="forumdesc">{forumrow.FORUM_DESC}</p>
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Проверка на категорию

Сообщение Shredder »

Условия, начинающиеся с IF forumrow., НЕ могут идти раньше объявления <!-- BEGIN forumrow --> или позже завершения этого цикла командой <!-- END forumrow -->
Проще говоря, всё, что начинается с forumrow., будет работать только между <!-- BEGIN forumrow --> и <!-- END forumrow -->
Аватара пользователя
recorder
phpBB 1.4.1
Сообщения: 44
Стаж: 13 лет 9 месяцев
Благодарил (а): 5 раз

Re: Проверка на категорию

Сообщение recorder »

Какие есть варианты?

Вернуться в «Поддержка phpBB 3.0.х»