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

CSS Layout mit Perl

Leser: 1


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
bieber
 2007-07-19 10:52
#29067 #29067
User since
2007-06-18
148 Artikel
BenutzerIn
[default_avatar]
moin Community,

ich versuche mir selbst nach und nach die Webprogrammierung näher zu bringen,
bis jetzt habe ich html-Seiten nur mit Tabellenlayouts gestaltet und auch in zusammenarbeit mit Perl habe ich auf jegliche Templates verzichtet, alles "schön" mit
Code: (dl )
1
2
3
print<<"blubb"
...
blubb

ausgegeben

nun, da ja css-Layouts stark im Kommen sind (bzw. schon da sind) habe ich mir zunächst mal ein Grundgerüst gebastelt um diese Art der Darstellung zu lernen
http://perl.brainlessness.de/

so weit so gut, mein Problem ist nun wie ich es mit Perl schaffe dieses Layout umzusetzen

es soll dann so funktionieren, dass alles bis auf der content "stehen bleibt" und der content sich dann abhängig vom ausgewählten Link ändert
bestimmt wäre es am Sinnvollsten für jeden Bereich ein Template zu machen und diese dann einbinden, aber ehrlich gesagt habe ich noch nie mit Templates gearbeitet...

wo könnte ich mir solches Wissen aneignen, gibts vielleicht ein Tutorial zu?! ich habe zu den Vorhaben wie ich es machen will nichts gefunden, könnte aber auch daran liegen dass es zu einfach ist(nur ich weiß nicht wie es geht)

Edit: die css-Anweisungen werden noch ausgelagert

bin für jede Hilfe dankbar\n\n

<!--EDIT|bieber|1184828038-->
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
renee
 2007-07-19 11:03
#29068 #29068
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
CSS hat mit Perl nichts zu tun. Lager die CSS-Anweisungen in eine Datei aus und binde diese mit dem entsprechenden HTML-Tag ein.

Ob Du dann mit
Code (perl): (dl )
1
2
3
4
5
6
7
8
print qq~<html>
    <head>
        <link type="text/css" rel="stylesheet" href="/style/main14.css">
    </head>
    <body>
    Test
    </body>
</html>~;


arbeitest oder mit einem Template ist dann egal...
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/
renee
 2007-07-19 11:13
#29069 #29069
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mit einem Template und CPAN:HTML::Template::Compiled könnte es so aussehen:

Template:[html]<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<title>Testtitel</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<link href="/style/test.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="content"><TMPL_VAR NAME=BODY></div>
<div class="menu">
<a href="?action=seite1">Seite1</a><br />
<a href="?action=seite2">Seite2</a>
</div>
</body>
</html>[/html]

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

use strict;
use warnings;
use CGI;
use HTML::Template::Compiled;

my $cgi = CGI->new();
print $cgi->header();

my %params = $cgi->Vars();
my $template = HTML::Template::Compiled->new( filename => 'htc_bieber.tmpl' );

if( !$params{action} or $params{action} eq 'seite1' ){
    seite1( $template );
}
elsif( $params{action} eq 'seite2' ){
    seite2( $template );
}
else{
    fehler( $template );
}

print $template->output;

#--
# Subroutines
#-- 

sub seite1{
    my ($tmpl) = @_;
    $tmpl->param( BODY => 'Testseite Nr. 1' );
}

sub seite2{
    my ($tmpl) = @_;
    $tmpl->param( BODY => 'Sie haben Seite Nr. 2 gew&auml;hlt' );
}

sub fehler{
    my ($tmpl) = @_;
    $tmpl->param( BODY => '&Auml;tsch! Seite existiert nicht' );
}


Das ist jetzt mal ganz einfach gehalten. Du findest unter http://renee-baecker.de/vortraege.html ein paar Unterlagen zu CPAN:HTML::Template. Die Sachen dort kannst Du fast 1:1 auf CPAN:HTML::Template::Compiled übertragen...
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/
bieber
 2007-07-19 11:15
#29070 #29070
User since
2007-06-18
148 Artikel
BenutzerIn
[default_avatar]
edit: suppi du warst schneller^^

vielen Dank, werds mir gleich mal anschaun\n\n

<!--EDIT|bieber|1184829430-->
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
pq
 2007-07-19 12:23
#29071 #29071
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
schau dir mal http://tinita.de/htc_example-0.03.tgz an, das ist ein mini-cms.
ich plane das mit auf CPAN zu packen, als beispiel. ist noch nicht ganz ausgereift,
aber sollte als anstoss reichen.
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
bieber
 2007-07-19 13:07
#29072 #29072
User since
2007-06-18
148 Artikel
BenutzerIn
[default_avatar]
oO was ist denn jetz yaml?^^
da dacht ich mal wieder etwas schlauer zu sein und dann knallst du mir gleich wieder sowas gegen den Kopf *spass*, ich schaus mir gerne an, aber kapiere ich nicht auf den ersten Blick

nochmal zur Lösung von renee, ich wollte das soweit modifizieren dass ein variables anderes template eingefügt wird, funktioniert aber irgendwie nicht, was mache ich falsch?!

habe
Code: (dl )
<TMPL_VAR NAME=BODY>
in
Code: (dl )
<TMPL_INLCUDE NAME=BODY>
ersetzt, und

Code: (dl )
$tmpl->param( BODY => 'Testseite Nr. 1' );

in
Code: (dl )
$tmpl->param( BODY => 'seite.tmpl' );


bekomme dann aber nur ne leere Seite, keine Fehler
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
renee
 2007-07-19 13:11
#29073 #29073
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das muss dann <TMPL_INCLUDE_VAR NAME=BODY> heißen...

Edit: s/INLCUDE/INCLUDE/\n\n

<!--EDIT|renee|1184836314-->
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/
bieber
 2007-07-19 13:20
#29074 #29074
User since
2007-06-18
148 Artikel
BenutzerIn
[default_avatar]
...immer diese Tippfehler...

funktioniert ;) dankö
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
pq
 2007-07-19 13:47
#29075 #29075
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=bieber,19.07.2007, 11:07]oO was ist denn jetz yaml?^^
da dacht ich mal wieder etwas schlauer zu sein und dann knallst du mir gleich wieder sowas gegen den Kopf *spass*, ich schaus mir gerne an, aber kapiere ich nicht auf den ersten Blick[/quote]
yaml? YAML. das ist ein perl-modul. zeilen wie "use ..." bedeuten:
benutze das perl-modul '...'
perl-module sind in der regel auf CPAN zu finden.
http://search.cpan.org/
die YAML-daten stehen am ende des perlscripts unter __DATA__.
das ist die konfiguration deiner webseite.
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
bieber
 2007-07-19 14:41
#29076 #29076
User since
2007-06-18
148 Artikel
BenutzerIn
[default_avatar]
jetz machst du mich dümmer als ich bin^^
ich weiß was module sind, und wie man sie einbindet, mir war YAML nur nicht bekannt

ich muss halt noch VIEL lernen
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2007-07-19 10:52.