Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 24, 2010 16:02:29

isergey
От:
Зарегистрирован: 2010-07-21
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Виджеты/Включаемые блоки

Здравствуйте! Меня интересует такой вопрос. Допустим у нас есть лейаут, на котором расположены компоненты(виджеты из ТЕРМИНОЛОГИИ yii). Виджетом может быть голосование, форма ввода авторизации, последние комментарии, облако тегов, меню пользователя итд. Короче, виджет - это класс с определенными методами (мини контроллер) который имеет собственное представление (когда рендерится виджет, данные передаются в его представление).

В лейауте виджет вызывается так:
<div id=“sidebar”>
<?php if(!Yii::app()->user->isGuest) $this->widget('UserMenu'); ?>
</div>

По-моему, довольно таки удобно. Есть ли подобные механизмы в pylons?
Спасибо.



Офлайн

#2 Ноя. 24, 2010 16:55:01

appetito
От:
Зарегистрирован: 2010-09-28
Сообщения: 147
Репутация: +  2  -
Профиль   Отправить e-mail  

Виджеты/Включаемые блоки

isergey
Здравствуйте! Меня интересует такой вопрос. Допустим у нас есть лейаут, на котором расположены компоненты(виджеты из ТЕРМИНОЛОГИИ yii). Виджетом может быть голосование, форма ввода авторизации, последние комментарии, облако тегов, меню пользователя итд. Короче, виджет - это класс с определенными методами (мини контроллер) который имеет собственное представление (когда рендерится виджет, данные передаются в его представление).

В лейауте виджет вызывается так:
<div id=“sidebar”>
<?php if(!Yii::app()->user->isGuest) $this->widget('UserMenu'); ?>
</div>

По-моему, довольно таки удобно. Есть ли подобные механизмы в pylons?
Спасибо.
я, тоже под влиянием Yii, такие штуки сам придумывал (для Mako)
${h.widgets.TagSelect(name='text', label=u'Рецепт')}



Отредактировано (Ноя. 24, 2010 17:01:44)

Офлайн

#3 Ноя. 25, 2010 09:15:08

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Виджеты/Включаемые блоки

В самих пилонах нет, так как пилоны - это конструктор для сборки сайта из различных библиотек. Но подобные вещи я регулярно в каждом более-менее крупном проекте делаю как для mako так и для jinja2.

В mako это делать слегка удобнее - так как как он позволяет вставлять питоний код непосредственно в шаблон (я обычно импортирую какие-нибудь модели в коде шаблона виджета и потом делаю из них выборку - ну это для совсем ленивых - типа меня).

В jinja2 чуток сложнее - необходимо данные, которые используются в шаблоне, передавать через контекст или прописывать глобальные функции/хелперы для доступа к данным. Впрочем, такой подход вполне работает и с mako.

Так что, если Вам интересно - посмотрите документацию по Вашему любимому шаблонизатору, наверняка там такое есть.

Для mako примеры виджетов можно посмотреть например здесь - http://bitbucket.org/bbangert/kai/src/f25edfb67b8c/kai/templates/widgets.mako



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version