Ссылка в меню в новом окне (решение)

Задача:
— Некоторые пункты должны вести на внешний источник, а значит, открывать в новом окне.

Принцип:
Добавляем параметр target, который будет добавлять этот же параметр в тег А
Решение:
1) в конфиге, в меню третьего уровня (тема experience)
\common\templates\skin\experience\settings\config\menu.php

Вместо:

            'link7' => array(
            'text' => '<i class="fa fa-book"></i> Обучение',
            'link' => '/category/main/',
        ),


пишем:
      'link7' => array(
            'text' => '<i class="fa fa-book"></i> Обучение',
            'link' => '/category/main/',
            'options' => array(
                  'target' => '_blank',
            )


2. \engine\classes\modules\menu\entity\ItemOptions.entity.class.php
В самый конец, перед }
Вставляем:
    /**
     * Возвращает  таргет
     *
     * @return string|null
     */
    public function getTargetLink() {
        return isset($this->_aData['target']) ? $this->_aData['target'] : NULL;
    }


3. \engine\classes\modules\menu\entity\Item.entity.class.php
Находим:
$sActive = $this->getActive();


вставляем перед ним:
            $aParams['[[item_target]]'] = '';
            if (($this->getOptions() && ($sLinkTitle = $this->getOptions()->getTargetLink()))) {
                $aParams['[[item_target]]'] = "target='{$sLinkTitle}'";
            }


тут же, находим:
 $sCurrentLink = "<a {$this->_aData['item_flags']['link_id']} [[link_class]] [[link_title]]


добавляем после кода [[link_title]]:
[[item_target]]


Всё. Готово.
Это не самый идеальный метод, т.к. при обновлении версии движка это может потереться. Но другого я не нашёл.

Похожие статьи

  • Картинк в новой вкладке
    Как получать ссылку такого вида, при загрузке изображения через редактор? Настроить по умолчанию, без редактирования. <a href="uploads/images/00/00/01/2016/11/18/0u27163a60-11b27e0b-dc509c00.jpg"...
  • Шаблон меню
    В общем, проблема в том, что нужно изменить шаблон в меню. А именно прописать классы в меню топиков. Сложность в том, что я изменяю настройки в настойках шаблона...
  • Как получить список блогов в меню?
    Приветствую. Вопрос простой, выпадающим списком хочу получить список всех блогов (кроме персональных). Как сделать выпадающее меню — не проблема. Вопрос в том, как получить переменную $aBlogs в menu.main.tpl ?
  • Проблема с меню авторизованного пользователя
    Ссылка на профиль в меню ведет не на страницу авторизованного пользователя, а на профиль админа. Если сбрасывать меню по умолчанию, все работает правильно, но стоит хоть чуть его изменить, например скрыть один из...

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.