Leser: 1
![]() |
|< 1 2 3 4 5 6 7 >| | ![]() |
61 Einträge, 7 Seiten |
Quotenur wenn die if's im template und im code parallel sind, dann wird's unhandlich; aber das steht auch in der Doku zu HTML::Template (und vermutlich auch HTC)
1 2 3 4 5
<;!-- TMPL_IF NAME=showImages -->;; <img src="blablubb.gif" alt="bildchen" /> <;!-- TMPL_ELSE -->;; bildchen <;!-- /TMPL_IF -->;;
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
HTML_ <html> Nun das Bild: <;!-- TMPL_VAR NAME=BILD -->;; </html> PERL_ if ($wert) { $template->param(BILD => ' <img src="blablubb.gif" alt="bildchen" />'); } else { $template->param(BILD => 'Bildchen'); } PERL_ if ($wert) { $html = ' <img src="blablubb.gif" alt="bildchen" />'; } else { $html = 'Kein Bild'; } #$html = hier ist nun der code der Datei bild.html $template->param(BILD => $html); ------ oder auslagern für perfekte trennung ------- HTML_ <html> Nun das Bild: <;!-- TMPL_VAR NAME=BILD -->;; </html> PERL_ if ($wert) { do 'bild.html'; } else { do 'keinbild.html'; } #$html = hier ist nun der code der Datei bild.html $template->param(BILD => $html);
1 2 3 4
PERL_ if ($wert) { do 'bild.html'; } else { do 'keinbild.html'; } &change($html); sub change {$template->param($_[0] => $_[1]); }
&change('BILD','Bild.html', 'keinbild.html', $Wert); #Bei der Funktion wird Bild angezeigt. wenn der Wert nicht wahr ist, sonst die alternative
$template->param(Bild => $template2->output() );
Quote"if" ist gehört nicht da ganz klar nicht rein.. bzw. der funktionalität her, könnte man es lassen. aber mit dem vermerk "nur für notfälle"
QuoteEs wäre auch dumm das Rad 2 mal zu erfinden. In Perl gibt's bereits if.. usw. dazu braucht man das nichts template einzubauen das verwirrt nur und ist unsauber da man programmierung und darstellung trennen sollte.
QuoteZudem hat das template-If viel weniger möglichkeiten..
QuoteGrundsätzlich ist bei einem guten System programmierlogik, ablauf nicht ins template implementiert.
Quoteden rest sollte man den richtigen Programmiersprachen überlassen...
QuoteSauberer Stil ist:
1
2
3
4
5
6
if ($set->{showImages}) {
$template->param(bild => '<img src=... alt=.../>');
}
else {
$template->param(bild => 'bild');
} #else
1
2
3
4
5
6
7
8
9
10
11
12
13
sub FetchUserInfo {
my ($dbh, $key, $userId) = @_;
my $sql = "SELECT " . join(", ", @wantedColumns) . " FROM users WHERE $key=?~;
....
my $dataHRef = $sth->fetchrow_hashref();
...
return $dataHRef;
}
my $userInfo = &FetchUserInfo($dbh, id => $userId);
$template->param(
%GlobalConfig,
%LocalConfig,
%$dataHRef);
Quotedas mit dem bild sehe ich anders; das ist ja ein layout-thema, ob da bilder angezeigt werden sollen oder nicht, also sollte auch der designer da unterscheidungen treffen.
QuoteDas macht die ganze Welt schon seit Jahren so
QuoteLies meinen Beitrag nochmals durch ich habe ja erklärt das Buisnesslogik und Viewlogik weder im template noch ins Skript gehören..
QuoteEs kann sein, das ich nicht alle Begriffe 100% verstehe, es gibt auch wichtigeres als sich um die Begriffe zu streiten.
QuoteJa und die ganze welt macht auch solchen mist:
<%%>HTML<%%>HTML<%%>
QuoteIF = Programmierlogik. hat "Layout" nichts verloren.
Quoteps. versuch mal dein template in 5 min anzupassen.
Quoteda musst du sämtliche IF und ganze template-funktionalität usw. berücksichtigen... darauf "achten" nicht das falsche zu verschieben.
QuoteIch machs mit 1-2 klicks... weil alles korrekterweise ausgelagert ist (soweit es geht) was mit dem Layout nichts zu tun hat.
$template->param(BILD => ' <img src="blablubb.gif" alt="bildchen" />');
QuoteEs gibt z. B. HTML und Perl dazwischen braucht man keine Zwischenwelt("spezial-template"), die alles verkompliziert.
QuoteVielleicht verstehst Du nun meine Sicht der Dinge
QuoteIF ist für was aus Programmiersprachen... das gibts schon.... wieso also alles doppelt machen, umständlicher und langsamer?
![]() |
|< 1 2 3 4 5 6 7 >| | ![]() |
61 Einträge, 7 Seiten |