Thread Hash referenz in array pushen (9 answers)
Opened by Gustl at 2011-07-21 19:18

Gustl
 2011-07-21 19:52
#150649 #150649
User since
2011-01-27
441 Artikel
BenutzerIn
[Homepage]
user image
2011-07-21T17:38:40 pq
was ich mich frage: wieso bastelst du da überhaupt HTML in perl zusammen, wenn du doch ein template benutzt?


Weil ich bei der pagenaviagtion in perl, und nicht im template mehr möglichkeiten ahbe, dort kann ich schleifen benutzen und mit zahlen rechnen, das geht im template ja nicht. Mein Grundgedanke war eine sub der ich die aktuelle seite, maximale seiten und den link übergebe. Dann macht diese sub mir ein array wo genau die benötigten Links für die Seiten, abhängig der aktuellen Seite, drin stehen. Hab es auch schon erdacht das im Template zu machen, aber denke das ist so einfacher.

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
sub get_pageNavi{
  my $aktuell_page = shift;
  my $max_pages    = shift;
  my $link         = shift;
  
  my @links;
  if($aktuell_page > 1){
    my $tmp->{links} = "<a href='$link"."page=".($aktuell_page-1)."' title='Zur Seite ".($aktuell_page-1)."'>&laquo;</a>"; 
    push(@links, $tmp ); 
  }
  print $max_pages;                             
  if($aktuell_page > 4){
    for( my $i = $aktuell_page - 4; $i < $aktuell_page && $i <= $max_pages; $i++){
      my $tmp->{links} = "<a href='$link"."page=".$i."' title='Zur Seite ".$i."'>$i</a>";
      push(@links, $tmp );  
    }
    my $tmp->{links} = "<span>$aktuell_page</span>"; 
    push(@links, $tmp );
    for( my $i = $aktuell_page + 1; $i <= $max_pages || $i <= 10; $i++){
      my $tmp->{links} = "<a href='$link"."page=".$i."' title='Zur Seite ".$i."'>$i</a>";
      push(@links, $tmp );  
    }
  }else{
    for( my $i = 1; $i < $aktuell_page; $i++){
      my $tmp->{links} = "<a href='$link"."page=".$i."' title='Zur Seite ".$i."'>$i</a>";
      push(@links, $tmp );  
    }
    my $tmp->{links} = "<span>$aktuell_page</span>";
    push(@links, $tmp );
    for( my $i = $aktuell_page + 1; $i <= $max_pages && $i <= 10; $i++){
      my $tmp->{links} = "<a href='$link"."page=".$i."' title='Zur Seite ".$i."'>$i</a>";
      push(@links, $tmp );  
    }
  }
  if($aktuell_page < $max_pages){
    my $tmp->{links} = "<a href='$link"."page=".($aktuell_page+1)."' title='Zur Seite ".($aktuell_page+1)."'>&raquo;</a>";
    push(@links, $tmp );
  }
  
  
  return @links;
}


2011-07-21T17:38:40 pq
(und warum löschst du die vorgeschlagenen tags (stichworte) aus dem thread?)


ich habe tags gelöscht? Wenn dann unabsichtlich... welche tags?

Gruß

View full thread Hash referenz in array pushen