Как сделать Навигацию (ссылки на Форумы) на Главной странице

Проблемы с установкой или работой 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) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
goshka
phpBB 1.4.2
Сообщения: 71
Стаж: 12 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Как сделать Навигацию (ссылки на Форумы) на Главной странице

Сообщение goshka »

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

ЗАДАЧА.
Как сделать Навигацию (ссылки-переходы на Форумы) на Главной странице форумов

У меня много форумов с развернутыми списками подфорумов.
Главная страница получилась ОЧЕНЬ большая.

Для Главной страницы, в шаблоне forumlist_body.html, (в начале) делаю переходы на Форумы с помощью якорей:
<a href="#ANCHOR1">1-й форум</a>
<a href="#ANCHOR2">2-й форум</a>
<a href="#ANCHOR3">3-й форум</a>
...
...

Якоря:
<a name="ANCHOR1"></a>
<a name="ANCHOR2"></a>
<a name="ANCHOR3"></a>
...
...
вставялю в таблицу phpbb_forums в начало полей forum_name, которые соответсвуют названиям форумов...

И все работает. НО...

При переходе к якорю, на экране не виден верх блока Форума и получается как бы ЧУТОК сверху обрезанный блок, что простоо не красиво!

см. рис.

Лучше, конечно, вставлять якоря перед Форумами... с пом. соответсвующего внутреннего (системного) php скрипта (перед формированием блока очерендного форума вставлять соответсвующий якорь)

