Schrift
[thread]6846[/thread]

HTML Seite generieren (Seite 4)

Leser: 1


<< |< 1 2 3 4 >| >> 40 Einträge, 4 Seiten
Reugla John
 2005-04-12 16:29
#53296 #53296
User since
2005-04-05
15 Artikel
BenutzerIn
[default_avatar]
Danke jetzt klappt es mal wieder Fehler der Kategorie stupides Kopieren :D
Reugla John
 2005-04-14 11:15
#53297 #53297
User since
2005-04-05
15 Artikel
BenutzerIn
[default_avatar]
So da nun soweit alles Funktioniert wollte ich fragen wie ich Perl nun sage dass es eine HTML Seite erstellt?
renee
 2005-04-14 11:33
#53298 #53298
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Schonmal meinen ersten Post durchgelesen? ( http://board.perl-community.de/cgi-bin....0;#idx3 )
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/
Crian
 2005-04-14 11:41
#53299 #53299
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Per print, oder eleganter mit Templates.

Soll Deine Anwendung einfach Dateien im HTML-Format erzeugen, oder sollen Daten im HTML-Format an STDOUT gesendet werden?

Sprich ist es ein cgi-Programm?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Reugla John
 2005-04-14 11:48
#53300 #53300
User since
2005-04-05
15 Artikel
BenutzerIn
[default_avatar]
Es soll nur eine einfach HTML Seite ausgegeben werden also kein CGI-Programm

@renee
ja ich habe deinen Post gelesen aber ich weis nicht ob Templates nicht zu aufwendig sind für eine einfache strukturierte Ausgabe
renee
 2005-04-14 11:57
#53301 #53301
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
dann musst du den html-code einfach ausgeben:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
sub ausgabe{
print qq~<html>
<body>
<h1>Fehlermeldungen</h1>
~;
for my $key(keys(%errors)){
print '<b>'.$_.'</b> '.$errors{$_};
}
print qq~</body>
</html>~;
}


oder in eine Datei:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
sub ausgabe{
open(my $fh,">ziel.html") or die $!;
print $fh qq~<html>
<body>
<h1>Fehlermeldungen</h1>
~;
for my $key(keys(%errors)){
print $fh '<b>'.$_.'</b> '.$errors{$_};
}
print $fh qq~</body>
</html>~;
close $fh;
}


Normalerweise trennt man aber Logik von Design und benutzt deswegen Templates. Die eignen sich auch schon für kleinere Sachen, auch damit das Programm übersichtlich bleibt...
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/
Crian
 2005-04-14 12:07
#53302 #53302
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Das schöne ist, wenn Du Templates für ein kleines Problem benutzt, sind sie Dir beim nächsten großen Problem schon vertraut.

Und für ein kleines Problem schreibst Du als Templatedatei einfach HTML-Datei, an der an einigen Stellen Platzhalter statt wörtlichem Inhalt stehen. An diesen Stellen setzt das Programm dann entsprechende Inhalte ein.

Schau Dir mal die Doku zu HTML::Template an, es ist ziemlich einfach.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Reugla John
 2005-04-14 12:20
#53303 #53303
User since
2005-04-05
15 Artikel
BenutzerIn
[default_avatar]
Wenn ich diese HTML Datei mit den Platzhalter erstellt habe wird immer auf diese Datei zugegriffen oder?

Aber da bei jedem durchlauf des Skriptes eine Datei erstellt werden soll ist es doch weniger geeignet da ja bei den Templates immer die HTML Datei überschrieben wird oder nicht?
renee
 2005-04-14 12:46
#53304 #53304
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nein,

Template:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<body>
<h1>Fehlermeldungen</h1>
<table>
<!-- TMPL_LOOP NAME=ERRORS -->
<tr>
<td>
<!-- TMPL_VAR NAME=CATEGORY -->
</td>
<td>
<!-- TMPL_VAR NAME=NUMBER -->
</td>
</tr>
<!-- /TMPL_LOOP -->
</table>
</body>
</html>


Skript:
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
#! /usr/bin/perl

use strict;
use warnings;
use HTML::Template;

my $tmpl_file = '/path/to/template.tmpl';
my $template = HTML::Template->new(filename => $tmpl_file);

my %errors = (klein => 5, mittel => 10, groß => 1);

my @array;
foreach my $key(keys(%errors)){
push(@array,{CATEGORY => $key, NUMBER => $errors{$key}});
}

$template->param(ERRORS => \@array);

my $target = '/path/to/ziel.html';

open(my $fh,">$target") or die $!;
print $fh $template->output();
close $fh;


Und so kannst Du immer wieder Dein Template benutzen...
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/
Crian
 2005-04-14 16:31
#53305 #53305
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ein Template ist eine Schablone. Diese wird benutzt um immer neue unterschiedliche HTML-Ausgabedateien zu erzeugen, die Schablonendatei bleibt davon aber unbeeinflusst.

Nett ist es, in den Schablonen-Dateien CSS zu verwenden. Auch die CSS-Datei kann dann eine Schablone sein (muss es aber nicht), so kann man relativ einfach unterschiedliche Layouts aus seinen Vorlagen erzeugen. Das verwende ich zum Beipiel bei SPIP.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 3 4 >| >> 40 Einträge, 4 Seiten



View all threads created 2005-04-05 10:00.