Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Zero108

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

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение

Я не понимаю. 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/, что не равно.

 

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

Поделиться сообщением


Ссылка на сообщение

	/**
    * 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

Поделиться сообщением


Ссылка на сообщение

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

подскажите пожалуйста имеется например Главная страницы то есть 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/ это(ЧПУ ссылка) и переходе на эту страницу активна вкладка Форум

Поделиться сообщением


Ссылка на сообщение
07/22/19 11:28 (изменено)

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

 

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/ хоть где

Поделиться сообщением


Ссылка на сообщение

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

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

×
×
  • Создать...