Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]770[/thread]

HTML::Template include: tmpl-file via parameter festlegen

Leser: 2


<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
styx-cc
 2006-07-07 19:14
#8240 #8240
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Hallo,

ich hab mal wieder nen kleines Problemchen mit meinen Templates..
Und zwar will ich in einem Template ein anderes Template includieren, dass Problem ist nur das ich es nciht hibekomme, das entsprechende File als Parameter zu uebergeben..

Das ist das CGI zum aufrufen des Haupttemplates:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl
use strict;
use warnings;

use HTML::Template;
use CGI::Carp qw(fatalsToBrowser);

my $tmpl = HTML::Template->new(filename =>'../templates/main.tmpl');

my $file = '../templates/test.tmpl';
$tmpl->param(FILE => $file);

print "Content-type: text/html\n\n";
print $tmpl->output();


Im Haupttemplate steh u.a. folgendes:
Code: (dl )
1
2
<!-- TMPL_VAR FILE -->
<!-- TMPL_INCLUDE NAME=../templates/test.tmpl -->


Jetzt wuerde ich die TMPL_VAR FILE nehmen und als zu includierende Datei angben...
like:
Code: (dl )
<!-- TMPL_INCLUDE NAME=TMPL_VAR FILE -->


Anschauen kann man sich das ganze hier.


Kann mir da wer weiterhelfen?

Mit freundlichen Gruessen,
Stefan

P.s.: ich hoffe es war halbwegs verstaendlich :- )
Pörl.
renee
 2006-07-07 19:39
#8241 #8241
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was Du wahrscheinlich suchst ist:
Code: (dl )
<TMPL_INCLUDE_VAR NAME="body_include">


wobei Du das "body_include" natürlich durch anderes ersetzen kannst. Im Skript machst Du dann nur noch
Code: (dl )
$tmpl->param(body_include => 'beliebige_datei.tmpl');


Das ist eine wunderbare Sache bei CPAN:HTML::Template::Compiled. Danke @pq!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
styx-cc
 2006-07-07 21:45
#8242 #8242
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Gibt es da evt. noch eine andere moeglichkeit?
Der Betreiber mienes Webspaces hat wohl oder uebel nur HTML::Template installiert :(

Btw.: ich habe das Modul lokal via ppm nachinstalliert und festgestellt das es nur .pl-Dateien sind, kann man die von der Sache her nicht einfach so rueberkopieren und das Modul nutzen?

MfG

P.s.: Aber so funktioniert es super, nur die Pfade machen mir ein wenig Schwierigkeiten :-) Danke!\n\n

<!--EDIT|styx-cc|1152294405-->
Pörl.
pq
 2006-07-07 22:32
#8243 #8243
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
du kannst die pm-dateien von HTC einfach kopieren, ja. kannst aber auch generell
cgipan nehmen, um module auf dem webspace
zu installieren.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2006-07-07 22:33
#8244 #8244
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=styx-cc,07.07.2006, 19:45]P.s.: Aber so funktioniert es super, nur die Pfade machen mir ein wenig Schwierigkeiten :-) Danke![/quote]
inwiefern denn?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
styx-cc
 2006-07-07 23:29
#8245 #8245
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Ich versuchs mal zu erklaeren, is nich ganz einfach..
Also, folgendes funktioniert nicht:

Main CGI:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!G:\perl\bin\perl
use strict;
use warnings;

use CGI::Carp qw(fatalsToBrowser);

use HTML::Template::Compiled;

my $tmpl = HTML::Template::Compiled->new(filename =>'../templates/main.tmpl');


$tmpl->param(content => '../templates/test.tmpl');

print "Content-type: text/html\n\n";
print $tmpl->output();


Include im Tmpl:
Code: (dl )
<!-- TMPL_INCLUDE_VAR NAME="content" -->

'../templates/test.tmpl' not found at G:/programmierung/web/stefan/cgi-bin/navi.cgi line 15


Allerdings funktioniert:
Code: (dl )
<!-- TMPL_INCLUDE NAME="../templates/test.tmpl" -->


und gerade beim testen is mir aufgefallen,
wenn ich:
Code: (dl )
1
2
<!-- TMPL_INCLUDE_VAR NAME="content" -->
<!-- TMPL_INCLUDE NAME="../templates/test.tmpl" -->


nehme, includiert ers 2 Mal...

MfG

Edit:
Mit dem absoluten Pfad klappt <!-- TMPL_INCLUDE_VAR NAME="content" --> aber.\n\n

<!--EDIT|styx-cc|1152300788-->
Pörl.
renee
 2006-07-08 02:09
#8246 #8246
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich würde sowieso immer raten mit CPAN:FindBin zu arbeiten...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2006-07-08 02:26
#8247 #8247
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=styx-cc,07.07.2006, 21:29]und gerade beim testen is mir aufgefallen,
wenn ich:
Code: (dl )
1
2
<!-- TMPL_INCLUDE_VAR NAME="content" -->
<!-- TMPL_INCLUDE NAME="../templates/test.tmpl" -->


nehme, includiert ers 2 Mal...[/quote]
also das ist klar. sind ja auch 2 verschiedene tags.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2006-07-08 02:31
#8248 #8248
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
@styx-cc: welche version von HTC hast du? bei mir geht es (0.70).
hab da in den letzten versionen noch ein bißchen an den pfaden gebastelt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
styx-cc
 2006-07-08 03:47
#8249 #8249
User since
2006-05-20
533 Artikel
BenutzerIn

user image
@pq:
Da duerfte der Fehler stecken:
our $VERSION = "0.63";

Ich probiers morgen ma mit der 0.70

MfG
Pörl.
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2006-07-07 19:14.