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

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

Дизайн и модификация 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

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

Я не понимаю. forum_id - это переменная которую нужно заполнить или этот запрос выводит ид форума в котором я нахожусь?

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

if ($active and \IPS\Request::i()->module == 'forums')
{
$fid = 0;

if (\IPS\Request::i()->controller == 'forums')
{
	$fid = \IPS\Request::i()->id;
}
elseif (\IPS\Request::i()->controller == 'topic')
{
	$fid = \IPS\forums\Topic::load(\IPS\Request::i()->id)->forum_id;
}

if (in_array($fid, array(2,3,10)))
{
	return false;
}
}

return $active;

Так, мне надо чтобы пункт в темах вот этого форума был так же выделен во второй вкладке.

 

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

Так

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

 

Добавить

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

Если у Вас ссылка в меню https://mercury-global.cash/forums/forum/2-merkuriy-global/, то на странице форума \IPS\Request::i()->url() будет аналогичной, а на странице темы https://mercury-global.cash/forums/topic/2-merkuriy-global-izmenil-vashu-zhizn/, что не равно.

 

Проверяйте локацию, составляйте условие.

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

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

 

Вроде работает, но, выделяется только подменю: http://prntscr.com/l3rg2j

Изначально загружает так: http://prntscr.com/l3rg8h

  • 9 месяцев спустя...

Добрый день, добавил в файл код из второго сообщения,

подскажите пожалуйста имеется например Главная страницы то есть http://ipb43.ru в меню добавляется вкладка с внешней ссылкой Главная ссылка http://ipb43.ru но при переходе по этой вкладке она неактивна, приходится добавлять в эту вкладку ссылку ещё раз, только тогда она активна. Далее есть страницы например Новости со ссылкой http://ipb43.ru/index.php?ind=news добавляю её во вкладку Главная и когда нахожусь на этой странице как бы все нормально но при переходе по ссылке http://ipb43.ru/index.php?ind=news&op=news_show_single&ide=187 уже становится активна вкладка Форум, это можно как то поправить?

Так же при добавлении во вкладку ссылки скажем http://ipb43.ru/docs/ это(ЧПУ ссылка) и переходе на эту страницу активна вкладка Форум

Можно попробовать искать по части

 

return (!(\IPS\Request::i()->url() instanceof \IPS\Http\Url\Friendly) and mb_strpos((string) \IPS\Request::i()->url(), (string) $this->link()) === 0);

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

Так ошибка

Какая?

Там лишняя ) была, но при исправлении постоянно Главная вкладка активна даже если на форуме

Там лишняя ) была

точно.

 

постоянно Главная вкладка активна даже если на форуме

Как выглядят адреса?

Дак так же как выше описывал то есть например если в меню добавить http://ipb43.ru/index.php?ind=news то все нормально вменю ссылка активна если же находиться на http://ipb43.ru/index.php?ind=news&op=news_show_single&ide=187 то уже форум активен в меню

 

Если код что вы предложили то все время активна ссылка http://ipb43.ru/ не зависимо где находишься хоть на форуме http://ipb43.ru/forum/ хоть где

Я поправил код. Пробуйте

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

Аккаунт

Навигация

Поиск

Поиск

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

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