Пока, не могу найти сам скрипт. БАЗУ ЗНАНИЙ, ДОКУМЕНТАЦИЮ, смотрел, описания php скриптов и подобных примеров не нашел :( .
Поиском по форуму искал... Увы. Не нашел.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось goshka 10.09.2014 8:51, всего редактировалось 4 раза.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13159
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Как сделать Навигацию (ссылки на Форумы) на Главной стра

Сообщение Татьяна5 »

Якорь добавлять сразу после

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

<!-- IF forumrow.S_IS_CAT or forumrow.S_FIRST_ROW  or forumrow.S_NO_CAT  -->
Или сделать всё по статье Prosilver: другой взгляд на структуру категорий, страница станет меньше
goshka
phpBB 1.4.2
Сообщения: 71
Стаж: 12 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Re: Как сделать Навигацию (ссылки на Форумы) на Главной стра

Сообщение goshka »

Подскажите, пжлс, в строке

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

<a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a>
что означают:
{forumrow.U_VIEWFORUM}
{forumrow.FORUM_NAME}

Я понимаю что это переменные подставляются в шаблон!

Но что описывает forumrow, что U_VIEWFORUM и что FORUM_NAME
Названия файлов, классов, переменных?

Где (в каком скрипте) они формируются? И как создать свою переменную/массив (под якори для каждого своего форума)?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13159
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Как сделать Навигацию (ссылки на Форумы) на Главной стра

Сообщение Татьяна5 »

goshka писал(а):forumrow
Название цикла, в котором выводятся переменные шаблона форумов
goshka писал(а):U_VIEWFORUM
Ссылка на форум (U_ от url)
goshka писал(а):FORUM_NAME
Название форума

Руководство по написанию кода - Работа с шаблонами
goshka писал(а):Где (в каком скрипте) они формируются?
includes/functions_display.php
Для категорий

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

			$template->assign_block_vars('forumrow', array(
				'S_IS_CAT'				=> true,
				'FORUM_ID'				=> $row['forum_id'],
				'FORUM_NAME'			=> $row['forum_name'],
				'FORUM_DESC'			=> generate_text_for_display($row['forum_desc'], $row['forum_desc_uid'], $row['forum_desc_bitfield'], $row['forum_desc_options']),
				'FORUM_FOLDER_IMG'		=> '',
				'FORUM_FOLDER_IMG_SRC'	=> '',
				'FORUM_IMAGE'			=> ($row['forum_image']) ? '<img src="' . $phpbb_root_path . $row['forum_image'] . '" alt="' . $user->lang['FORUM_CAT'] . '" />' : '',
				'FORUM_IMAGE_SRC'		=> ($row['forum_image']) ? $phpbb_root_path . $row['forum_image'] : '',
				'U_VIEWFORUM'			=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']))
			);
и для остальных форумов

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

		$template->assign_block_vars('forumrow', array(
			'S_IS_CAT'			=> false,
			'S_NO_CAT'			=> $catless && !$last_catless,
			'S_IS_LINK'			=> ($row['forum_type'] == FORUM_LINK) ? true : false,
			'S_UNREAD_FORUM'	=> $forum_unread,
			'S_AUTH_READ'		=> $auth->acl_get('f_read', $row['forum_id']),
			'S_LOCKED_FORUM'	=> ($row['forum_status'] == ITEM_LOCKED) ? true : false,
			'S_LIST_SUBFORUMS'	=> ($row['display_subforum_list']) ? true : false,
			'S_SUBFORUMS'		=> (sizeof($subforums_list)) ? true : false,
			'S_FEED_ENABLED'	=> ($config['feed_forum'] && !phpbb_optionget(FORUM_OPTION_FEED_EXCLUDE, $row['forum_options']) && $row['forum_type'] == FORUM_POST) ? true : false,

			'FORUM_ID'				=> $row['forum_id'],
			'FORUM_NAME'			=> $row['forum_name'],
			'FORUM_DESC'			=> generate_text_for_display($row['forum_desc'], $row['forum_desc_uid'], $row['forum_desc_bitfield'], $row['forum_desc_options']),
			'TOPICS'				=> $row['forum_topics'],
			$l_post_click_count		=> $post_click_count,
			'FORUM_FOLDER_IMG'		=> $user->img($folder_image, $folder_alt),
			'FORUM_FOLDER_IMG_SRC'	=> $user->img($folder_image, $folder_alt, false, '', 'src'),
			'FORUM_FOLDER_IMG_ALT'	=> isset($user->lang[$folder_alt]) ? $user->lang[$folder_alt] : '',
			'FORUM_IMAGE'			=> ($row['forum_image']) ? '<img src="' . $phpbb_root_path . $row['forum_image'] . '" alt="' . $user->lang[$folder_alt] . '" />' : '',
			'FORUM_IMAGE_SRC'		=> ($row['forum_image']) ? $phpbb_root_path . $row['forum_image'] : '',
			'LAST_POST_SUBJECT'		=> censor_text($last_post_subject),
			'LAST_POST_TIME'		=> $last_post_time,
			'LAST_POSTER'			=> get_username_string('username', $row['forum_last_poster_id'], $row['forum_last_poster_name'], $row['forum_last_poster_colour']),
			'LAST_POSTER_COLOUR'	=> get_username_string('colour', $row['forum_last_poster_id'], $row['forum_last_poster_name'], $row['forum_last_poster_colour']),
			'LAST_POSTER_FULL'		=> get_username_string('full', $row['forum_last_poster_id'], $row['forum_last_poster_name'], $row['forum_last_poster_colour']),
			'MODERATORS'			=> $moderators_list,
			'SUBFORUMS'				=> $s_subforums_list,

			'L_SUBFORUM_STR'		=> $l_subforums,
			'L_MODERATOR_STR'		=> $l_moderator,

			'U_UNAPPROVED_TOPICS'	=> ($row['forum_id_unapproved_topics']) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue&mode=unapproved_topics&f=' . $row['forum_id_unapproved_topics']) : '',
			'U_VIEWFORUM'		=> $u_viewforum,
			'U_LAST_POSTER'		=> get_username_string('profile', $row['forum_last_poster_id'], $row['forum_last_poster_name'], $row['forum_last_poster_colour']),
			'U_LAST_POST'		=> $last_post_url)
		);
goshka писал(а):И как создать свою переменную/массив (под якори для каждого своего форума)?
К категориям/форумам можно обратиться по id. Переменная уже есть - {forumrow.FORUM_ID}
goshka
phpBB 1.4.2
Сообщения: 71
Стаж: 12 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Re: Как сделать Навигацию (ссылки на Форумы) на Главной стра

Сообщение goshka »

Класс! Супер! Огромное спасибо! Буду изучать!

Я сделал (как вы и посоветовали) с помощью forumrow.FORUM_ID :

<a name="{forumrow.FORUM_ID}"></a> <br>

Правда, предварительно приходится определить все FORUM_ID и FORUM_NAME, но это не сложно, можно сделать отдельно, например, с пом. SQL запроса (из форумной базы):
SELECT forum_id, forum_name FROM phpbb_forums WHERE forum_type=0
или ... WHERE parent_id=0

И вот, новая неожиданность! (пока ответа не нашел):
Названия Форумов, которые ссылки-переходы вверху страницы (в шаблоне forumlist_body.html):

<a href="#ID_1">1-й форум</a>
<a href="#ID_2">2-й форум</a>
<a href="#ID_3">3-й форум</a>

выводятся на экран вот в таком виде:

�����������
�����������
�����������
Последний раз редактировалось goshka 10.09.2014 6:52, всего редактировалось 2 раза.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13159
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Как сделать Навигацию (ссылки на Форумы) на Главной стра

Сообщение Татьяна5 »

goshka писал(а):предварительно приходится определить все FORUM_ID и FORUM_NAME
Они уже все определены. В шаблоне можно вывести отдельным циклом, за пределами существующего

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

<!-- BEGIN forumrow -->
<!-- IF forumrow.S_IS_CAT or forumrow.S_FIRST_ROW  or forumrow.S_NO_CAT  -->
тут код
<!-- ENDIF -->
<!-- END forumrow -->
goshka писал(а):выводятся на экран не на русском языке
Сколько уже писалось об этом...
1. Русского текста в шаблоне не должно быть, на это есть языковые файлы
2. Все файлы надо сохранять в UTF-8 без BOM
goshka
phpBB 1.4.2
Сообщения: 71
Стаж: 12 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Re: Как сделать Навигацию (ссылки на Форумы) на Главной стра

Сообщение goshka »

Я пользуюсь notepad++.
Там находясь внути файла (ничего не выделяя?) нужно просто выполнить:
Кодировки> Кодировать в UTF-8 без BOM ? или
Кодировки> Преобразовать в UTF-8 без BOM ?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13159
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Как сделать Навигацию (ссылки на Форумы) на Главной стра

Сообщение Татьяна5 »

Русский текст в файле нормально отобразился? Да - преобразовать, нет - кодировать. Если нет русского текста, то всё равно, кодировать или преобразовать.
goshka
phpBB 1.4.2
Сообщения: 71
Стаж: 12 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Re: Как сделать Навигацию (ссылки на Форумы) на Главной стра

Сообщение goshka »

Все КЛАСС получилось.

Огромное Спасибо Вам, Татьяна !!!

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