Re: Blättern in Loop ohne Suchabfrage - auch das... - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 16.Februar.2002, 23:51.
    Re: Blättern in Loop ohne Suchabfrage - auch das...

      ...wäre prima als kleines tool in der bibliothek... gibts zwar schon, aber mit parameter einstellbar wärs noch besser (träum) ;-)


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Ringo (32 Beiträge) am Freitag, 15.Februar.2002, 21:47.
    Blättern in Loop ohne Suchabfrage

      Hallo,
      ich habe eine Veranstaltungs-Datenbank die ganz einfach anhand der Variablen Jahr, Monat, Tag dem Datum nach ausgegeben wird:
      <loop sort=Jahr,Monat,Tag range=0,5>
      
      ....
      Nun möchte ich darin in 5er Schritte blättern, aber es funktioniert einfach nicht. Kann jemand helfen ?
      Hier der restliche Code:

      </loop>
      <perl>
      

      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      

      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;

      out "<< <a href=\"$_link&range=$oldrange,$_range_length$append\">Zurück</a> " if $oldrange>=0;
      if ($_amount != 0)
      

      {
      $bis = $_range + $_range_length;
       
      $von = $_range + 1;
      out " [ Einträge $von bis \n";
          if ($bis < $_amount_query)
             {
              out "$bis von $_amount_query\n ";
             }
          else
             {
              out " $_amount_query von $_amount_query ]";
             }
        }
      

      out "<a href=\"$_link&range=$newrange,$_range_length$append\">Weiter</a> >>" if $newrange<$_amount_query;
      </perl>
      

     Antworten

    Beitrag von Alibert (4 Beiträge) am Samstag, 16.Februar.2002, 23:37.
    Re: Blättern in Loop ohne Suchabfrage

      das funktioniert:

      <perl>
      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      

      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;

      out "<< <a href=\"$_link&range=$oldrange,$_range_length\">Zurück</a> " if $oldrange>=0;
      out "<a href=\"$_link&range=$newrange,$_range_length\">Weiter</a> >>" if $newrange<$_amount_query;
      

      </perl>


      was macht dein $append , wenn du ihn nicht definierst?

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 16.Februar.2002, 23:51.
    Re: Blättern in Loop ohne Suchabfrage - auch das...

      ...wäre prima als kleines tool in der bibliothek... gibts zwar schon, aber mit parameter einstellbar wärs noch besser (träum) ;-)

     Antworten

    Beitrag von Alibert (4 Beiträge) am Samstag, 16.Februar.2002, 23:58.
    Re: Blättern in Loop ohne Suchabfrage - auch das...

      was für parameter meinst du?

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 18.Februar.2002, 20:55.
    Re: Blättern in Loop ohne Suchabfrage - auch das...

      Ich meine: Man kann die Sachen aus der Bibliothek jetzt mit <include src=/_bib/projekt/seite param1=wert1 param2=wert2 ...> einbinden. $param1 steht dann in "seite" mit dem angegeben wert zur verfügung (s. 1. beispiel in der bib - "gaestebuch" da ist das so gemacht).

      bei dem obigen code gibts aber tatsächlich nich mehr viel zu parametrisieren, vielleicht dass man statt "<< zurück" & "weiter >>" eigene texte angeben kann oder bilder oder... ;-)

     Antworten

    Beitrag von Ringo (32 Beiträge) am Sonntag, 17.Februar.2002, 14:40.
    Re: Blättern in Loop ohne Suchabfrage

      Dein Quellcode funktioniert ohne $append ebenso wenig wie "meiner". Ich habe keine Ahnung, wie ich das $append definieren muß. Kannst Du mir das erklären?

     Antworten

    Beitrag von Alibert (4 Beiträge) am Sonntag, 17.Februar.2002, 21:39.
    Re: Blättern in Loop ohne Suchabfrage

      erst mal $apppend; das $append merkt sich die Variable nach der Du suchst.
      wie ist deine abfrage gestaltet? mit form? per url?

       und hier noch mal blättern mit $append
      <perl>
      

      local $append = "";

      $append ="&Suchfeld~=$_sel{Suchfleld}" if $_sel{Suchfeld};
      $append .="&Suchfeld~=$_sel{Suchfeld}" if $_sel{Suchfeld};
      

      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      

      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;

      out "<< <a href=\"$_link&range=$oldrange,$_range_length$append\">Zurück</a> " if $oldrange>=0;
      if ($_amount != 0)
       
      {
      $bis = $_range + $_range_length;
          $von = $_range + 1;
          out " [ Einträge $von bis \n";
          if ($bis < $_amount_query)
             {
              out "$bis von $_amount_query\n  ";
             }
          else
             {
              out " $_amount_query von $_amount_query ]";
             }
        }
      out "<a href=\"$_link&range=$newrange,$_range_length$append\">Weiter</a> >>" if $newrange<$_amount_query;
      

      </perl>

     Antworten

    Beitrag von Ringo (32 Beiträge) am Montag, 18.Februar.2002, 09:05.
    Re: Blättern in Loop ohne Suchabfrage

     Antworten

    Beitrag von Olaf Mertgen (263 Beiträge) am Montag, 18.Februar.2002, 11:00. WWW: www.shareware4u.de
    Re: Blättern in Loop ohne Suchabfrage

      Hallo,

      wenn ich mich nicht irre, dann liefert
      <loop sort=Jahr,Monat,Tag range=0,5>
      
      immer die gleiche Ausgabe, nämlich die ersten 5. Entweder musst du da eine Variable reinschreiben oder das Überschreiben durch die URL zulassen:
      <loop sort=Jahr,Monat,Tag range^=0,5>

      Ich arbeite allerdings immer mit PERL und habe das so gelöst.

      Zunächst mal habe ich eine globale Funktion, die mir den Bereich ermittelt und als Text zurückliefert:
      sub BereichErmitteln {
       my ($AnzahlDS, $Start, $Pfad, $MaxProSeite) = @_;
       
       ####### Initialisieren
       my ($i, $SeitenGesamt, $Ergebnis, $Vorne, $Hinten) = (0, 0, "", 0, 0);
       $MaxProSeite = 10 unless ($MaxProSeite);
       
       if ($AnzahlDS > $MaxProSeite) {
        ####### Seitenzahl feststellen
        my $Rest = ($AnzahlDS % $MaxProSeite);
        $SeitenGesamt = $AnzahlDS - $Rest;
        $SeitenGesamt = ($SeitenGesamt / $MaxProSeite);
        ++$SeitenGesamt if ($Rest);
        my $AktuelleSeite = $Start / $MaxProSeite + 1;
      
        ####### Sichtbaren Bereich feststellen   if ($SeitenGesamt > 6) {    $Vorne = $AktuelleSeite - 2;    $Hinten = $AktuelleSeite + 3;    if ($Vorne < 1) {     $Hinten += (-$Vorne + 1);     $Vorne = 1;    } elsif ($Hinten > $SeitenGesamt) {     $Vorne -= ($Hinten - $SeitenGesamt);     $Hinten = $SeitenGesamt;    }   } else {    $Vorne = 1;    $Hinten = $SeitenGesamt;   }   ####### Ausgabe erarbeiten   if($Start >= $MaxProSeite) {    $bereich=$Start-$MaxProSeite;   } else {    $bereich=0;   }   $Ergebnis .= "&raquo; <a href=\"$Pfad&range=0,$MaxProSeite\">Anfang</a> | " if ($AktuelleSeite > 1) && ($Vorne > 1);   $Ergebnis .= "&raquo; <a href=\"$Pfad&range=$bereich,$MaxProSeite\">Zur&uuml;ck</a> | " if ($AktuelleSeite > 1);   $Ergebnis .= "..." if ($Vorne > 1);      for ($x = $Vorne; $x <= $Hinten; $x++) {    if ($x != $AktuelleSeite) {     $x_bereich = ($x-1)*$MaxProSeite;     $Ergebnis .= "<a href=\"$Pfad&range=$x_bereich,$MaxProSeite\">$x</a>";    } else {     $Ergebnis .= "<b>$x</b>";    }        $Ergebnis .= "," if ($x < $Hinten);   }      $Ergebnis .= "..." if ($Hinten < $SeitenGesamt);      if($Start <= $AnzahlDS-$MaxProSeite) {    $bereich=$Start+$MaxProSeite;   } else {    $bereich=$Start;   }      $x_bereich = ($SeitenGesamt-1)*$MaxProSeite;   $Ergebnis .= " | &raquo; <a href=\"$Pfad&range=$bereich,$MaxProSeite\">Weiter</a>" if ($AktuelleSeite < $SeitenGesamt);   $Ergebnis .= " | &raquo; <a href=\"$Pfad&range=$x_bereich,$MaxProSeite\">Ende</a>" if ($AktuelleSeite < $SeitenGesamt) && ($Hinten < $SeitenGesamt);  }
       return $Ergebnis;
      }


      Den Aufruf kann ich dann hinter jedes get hängen:
      $start=0+$_range;
      $path="http://WWW.DEINEDOMAIN.DE/BASEPORTAL/TEMPLATE";
      

      get "Id==* sort=Jahr,Monat,Tag range=$start,5", "tabelle";

      my $Bereich = &BereichErmitteln($_amount_query, $start, $path, 5);
      

      In $Bereich steht jetzt die komplette Ausgabe für Bereich und ich kann das z.B. über und unter der Ausgabe der Daten schreiben:

      out $Bereich;
      

      Hier kommt die Schleife mit den Daten

      out $Bereich;
      

      Die Funktion benutze ich bei allen Projekten und das funktioniert prima.

      Gruß, Olaf

     Antworten


     
 Liste der Einträge von 50250 bis 50400:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.09s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!