Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

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

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

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

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

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

Так работает, но если находишься на http://ipb43.ru/ то активна http://ipb43.ru/forum/

остальные ссылки вроде все работают как нужно, как это поправит?

то активна http://ipb43.ru/forum/

Этот пункт каким образом сделан?

Этот пункт каким образом сделан?

Дак стандартно приложением, то есть ссылку вводить не нужно

Дак стандартно приложением, то есть ссылку вводить не нужно

 

Походу баг движка. Если отключить js, то выделяются 2 вкладки.

  • 3 недели спустя...

Походу баг движка. Если отключить js, то выделяются 2 вкладки.

Может можно как то поправить? что бы не выделялись две вкладки, а то при загрузке видно перескакивание вкладки с форума на главную

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

\applications\core\sources\FrontNavigation\FrontNavigationAbstract.php

 

		if ( $this->active() )
	{
		return TRUE;
	}

заменить на

 		if ( $this->active() )
	{
		if (\is_object($this->link()) and \is_object(\IPS\Request::i()->url()) and \get_class($this->link()) !== \get_class(\IPS\Request::i()->url()))
		{
			return FALSE;
		}

		return TRUE;
	}

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

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

 

Я проверял - работает.

Я проверял - работает.

Хмм старанно проверил ещё раз делаю так, внес изменения в файл \applications\core\extensions\core\FrontNavigation\CustomItem.php указанные тут http://ipbskins.ru/forum/topic15583.html/page__view__findpost__p__107688

Далее в файл applications\core\sources\FrontNavigation\FrontNavigationAbstract.php в функции public function activeOrChildActive() заменил как предложено там в этой функции два раза встречается

if ( $this->active() )
       {
           return TRUE;
       }

 

то есть

public function activeOrChildActive()
{
	if ( $this->active() )
	{
		return TRUE;
	}

	foreach ( $this->subItems() as $item )
	{
		if ( $item->active() )
		{
			return TRUE;
		}
	}

	return FALSE;
}

если первое поменять то не чего не меняется если второе

то есть так

public function activeOrChildActive()
{
	if ( $this->active() )
	{
		return TRUE;
	}

	foreach ( $this->subItems() as $item )
	{
		if ( $this->active() )
       {
           if (\is_object($this->link()) and \is_object(\IPS\Request::i()->url()) and \get_class($this->link()) !== \get_class(\IPS\Request::i()->url()))
           {
               return FALSE;
           }

           return TRUE;
       }
	}

	return FALSE;
}

то перестают работать вкладки приложений

если первое поменять то не чего

	/**
 * Is this item, or any of it's child items, active?
 *
 * @return	bool
 */
public function activeOrChildActive()
{
	// if ( $this->active() )
	// {
		// return TRUE;
	// }
       if ( $this->active() )
       {
           if (\is_object($this->link()) and \is_object(\IPS\Request::i()->url()) and \get_class($this->link()) !== \get_class(\IPS\Request::i()->url()))
           {
               return FALSE;
           }

           return TRUE;
       }		
	foreach ( $this->subItems() as $item )
	{
		if ( $item->active() )
		{
			return TRUE;
		}
	}

	return FALSE;
}

main.png

calendar.png

files.png

	/**
 * Is this item, or any of it's child items, active?
 *
 * @return	bool
 */
public function activeOrChildActive()
{
	// if ( $this->active() )
	// {
		// return TRUE;
	// }
       if ( $this->active() )
       {
           if (\is_object($this->link()) and \is_object(\IPS\Request::i()->url()) and \get_class($this->link()) !== \get_class(\IPS\Request::i()->url()))
           {
               return FALSE;
           }

           return TRUE;
       }		
	foreach ( $this->subItems() as $item )
	{
		if ( $item->active() )
		{
			return TRUE;
		}
	}

	return FALSE;
}

post-47589-0-10306500-1565415605_thumb.png

post-47589-0-28963400-1565415610_thumb.png

post-47589-0-65539400-1565415619_thumb.png

 

Дак в данном случае не чего не меняется визуально, то есть при загрузке страницы main(главная) она загружается с активной вкладкой приложения forum, а после загрузки перескакивает на main

то есть выглядит при загрузке это так

post-16492-0-71097300-1565437301_thumb.jpg

У меня почему-то работает.

Может что-то влияет.

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

Аккаунт

Навигация

Поиск

Поиск

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

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