Re: Template und DB haben einen anderen Namen beim Forum - 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 Sander (8133 Beiträge) am Donnerstag, 16.Januar.2003, 14:19.
    Re: Template und DB haben einen anderen Namen beim Forum

      beim holen? beim speichern?

      du schreibst put ,"foren"; probier mal
      put undef, "foren";
      

      Dann hatte ich beim get_next ein fehler, sollte natürlich get_next("foren") heißen.

      Sander


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Oliver ;-) (500 Beiträge) am Donnerstag, 16.Januar.2003, 13:26.
    Template und DB haben einen anderen Namen beim Forum

      Hallo Zusammen,

      ich habe mal versucht, das Forumsbeispiel von Christoph in der Bib so anzupassen, dass ich mit dem Template "forum" auf die Datenbank "foren" zugreifen kann. Bei allen "get" und "put" habe ich noch "foren" drangehangen, aber es funktioniert nicht.

      Wo fehlt noch was?

      <perl>
      

      ...

      # --- Nutzer-Eingabe bearbeiten ---
      

      if(%_put)
      {
       unless($Vorschau)
       {
        get "Id==#", "foren";
      
        $emsg.="Bitte geben Sie Ihren Namen ein! " if $_put{Name} eq "";   $emsg.="Bitte geben Sie einen Titel ein! " if $_put{Titel} eq "";   $emsg.="Bitte geben Sie einen Text ein! " if $_put{Text} eq "";   $emsg.="Der Text ist zu lang! Bitte kürzen Sie ihn auf maximal $maxtext Zeichen." if length($_put{Text})>$maxtext;   if($emsg eq "")   {    if($Name ne $_put{Name} || $Titel ne $_put{Titel} || $Text ne $_put{Text})    {     if($_get{Pos} eq "")     {      get "Pos==#", "foren";      $newPos=$Pos+1;      $_get{range}="";     } else     {      get "Pos<=$_get{Pos} Pos>=".($_get{Pos}-1)." sort=-", "foren";      $_put{Shift}=$Shift+1; $newPos=$Pos; get_next;      while(get_next)      {       last if $Shift<$_put{Shift};       $newPos=$Pos;      }      $Pos=0 if $_get{Pos}==$Pos;      $newPos=($Pos+$newPos)/2;      my $mx=$newPos; chop $mx; $newPos=$mx if($mx>$Pos);     }
          $_put{Pos}=$newPos;     put, "foren";     $msg="Ihr Eintrag wurde aufgenommen...";    } else    {     $msg="Ihr Eintrag ist bereits gespeichert...";     $newPos=$Pos;    }    $_get{Pos}="";   }  }
       $allpos="$newPos#";
      }


      $mylink=$mylinkr="/cgi-bin/baseportal.pl?htx=$htx&wcheck=1";
      $mylinkr.="&range=$_get{range}" if $_get{range};
      # --- Ausgabe eines ausgewählten, abgewiesenen oder vorgeschauten Eintrags ---
      

      out "<a name=\"eingabe\"> </a><br>";
      out "<ul><font size=3".($emsg?" color=d80000":"")."><b>$emsg$msg</b></font></ul>" if $emsg || $msg;
      

      if($Vorschau || %_put)
      {
       out "<center><table cellspacing=2 width=95% cellpadding=4><tr bgcolor=e0e0e0><td><font face=arial,helvetica size=3><b> ".($Vorschau?"Vorschau:":"Ihr Eintrag:")."</b></font></td><td width=10% align=center nowrap> <a href=\"#list\"><font size=2 face=arial>Zur Liste</a> </td></tr></table></center><font face=arial,helvetica size=2><ul>";
       &all_out("", $_put{Name}, $_put{EMail}, $_put{WWW}, $_put{Titel}, $_put{Text});
       out "</ul>";
      }
      

      if($_get{Pos} ne "")
      {
       out "<center><table cellspacing=2 width=95% cellpadding=4><tr bgcolor=e0e0e0><td><font face=arial,helvetica size=3><b> Ausgewählter Eintrag:</b></font><td width=10% align=center nowrap> <a href=\"#list\"><font size=2 face=arial>Zur Liste</a> </td></tr></table></center><font face=arial,helvetica size=2><ul>";
      
       get "Pos==$_get{Pos}", "foren";  &all_out();  out "<h3>Ihre Antwort:</h3>";
       if($Vorschau || $emsg)  {   &form_out($_get{Pos}, $_put{Name}, $_put{EMail}, $_put{WWW}, $_put{Titel}, $_put{Text});  } else  {   my $t=$Titel;   $t="Re: $t" unless $t=~ /^Re: /i;   &form_out($Pos, "", "", "", $t);  }  my $p=int($Pos); $p++ if $p ne $Pos;  get "sort=- Pos<=$p Pos>".($p-1), "foren";
       out "<p><a href=\"$mylinkr\">Neuer Eintrag</a>";  if($_amount_query>1)  {   out "</ul><br><center><table cellspacing=2 width=95% cellpadding=4><tr bgcolor=e0e0e0><td><font face=arial,helvetica size=3><b> Alle Einträge zum Thema:</b></font></td><td width=10% align=center nowrap> <a href=\"#list\"><font size=2 face=arial>Zur Liste</a> </td></tr></table></center><font face=arial,helvetica size=2><ul>";   $allpos=&all_out($_get{Pos});   out "<br>";  } else  {   $allpos="$_get{Pos}#";   } } else {  out "<center><table cellspacing=2 width=95% cellpadding=4><tr bgcolor=e0e0e0><td><font face=arial,helvetica size=3><b> Neuer Eintrag:</b></font></td><td width=10% align=center nowrap> <a href=\"#list\"><font size=2 face=arial>Zur Liste</a> </td></tr></table></center><font face=arial,helvetica size=2><ul>";  if($Vorschau || $emsg)  {   &form_out($_get{Pos}, $_put{Name}, $_put{EMail}, $_put{WWW}, $_put{Titel}, $_put{Text});  } else  {   &form_out();  } } # --- Ausgabe der ersten Eintraege und der Liste --- unless($wcheck) {  out "</ul><br><center><table cellspacing=2 width=95% cellpadding=4><tr bgcolor=e0e0e0><td><font face=arial,helvetica size=3><b> Die aktuellsten $getfirst Einträge:</b></font></td></tr></table></center><font face=arial,helvetica size=2><ul>";  get "Id==* sort=- range=0,$getfirst", "foren";  $allpos=&all_out(); }

      get "Pos==* sort=- range=".($_get{range} || "0,$getlist"), "foren";

       out "<a name=\"list\"> </a></ul><center><table cellspacing=2 width=95% cellpadding=4><tr bgcolor=e0e0e0><td><font face=arial,helvetica size=3><b> Liste der ".($_range>0?"Einträge von $_range bis ".($_range+$_range_length>$_amount_query?$_amount_query:$_range+$_range_length):"ersten $getlist Einträge").":</b></font></td><td width=10% align=center nowrap> <a href=\"#eingabe\"><font size=2 face=arial>Zur Eingabe</a> </td></tr></table></center><font face=arial,helvetica size=2><ul>";
      &list_out($allpos, $_get{Pos});
      # --- blaetter-links ---
      

      out "<br><br><br>";

      $r1=$_range; $r2=$_range_length || $getlist;
      

      if($_amount_all>$r2)
      {
       my $z=0;
       @ilist=();
      
       if($r1-$r2>=0)  {   push @ilist, "<< <a href=\"$mylink&range=0,$r2\">Neueste Einträge</a>";   push @ilist, "< <a href=\"$mylink&range=".($r1-$r2).",$r2\">Neuere Einträge</a>";   $z++;  }  push @ilist, "<a href=\"#eingabe\">Zur Eingabe</a>";
       if($r1+$r2<$_amount_all)  {   push @ilist, "<a href=\"$mylink&range=".($r1+$r2).",$r2\">Ältere Einträge</a> >";   push @ilist, "<a href=\"$mylink&range=".(int($_amount_all/$r2)*$r2).",$r2\">Älteste Einträge</a> >>";   $z+=2;  }  out "</ul><center><table width=85%><tr><td";  out " align=right" if $z==2;  out " align=middle" if $z==3;  out " nowrap><font size=2 face=arial,helvetica>".(join " | ", @ilist)."</td></tr></table>"; } # --- Formular-Ausgabe ---

      sub form_out
      {
       my($pos, $name, $email, $www, $titel, $text)=@_;
       $name=~ s/"/"/gs;
       $email=~ s/"/"/gs;
       $www=~ s/"/"/gs;
       $text=~ s/</</gs; $text=~ s/>/>/gs;
       $titel=~ s/"/"/gs;
      
       out <<EOF;
      .....

      EOF
      

      }


      # --- Listen-Ausgabe ---
      

      sub list_out
      {
       my($allpos, $pos)=@_;
       my $tlast=0;
      
       out "<nobr>";  while(get_next)  {   if(index("#$allpos", "#$Pos#")>=0)   {    out "</td></tr></table>" if ($pos==$Pos && $tlast) || $tlast==-1;    out "<table cellspacing=0 cellpadding=2 bgcolor=".($pos==$Pos?"e0e0e0":"f0f0f0")." width=90%><tr><td nowrap><font face=arial,helvetica size=2>" if $pos==$Pos || $tlast<1;    $tlast=($pos==$Pos?-1:1);   } else   {    out "</td></tr></table>" if $tlast;    out " "; $tlast=0;   }   if($Shift) { out " " x ($Shift*8+2); }   else { out "> "; }   $Titel=substr($Text, 0, 50)."..." if $Titel eq "";   $Name=convert_html($Name); $Titel=convert_html($Titel); # keine html-tags erlaubt
        $Datum=datum($Datum, "kurz");   out "<b><a href=\"$mylinkr&Pos=$Pos".($pos==$Pos?"#eingabe":"")."\">$Titel</a></b> von <b>$Name</b> am $Datum<br>\n";  }
       out "</td></tr></table>" if $tlast;  out "</nobr>";
      }


      # --- Detail-Ausgabe ---
      

      sub all_out
      {
       my($pos)=shift;				# 1. Parameter = Position des ausgewaehlten Eintrags
       my $allpos=""; my $alink="#eingabe";
      
       while(get_next || @_>0)  {
        ($Name, $EMail, $WWW, $Titel, $Text, $Datum)=(@_, time) if @_>0;

        $WWW=~ s#^http://##;				# Eventuelles http:// zu Beginn abschneiden
        $Datum=datum($Datum, "lang");		# datumsfeld in schönes datum wandeln
        $EMail="EMail: <a href=\"mailto:$EMail\">$EMail</a>" if $EMail ne "";	# EMail-Ausgabe, nur wenn EMail-Feld einen Inhalt hat
        $WWW="WWW: <a href=\"http://$WWW\" target=\"_blank\">$WWW</a>" if $WWW ne "";	# WWW-Ausgabe, nur wenn WWW-Feld einen Inhalt hat
        $Titel=substr($Text, 0, 50)."..." if $Titel eq "";			# Wenn kein Titel, nimmt er die ersten 50 Zeichen des Textes als Titel
        $Name=convert_html($Name); $Titel=convert_html($Titel);		# keine html-tags erlaubt
        $allpos.="$Pos#";
      
        out "<table cellspacing=0 cellpadding=0 border=0 bgcolor=e0e0e0 width=90%><tr><td><font face=arial,helvetica size=2>" if $pos ne "" && $pos==$Pos;   out <<EOF;
      <table width=90%><tr><td><font face=arial size=2>Beitrag von <b>$Name</b> am $Datum<br>
      $EMail $WWW
      <h4>$Titel</h4>
      <p><ul><br>
      EOF
      
        my $ca="<p><table width=90% cellpadding=10><tr><td bgcolor=f0f0f0><font size=3><code>";   my $ce="</code></td></tr></table>";   my $flag=0;   my $nx="";   $Text=convert_links($Text);
        foreach $x (split "\n", $Text)   {    if($flag==0)    {     $flag=2 if $x=~ s/^: //;     $flag=3 if $x=~ /^((\s*)<|\$|\{|\}|(out|get|put|mod|if|else)(\s|$|\(?))/;     out $ca if($flag>1);     $x=~ s/^(\s+)/" " x length($1)/ge;    } elsif($flag>0)    {     $flag=-1 if $flag==2 && !($x=~ s/^: //);     $flag=-1 if $flag==4 && !($x=~ /^((\s*)<|\$|\{|\}|(out|get|put|mod|if|else)(\s|$|\(?))/);     if($flag==3 && !($x=~ /^((\s*)<|\$|\{|\}|(out|get|put|mod|if|else)(\s|$|\(?))/))     {      $nx="$x<br>";      $flag=4;      next;     }
          if($flag==-1)     {      out $ce;      $flag=0;     }    }    out "$nx$x<br>"; $nx="";   }   out $ce if $flag>0;   out "</ul></td></tr></table>";
        if($pos==$Pos && $Pos ne "")   {    out "</table><p>";   } else   {    $alink="$mylinkr&Pos=$Pos";   }   out " <a href=\"$alink\">Antworten</a>" if $_amount>1 && @_==0;   last if @_>0;   out '</ul><center><hr size=1 width=80%></center><ul>' if $_loop<$_amount-1;
       }  return $allpos; } </perl>

      hmmm... ich weiß, das Template ist ein wenig lang....

      Oliver ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 16.Januar.2003, 13:28.
    Re: Template und DB haben einen anderen Namen beim Forum

      bei get_next fehlt noch das Ergebnis(=db) dahinter...
      get_next("forum")
      

      Sander

     Antworten

    Beitrag von Oliver ;-) (500 Beiträge) am Donnerstag, 16.Januar.2003, 13:55.
    Re: Template und DB haben einen anderen Namen beim Forum

      Hallo Sander,

      da hast du natürlich Recht...

      Aber es funktioniert immer noch nicht:

      [ Fehler: init: /usr/local/httpd/data/OT/NU/meinAccount/test/forum.fields konnte nicht geöffnet werden ]


      Grüße
      Oliver ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 16.Januar.2003, 14:19.
    Re: Template und DB haben einen anderen Namen beim Forum

      beim holen? beim speichern?

      du schreibst put ,"foren"; probier mal
      put undef, "foren";
      

      Dann hatte ich beim get_next ein fehler, sollte natürlich get_next("foren") heißen.

      Sander

     Antworten

    Beitrag von Oliver ;-) (500 Beiträge) am Samstag, 18.Januar.2003, 10:44.
    Re: Template und DB haben einen anderen Namen beim Forum

      jupps, das funktioniert so.

      Jetzt muss ich nur noch hinbekommen, für eine DB mehrere Forentemplates zu bauen...

      melde mich dann wieder...

      Grüße
      Oliver ;-)

     Antworten


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