Schrift
[thread]957[/thread]

Select Liste ...: HTML::Template (Seite 2)

Leser: 3


<< |< 1 2 >| >> 15 Einträge, 2 Seiten
BlackExe
 2007-07-08 15:11
#296 #296
User since
2007-03-25
49 Artikel
BenutzerIn
[default_avatar]
Danke renee ... :)

Das waren zu viele informationen gestern, war ein wenig durcheinander.
Jetzt versteh ich auch was mir pq, sagen wollte. :)



Gruß Steve
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
bloonix
 2007-07-08 15:55
#297 #297
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=renee,07.07.2007, 16:15]@opi: Warum??[/quote]
Das habe ich doch im nächsten Satz geschrieben. Siehe auch Antwort von pq.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
Ronnie
 2007-07-08 16:46
#298 #298
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Hier mal ein Beispiel mit HTC und der Punkt-Notation:
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/perl

use strict;
use warnings;

use CGI;
use CGI::Carp qw(fatalsToBrowser);
$CGI::DISABLE_UPLOADS = 1;

use Data::Dumper;
use HTML::Template::Compiled;

package Widget::Select;
use Moose;

has 'tuple'     =>  (is => 'rw'); # ID, Text, ...
has 'name'      =>  (is => 'rw');
has 'selection' =>  (is => 'rw');

sub set_tuple {
    my $self = shift;
    $self->{tuple} = [@_] if @_ % 2 == 0;
}

sub as_form {
    my $self = shift;
    my @l = @{$self->{tuple}}; # non destructive
    
    my $o = '<select name="' . $self->name . "\">\n";
    
    while (my ($k, $v) = splice @l, 0, 2) {
        $o .= ($k == $self->selection)  ? 
        '<option selected value="'. $k .'">'. $v .'</option>'."\n" :
        '<option value="'. $k .'">'. $v .'</option>'."\n";
    }
    
    $o .= '</select>' . "\n";
    return $o;
}

package main;

my $q       = CGI->new;
my $sel     = $q->param('sel');
my @files   = <*.pl>;
my $wdgt    = Widget::Select->new( name => 'sel' );

$wdgt->set_tuple( map { $_, $files[$_] } 0..$#files );
$wdgt->selection($sel);

print $q->header;
my $t = HTML::Template::Compiled->new( filehandle => *DATA);
$t->param(wdgt => $wdgt, message => Dumper $q);
print $t->output;

__DATA__
<html>
<head>
  <title>Test</title>
</head>
<body>
<form>
<%= wdgt.as_form %>
<input type="submit" value="Senden">
</form>
<hr />
<pre><%= message %></pre>
</body>
</html>

Wie man sieht bevorzuge ich die ASP-Style Tags. Das Select-Widget wird komplett per Methoden-Aufruf erzeugt, statt umständlicher LOOP-Konstrukte.\n\n

<!--EDIT|Ronnie|1183898818-->
renee
 2007-07-08 16:48
#299 #299
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
geht auch *ohne* AoH und AoAoH (wie pq auch geschrieben) hat (siehe mein Beispiel)...

Sicher hat Template-Tookit ein paar Vorteile gegenüber HTC, aber in anderen Punkten hat HTC Vorteile gegenüber TT.
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/
bloonix
 2007-07-08 17:10
#300 #300
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=renee,08.07.2007, 14:48]geht auch *ohne* AoH und AoAoH (wie pq auch geschrieben) hat (siehe mein Beispiel)...[/quote]
Es ging mir ja nicht um das obige Beispiel, sondern das man
mit HTML::Template allgemein oft wilde AoH bauen muss,
sobald die Datenstruktur etwas komplexer wird.

[quote=renee,08.07.2007, 14:48]Sicher hat Template-Tookit ein paar Vorteile gegenüber HTC, aber in anderen Punkten hat HTC Vorteile gegenüber TT.[/quote]
Ein Vergleich liegt mir fern. Die Community rund um TT ist
größer, dass war ausschlaggebend für mich.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2007-07-07 03:19.