Schrift
[thread]935[/thread]

Hash-Schleife



<< >> 5 Einträge, 1 Seite
smack:
 2007-06-04 18:47
#138 #138
User since
2007-05-08
27 Artikel
BenutzerIn
[default_avatar]
Hallo.

ich habe ein script, das wie folgt aussieht:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
my $fehlernummer = $ENV{'QUERY_STRING'};

my $tmpl = parsen($fehlernummer);

my %var = (
referer => $ENV{'HTTP_REFERER'},
request => $ENV{'REQUEST_URI'},
appname => $ENV{'HTTP_USER_AGENT'},
ip => $ENV{'REMOTE_HOST'},
furahid => $cgi->cookie('furahiD')
);

$tmpl = variablen($tmpl,%var);


print $cgi->header;
print $tmpl;



exit();


sub parsen {
my $tmp;
open (TEMP, '<./template/'.$_[0].'.html');
$tmp = join("",<TEMP>);
close(TEMP);

return($tmp);
}


sub variablen {
my $tmp = $_[0];
my %hash = $_[1];

my ($k,$v);
while (($k, $v) = each(%hash)) {
$tmp =~ s/\<\*$k\*\>/$v/g;
}

return($tmp);
}


im template sind nun folgende platzhalter vorhanden:
Du kommst von: <*referer*>
Du wolltest sehen: <*request*>
Dein Browser: <*appname*>
Deine IP: <*ip*>
Deine furahiD: <*furahid*>[CODE]diese sollten nun normalerweise in der schleife variablen ersetzt werden, aber leider tut sich mal rein gar nichts.

hat jmd eine idee?\n\n

<!--EDIT|smack:|1180968457-->
renee
 2007-06-04 19:07
#139 #139
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
*) Warum nimmst Du kein bestehendes Templating-System?

*) Deine Sub muss so aussehen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
sub variablen {
   my ($tmp,%hash)    = @_;
   
   my ($k,$v);
   while (($k, $v) = each(%hash)) {
       $tmp =~ s/\<\*$k\*\>/$v/g;
   }
   
   return($tmp);    
}
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/
smack:
 2007-06-04 19:17
#140 #140
User since
2007-05-08
27 Artikel
BenutzerIn
[default_avatar]
bestehendes template system. jup, aber das wäre hier oversized, da du vor dir das komplette script siehst :)


fürs andere werde ich html::template benutzen
pq
 2007-06-04 22:01
#141 #141
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=smack:,04.06.2007, 17:17]bestehendes template system. jup, aber das wäre hier oversized, da du vor dir das komplette script siehst :)


fürs andere werde ich html::template benutzen[/quote]
naja...
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use HTML::Template::Compiled;
my $fehlernummer = $ENV{'QUERY_STRING'};

my $htc = HTML::Template::Compiled->new(
   filename => "template/$fehlernummer.html",
   tagstyle => [qw(-classic -comment)],
);

my %var = (
  referer         => $ENV{'HTTP_REFERER'},
  request         => $ENV{'REQUEST_URI'},
  appname         => $ENV{'HTTP_USER_AGENT'},
  ip                  => $ENV{'REMOTE_HOST'},
  furahid         => $cgi->cookie('furahiD')
);

$htc->param(%var);


print $cgi->header;
print $htc->output;

exit();

template:
Code: (dl )
1
2
3
4
5
Du kommst von: <%= referer %>
Du wolltest sehen: <%= request %>
Dein Browser: <%= appname %>
Deine IP: <%= ip %>
Deine furahiD: <%= furahid %>


das skript ist so kürzer =)

ich sag das nur, weil man erfahrungsgemäß bestehende skripte irgendwann
erweitern will, und dann brauchst du vielleicht eine funktionalität
für schleifen im template oder so.
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
smack:
 2007-06-04 22:26
#142 #142
User since
2007-05-08
27 Artikel
BenutzerIn
[default_avatar]
im endeffekt hast du recht pq.
doch wie ist es so schön: der mensch ist von haus aus faul :D

ich werds mal umbasteln. vielen dank für das schöne beispiel
<< >> 5 Einträge, 1 Seite



View all threads created 2007-06-04 18:47.