Страница 1 из 1

target="_blank" для ссылки в меню

СообщениеДобавлено: 22 мар 2014, 15:11
Mono
Подскажите, как сделать чтобы созданный пункт меню с типом ссылки - Простая ссылка ( задается вручную ) открывалась в новом окне. Можно ли прописать target="_blank" для конкретной ссылки из меню?

Re: target="_blank" для ссылки в меню

СообщениеДобавлено: 23 мар 2014, 16:32
Xpycm
Номер версии OBC? 1.2 или 1.3?

Re: target="_blank" для ссылки в меню

СообщениеДобавлено: 24 мар 2014, 14:37
Mono
1.3

Re: target="_blank" для ссылки в меню

СообщениеДобавлено: 24 мар 2014, 15:20
Xpycm
1) Выпонить запрос: ALTER TABLE `{prefix}menu` ADD `is_blank` TINYINT NOT NULL DEFAULT '0' AFTER `href`; где {prefix} - префикс таблиц, указанный при установке продукта.

2) Файл protected\modules\menumanager\models\Menu.php
метод rules

после:
Код: Выделить всё
array('title, href', 'safe'), 

добавить:
Код: Выделить всё
array('is_blank', 'boolean'), 


метод attributeLabels

после:
Код: Выделить всё
'pageId' => 'Страница', 

добавить:
Код: Выделить всё
'is_blank' => 'Открывать в новом окне', 


метод getMenuItems
после:
Код: Выделить всё
$menu[$k]['url'] = $v->getUrl(); 

добавить:
Код: Выделить всё
if ($v->is_blank && $v->type == self::LINK_NEW_MANUAL) {
    $menu[$k]['linkOptions'] = array('target' => '_blank');
}
 


3) Файл protected\modules\menumanager\views\backend\_form.php
JS-функция function hideAll()
после:
Код: Выделить всё
$("#menu_pageid").hide(); 

добавить:
Код: Выделить всё
$("#menu_is_blank").hide(); 


В условии if(type == ' . Menu::LINK_NEW_MANUAL . ')
после:
Код: Выделить всё
$("#menu_href").show(); 

добавить:
Код: Выделить всё
$("#menu_is_blank").show(); 


после:
Код: Выделить всё
<div class="rowold" id="menu_href">
    <?php echo $form->labelEx($model,'href'); ?>
    <?php echo $form->textField($model,'href',array('size'=>80,'maxlength'=>255)); ?>
    <?php echo $form->error($model,'href'); ?>
</div>


добавить:
Код: Выделить всё
<div class="rowold" id="menu_is_blank">
    <?php echo $form->checkboxRow($model,'is_blank'); ?>
    <?php echo $form->error($model,'is_blank'); ?>
</div>



4) Очистить кэш.

Теперь, при добавлении ссылки, можно выбрать чекбоксом "Открывать в новом окне".

Данный функционал будет в версии 1.3.1. Полезная "фича".

Re: target="_blank" для ссылки в меню

СообщениеДобавлено: 24 мар 2014, 21:00
Mono
Ого. Вот это вам спасибище!Не ожидал такого крутого решения вопроса)
Все работает как надо.

А когда стоит ждать 1.3.1 и что там планируется интересного?

Re: target="_blank" для ссылки в меню

СообщениеДобавлено: 25 мар 2014, 08:29
Xpycm
Такое крутое решение потому, что залил этот код в продукт, т.к посчитал вашу просьбу очень правильной.

В версии 1.3.1 вот будет возможность выставлять target="_blank" + исправление одного небольшого бага, который заметил в панели администратора. Собственно, ничего нового не будет