Re: Blätter Script - 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 Thomas H. (180 Beiträge) am Freitag, 18.März.2005, 20:25.
    Re: Blätter Script

      Hi,

      also die Fehlemeldung ist so:

      [ Fehler: Fehlerhafter Perl Code in :
      syntax error at (eval 428) line 18, near ""

      Ich hatte sie geschlossen, bin mir aber nicht sicher ob das so geht.

      <perl>
      $v=$v||0;
      </perl>
      

      <perl>
      get "Id==* _fullsearch~=$suche fullsearch_match=500 range=$v,6 @_sel", "marysol";
      </perl>
      <loop _fullsearch~=$suche fullsearch_match=500 sort^=-Id code=perl db=marysol range^=$v,6>
      out<<EOF;
      
      HTML Ausgabetabelle
      EOF
      </loop>
      

      <perl>
      if(!$_amount_query) {
      out "<p><b><font face='Verdana' size='1' color='#000000'> Keine Einträge gefunden.<br>
       Bitte ändern Sie die Suchkriterien.</font></b></p>"
      }
      </perl>
       
      <perl>
      my $range=$_range_length;
      my $blaettern=$_range_length;
      my $blaetter_lang=$range*6;
      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      my $color='#CCCCCC';
      my $color_vonbis='#FFFFFF';
      my $color_zahl='#CCCCCC';
      my $color_vorzu='#CCCCCC';
      my $color_balken='#CCCCCC';
      my $font='Verdana, Arial';
      my $size='1';
      my $table='';
      my $table_align='left';
      

      out "<div align=$table_align>";
      out "<table border="1" width="100%" cellspacing="0" cellpadding="0" ><tr><td>";
      out "<table width=$table cellpadding=4 height=25 cellspacing=4><tr align=left>
      <td bgcolor=$color align='center'><font face=$font font size=$size>";
       
      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
      

      out $oldrange>=0?"<a href=\"$_link&v=0&suche=$suche&@_sel&sort=$sort\">|<</a>":"|<";
      out "</font></td><td bgcolor=$color align='center'><font face=$font font size=$size>";
      out $oldrange>=0?"<a href=\"$_link&v=$oldrange&suche=$suche&@_sel&sort=$sort\"><</a>":"<<";
      out "</font></td><td bgcolor=$color align='center'><font face=$font font size=$size>";
      

      $ende=substr($_amount_query,0,length($_amount_query)-1);
      out $newrange<$_amount_query?"<a href=\"$_link&v=$newrange&suche=$suche&@_sel&sort=$sort\">></a>":">>";
      out "</font></td><td font face=$font font size=$size bgcolor=$color align='center'><font face=$font font size=1>";
      out $newrange<$_amount_query?"<a href=\"$_link&suche=$suche&v=".($ende."0")."&@_sel&sort=$sort\">>|
      </a>":">|";
      out "</font></td><td bgcolor=$color_vonbis width='185' align='center'><font face=$font font size=$size>Inserate ".($v+1)." bis
      ".(($v+$blaettern)>$_amount_query?"$_amount_query":($v+$blaettern))." von
      $_amount_query</td>";
       
      if ($_amount)
      {
      

      $vr=int($v/$blaetter_lang) unless $_range==0;
      $vr=$vr*$blaetter_lang;
      out "<td bgcolor=$color_vorzu align='center'><font face=$font font size=$size><a href=$_link&suche=$suche&v=".($vr-$blaetter_lang)."&@_sel&sort=$sort><<</a></font></td>" if
       
      ($vr-$blaetter_lang)>=0;
      for ($i=$vr;$i<($vr+$blaetter_lang<=$_amount_query?($vr+$blaetter_lang):$_amount_query); $i+=$blaettern)
      

      {
      out "<td bgcolor=$color_zahl align='center'><font face=$font font size=$size>".($v==$i?"<b>".($i+1)."</b>":"<a
      href=$_link&suche=$suche&v=$i&@_sel&sort=$sort>".($i+1)."</a>")."</font></td>";
      }
      out "<td bgcolor=$color_vorzu align='center'><font face=$font font size=$size><a href=$_link&suche=$suche&v=$i&@_sel&sort=$sort>>></a></font></td>" if $i<$_amount_query;
      }
      out "</font></tr></table></div>"; 
      out "</tr></td>";
      

      </perl>



      Gruß
      Thomas


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Thomas H. (180 Beiträge) am Freitag, 18.März.2005, 03:10.
    Blätter Script

      Hallo,

      ich habe hier das Blätter Script aus der BIB.
      Aus Design Gründen muß ich die Optik verändern. Folgendes Problem:
      In diesem Script befindet sich eine 8-spaltige HTML-Tabelle.
      Diese Tabelle möchte ich in eine zweite, 1-zeilige, Tabelle setzen.
      Oder anders formuliert, ich möchte einfach um die 8-spaltige Tabelle eine sichtbare 1px-Haarlinie haben.

      Ich krieg`s nicht hin, es kommen immer Fehlermeldungen.

      Hier ist der Originalteil des Scripts.


      <perl>
      if(!$_amount_query) {
      out "<p><b><font face='Verdana' size='1' color='#000000'> Keine Einträge gefunden.<br>
       Bitte ändern Sie die Suchkriterien.</font></b></p>"
      }
      </perl>
       
      <perl>
      my $range=$_range_length;
      my $blaettern=$_range_length;
      my $blaetter_lang=$range*6;
      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      my $color='#CCCCCC';
      my $color_vonbis='#FFFFFF';
      my $color_zahl='#CCCCCC';
      my $color_vorzu='#CCCCCC';
      my $color_balken='#CCCCCC';
      my $font='Verdana, Arial';
      my $size='1';
      my $table='';
      my $table_align='left';
      

      out "<div align=$table_align>";
      out "<table width=$table cellpadding=4 height=25 cellspacing=4><tr align=left>
      <td bgcolor=$color align='center'><font face=$font font size=$size>";
       
      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
      

      out $oldrange>=0?"<a href=\"$_link&v=0&suche=$suche&@_sel&sort=$sort\">|<</a>":"|<";
      out "</font></td><td bgcolor=$color align='center'><font face=$font font size=$size>";
      out $oldrange>=0?"<a href=\"$_link&v=$oldrange&suche=$suche&@_sel&sort=$sort\"><</a>":"<<";
      out "</font></td><td bgcolor=$color align='center'><font face=$font font size=$size>";
      

      $ende=substr($_amount_query,0,length($_amount_query)-1);
      out $newrange<$_amount_query?"<a href=\"$_link&v=$newrange&suche=$suche&@_sel&sort=$sort\">></a>":">>";
      out "</font></td><td font face=$font font size=$size bgcolor=$color align='center'><font face=$font font size=1>";
      out $newrange<$_amount_query?"<a href=\"$_link&suche=$suche&v=".($ende."0")."&@_sel&sort=$sort\">>|
      </a>":">|";
      out "</font></td><td bgcolor=$color_vonbis width='185' align='center'><font face=$font font size=$size>Inserate ".($v+1)." bis
      ".(($v+$blaettern)>$_amount_query?"$_amount_query":($v+$blaettern))." von
      $_amount_query</td>";
       
      if ($_amount)
      {
      

      $vr=int($v/$blaetter_lang) unless $_range==0;
      $vr=$vr*$blaetter_lang;
      out "<td bgcolor=$color_vorzu align='center'><font face=$font font size=$size><a href=$_link&suche=$suche&v=".($vr-$blaetter_lang)."&@_sel&sort=$sort><<</a></font></td>" if
       
      ($vr-$blaetter_lang)>=0;
      for ($i=$vr;$i<($vr+$blaetter_lang<=$_amount_query?($vr+$blaetter_lang):$_amount_query); $i+=$blaettern)
      

      {
      out "<td bgcolor=$color_zahl align='center'><font face=$font font size=$size>".($v==$i?"<b>".($i+1)."</b>":"<a
      href=$_link&suche=$suche&v=$i&@_sel&sort=$sort>".($i+1)."</a>")."</font></td>";
      }
      out "<td bgcolor=$color_vorzu align='center'><font face=$font font size=$size><a href=$_link&suche=$suche&v=$i&@_sel&sort=$sort>>></a></font></td>" if $i<$_amount_query;
      }
      out "</font></tr></table></div>"; 
      </perl>
      



      Ich hab´s so probiert, geht aber nicht.

      out "<table border="1" width="100%" cellspacing="0" cellpadding="0" ><tr><td>";
      out "<div align=$table_align>";
      out "<table width=$table cellpadding=4 height=25 cellspacing=4><tr align=left>
      <td bgcolor=$color align='center'><font face=$font font size=$size>";
      
      etc.
      etc.....usw...

       

      Irgendwo ist da ein Denkfehler.

      Thomas

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 18.März.2005, 07:29.
    Re: Blätter Script

      mit direkter Ausgabe wird das m.E nicht gehen.
      Ich hab das ganze in ne Subruoutine verpackt, die alles als Tabelle zurückgibt, die kann man dann einfach irgendwo positionieren.
      Hier mal der Quelltext der Sub wie sie ist, ein paar Kommentare sind drin.
      Zurückgegeben wird eine komplette HTML-Tabelle entsprechend der Aufrufparameter (Aufrufsyntax ist als Kommentar drin).
      ---schnipp
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      sub show_amount{ ################################################################
      $a_debug.= "<b>A sub show_amount(@_)</b><br>";
      # syntax: &show_amount ($_range,$_range_length,$_amount,$_amount_query, $bezeich,$flink,$ausricht,$breite) ;
      my ($_range,$_range_length,$_amount,$_amount_query, $bezeich,$flink,$ausricht,$breite) = @_ ;
      # my ($_range,$_range_length,$_amount,$_amount_query) = @_ ;
      $ausricht ||= "right";
      $bezeich ||= "Einträge";
      $ausrichtung = $ausricht ne "" ? "align='$ausricht'" : "";
      my $breit = $breite == "v" || $breite == "" ? "" : $breite;
      $z_linkzugang = $z_linkzugang eq "" ? "z=z" : $z_linkzugang; # wenn $z_linkzugang leer definiert, damit Link funzt
      my $_link = "$_link&$z_linkzugang&dsn=$dsn";
      $_link .= $flink ne "" ? $flink : "";
      my $range=$_range_length;
      my $blaettern=$_range_length;
      my $blaetter_lang = $range*10;
      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      #
      # my $tab_breit = "100%"; # Gesamtbreite der Tabelle
      my $tab_breit = $breit ne "" ? "width=$breit" : ""; # Gesamtbreite der Tabelle
      my $fs_fgh = "#F0F0F0"; # $fs_fgh eq "" ? "#D0D0D0" : $fs_fgh;
      my $fs_fg  = "#C0C0C0"; # $fs_fg eq "" ? "#C0C0C0" : $fs_fg;
      my $tssk = $tssk eq "" ? "10px" : $tssk;
      #
      my $fa = "$fs_fgh";      # Hintergrundfarbe der Zellen mit Links
      my $t_style = "style='font-size:$tssk;'"; # Schriftgrösse
      my $fa = $fs_fgh;
      my $v = $ra eq "" ? 0 : $ra;
      ####
      my ($tab_index,$tab_amount);
      $tab_index =<<EOF;
      <table cellpadding=2 cellspacing=1 $ausrichtung>
      <tr align=left><td width=20px $t_style bgcolor=$fa align=center>
      EOF
      $oldrange = 0 if $oldrange < 0 && $oldrange > -$_range_length;
      $ende = substr($_amount_query,0,length($_amount_query)-1); # 10er zuvor (echt tricky!)
      $ende2 = $_amount_query - $_amount_query % 10;
      ### $_link&$z_link&dsn=$dsn&ra_$db_n=$a_offset&ra_l_$db_n=$ra_l
      $tab_index .= $oldrange >= 0 ? "<a class=klein href=\"$_link&ra=0\">|<</a>" : "|<";
      $tab_index .= "</td><td width=20px $t_style bgcolor=$fa align='center'>";
      $tab_index .= $oldrange >= 0 ? "<a class=klein href=\"$_link&ra=$oldrange\"><</a>":"<<";
      $tab_index .= "</td><td width=20px $t_style bgcolor=$fa align='center'>";
      $tab_index .= $newrange < $_amount_query ? "<a class=klein href=\"$_link&ra=$newrange\">></a>" : ">>";
      $tab_index .= "</td><td width=20px $t_style bgcolor=$fa align='center'>";
      $tab_index .= $newrange < $_amount_query ? "<a class=klein href=\"$_link&ra=".($ende."0")."\">>|
      </a>" : ">|";
      $tab_index .= "</td><td $t_style align='center'> <!--Einträge--> ";
      $tab_index .= $_amount_query == 0 ? "<nobr>Keine $bezeich vorhanden!</nobr>" : "<nobr>$bezeich ".($v+1)." bis
      ".( ($v+$blaettern) > $_amount_query ? "$_amount_query" : ($v+$blaettern) )." von $_amount_query </nobr></td>";
      if ($_amount){
         $vr = int ($v / $blaetter_lang) unless $_range==0;
         $vr = $vr * $blaetter_lang;
         $tab_index .= "<td width=20px $t_style bgcolor=$fa align='center'><a class=klein href=$_link&ra=".($vr-$blaetter_lang)."><<</a></td>" if ($vr-$blaetter_lang) >= 0;
              # . . . . . . . . . . . . . . . . . .
         for ($i=$vr;$i<($vr+$blaetter_lang<=$_amount_query?($vr+$blaetter_lang):$_amount_query); $i+=$blaettern){
         $tab_index .= ($v==$i ? "<td width=20px $t_style bgcolor=$fs_fg align='center'><b>".($i+1)."</b>" : "<td width=20 $t_style bgcolor=$fs_fgh align='center'><a class=klein href=$_link&ra=$i>".($i+1)."</a>")."</td>";
         }
         $tab_index .= "<td width=20px $t_style bgcolor=$fa align='center'><a class=klein href=$_link&ra=$i>>></a></td>" if $i<$_amount_query;
      }
      $tab_index .= "</tr></table>";
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      $tab_amount =<<EOF;
      <div align=$ausricht>
      <table cellpadding=0 cellspacing=0>
      

      <tr><td $ausrichtung>
         $tab_index
      </td></tr>
      

      </table>
      </div>
      EOF
      $a_debug.= "<b>E sub show_amount</b><br>";
      return $tab_amount;
      #subende#
      } ################################################################
      
      ---schnapp
      Ich hoffe, es hilft weiter
      Ruben

     Antworten

    Beitrag von Thomas H. (180 Beiträge) am Freitag, 18.März.2005, 11:05.
    Re: Blätter Script

      Hallo Ruben,

      vielen Dank für die Mühe. Im Grunde wäre es auch genau das, was ich suche. Dann kann man nämlich auch künftig das Design immer anpassen.

      Allerdings hapert´s mit dem Einbau. Ich weiß jetzt nicht, welche Stellen vom Original Script jetzt überschrieben werden sollen, bzw. an welcher Stelle das jetzt eingebaut werden soll?

      Ich habe hier zum besseren Überblick das komplette Script.
      Deinen Teil habe ich eingebaut, es passiert aber nichts.





      <perl>
      $v=$v||0;
      </perl>
      

      <perl>
      get "Id==* _fullsearch~=$suche fullsearch_match=500 range=$v,6 @_sel", "marysol";
      </perl>
      

      <loop _fullsearch~=$suche fullsearch_match=500 sort^=-Id code=perl db=marysol range^=$v,6>
      out<<EOF;
      #Hier steht der HTML-Ausgabe-Loop mit den Variablen# 
      EOF
      </loop>
      

      <perl>
      my $range=$_range_length;
      my $blaettern=$_range_length;
      my $blaetter_lang=$range*6;
      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      my $color='#CCCCCC';
      my $color_vonbis='#FFFFFF';
      my $color_zahl='#CCCCCC';
      my $color_vorzu='#CCCCCC';
      my $color_balken='#CCCCCC';
      my $font='Times New Roman, Verdana, Arial';
      my $size='2';
      my $table='';
      my $table_align='left';
      #Beginn des neuen Scripts# 
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      sub show_amount{ ################################################################
      

      $a_debug.= "<b>A sub show_amount(@_)</b><br>";
      # syntax: &show_amount ($_range,$_range_length,$_amount,$_amount_query, $bezeich,$flink,$ausricht,$breite) ;
      my ($_range,$_range_length,$_amount,$_amount_query, $bezeich,$flink,$ausricht,$breite) = @_ ;
       
      # my ($_range,$_range_length,$_amount,$_amount_query) = @_ ;
      $ausricht ||= "right";
      $bezeich ||= "Einträge";
      $ausrichtung = $ausricht ne "" ? "align='$ausricht'" : "";
      my $breit = $breite == "v" || $breite == "" ? "" : $breite;
      $z_linkzugang = $z_linkzugang eq "" ? "z=z" : $z_linkzugang; # wenn $z_linkzugang leer definiert, damit Link funzt
      my $_link = "$_link&$z_linkzugang&dsn=$dsn";
      $_link .= $flink ne "" ? $flink : "";
      my $range=$_range_length;
      my $blaettern=$_range_length;
      my $blaetter_lang = $range*10;
      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
       
      #
      # my $tab_breit = "100%"; # Gesamtbreite der Tabelle
      my $tab_breit = $breit ne "" ? "width=$breit" : ""; # Gesamtbreite der Tabelle
      my $fs_fgh = "#F0F0F0"; # $fs_fgh eq "" ? "#D0D0D0" : $fs_fgh;
      my $fs_fg = "#C0C0C0"; # $fs_fg eq "" ? "#C0C0C0" : $fs_fg;
      my $tssk = $tssk eq "" ? "10px" : $tssk;
      #
      my $fa = "$fs_fgh"; # Hintergrundfarbe der Zellen mit Links
      my $t_style = "style='font-size:$tssk;'"; # Schriftgrösse
      my $fa = $fs_fgh;
      my $v = $ra eq "" ? 0 : $ra;
       
      ####
      my ($tab_index,$tab_amount);
      $tab_index =<<EOF;
      <table cellpadding=2 cellspacing=1 $ausrichtung>
      <tr align=left><td width=20px $t_style bgcolor=$fa align=center>
      EOF
      $oldrange = 0 if $oldrange < 0 && $oldrange > -$_range_length;
      $ende = substr($_amount_query,0,length($_amount_query)-1); # 10er zuvor (echt tricky!)
      $ende2 = $_amount_query - $_amount_query % 10;
       
      ### $_link&$z_link&dsn=$dsn&ra_$db_n=$a_offset&ra_l_$db_n=$ra_l
      $tab_index .= $oldrange >= 0 ? "<a class=klein href=\"$_link&ra=0\">|<</a>" : "|<";
      $tab_index .= "</td><td width=20px $t_style bgcolor=$fa align='center'>";
      $tab_index .= $oldrange >= 0 ? "<a class=klein href=\"$_link&ra=$oldrange\"><</a>":"<<";
      $tab_index .= "</td><td width=20px $t_style bgcolor=$fa align='center'>";
      $tab_index .= $newrange < $_amount_query ? "<a class=klein href=\"$_link&ra=$newrange\">></a>" : ">>";
      $tab_index .= "</td><td width=20px $t_style bgcolor=$fa align='center'>";
      $tab_index .= $newrange < $_amount_query ? "<a class=klein href=\"$_link&ra=".($ende."0")."\">>|
      </a>" : ">|";
      $tab_index .= "</td><td $t_style align='center'> <!--Einträge--> ";
      $tab_index .= $_amount_query == 0 ? "<nobr>Keine $bezeich vorhanden!</nobr>" : "<nobr>$bezeich ".($v+1)." bis
      ".( ($v+$blaettern) > $_amount_query ? "$_amount_query" : ($v+$blaettern) )." von $_amount_query </nobr></td>";
      if ($_amount){
       
      $vr = int ($v / $blaetter_lang) unless $_range==0;
         $vr = $vr * $blaetter_lang;
         $tab_index .= "<td width=20px $t_style bgcolor=$fa align='center'><a class=klein href=$_link&ra=".($vr-$blaetter_lang)."><<</a></td>" if ($vr-$blaetter_lang) >= 0;
              # . . . . . . . . . . . . . . . . . .
         for ($i=$vr;$i<($vr+$blaetter_lang<=$_amount_query?($vr+$blaetter_lang):$_amount_query); $i+=$blaettern){
         $tab_index .= ($v==$i ? "<td width=20px $t_style bgcolor=$fs_fg align='center'><b>".($i+1)."</b>" : "<td width=20 $t_style bgcolor=$fs_fgh align='center'><a class=klein href=$_link&ra=$i>".($i+1)."</a>")."</td>";
         }
         $tab_index .= "<td width=20px $t_style bgcolor=$fa align='center'><a class=klein href=$_link&ra=$i>>></a></td>" if $i<$_amount_query;
      }
      $tab_index .= "</tr></table>";
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      $tab_amount =<<EOF;
      <div align=$ausricht>
      <table cellpadding=0 cellspacing=0>
       
      <tr><td $ausrichtung>
      $tab_index
      </td></tr>
      

      </table>
      </div>
      EOF
      $a_debug.= "<b>E sub show_amount</b><br>";
       
      return $tab_amount;
      #subende#
      } ################################################################
       
      #Ende des neuen Scripts#
      out "<div align=$table_align>";
      out "<table width=$table cellpadding=4 height=25 cellspacing=4><tr align=left>
      <td bgcolor=$color align='center'><font face=$font font size=$size>";
       
      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
      

      out $oldrange>=0?"<a href=\"$_link&v=0&suche=$suche&@_sel&sort=$sort\">|<</a>":"|<";
      out "</font></td><td bgcolor=$color align='center'><font face=$font font size=$size>";
      out $oldrange>=0?"<a href=\"$_link&v=$oldrange&suche=$suche&@_sel&sort=$sort\"><</a>":"<<";
      out "</font></td><td bgcolor=$color align='center'><font face=$font font size=$size>";
      

      $ende=substr($_amount_query,0,length($_amount_query)-1);
      out $newrange<$_amount_query?"<a href=\"$_link&v=$newrange&suche=$suche&@_sel&sort=$sort\">></a>":">>";
      out "</font></td><td font face=$font font size=$size bgcolor=$color align='center'><font face=$font font size=1>";
      out $newrange<$_amount_query?"<a href=\"$_link&suche=$suche&v=".($ende."0")."&@_sel&sort=$sort\">>|
      </a>":">|";
      out "</font></td><td bgcolor=$color_vonbis width='185' align='center'><font face=$font font size=$size>Inserate ".($v+1)." bis
      ".(($v+$blaettern)>$_amount_query?"$_amount_query":($v+$blaettern))." von
      $_amount_query</td>";
       
      if ($_amount)
      {
      

      $vr=int($v/$blaetter_lang) unless $_range==0;
      $vr=$vr*$blaetter_lang;
      out "<td bgcolor=$color_vorzu align='center'><font face=$font font size=$size><a href=$_link&suche=$suche&v=".($vr-$blaetter_lang)."&@_sel&sort=$sort><<</a></font></td>" if
       
      ($vr-$blaetter_lang)>=0;
      for ($i=$vr;$i<($vr+$blaetter_lang<=$_amount_query?($vr+$blaetter_lang):$_amount_query); $i+=$blaettern)
      

      {
      out "<td bgcolor=$color_zahl align='center'><font face=$font font size=$size>".($v==$i?"<b>".($i+1)."</b>":"<a
      href=$_link&suche=$suche&v=$i&@_sel&sort=$sort>".($i+1)."</a>")."</font></td>";
      }
      out "<td bgcolor=$color_vorzu align='center'><font face=$font font size=$size><a href=$_link&suche=$suche&v=$i&@_sel&sort=$sort>>></a></font></td>" if $i<$_amount_query;
      }
      out "</font></tr></table></div>"; 
      </perl>
      



      Gruß
      Thomas

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 18.März.2005, 14:54.
    Re: Blätter Script

      mhm - also naja, habe das Script einfach so zur Verfügung gestellt, wollte eigentlich nicht grosse Sachen dazu erklären...
      Aber egal, kurz ein paar Infos:
      - das Teil ist also eine komplette Perl-Subroutine, die wird i.d.R. am anfang des Scriptes eingebaut (oder per Include reingeholt), damit ist die Subroutine dann dem gesamten Script bekannt
      - aufgerufen wird sie mit den notwendigen Parametern in der richtigen Reihenfolge, zurück gibt sie die komplette Blättertabelle, die dann an beliebiger Stelle ausgegeben werden kann.
      - die Nutzung funzt m.E. nur mit get/while_get_next, ich dächte, beim loop stünden die Systemvars nicht zur Verfügung, kann mich aber auch irren. Ich nutze die HighLevel-Befehle nicht.
      Der Aufruf erfolgt am sinnvollsten unmittelbar nach dem get, da stehen die Systemvariablen noch ohne Gefahr, verändert zu sein, zur Verfügung.
      Beispiel aus einem funktionierenden Template, auch nur so, ohne weitere grosse Ausführungen:
      ---schnipp
      ....
      get "$get_parameter range=$ra,$ra_l", $db_daten, "eds";
      $a_zahlds = $_amount_query;
      ($i_range,$i_range_length,$i_amount,$i_amount_query) = ($_range, $_range_length, $_amount, $_amount_query); #umspeichern, damit bei relation nicht überschrieben
      
      ...
      if ($a_zahlds > $ra_l) { # wenn Anzeigebreich größer als Vorgabe dann Blätterlinks, sonst nur Anzahl
      $tab_amount = show_amount($i_range, $i_range_length, $i_amount, $i_amount_query, "Adressen", "&$flink", "right", "100%");
      } else {
      $tab_amount = "$a_zahlds Datensätze vorhanden" ;
      }
      
      ...
      while(get_next("eds")){
      ...
      }
      
      ...
      ----schnapp
      Die gesamte Tabelle steht hier in der Variablen $tab_amount zur verfügung und kann einfach in jeder HTML-Ausgabe mit eingebaut werden.
      Zu beachten ist noch, dass ich statt des Parameters $v für die Länge der Ausgaberange die Parameter ra und ra_l benutze, die holt sich die Sub dann auch aus der Umgebung in der es läuft (dies müssen also global irgendwie definiert werden, am besten mit den zwei Zeilen am Anfang des Gesamt-Scriptes (nach dem Include bzw. der Sub!):
      $ra ||= 0; # wenn ra vorh. dieses nehmen, ansonsten auf Null setzen
      $ra_l ||= 10; # wenn ra_l vorh. dieses nehmen, ansonsten auf 10 setzen (Länge des Ausgabebereiches, beliebig anpassbar)
      

      Eins ist noch zu beachten, dass hier mögliche Filterbedingungen nicht so mit eingearbeitet sind wie in dem Teil der BiB (bin noch nicht dazugekommen bzw. mache das per Hand, da ich Filterformulare etc. generell selbst baue und da der sel-Hash nicht alle meine Wünsche erfüllt...)

      Hoffe, dass das dir etwas weiterhilft
      Ruben

     Antworten

    Beitrag von Thomas H. (180 Beiträge) am Freitag, 18.März.2005, 20:17.
    Re: Blätter Script

      Hallo Ruben,

      danke für die Ausführungen.
      Ich glaub, daß ich´s jetzt hinkriegen werde. Muß noch ein wenig rumprobieren.

      Gruß
      Thomas

     Antworten

    Beitrag von richard (1187 Beiträge) am Freitag, 18.März.2005, 15:54. WWW: posaunenchor-rhoden.de
    Re: Blätter Script

      Im noch einmal auf den Ausgangspost zurückzukommen.

      Stellt sich die Frage was für Fehlermeldungen da kommen.

      Hast Du die neue Rahmentabelle am Ende auch wieder geschlossen?

      Wie sieht die "falsche" Ausgabe aus?

     Antworten

    Beitrag von Thomas H. (180 Beiträge) am Freitag, 18.März.2005, 20:25.
    Re: Blätter Script

      Hi,

      also die Fehlemeldung ist so:

      [ Fehler: Fehlerhafter Perl Code in :
      syntax error at (eval 428) line 18, near ""

      Ich hatte sie geschlossen, bin mir aber nicht sicher ob das so geht.

      <perl>
      $v=$v||0;
      </perl>
      

      <perl>
      get "Id==* _fullsearch~=$suche fullsearch_match=500 range=$v,6 @_sel", "marysol";
      </perl>
      <loop _fullsearch~=$suche fullsearch_match=500 sort^=-Id code=perl db=marysol range^=$v,6>
      out<<EOF;
      
      HTML Ausgabetabelle
      EOF
      </loop>
      

      <perl>
      if(!$_amount_query) {
      out "<p><b><font face='Verdana' size='1' color='#000000'> Keine Einträge gefunden.<br>
       Bitte ändern Sie die Suchkriterien.</font></b></p>"
      }
      </perl>
       
      <perl>
      my $range=$_range_length;
      my $blaettern=$_range_length;
      my $blaetter_lang=$range*6;
      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      my $color='#CCCCCC';
      my $color_vonbis='#FFFFFF';
      my $color_zahl='#CCCCCC';
      my $color_vorzu='#CCCCCC';
      my $color_balken='#CCCCCC';
      my $font='Verdana, Arial';
      my $size='1';
      my $table='';
      my $table_align='left';
      

      out "<div align=$table_align>";
      out "<table border="1" width="100%" cellspacing="0" cellpadding="0" ><tr><td>";
      out "<table width=$table cellpadding=4 height=25 cellspacing=4><tr align=left>
      <td bgcolor=$color align='center'><font face=$font font size=$size>";
       
      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
      

      out $oldrange>=0?"<a href=\"$_link&v=0&suche=$suche&@_sel&sort=$sort\">|<</a>":"|<";
      out "</font></td><td bgcolor=$color align='center'><font face=$font font size=$size>";
      out $oldrange>=0?"<a href=\"$_link&v=$oldrange&suche=$suche&@_sel&sort=$sort\"><</a>":"<<";
      out "</font></td><td bgcolor=$color align='center'><font face=$font font size=$size>";
      

      $ende=substr($_amount_query,0,length($_amount_query)-1);
      out $newrange<$_amount_query?"<a href=\"$_link&v=$newrange&suche=$suche&@_sel&sort=$sort\">></a>":">>";
      out "</font></td><td font face=$font font size=$size bgcolor=$color align='center'><font face=$font font size=1>";
      out $newrange<$_amount_query?"<a href=\"$_link&suche=$suche&v=".($ende."0")."&@_sel&sort=$sort\">>|
      </a>":">|";
      out "</font></td><td bgcolor=$color_vonbis width='185' align='center'><font face=$font font size=$size>Inserate ".($v+1)." bis
      ".(($v+$blaettern)>$_amount_query?"$_amount_query":($v+$blaettern))." von
      $_amount_query</td>";
       
      if ($_amount)
      {
      

      $vr=int($v/$blaetter_lang) unless $_range==0;
      $vr=$vr*$blaetter_lang;
      out "<td bgcolor=$color_vorzu align='center'><font face=$font font size=$size><a href=$_link&suche=$suche&v=".($vr-$blaetter_lang)."&@_sel&sort=$sort><<</a></font></td>" if
       
      ($vr-$blaetter_lang)>=0;
      for ($i=$vr;$i<($vr+$blaetter_lang<=$_amount_query?($vr+$blaetter_lang):$_amount_query); $i+=$blaettern)
      

      {
      out "<td bgcolor=$color_zahl align='center'><font face=$font font size=$size>".($v==$i?"<b>".($i+1)."</b>":"<a
      href=$_link&suche=$suche&v=$i&@_sel&sort=$sort>".($i+1)."</a>")."</font></td>";
      }
      out "<td bgcolor=$color_vorzu align='center'><font face=$font font size=$size><a href=$_link&suche=$suche&v=$i&@_sel&sort=$sort>>></a></font></td>" if $i<$_amount_query;
      }
      out "</font></tr></table></div>"; 
      out "</tr></td>";
      

      </perl>



      Gruß
      Thomas

     Antworten

    Beitrag von richard (1187 Beiträge) am Samstag, 19.März.2005, 09:29. WWW: posaunenchor-rhoden.de
    Re: Blätter Script

      Man kann zwischen doppelten Anführungszeichen keine weiteren doppelten Anführungszeichen einsetzen, die zweiten muß an durch andere ersetzen oder escapen deswegen ist das folgende falsch:

      out "<table border="1" width="100%" cellspacing="0" cellpadding="0" ><tr><td>";
      

      richtig so:

      out "<table border='1' width='100%' cellspacing='0' cellpadding='0' ><tr><td>";
      

      oder

      out "<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" ><tr><td>";
      

      Habe nicht den gesamten Code durchgesehen.


      Die Rahmentabelle mußt Du nicht so

      out "</tr></td>";
      

      sondern so

      out "</tr></td></table>";
      

      scließen.

     Antworten

    Beitrag von richard (1187 Beiträge) am Samstag, 19.März.2005, 09:31.
    Re: Blätter Script

      Nachtrag.

      Sorry, besser so:

      out "</td></tr></table>";
      

     Antworten

    Beitrag von Thomas H. (180 Beiträge) am Montag, 21.März.2005, 21:03.
    Re: Blätter Script

      Hi,

      danke für die Info.
      Bin noch am probieren.

      Thomas

     Antworten


     
 Liste der Einträge von 25051 bis 25201: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.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!