Schrift
[thread]339[/thread]

HTML::Template Loop: ab x Mal wdh



<< |< 1 2 >| >> 16 Einträge, 2 Seiten
pktm
 2004-07-27 01:24
#3242 #3242
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich habe mir da eine kleine Galerie gebastelt.
Da werden im Moment die Tumbs per Loop ausgegeben.
Jetzt will ich aber ssagen wir 4 Tumbs pro Zeile, in einer Tabelle in der die id's der Spalten und Zeilen (tr, td) durchnummeriert sind und die Angabe ob odd oder gerade als .class angegeben ist (müsste mit gehen oder?).

Hat jemand eine Idee wie ich das templatebasiert realisieren kann?
mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
Strat
 2004-07-27 01:38
#3243 #3243
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
1. du brauchst zeilen => arrayref
2. du brauchst spalten => arrayref
dann muesste das Tempalte in etwafolgendermaszen aussehen:
[html]
<table>
<!-- TMPL_LOOP NAME=OUTER -->
<tr>
<!-- TMPL_LOOP NAME=INNER -->
<td>
<img src="<!-- TMPL_VAR NAME=SRC -->" alt="<!-- TMPL_VAR NAME=ALT -->" />
</td>
<!-- /TMPL_LOOP -->
</tr>
<!-- /TMPL_LOOP -->
[/html]
und die Datenstruktur dann in etwa:
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
$template->param
  (
    OUTER => [
      { 
        INNER => [ # 1.
          { SRC => 'image01.jpg', ALT => 'image01' }, # 1.1
          { SRC => 'image02.jpg', ALT => 'image01' }, # 1.2
          { SRC => 'image02.jpg', ALT => 'image01' }, # 1.3
          { SRC => 'image02.jpg', ALT => 'image01' }, # 1.4
        ], 
      }, # 1.
      { 
        INNER => [ # 2.
          { SRC => 'image01.jpg', ALT => 'image01' }, # 2.1
          { SRC => 'image02.jpg', ALT => 'image01' }, # 2.2
          { SRC => 'image02.jpg', ALT => 'image01' }, # 2.3
          { SRC => 'image02.jpg', ALT => 'image01' }, # 2.4
        ], 
      }, # 2.
      { # .....

      }
    ], # OUTER
);

allerdings ist es vielleicht sinnvoll, fuer inner immer die komplette zeile zu fuellen, und das template folgendermaszen mit &nbsp; zu fuellen, damit die tabelle "schoen" gezeichnet wird:

[html]
<!-- TMPL_LOOP NAME=INNER -->
<td>
<!-- TMPL_IF NAME=SRC -->
<img src="<!-- TMPL_VAR NAME=SRC -->" alt="<!-- TMPL_VAR NAME=ALT -->" />
<!-- TMPL_ELSE -->
&nbsp;
<!-- /TMPL_IF -->
</td>
<!-- /TMPL_LOOP -->
[/html]
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Strat
 2004-07-27 01:43
#3244 #3244
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wenn du noch nach geraden spalten unterschiedliche classes haben willst, muesstest du noch weiter mit TMPL_IF's unterscheiden, z.B. ob der Parameter ODD wahr oder falsch ist (auf derselben hoehe wie SRC und ALT, z.B.
[html]
<!-- TMPL_LOOP NAME=INNER -->
<td>
<!-- TMPL_IF NAME=SRC -->
<img class="<!-- TMPL_IF NAME=ODD -->class1<!-- TMPL_ELSE -->class2<!-- /TMPL_IF -->"
src="<!-- TMPL_VAR NAME=SRC -->" alt="<!-- TMPL_VAR NAME=ALT -->" />
<!-- TMPL_ELSE -->
&nbsp;
<!-- /TMPL_IF -->
</td>
<!-- /TMPL_LOOP -->
[/html]
oder die class in <td> zu setzen...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
pktm
 2004-07-27 19:40
#3245 #3245
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Danke - danach habe ich gesucht.
mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
Tom
 2004-12-17 01:54
#3246 #3246
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

Habe ein ähnliches Problem, ich habe z.B. 6 Smilies die möchte ich jetzt so ausgeben dass 3 Smilies in einer Zeile sind, also brauche ich 2 Zeilen mit 3 Spalten.

Im moment werden die Smilies einfach hintereinander ausgegeben

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
my @loop_data = ();
while($ref = $sth->fetchrow_hashref()) {
push
@loop_data,
{ CODE => $ref->{code},
SMILIE => $ref->{smilie_url},
BESCHREIBUNG => $ref->{emoticons},
IMAGES_PATH => $images_path,
},
;
}
$template->param(LOOP => \@loop_data);


Mit dem Code von Strat komme ich nicht zurecht.

Wie muss ich das angehen?

Danke

Tom\n\n

<!--EDIT|Tom|1103241354-->
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
esskar
 2004-12-17 02:10
#3247 #3247
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
das kannst du nicht im template sondern nur im script steuern

Code: (dl )
1
2
3
4
5
6
7
<TMPL_LOOP NAME="ROWS">
<tr>
<TMPL_LOOP NAME="COLS">
<td><img src="<TMPL_VAR NAME="IMAGESRC"> alt="" /></td>
</TMPL_LOOP>
</tr>
</TMPL_LOOP>


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
my $COLMAXITEM = 3;

my $idx = 0;
my @rows = ();
my $maxcount = scalar @item - 1;
foreach my $it (@item)
{
  push @cols, {IMAGESRC=> $it};
  if(scalar @cols == $COLMAXITEM or $idx+1 == $maxcount)
  {
     push @rows, {COLS => [@cols]};
     @cols = ();
  }
  $idx++;
}
\n\n

<!--EDIT|esskar|1103285063-->
format_c
 2004-12-17 13:47
#3248 #3248
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=esskar,17.12.2004, 01:10]das kannst du nicht im template sondern nur im script steuern

Code: (dl )
1
2
3
4
5
6
7
<TMPL_LOOP NAME="ROWS">
<tr>
<TMPL_LOOP NAME="COLS">
<td><img src="<TMPL_VAR NAME="IMAGESRC"> alt="" /></td>
</TMPL>
</tr>
</TMPL_LOOP>
[/quote]
Ich glaube das sollte eher :
<TMPL_LOOP NAME="ROWS">
<tr>
<TMPL_LOOP NAME="COLS">
<td><img src="<TMPL_VAR NAME="IMAGESRC">" alt="" /></td>
</TMPL_LOOP>
</tr>
</TMPL_LOOP>


lauten oder?

Gruß Alex
esskar
 2004-12-17 14:04
#3249 #3249
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
jo;
fixed.
Tom
 2004-12-17 17:46
#3250 #3250
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=esskar,17.12.2004, 01:10]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
my $COLMAXITEM = 3;

my $idx = 0;
my @rows = ();
my $maxcount = scalar @item - 1;
foreach my $it (@item)
{
push @cols, {IMAGESRC=> $it};
if(scalar @cols == $COLMAXITEM or $idx+1 == $maxcount)
{
push @rows, {COLS => [@cols]};
@cols = ();
}
$idx++;
}
[/quote]
Sorry, aber wo muss ich das genau hinsetzen?

Muss ich meinen Code durch diesen ersetzen?

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
renee
 2004-12-17 23:38
#3251 #3251
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das Beispiel von esskar ist (fast) komplett. Du könntest Deinen Code also durch den Code von esskar ersetzen...
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/
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2004-07-27 01:24.