Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

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

Обычное вложенное меню имеет класс 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">

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

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

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

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

 

Добавить

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

  • 2 месяца спустя...
Опубликовано:

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

Навел.

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

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

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

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

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

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

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

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

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

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

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

\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;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Так, смотрите. Раздел Меркурий Глобал > Форум ( работает ). Раздел eCurrency > форум ( не работает, выделяется и корневая ссылка что в разделе "сообщество" и ссылка в разделе eCurrency ).

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

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.