Перейти к содержимому
Русский язык для Invision Community 5

Сделать компонент главной страницей

Кто-то пробовал сделать компонент (autocom=somecomponent) главной страницей форума? Т.е. как при включении ip.portal главной, при переходе в корень форума открытвается портал, но только чтобы открывался не портал, а другой определённый компонет :) поделитесь, пожалуйста, технологией, если не сложно.

Рекомендованные сообщения

все просто.

 

http://ipbskins.ru/forum/topic1274.html/page__view__findpost__p__6879

вот пост.

цитата:

Для 231 (должно быть актуально и для 2.3.6)

iindex.php

Найти:

$ipsclass->input['act'] = isset($ipsclass->input['act']) ? $ipsclass->input['act'] : ( IPB_MAKE_PORTAL_HOMEPAGE ? 'home' : 'idx' );

if( is_array($ipsclass->input['act']) )
{
$ipsclass->input['act'] = ( IPB_MAKE_PORTAL_HOMEPAGE ) ? 'home' : 'idx';
}

//---------------------------------------------------
// Check to make sure the array key exits..
//---------------------------------------------------

if ( ! isset($choice[ strtolower($ipsclass->input['act']) ][0]) )
{
$ipsclass->input['act'] = ( IPB_MAKE_PORTAL_HOMEPAGE ) ? 'home' : 'idx';
}

Заменить на

if (isset($ipsclass->input['act']))
{
$ipsclass->input['act'] = $ipsclass->input['act'];
}
else
{
$ipsclass->input['act'] = 'component';
$ipsclass->input['module'] = 'Ваш Компонент';
}

if( is_array($ipsclass->input['act']) )
{
$ipsclass->input['act'] = 'component';
$ipsclass->input['module'] = 'Ваш Компонент';
}

//---------------------------------------------------
// Check to make sure the array key exits..
//---------------------------------------------------

if ( ! isset($choice[ strtolower($ipsclass->input['act']) ][0]) )
{
$ipsclass->input['act'] = 'component';
$ipsclass->input['module'] = 'Ваш Компонент';
}

 

Ваш Компонент - замените на код компонента. В данном примере это "somecomponent"

  • Автор

andaril, спасибо большое! It's working!

 

И в связи с этим есть следствие, которое хотелось бы решить для полного и безоговорочного счастья.

Заключается оно в навигации.

Теперь главная страница - некий компонент.

Добавил ссылку на форум в меню компонентов (главное меню), ссылка ведёт на ?act=idx.

В class_display.php заменяем строку

		$nav .= "<a href='{$this->ipsclass->base_url}act=idx'>{$this->ipsclass->vars['board_name']}</a>";

на

		$nav .= "<a href='{$this->ipsclass->base_url}'>Главная</a>";

Навигация в общем и целом теперь устраивает, кроме одного момента: Как при переходе на форум (?act=idx), добавить в строку навигации объект "Главная > Форум..."?, а то, естесственно, остаётся "Главная >" - немного "не комильфо".

 

Я кажется видел что-то похожее на этом форуме, но сейчас пересмотрел все похожие теги и поиск, но не нашёл :)

можно сделать в шаблонах.

В общем шаблоне форума, перед <% navigation %> прописать нужное.

  • Автор

:) Так не очень красиво, но в принципе можно, если немного напильником обработать при вёрстке.

 

...хотя нет, так вобще не красиво, ибо на главной будет навигация "Главная -> Форум", на других "Главная -> Форум -> Другая".

 

Вобщем поиск решения продолжается...

Изменено пользователем SlyFox

Проще включить портал, а потом в индексе и дисплее заменить act=home на act=компонент. Как раз будет нужная ссылка.

  • 4 месяца спустя...

а ещё проще отредактировать в шаблоне глоболе start_nav - и всё! :)

Извиняюсь за то, что не совсем по теме. Но уж очень хочется. :(

Я правильно понимаю, что формирующийся движком "довесок" к урлу главной форума act=idx можно удалить в приведённом куске кода файла sources/classes/class_display.php

$nav .= "<a href='{$this->ipsclass->base_url}act=idx'>{$this->ipsclass->vars['board_name']}</a>";

и мне за это ничего плохого не будет?

А Вы попробуйте, только предварительно файл сбэкапьте.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.