Mercurial > pub > Impl
diff Lib/IMPL/Web/QueryHandler/PageFormat.pm @ 65:2840c4c85db8
Application configuration improvements
Documentation
author | wizard |
---|---|
date | Tue, 16 Mar 2010 17:36:13 +0300 |
parents | 259cd3df6e53 |
children | 9d24db321029 |
line wrap: on
line diff
--- a/Lib/IMPL/Web/QueryHandler/PageFormat.pm Mon Mar 15 17:45:13 2010 +0300 +++ b/Lib/IMPL/Web/QueryHandler/PageFormat.pm Tue Mar 16 17:36:13 2010 +0300 @@ -5,16 +5,19 @@ use IMPL::Class::Property; use IMPL::Web::TDocument; +use File::Spec; use Error qw(:try); BEGIN { - public property charsetTemplates => prop_all; + public property templatesCharset => prop_all; + public property templatesBase => prop_all; } sub CTOR { my ($this) = @_; - $this->charsetTemplates('utf-8') unless $this->charsetTemplates; + $this->templatesCharset('utf-8') unless $this->templatesCharset; + $this->templatesBase('.') unless $this->templatesBase; } sub Process { @@ -23,7 +26,9 @@ my $doc = new IMPL::Web::TDocument(); try { - $doc->loadFile ( $ENV{PATH_TRANSLATED}, $this->charsetTemplates ); + my @path = split /\//, $ENV{PATH_TRANSLATED}; + + $doc->loadFile ( File::Spec->catfile($this->templatesBase,@path), $this->templatesCharset ); $action->response->contentType('text/html'); my $hOut = $action->response->streamBody; @@ -34,4 +39,72 @@ }; } -1; \ No newline at end of file +1; + +__END__ + +=pod + +=head1 NAME + +C<IMPL::Web::QueryHandler::PageFormat> - Выдача результатов в виде HTML страницы, построенной из шаблона. + +=head1 SYNOPSIS + +В файле конфигурации приложения + +=begin code xml + +<handlersQuery type="IMPL::Object::List"> + <item type="IMPL::Web::QueryHandler::PageFormat"> + <charsetTemplates>utf-8</charsetTemplates> + </item> +</handlersQuery> + +=end code xml + +Программно + +=begin code + +my $app = new IMPL::Web::Application(); +$app->handlersQuery->Add( + new IMPL::Web::QueryHandler::PageFormat( charsetTemplates=> 'utf-8' ); +); + +=end + +=head1 DESCRIPTION + +Обработчик запроса для веб приложения. Загружает шаблон, путь к котрому берется +из C<ENV{PATH_INFO}> относительно пути из свойства C<templatesBase>. + +Наследуется от C<IMPL::Web::QueryHandler> для реализации функционала +обработчика запроса и переопределяет метод C<Process>. + +C<Serializable> + +=head1 MEMBERS + +=over + +=item C<CTOR(%props)> + +Создает новый экземпляр и заполняет свойства. + +=item C<[get,set] templatesCharset> + +Кодировка шаблонов. По умолчанию utf-8. + +=item C<[get,set] templatesBase> + +Каталог относительно которого ищется шаблон. + +=item C<[override] Process($action,$nextHandler)> + +Метод, переопределяющий C<IMPL::Web::QueryHandler->Process> и которому передается управление +для выполнения действий. + +=back + +=cut \ No newline at end of file