Skip to content

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

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

Featured Replies

все просто.

 

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"

  • Author

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 %> прописать нужное.

  • Author

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

 

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

 

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

Edited by SlyFox

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

  • 4 months later...

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

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

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

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

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

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

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.