Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CGI::Application && Template Toolkit - HELP! CGI::Application c Template Toolkit 
V
    Опции темы
ADm
Дата 16.11.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 19.6.2006
Где: Россия

Репутация: нет
Всего: нет



Привет Всем!

Пишу Веб-приложение на CGI::Application + Template Toolkit (через CGI::Application::Plugin::TT), наблюдается странная работа:
при формировании страницы выдается ошибка (TT выдает "file error - : not found"), при это корректно выводится на действие 'start' и выводиться эта ошибка на действие 'showlist'. все файлы, имена которых указаны в качестве первых параметров при вызове метода tt_process, есть!

самое интересное, если в методе showListPage распечатать значение $self например так: Dumper($self), то среди распечатаных данных можно увидеть следующее:                                                                                    
'_ERROR' => bless( ['file',': not found', \' <тут идет сформированный из шаблона html-код моей страницы!!!! >\'], 'Template::Exception' ),

из чего я делаю вывод что все файлы тулкит нашел, все переменные подставил в шаблоне куда нужно....

непонятно только почему он выдает такую ошибку.... честно говоря, сомнительно, что касяк в библиотеках, посему вопрос -что я сделал не так?

PS: Template-Toolkit-2.15, CGI-Application-4.06, CGI-Application-Plugin-TT-1.03, приложение CGI, perl v5.8.8

PPS: вот код рабочего класса наследника CGI::Application который я и запускаю:


Код

package My::Web;
use base CGI::Application;
use strict;

use Error qw(:try);
use CGI::Application::Plugin::TT;
use CGI::Application::Plugin::Session;
use My::DataObject;//класс объекта содержащего выводимую информаци и обрабатывающий параметры запроса
                              //+ возвращает в щаблон структуру с данными для подстановки в элементах шаблона
 
use Data::Dumper;
#------------------------------------------------------------------------------
sub cgiapp_init
{
    my $self = shift;

    #устанавливаем параметры для обработчика шаблонов
    $self->tt_config(
        TEMPLATE_OPTIONS=>{
            START_TAG=>'<%',
            END_TAG=>'%>',
            INCLUDE_PATH=>'templates',//папка в которой размещаются файлы шаблонов
        }
    );
    #устанавливаем параметры для обработки сессий
    $self->session_config(
      CGI_SESSION_OPTIONS=>["driver:File",$self->query,{Directory=>'/tmp/sessions'}],
        DEFAULT_EXPIRY=>'+1w',
        COOKIE_PARAMS=>{
          -path=>'/',
         },
        SEND_COOKIE=>1,
    );
}#end of cgiapp_init

sub setup
{
    my $self = shift;
    $self->run_modes(
        'start' => 'showStartPage',//этот runmode работает
        'showlist'=>'showListPage',//в этом выводиться ошибка (в этот runmode можно попасть из start
        'error'=>'showErrorPage',
    );
    $self->error_mode('showErrorPage');
    $self->start_mode('start');
    $self->mode_param('realm');

    try{
        $self->{DATA}=AliasM::DataObject->new($self->param("OBJS"),$self->param("LDAPCFG"),{charset=>$self->param("CHARSET")});
    }catch Error with{
        my $e=shift();
        $self->{ERROR}="Exception ".ref($e)." raised: ".$e->text();
        $self->start_mode('error');
    };
}#end of setup

#------------------------------------------------------------------------------
sub showStartPage
#выводит стартовую страницу
{
    my $self=shift();

    my $data={};

    try{
        $data=$self->{DATA}->getStartPageData();
    }catch Error with{
        my $e=shift();
        $self->{ERROR}=$e->text();
        die;
    };
    return $self->tt_process($self->param('TMPLCFG')->{tmplstart},{pagedata=>$data});
}#end of showStartForm

sub showListPage
#выводит страницу со списком 
{
    my $self=shift();
    my $data;

    try{
        $data=$self->{DATA}->getListPageData($self->cgiapp_get_query());
    }catch Error with{
        my $e=shift();
        $self->{ERROR}=$e->text()."<br>".$e->stacktrace;
        die;
    };

#>>>> чтобы посмотреть получившуюся структуру можно вставить следующие строчки:
#eval{$self->tt_process("list.tmpl",{pagedata=>$data});};
#return Dumper($self);
#>>>>>

    return $self->tt_process("list.tmpl",{pagedata=>$data});#на этой строке происходит ошибка!!!!!!!!!!!
}#end of showLstPage

sub showErrorPage
#выводит страницу с сообщением об ошибке
{
    my $self=shift();

    return $self->tt_process("error.tmpl",{pagedata=>{errormsg=>$self->{ERROR}}});
}#end of showErrorPage

1;


Буду благодарен за любую помощь!

Добавлено @ 13:16 
прошу прощения, что не в ту ветку запостил... не знаю как перенести
PM MAIL ICQ Jabber   Вверх
Nab
Дата 16.11.2006, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Скорее всего он не находит директорию с шаблонами, или http серверу не хватает прав.

А вообщето я занимаюсь тоже созданием фреймворка на основе CGI::Application, номер аськи есть в профиле, можем обсудить совместные действия, потому как сделано уже очень много...


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
ADm
Дата 16.11.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 19.6.2006
Где: Россия

Репутация: нет
Всего: нет



Проблема решилась перестановкой ТТ.. все заработало! бывает же такое, кто знает сколько пришлось бы еще головой об стол биться))

И БОЛЬШОЕ спасибо тов. Nab'у за соучастие))
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.