О web-разработке
и даже немного больше...

phpBB prosilver: Показ подфорумов в две колонки

Если вам приходилось на практике использовать движок phpBB, то вы наверняка знакомы с его популярным шаблоном prosilver. Этот шаблон устанавливается по умолчанию, при первичной установке форумного движка. Многие форумы используют данный шаблон в качестве основного, модифицируя их иногда под свои нужды, а иногда оставляя как есть. Есть некоторые особенности отображения подфорумов на главной странице, о которых мы поговорим далее. По умолчанию в данном шаблоне подфорумы отображаются в виде списка, через запятую. Если подфорумов значительное количество, то для более удобного восприятия было бы здорово выставить список не через запятую, как это есть по умолчанию, а в две колонки.
О том, как выставить речь пойдет далее. Первое что нужно сделать, это внести изменения в файл include/functions_display.php. Находим следующую строку:

$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();
              $columns = 2; // how much columns
              $result = 0;
              $s_subforums_list = '<table><tr>';
              foreach ($subforums_list as $subforum)
              {
                 $s_subforums_list .= '<td><a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '">' . $subforum['name'] . '</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>';
             
                 $result++;
                 if($result % $columns == 0)
                 {
                    $s_subforums_list .= '</tr><tr>';
                 }
              }
              $s_subforums_list .='</tr></table>';

В результате должен получиться показ подфорумов в таком виде:

Для phpBB 3.2 код немного отличается, поэтому аналогичным образом находим код в файле functions_display.php.

$s_subforums_list = $subforums_row = array();

		foreach ($subforums_list as $subforum)
		{
			$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['UNREAD_POSTS'] : $user->lang['NO_UNREAD_POSTS']) . '">' . $subforum['name'] . '</a>';
			
			$subforums_row[] = array(
				'U_SUBFORUM'	=> $subforum['link'],
				'SUBFORUM_NAME'	=> $subforum['name'],
				'S_UNREAD'		=> $subforum['unread'],
				'IS_LINK'		=> $subforum['type'] == FORUM_LINK,
			);
			
		}

		$s_subforums_list = (string) implode(', ', $s_subforums_list);

Заменяем его на этот:

		$columns = 2; // how much columns
		$result = 0;
		$subforums_row = array();
		$s_subforums_list = '<table class="subf-list"><tr>';
		foreach ($subforums_list as $subforum)
		{
			$s_subforums_list .= '<td><a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '"><i class="icon' .($subforum['type'] == FORUM_LINK ? ' fa-external-link' : ' fa-file-o').'  fa-fw '.($subforum['unread'] ? 'icon-red': 'icon-blue').'icon-md" aria-hidden="true"></i>'. $subforum['name'] . '</a></td>';

			$result++;
			if($result % $columns == 0)
			{
				$s_subforums_list .= '</tr><tr>';
			}

			$subforums_row[] = array(
							'U_SUBFORUM'	=> $subforum['link'],
							'SUBFORUM_NAME'	=> $subforum['name'],
							'S_UNREAD'		=> $subforum['unread'],
							'IS_LINK'		=> $subforum['type'] == FORUM_LINK,
						);
		}
		$s_subforums_list .='</tr></table>';

Затем, есть правим сам шаблон, файл /styles/prosilver/template/forumlist_body.html. Находим содержимое:

<!-- IF .forumrow.subforum and forumrow.S_LIST_SUBFORUMS -->

Приводим к такому виду:

<!-- IF .forumrow.subforum and forumrow.S_LIST_SUBFORUMS -->
	<!-- EVENT forumlist_body_subforums_before -->
	<br />
	{forumrow.SUBFORUMS}
	<!-- EVENT forumlist_body_subforums_after -->
<!-- ENDIF -->

Перед тем как проверять, после внесений изменений не забудьте почистить кэш!

Опубликован: 26.02.2017 г.

См. также:

Настройка reCAPTCHA в phpBB
Настройка отправки почты в phpBB
Как русифицировать форум phpBB?
Как установить форум phpBB?
MOD-ы от спама в phpBB
О спаме в phpBB

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта