Re: Das Forum tüfteln geht weiter (Geschaft!?) - 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 Pouraga (1396 Beiträge) am Freitag, 7.März.2003, 22:06.
    Re: Das Forum tüfteln geht weiter (Geschaft!?)

      Ich glaube ich hab's. ;)
      (nein ich hab nicht seit heute Mittag dran gesessen, sonnst währe ich wohl durchgedreht *g*)

      Also, das Problem ist wenn das Thema davor fehlt. (soweit jetzt klar)

      Und ist auch klar denn in der Abfrage wird auch der erste Eintrag des vorherigen Themas geholt.

      Da ich das mit dem originlacode einfach nicht gerade gebogen bekommen habe (zumindest nach mehr oder weniger langen probieren), hab ich nen neuen gemacht:
      --------------------------
      ...
      } else
      {
      

      get "Pos<=$_get{Pos} range=0,2 sort=-";
      $_put{Shift}=$Shift+1;    #Einrücken
      $ueberPos = $Pos;         #Beitrag auf den geantwortet
      get_next; get_next;       #Der nächste bitte !
      $unterPos = $Pos;         #Beitrag der schon da war
      $themaPos = int($ueberPos);
      $themaPos++ unless ($themaPos == $ueberPos);               #Thema in dem wir uns befinden
      $unterPos = $themaPos - 1 if ($unterPos < $themaPos - 1);  #Ausgleich fals Vorgänger fehlt
      $unterPos = 0 if ($_amount <= 1);                          #Ausgleich fals erster Eintrag im Forum
      $newPos=($unterPos+$ueberPos)/2;                           #Durchschnitt ausrechenen
      my $mx=$newPos; chop $mx; $newPos=$mx if($mx>$unterPos);   #Und noch schön machen
      

      }
      ...
      -------------------------

      Das funktioniert! (zumindest hab ich bisher noch nix entdeckt was nicht funktioniert)

      Das mit dem auf 0 setzten war übrigens um das Problem zu lösen was bei dem niedrigsten Eintrag im Forum entsteht.


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 7.März.2003, 04:04.
    @Pouraga

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Freitag, 7.März.2003, 16:30.
    Re: Das Forum tüfteln geht weiter

      Ach, hatte garnicht gesehen das noch jemand drauf geantwortet hat.

      Ich bekomme den Fehler nicht hin. Hab jetzt nen Forum etwas gefüllt (so 20 einträge) und dann in einem Thema wild durcheinander Einträge gelöscht und drauf geantwortet. Und habe es einfach nicht den Fehler bekommen.

      Aber ich hab hier noch mal nen bischen geschaut:

      Komisch Komisch:
      Wenn man:
      http://baseportal.de/baseportal/baseportal/forum&wcheck=1&range=150,150&Pos=7344.05
      aufruft.
      Dann hat mal eine solche Reihenfolge von $Pos der Beiträge:
      7345
      7344.5
      7344.2
      7344.1
      7344.1
      7344.02

      Wenn man aber:
      http://baseportal.de/baseportal/baseportal/forum&wcheck=1&range=150,150&Pos=7344.02
      aufruft.

      Dann ist es so:
      7345
      7344.5
      7344.2
      7344.1
      7344.05
      7344.05

      ist schon ein bissel komisch das ein und der selbe Beitrag nur durch verändern des aufrufes, auf einmal was völlig anderes ergibt.

      Und noch komischer ist es das es nur in der Detailansicht so ist und nicht unten in der Liste.

      Der Fehler das die Pos des neuen Beitrag dann falsch berechnet wird ist nur ne Folge daraus denke ich, denn das passiert immer wenn 2 Beiträge mit der gleichen Pos in der Datenbank exestieren auf den geantwortet wird.

      Man könnt jetzt da ne Fusch drumherum programmieren der verhindert das $Pos falsch berechnet wird wenn er mehrere findet. Daran ist dann die Zeile die du gesagt hast schuld. (wofür die jetzt sein soll weiss ich auch nicht) Wenn man die weglässt dann entstehen einfach nur weitere mit der gleichen $Pos beim antworten auf doppelte.

      Aber besser ist es denke ich mal wenn man den Fehler findet wie 2 mit der gleichen Pos entstehen.

      Nur warum gibt er jetzt dort aufeinmal die Pos falsch aus (einmal so einmal so falsch)?

      Ich werde dran bleiben und mal versuchen ob ich mein Forum doch noch kaputt bekomme. *g*

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 7.März.2003, 18:18.
    Re: Das Forum tüfteln geht weiter

      Mmh, mhh, mhh... Vielleicht ist meine Vermutung, dass es was mitm Rauslöschen zu tun hat dann doch falsch... Mmh... Die von Dir oben beschriebenen Effekte sind (wahrscheinlich?) nur _Folgen_ von dem Fehler, ohne den eigentlichen Fehler zu finden, hilfts nich viel (oder?)

      Also mein Testforum hab ich folgendermassen kaputt gekriegt: 3 (Top-Level-)Einträge (über die Forumseite) gemacht, dann den mittleren rausgelöscht und dann auf den obersten Eintrag geantwortet - diese Antwort wird zwar richtig eingeordnet, aber schau Dir mal die "Pos" von dem Eintrag an... ;-)

      Versuch das mal genauso Schritt für Schritt, dann sollte das schon was werden mit dem Kaputtmachen ;-)))

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Freitag, 7.März.2003, 22:06.
    Re: Das Forum tüfteln geht weiter (Geschaft!?)

      Ich glaube ich hab's. ;)
      (nein ich hab nicht seit heute Mittag dran gesessen, sonnst währe ich wohl durchgedreht *g*)

      Also, das Problem ist wenn das Thema davor fehlt. (soweit jetzt klar)

      Und ist auch klar denn in der Abfrage wird auch der erste Eintrag des vorherigen Themas geholt.

      Da ich das mit dem originlacode einfach nicht gerade gebogen bekommen habe (zumindest nach mehr oder weniger langen probieren), hab ich nen neuen gemacht:
      --------------------------
      ...
      } else
      {
      

      get "Pos<=$_get{Pos} range=0,2 sort=-";
      $_put{Shift}=$Shift+1;    #Einrücken
      $ueberPos = $Pos;         #Beitrag auf den geantwortet
      get_next; get_next;       #Der nächste bitte !
      $unterPos = $Pos;         #Beitrag der schon da war
      $themaPos = int($ueberPos);
      $themaPos++ unless ($themaPos == $ueberPos);               #Thema in dem wir uns befinden
      $unterPos = $themaPos - 1 if ($unterPos < $themaPos - 1);  #Ausgleich fals Vorgänger fehlt
      $unterPos = 0 if ($_amount <= 1);                          #Ausgleich fals erster Eintrag im Forum
      $newPos=($unterPos+$ueberPos)/2;                           #Durchschnitt ausrechenen
      my $mx=$newPos; chop $mx; $newPos=$mx if($mx>$unterPos);   #Und noch schön machen
      

      }
      ...
      -------------------------

      Das funktioniert! (zumindest hab ich bisher noch nix entdeckt was nicht funktioniert)

      Das mit dem auf 0 setzten war übrigens um das Problem zu lösen was bei dem niedrigsten Eintrag im Forum entsteht.

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Freitag, 7.März.2003, 22:47.
    Re: Das Forum tüfteln geht weiter (Geschaft!?)

      Achso:

      Der andere Fehler denn ich noch gefunden hatte (das mit dem Pos in Detailanzeigen) , war nen eigenständiger
      Fehler. Der auch immer aufgetaucht ist. (nicht nur wenn das Thema davor gelöscht wurde)
       
      Ist da antscheinend noch niemanden aufgefallen das wenn er nochmal auf den Eintrag in der Detailansicht klickt, den er gerade schon angewählt hat. Befindet er sich bei dem Eintrag davor (und antwortet logischerweise auch auf den).

      Hier das Stück in der "sub all_out":
      ----------------
      ...
        if($pos==$Pos && $Pos ne "")
        {
         out "</table><p>";
        } 
      
               $alink="$mylinkr&Pos=$Pos";   out "&nbsp;<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;

      ...
      -----------------

      in der originalen ist die die Zeile mit $alink... noch mit einem else umschlossen.
      (hat da vieleicht jemand vorgehabt den Link für Antworten nicht zu bieten wenn man schon da ist? ;) )

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Sonntag, 9.März.2003, 14:48.
    Re: Das Forum tüfteln geht weiter (Geschaft!?)

      Also für die beiden Fehlerbehebungen bekommst Du auf jeden Fall schonmal den baseportal-Ritter-Ehrenorden mit Band ;-) Hab noch keine Zeit gefunden das einzubauen (bzw. ich will noch schauen ob es mit dem jetzigen Code nich ne Lösung gibt), kommt aber bald ;-)

     Antworten


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