Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 3.April.2003, 01:56.
@Pouraga wg. Forum-Tüftelei ;-)
Hi Pouraga...
Aaaalso, erstmal zum 2. Fehler: Den hast Du richtig lokalisiert und Dein Vorschlag (im "sub all_out"):
if($pos==$Pos && $Pos ne "")
{
out "</table><p>";
}
$alink="$mylinkr&Pos=$Pos";
funzt, aber ich wollte an dem Punkt was anderes, nämlich dass er ohne Neuladen hoch zur Eingabe springt. Habe nicht bedacht, dass $alink in der Schleife überschrieben werden kann. So isses nun wie ursprünglich gedacht:
if($pos==$Pos && $Pos ne "")
{
out "</table><p>";
$alink="#Eingabe";
} else
{
$alink="$mylinkr&Pos=$Pos";
}
Okeeee, der Code zum 1. Fehler von Dir funzt nicht! Hab die ganze Zeit rumgerätselt, wieso Du _keine_ Schleife brauchst, ich aber eine drin hatte/habe ;-) Die ist aber nötig, wenn jemand auf einen "höheren" Eintrag antwortet (also das $Shift < ist als der letzte Eintrag im Thread). Beispiel:
aaa
|---bbb
|------ccc
ddd
und jetzt antwortest Du auf "aaa" mit "eee": Bei Deinem Code rutscht das "eee" dann zwischen "aaa" und "bbb"!
aaa
|---eee
|---bbb
|------ccc
ddd
Gewollt ist aber zwischen "ccc" und "ddd", also so:
aaa
|---bbb
|-------ccc
|---eee
ddd
,-))
Die Lösung aller Probleme: Statt...
$Pos=0 if $_get{Pos}==$Pos;
folgende Zeile:
$Pos=int($Pos)-($_get{Pos}==int($Pos)) if $_get{Pos}==$Pos;
Das Schöne daran: Der erste Eintrag (wenn das Forum noch leer ist) ist kein Sonderfall, sondern das ist dasselbe wie wenn der Eintrag davor gelöscht wurde ;-))
Puhhh, das war ein hartes Stück Arbeit!! Hab 1 1/2 Stunden für gebraucht ;-)) Danke für Deine Unterstützung, Du hast mir viel geholfen!