"); $prefix = $prefix . substr($w,0,$p+1); $w = substr($w,$p+1); } // ggf. Klammern vor/nach dem Keyword abtrennen $ch = substr($w,0,1); while ( ($ch == "(") || ($ch == ")") || ($ch == ";") || ($ch == ",") || ($ch == ":") || ($ch == ".") || ($ch == "/") || ($ch == "-")) { $prefix = $prefix . $ch; $w = substr($w,1); $ch = substr($w,0,1); } // Einleitende Tags komplett in Prefix übernehmen. if (strpos($w,"<") > 0) { $p = strpos($w,">"); $prefix = $prefix . substr($w,0,$p+1); $w = substr($w,$p+1); } $ch = substr($w,strlen($w)-1,1); while ( ($ch == "(") || ($ch == ")") || ($ch == ";") || ($ch == ":") || ($ch == ".") || ($ch == ",") || ($ch == "/") || ($ch == "<")) { $postfix = $ch . $postfix; $w = substr($w,0,strlen($w)-1); $ch = substr($w,strlen($w)-1); } // Suchbegriff z.B. für frz. vom "l'" befreien if ($la == "fr") { if (substr($w,0,2) == "l'") { $w = substr($w,2); } if (substr($w,0,2) == "d'") { $w = substr($w,2); } if (substr($w,0,2) == "s'") { $w = substr($w,2); } } // Endung abschneiden, falls Wort länger als 4 Buchstaben if (strlen($w) > 4) { $wx = substr($w,0,strlen($w)-1); // Klammern führen zu einer Fehlermeldung, also ignorieren if (strpos($wx,"(") == 0) { # $params[0] = $wx . "%"; $q = "SELECT * FROM glossar WHERE upper(keyword) LIKE upper('$wx%') AND sprache='$la'"; $r = mysql_query($q,$cid); } $gkeyword = @mysql_result($r,0,"keyword"); $glid = @mysql_result($r,0,"glossarid"); // Gegenkontrolle: Ist die Wortlänge des gefundenen Treffers // max. 1 Zeichen länger als der Suchbegriff? (Wortendung) if (($gkeyword != "") && (strlen($gkeyword) <= strlen($wx)+1)) { // ist es das erste Auftreten im Abschnitt? $iw = strtolower($wx); $icount = 1; while (($icount <= $count) && ($glids[$icount] != $glid)) { $icount++; } // ja, also merken und als Link markieren if ($glids[$icount] != $glid) { $count++; $glids[$count] = $glid; $words[$i] = "" . $w . ""; if ($prefix != "") { $words[$i] = $prefix . $words[$i]; } if ($postfix != "") { $words[$i] = $words[$i] . $postfix; } } } } } $text = implode($words," "); return ($text); } // Ende function FormatText function ShowText ($id, $titel) { global $cid; // gibt's den Text schon vorformatiert und ist der aktuell ? $q = "SELECT mdate FROM texte WHERE id=$id"; $rt = mysql_query($q, $cid); $mdate = mysql_result($rt,0,"mdate"); mysql_free_result($rt); $q = "SELECT * FROM formattedtext WHERE id=$id"; $rv = mysql_query($q, $cid); // odbc_binmode($rv,2); // odbc_longreadlen($rv,32768); if (mysql_num_rows($rv) == 1) { // es gibt schon einen vorformatierten Text $vmdate = mysql_result($rv,0,"mdate"); if ($vmdate >= $mdate) { // ja, dann wird der direkt angezeigt $text = mysql_result($rv,0,"text"); $doformat = 0; } else { // nein -> vorformatieren $doformat = 1; } } else { // es gibt noch keinen vorformatierten Text $doformat = 1; } // muß der Text formatiert werden? if ($doformat == 1) { $q = "SELECT text FROM texte WHERE id=$id"; $rt = mysql_query($q, $cid); //odbc_binmode($rt,2); //odbc_longreadlen($rt,65536); $text = mysql_result($rt,0,"text"); mysql_free_result($rt); $text = FormatText($text); // Formatierten Text in Datenbank abspeichern. $q = "DELETE FROM formattedtext WHERE id=$id"; $rd = mysql_query($q, $cid); mysql_free_result($rd); $q = "INSERT INTO formattedtext (id,text,mdate) VALUES ($id,'$text',now())"; $ri = mysql_query($q,$cid); mysql_free_result($ri); } // Text ausgeben $text = nl2br($text); if ($titel != "-") { ?>

$text

"; } // Ende Funktion ShowText $q = "SELECT titel, datei FROM beitraege WHERE artikelid=$artikel AND sprache='$la'"; $rb = mysql_query($q, $cid); $titel = mysql_result($rb,0,"titel"); $atitel = $titel; $title = "Ferticonsult - $titel"; $headline = $titel; //$cache = "yes"; if ($seq == 0) { $seq = 1; } // Infos aktueller Abschnitt $q = "SELECT id,seq,titel,subtitel,text,pay,mdate FROM texte WHERE artikelid=$artikel AND sprache='$la' AND seq=$seq"; $rt = mysql_query($q, $cid); //odbc_binmode($rt,1); //odbc_longreadlen($rt,131072); $id = mysql_result($rt,0,"id"); $titel = urldecode(mysql_result($rt,0,"titel")); $subtitel = urldecode(mysql_result($rt,0,"subtitel")); $text = nl2br(mysql_result($rt,0,"text")); $pay = mysql_result($rt,0,"pay"); $mdate = mysql_result($rt,0,"mdate"); mysql_free_result($rt); // Der Administrator darfs immer so sehen. if ($cookie == 1) { $pay = "0"; } // ab 08.03.2002 immer Kostenlos wie bei Meeting 07.03.2002 besprochen. $pay = 0; // Der gewünschte Text ist kostenpflichtig. // Also prüfen, ob der Benutzer berechtigt ist, oder ob er bezahlen muß. if ($pay == "1") { if ($cookie == "") { // Der Benutzer ist nicht am System angemeldet. // Berechtigt nur zum Lesen der kostenfreien Texte, keine Übersetzungsfunktion // Das ist das Standardverhalten } else { // Der Benutzer ist angemeldet. // Prüfen, ob er für diesen Artikel berechtigt ist. $q = "SELECT * FROM payments WHERE uid=$cookie AND article=$artikel"; $rd = mysql_query($q, $cid); if (mysql_num_rows($rd) > 0) { // Der Benutzer ist für diesen Artikel zum Lesen berechtigt. $pay = "0"; } else { // Der Benutzer ist für diesen Artikel nicht berechtigt. Header("Status: 302"); Header("Location: http://www.ferticon.de/pay.confirm.php3?artikel=$artikel&seq=$seq&la=$la"); exit; } } } if ($pay == "1") { // Dieser Abschnitt ist kostenpflichtig, der Benutzer ist nicht zum // lesen berechtigt. --> auf die Download-Seite verzweigen Header("Status: 302"); Header("Location: /pay.info.php3?la=$la&artikel=$artikel&seq=$seq"); mysql_close($cid); exit; } // Infos zum vorherigen Abschnitt holen $q = "SELECT * FROM texte WHERE artikelid=$artikel AND sprache='$la' AND seq < $seq ORDER BY seq DESC"; $rp = mysql_query($q, $cid); if (mysql_num_rows($rp) > 0) { $pseq = mysql_result($rp,0,"seq"); $ptitel = urldecode(mysql_result($rp,0,"titel")); } mysql_free_result($rp); // Infos zum nächsten Abschnitt holen $q = "SELECT id,seq,titel,text FROM texte WHERE artikelid=$artikel AND sprache='$la' AND seq > $seq ORDER BY seq"; $rn = mysql_query($q, $cid); //odbc_binmode($rn, 2); //odbc_longreadlen($rn, 131072); if (mysql_num_rows($rn) > 0) { $nid = mysql_result($rn,0,"id"); $nseq = mysql_result($rn,0,"seq"); $ntitel = urldecode(mysql_result($rn,0,"titel")); $ntext = nl2br(mysql_result($rn,0,"text")); } mysql_free_result($rn); // Infos zum übernächsten Abschnitt holen $n2seq = $seq + 2; $q = "SELECT seq,titel,text FROM texte WHERE artikelid=$artikel AND sprache='$la' AND seq=$n2seq"; $rn = mysql_query($q, $cid); // odbc_binmode($rn, 2); // odbc_longreadlen($rn, 131072); if (mysql_num_rows($rn) > 0) { $n2seq = mysql_result($rn,0,"seq"); $n2titel = urldecode(mysql_result($rn,0,"titel")); $n2text = nl2br(mysql_result($rn,0,"text")); } mysql_free_result($rn); include("header.inc"); ?>  

\n"; } // Link zum vorherigen Abschnitt if ($pseq > 0) { Hyperlink("text.php3?artikel=$artikel&seq=$pseq&la=$la","$ptitel","l"); } if ($text == "") { if ($n2seq != "") { if ($pseq > 0) { echo "     "; } HyperLink("text.php3?artikel=$artikel&seq=$n2seq&la=$la","$n2titel","r"); } } else { if ($nseq != "") { if ($pseq > 0) { echo "     "; } HyperLink("text.php3?artikel=$artikel&seq=$nseq&la=$la","$ntitel","r"); } } echo "

\n"; // Falls Datei vorhanden, diese als Link angeben if ($datei != "") { echo "Datei zum Download (PDF)\n"; } else { // Artikeltext ausgeben ShowText($id,$titel); // Wenn aktueller Artikeltext = leer, dann gleich den nächsten ausgeben if ($text == "") { if ($nseq != "") { ShowText($nid,$ntitel); } // Link zum vorherigen Abschnitt if ($pseq > 0) { Hyperlink("text.php3?artikel=$artikel&seq=$pseq&la=$la","$ptitel","l"); } if ($n2seq != "") { echo "     "; HyperLink("text.php3?artikel=$artikel&seq=$n2seq&la=$la","$n2titel","r"); } } else { // Link zum vorherigen Abschnitt if ($pseq > 0) { Hyperlink("text.php3?artikel=$artikel&seq=$pseq&la=$la","$ptitel","l"); echo "     "; } if ($nseq != "") { HyperLink("text.php3?artikel=$artikel&seq=$nseq&la=$la","$ntitel","r"); } } } // if (datei... ?>