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

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

По-моему, довольно таки удобно. Есть ли подобные механизмы в pylons?
Спасибо.
appetito
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'Рецепт')}
ziro
В самих пилонах нет, так как пилоны - это конструктор для сборки сайта из различных библиотек. Но подобные вещи я регулярно в каждом более-менее крупном проекте делаю как для mako так и для jinja2.

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

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

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

Для mako примеры виджетов можно посмотреть например здесь - http://bitbucket.org/bbangert/kai/src/f25edfb67b8c/kai/templates/widgets.mako
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB