Перейти к публикации
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

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

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

Раздел eCurrency > форум ( не работает

В массив добавили ID'шник форума?

in_array(\IPS\Request::i()->id, array(2)

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

Нет, понял. А нельзя сделать сразу для всех?

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

А нельзя сделать сразу для всех?

"Все" - это какие? Откуда система должна знать об этом.

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

Здравствуйте. Обновил форум до 4.3.5, скопировал функцию заного, перестало работать. Что может быть не так?

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

Меню правили?

Вижу, что у Вас там используется расширение от Pages, а не CustomItem

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

На форуме тоже не работает, ничего не менял, только обновил двиг.

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

Тогда куда нужно нажать и что не так?

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

Должна быть активной.

post-60255-0-33646400-1534665610_thumb.png

post-60255-0-97272800-1534665695_thumb.png

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

А CustomItem.php изменили?

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

Вы мне про кастом ничего не писали вроде.

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

Вы мне про кастом ничего не писали вроде.

Во втором посте написано

  • 4 недели спустя...
Опубликовано:

Так, здравствуйте. Немного не так мы сделали.

 

if ($active and \IPS\Request::i()->module == 'forums' and \IPS\Request::i()->controller == 'forums' and in_array(\IPS\Request::i()->id, array(2,3,10)))

 

Здесь мне нужно убрать and \IPS\Request::i()->controller == 'forums' - так как при просмотре темы тоже должно работать.

\IPS\Request::i()->id - это мне нужно заменить на ID форума, если просматривать тему, то выбирается именно ID темы. По аналогии я с блогами делаю, там тоже всё работает, вот только это пофиксить \IPS\Request::i()->id - ID форума и \IPS\Request::i()->id - ID блога как указать?

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

только это пофиксить \IPS\Request::i()->id - ID форума и \IPS\Request::i()->id - ID блога как указать?

Проверяете, что находитесь в теме, получаете тему по ID, получаете ID форума.

\IPS\forums\Topic::load(\IPS\Request::i()->id)->forum_id

Аналогично для блогов

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

Что-то не так )

 

	public function active()
{
	$active = (!\IPS\core\FrontNavigation::$clubTabActive and \IPS\Dispatcher::i()->application->directory === 'forums');
	$forum_id = in_array(\IPS\Request::i()->id, array(2,3,10));

       if ($active and \IPS\Request::i()->module == 'forums' and \IPS\forums\Topic::load(\IPS\Request::i()->id)->$forum_id and $forum_id)
       {
           return false;
       }

       return $active;
}

 

Здесь же нужно тема+форум ИЛИ форум?

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

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

Если Вы на странице форума, то ID форума - \IPS\Request::i()->id

Если Вы на странице темы, то ID форума - \IPS\forums\Topic::load(\IPS\Request::i()->id)->forum_id

 

Определяйте локацию.

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

Сейчас на странице 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.