PM System

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    wenn du den Status auf 2 setzt, um eine gelöschte PM zu kennzeichnen, dann wird sie ja nicht "wirklich" gelöscht...

    Kommentar


    • #17
      wenn du den Status auf 2 setzt, um eine gelöschte PM zu kennzeichnen, dann wird sie ja nicht "wirklich" gelöscht...
      Das ist ja auch nicht so gewollt.
      Die "gelöschten" Mails werden aus dem Posteingang/Ausgang entfernt, bleiben aber in der Datenbank.
      Ich kann ja nie vorher wissen, wer von den beiden (Empfänger oder Absender) die Mail als erstes löscht. Er würde Sie ja dann auch aus dem Posteingang/Ausgang des anderen killen

      Die Mails werden bei uns 3 Monate aufbewahrt und dann per script entgültig gelöscht.

      Kommentar


      • #18
        na denn

        Es sei denn, man macht aus einer PM 2...

        Kommentar


        • #19
          Jo, das wäre möglich, AAAABER

          dann hätte ich ja momentan anstelle von 10.721 *denk* 21441 Einträge in der db. Und das in nur 3 Monaten. Nee, dann lieber ein feld mehr

          Wir behalten die Sachen weil wir den Usern ne Statistik anbieten und wir wollen später noch ein Mail to POP3 anbieten, dort sollen alle Mails (nicht älter als 3 Monate) per Mail an den User geschickt werden können. Deswegen nicht wirklich löschen.

          Kommentar


          • #20
            asoo, aber das hört sich mal echt geil an.

            Ich brauche auch nochn PM System für die Seite meiner Schule...
            irgendwann werde ich damit beginnen, erstmal muss das Usermanagement hinhauen ^^

            kannst ja mal ab und zu deinen Fortschritt posten

            Kommentar


            • #21
              Ich will das mal zusammenfassen oder versuchen

              Da das Script schon ziemlich speziell an unsere Seite angepasst wurde, wäre es sinnlos den ganzen Code hier zu Posten.

              Die User loggen sich bei unserem System ein und haben logischerweise eine UserId.

              Wenn ein User nun eine Mail schreibt, wird ein Datensatz wie folgt aufgebaut:
              PHP-Code:
              $sqlinsert=" insert into ".$table."ShortMesseages
              (`MesseageId`, `MesseageToId`, `MesseageFromId`,`Timestamp`,`Messeage`, `FromStatus`, `ToStatus`,`typ`)
              VALUES 
              ('', '
              $UserId', '$SessionUser', '$time', '$Messeage','gesendet', 'ungelesen','telegramm')"
              wobei typ = telegramm oder mail sein kann. Ein Telgramm ist wie eine SMS also ohne Formatierungsmöglichkeiten wie Smileys oder Fettdruck oder so.
              Werden im Posteingang mit unterschiedlichen Symbolen gekennzeichnet

              Im Postfach selektiere ich die Mails dann:
              PHP-Code:
              $sqla ="Select * From  ".$table."ShortMesseages where MesseageFromId  = '$SessionUser' and FromStatus <> 'gelöscht' order by 'timestamp' DESC";
              $sqle ="Select * From  ".$table."ShortMesseages where MesseageToId  = '$SessionUser' and ToStatus <> 'gelöscht' order by 'timestamp' DESC"
              sqle ist also Posteingang und sqla dementsprechend Ausgang (Per Link auswählbar)


              Wenn ein User eine Mail liest, setze ich beide Statis auf gelesen.
              Löscht einer der beiden User diese Mail, wird der entsprechende Status auf gelöscht gesetzt.


              Direkt nach dem Login des Users auf unsere Seite, geht ein Popupfenster auf, wenn er NAchrichten in seiner Abwesenheit bekommen hat (Du hast XX neue Mails)
              Bekommt er eine Mail wärend er eingeloggt ist, popt direkt die Mail auf.

              Die andere Sache mit dem Alle mails auf POP3 schicken ist ja kein Problem. Mit der $Sessionuser kann ich mittels leftjoin die Emailadresse auslesen.
              Danach wird der ganze Posteingang oder Postausgang in eine Variable gepackt und anschließend in den Text der Mail gepflanzt.

              Das löschscript starte ich wohl noch von Hand, die drei Monate sind ja noch nicht ganz rum. Da kann ich ja anhand des Timestamps aus der db einfach alle Mails löschen, die älter als 3 Monate sind.


              Das ist quasi schon die ganze Kunst.
              Hoffe, das war einigemraßen verständlich

              Kommentar


              • #22
                hehe
                Mein Usermanagement ist ähnlich.
                Beim Einloggen: UserID

                Kommentar


                • #23
                  sorry, dass ich den thread nochmal hochhole...

                  ich wollte noch fragen wie man das macht, dass die pm's dann nach 3 monaten oä. gelöscht werden?

                  Kommentar


                  • #24
                    du hast irgendwo eine Datumsspalte? Wenn ja dann kannst du per SQL einfach löschen. Wenn nein, tja ... da kann man schlecht wissen, von wann das PM ist

                    Kommentar


                    • #25
                      ja ich hab ne datumsspalte, ich will aber das es automatisch geht... ohne das ich auf nen knopf mit PM löschen klicken muss

                      Kommentar


                      • #26
                        dann mach das DELETE das du brauchst in deiner startseite, die jedesmal geladen wird
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #27
                          ok ich mach das aber jetz ein wenig besser

                          ich hab jetzt nen papierkorb gebastelt wo alle gelöschten nachrichten drinnen sind (die mit status 2). dann hab ich ein neues feld gemacht namens deltime, dieses wird mit dem timestamp gefüllt, wann die nachricht in den papierkorb wandert. dann kann man mittels knopfdruck die nachricht wiederherstellen (also status auf 1 setzen). dann wird nach einer bestimmten zeit der status auf 3 gesetzt, also ganz gelöscht wobei die pm ja noch da ist und daraus kann man dann ne echte statistik machen...

                          ps: bei peacie ist nämlcih die statistik dann verfälscht wenn die nachrichten dann endgültig gelöscht werden...

                          [edit] hab noch nen fehler in der select abfrage: es sollte alle gelöschten kommen, also dort wo ich der sender bin und der sendstatus auf 2 is, und dort wo ich der empfänger bni und der empfängerstatus auf 2 is.. das ergebnis is 0 obwohl 2 datensätze so aussehen...

                          hier die abfrage:

                          Code:
                          ("SELECT pmID FROM ".$prefix."_pms WHERE (senderID = '$user[userID]' AND sendstatus = '2') AND (recID = '$user[userID]' AND recstatus = '2')"
                          weiß jemand ne lösung??

                          [edit2] schon draufgekommen, es gehört OR in der mitte
                          Zuletzt geändert von 3Dfx; 25.08.2004, 13:10.

                          Kommentar

                          Lädt...
                          X