HtmlLinkWidget - ссылка c куском html

Выкладываем свои наработки
Ответить
Аватара пользователя
aser
Сообщения: 167
Зарегистрирован: 2009.04.02, 14:25
Откуда: Киев

HtmlLinkWidget - ссылка c куском html

Сообщение aser »

Последнее время все чаще встречается задача поместить в ссылку часть шаблона внутри которого есть и вызов php.
Нашел три варианта решения:
1 - вставлять через строку. Не удобно когда кода больше чем 2 строчки.
2 - вставлять через renderPartial. Приходиться разбивать на несколько шаблонов, да и в виджетах не такой функции.
3 - создать виджет для такого типа ссылок. Что и предлагаю вашему вниманию.

Ссылка вставляется так:

Код: Выделить всё

<?php $this->beginWidget('application.components.widgets.HtmlLinkWidget',
                              array('url'=>array('view', 'id'=>$data->id))); ?>
        <span class="title"><?php echo $data->name; ?></span>
        <span class="info">
            <span class="genre horror">
                <span class="icon"></span>
                <?php echo $data->content; ?>
            </span>
            <span class="year"><?php echo $data->year; ?></span>
        </span>
<?php $this->endWidget(); ?>
Вложения
HtmlLinkWidget.rar
(848 байт) 204 скачивания
AlTiger
Сообщения: 199
Зарегистрирован: 2012.01.15, 18:37

Re: HtmlLinkWidget - ссылка c куском html

Сообщение AlTiger »

Код: Выделить всё

<a href="<?=$this->createUrl('view', array('id'=>$data->id));?>">
    <span class="title"><?php echo $data->name; ?></span>
    <span class="info">
        <span class="genre horror">
            <span class="icon"></span>
            <?php echo $data->content; ?>
        </span>
        <span class="year"><?php echo $data->year; ?></span>
    </span>
</a>
Вполне удобный и понятный вариант ^_^


ps.
Удобнее? нет.
Более читаем? нет.
Ускоряет написание? нет.
Смысл? нет. :?
Аватара пользователя
aser
Сообщения: 167
Зарегистрирован: 2009.04.02, 14:25
Откуда: Киев

Re: HtmlLinkWidget - ссылка c куском html

Сообщение aser »

Ну пример бы простой, если к примеру нужно htmlOptions заполнять с каких то параметров, то становиться не совсем удобным набрасывать кучу проверок прямо в коде. Такой же вариант можно реализовать и для ajaxLink.

Конечно в приведенном примере ваш вариант - отвертка, а мой отбойный молоток что бы выкрутить один шуруп :roll: .

Благодарю!
Ответить