@sri: wenn's dich interessiert, ich habe mal meine ersten versuche und probleme des Ersten Kontakts mitgeschrieben.
Ziel: MySql als DB und HTC als Templating System. Zunaechst mal mit HTC begonnen:
catalyst MyPBoard
cd MyPBoard
perl script\MyPBoard_create.pl view HTC HTML::Template::Compiled
mal den Standalone-Server gestartet, mich gefreut, dass es lief, und mir dann mal die Dateien naeher angeschaut.
Meine Templates habe ich in ./templates abgelegt
in lib\MyPBoard\View\HTC.pm die Sub new gecoded:
sub new {
my ($self) = shift;
return $self->SUPER::new(@_);
} # new
und in lib/MyPBoard/Controller/Root.pm die folgenden Subs reingeschrieben:
sub end : Private {
my ($self, $c) = @_;
$c->forward("MyPBoard::View::HTC");
} # end
sub register : Global {
my ( $self, $c ) = @_;
} # register
dann habe ich versucht, das template-directory ueber den Konstruktor mitzugeben, bin aber gescheitert. Die Views sind doch arg knapp dokumentiert. Erst durch ein Dump(\%options) in Catalyst::Helper::View::HTML::Template::Compiled habe ich herausgefunden, dass der template path root + root/base lautet. Das Template also nach root/base reingestellt, fehlermeldung:
Caught exception in MyTest3::View::HTML::Template::Compiled->process "'register' not found at D:/wamp/Perl815/site/lib/Catalyst/View/HTML/Template/Compiled.pm line 110"
Gut, also ab nach root, und es funktioniert.
sub register ein wenig aufgebohrt:
sub register : Global {
my ( $self, $c ) = @_;
$c->stash->{template} = "register.tmpl";
$c->stash->{text} = "Testtext";
} # register
und es laeuft mal.
Esskar gab mir den tip, mal was in die mypboard.yml zu schreiben:
template:
# cache_dir: './tmp/htc'
path: './templates'
global_vars: 1
und ich konnte die templates nun nach ./templates legen. auch wie man auf weitere optionen in dieser datei im template zugreifen kann
<%= c.config.template.path %>
So, Anbindung von HTC geloest; als naechstes wollte ich den Code nicht mehr in Root.pm haben, sondern in einer User.pm. Ich hab's mal manuell probiert, und es ging, aber esskar sagte mir, man kann auch mit myapp_create.pl neue controller anlegen, also neue Version, dieselben schritte nochmal und dann
perl script\mypboard_create.pl controller User
Fand dann heraus, dass man subs auch sehr gut folgendermaszen angeben kann:
sub register : Path('/user/register') {
...