Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Zero108

Настройка меню навигации сайта (верхнее меню)

Recommended Posts

Обычное вложенное меню имеет класс ipsNavBar_active, если активно (кликнуто пользователем).

 

<li {{if $active}}class='[b]ipsNavBar_active[/b]' data-active{{endif}} id='elNavSecondary_{$item->id}' data-role="navBarItem" data-navApp="{expression="mb_substr( get_class( $item ), 4, mb_strpos( get_class( $item ), '\\', 4 ) - 4 )"}" data-navExt="{expression="mb_substr( get_class( $item ), mb_strrpos( get_class( $item ), '\\' ) + 1 )"}">

 

Но это работает только для тех пунктов меню, для которых при создании меню в админцентре уже есть дефолтные опции. Если же создавать меню как "Внешняя ссылка", то при активной вкладке меню - ipsNavBar_active не добавляется в код. Как сделать, чтобы добавлялся?

 

Примеры:

 

Добавляется:

 

<li class="ipsNavBar_active" data-active="" id="elNavSecondary_57" data-role="navBarItem" data-navapp="musicbox" data-navext="Musicbox">

 

Не добавляется:

 

<li id="elNavSecondary_69" data-role="navBarItem" data-navapp="core" data-navext="CustomItem">

Edited by Zero108

Share this post


Link to post
Share on other sites

\applications\core\extensions\core\FrontNavigation\CustomItem.php

 

Добавить

	/**
 * Is Active?
 *
 * @return	bool
 */
public function active()
{
	return (string) $this->link() === (string) \IPS\Request::i()->url();
}

  • Upvote 2

Share this post


Link to post
Share on other sites

Спасибо большое, работает, но есть баг. Корневая ссылка форума остается так же активной, вот на скрине смотрите, как это исправить?

Т.е должна быть ссылка только на втором скриншоте.

post-60255-0-51501500-1531430538_thumb.png

post-60255-0-86164800-1531430543_thumb.png

Edited by TemKa_SD

Share this post


Link to post
Share on other sites

Спасибо большое, работает, но есть баг. Корневая ссылка форума остается так же активной, вот на скрине смотрите, как это исправить?

Т.е должна быть ссылка только на втором скриншоте.

Не вижу у Вас на форуме ничего подобного. Дайте актуальную ссылку.

Share this post


Link to post
Share on other sites

Да, это на другом проекте.

https://mercury-global.cash/forums/forum/2-merkuriy-global/

 

Стандартно выделена корневая ссылка форума в меню.

Наведите на Меркурий Глобал, там тоже выделено как надо, но должна быть только она.

Share this post


Link to post
Share on other sites
Наведите на Меркурий Глобал, там тоже выделено как надо, но должна быть только она.

Навел.

Нахожусь в форуме, поэтому в навигации "Форум" выделен

Share this post


Link to post
Share on other sites

Форум выделен в разделе Сообщество и в разделе Меркурий Глобал. Нужно чтобы только в Меркурий Глобал. Ну и соответственно активная ссылка там тоже была.

Edited by TemKa_SD

Share this post


Link to post
Share on other sites

Форум выделен в разделе Сообщество

Это не связано с правкой. У форумов свое расширение используется.

Share this post


Link to post
Share on other sites

Я понимаю, реально как-то сделать нормально это? Т.е если не корень форума, то данные берутся из вашей правки.

Edited by TemKa_SD

Share this post


Link to post
Share on other sites

\applications\forums\extensions\core\FrontNavigation\Forums.php

		return !\IPS\core\FrontNavigation::$clubTabActive and \IPS\Dispatcher::i()->application->directory === 'forums';

заменить на

		$active = (!\IPS\core\FrontNavigation::$clubTabActive and \IPS\Dispatcher::i()->application->directory === 'forums');

	if ($active and \IPS\Request::i()->module == 'forums' and \IPS\Request::i()->controller == 'forums' and in_array(\IPS\Request::i()->id, array(2)))
	{
		return false;
	}

	return $active;

  • Upvote 1

Share this post


Link to post
Share on other sites

Спасибо, но есть опять баг, если зайти например в блоги, форум выделен остается.

post-60255-0-01856000-1531565627_thumb.png

Share this post


Link to post
Share on other sites

Поправил пост

Share this post


Link to post
Share on other sites

Большое спасибо, вы лучший. Всё работает как надо.

Share this post


Link to post
Share on other sites

Что-то странно, гляньте пожалуйста. Создал форумы для других разделов, вставил ссылки, всё идентично. Для новых разделов не хочет корректно работать, а инструкции ( pages ) работают. Думал из-за того что тем нету, пробовал создать - всё равно не хочет.

Edited by TemKa_SD

Share this post


Link to post
Share on other sites

Куда глядеть?

Я не помню, как было раньше.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...