Neue Artikel 30 Minuten lang neu markieren

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

  • Neue Artikel 30 Minuten lang neu markieren

    Folgendes ich habe ein einfaches CMS mit Cookie-basiertem Usersystem geschrieben. Jetzt wollte ich, dass eine News die neuer als der letzte Besuch ist mindestens 30 Minuten angezeigt wird.

    So richtig hab ich aber noch nicht raus wie ich das rein
    logisch umsetzen soll.

    Gibt es dafür irgendwo Beispiele?

    Schon mal vielen Dank im vorraus!

  • #2
    Was meinst du mit "angezeigt wird"?

    Also so wie ich dich verstanden hab kommt ein User online du hast die letzte Loginzeit von ihm und willst das deine neue News 30 Minuten lang als neu bezeichnet wird.


    PHP-Code:
    $now time();
    $news_time WANN WURDE NEWS GESCHRIEBEN

    if( ($last_login  -  ($now $news_time)) <= 30)
    NEWS IST NEU

    else
    NEWS IST ALT 
    So würd ich das lösen...
    Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
    (Albert Einstein)

    Kommentar


    • #3
      Nein so funktioniert es leider nicht und außerdem wann und wo soll ich den Trigger für den Eintrag in das LastVisit Feld geben.

      echo 'Artikel: '.mktime(18,23,53,12,23,2003); #18:23:53 Heute
      echo "<br>";
      echo 'Lastlogin: '.mktime(12,23,53,12,23,2003); #12:23:53 - Heute
      echo "<br>";
      echo 'Jetzt: '.mktime();



      Artikel: 1072200233
      Lastlogin: 1072178633
      Jetzt: 1072204602

      Gemäß deiner Rechnung

      if( ($last_login - ($now - $news_time)) <= 30)
      NEWS IST NEU


      1072178633 - (1072204602 - 1072200233)

      1072178633 - 4369 = 1072174264 <<<

      Da haut etwas bei deiner Logik nicht hin
      Zuletzt geändert von American; 23.12.2003, 18:38.

      Kommentar


      • #4
        ...Denkfehler, hab nur Brainstorming gemacht keinen Code geliefert.


        Also es muss so abgefragt werden:

        if( ($now - $lastvisit) - ($now - $news_time) <= 1800)
        NEWS NEU


        Das is jetzt aber richtig
        Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
        (Albert Einstein)

        Kommentar


        • #5
          ($now - $lastvisit) - ($now - $news_time) <= 1800
          wenn ich in Mathe aufgepaßt habe ist das:
          $now - $lastvisit - $now + $news_time <= 1800
          - $lastvisit + $news_time <= 1800
          $news_time - $lastvisit <= 1800

          Offe

          Kommentar


          • #6
            Nein, die Klammern bedeuten das zuerst das Innere ausgeführt wird (bei diesem Beispiel berecht) und dann der Ausdruck als ganzes bewertet wird...
            Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
            (Albert Einstein)

            Kommentar


            • #7
              du willst also sagen:
              ($now - $lastvisit) - ($now - $news_time) != $now - $lastvisit - $now + $news_time

              Offe

              Kommentar


              • #8
                Ja das wird so von PHP ausgeführt:

                $a - $b <= 1800

                Wobei:

                $a = $now - $lastvisit;
                $b = $now - $news_time;

                is...

                EDIT:
                Da fällt mir noch n fehler auf:
                Wenn man es 100%ig korrekt machen will muss es sogar so aussehen:

                if( (($now - $lastvisit) - ($now - $news_time)) <= 1800)
                Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
                (Albert Einstein)

                Kommentar


                • #9
                  Auch wenn du nochmal 10 klammern setzt.
                  ( (($now) - ($lastvisit)) - (($now) - ($news_time))) == $now - $lastvisit - $now + $news_time

                  Wie würde das Ganze bei dir nach der Ausklammerung aussehen?

                  Offe

                  Kommentar


                  • #10
                    Versuchs doch einfach mal

                    Du denkst zu mathematisch...schreib dir n Beispiel und du wirst es sehen
                    Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
                    (Albert Einstein)

                    Kommentar


                    • #11
                      Beispiel

                      PHP-Code:
                      $now time();
                      $lastvisit time() - 212;
                      $news_time time() - 2615;

                      if( ((
                      $now $lastvisit) - ($now $news_time)) <= 1800)
                      echo 
                      "NEU";
                      else
                      echo 
                      "ALT"
                      Was kommt hier deiner Meinung nach raus?
                      Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
                      (Albert Einstein)

                      Kommentar


                      • #12
                        ich komm auf:
                        $now = time() = 10000;
                        $lastvisit = time() - 212 = 9788;
                        $news_time = time() - 2615 = 7385;

                        (($now - $lastvisit) - ($now - $news_time))
                        ((time() - time() + 212) - (time() - time() + 2615))
                        oder ((10000 - 9788) - (10000 - 7385)
                        212 -2615
                        -2403

                        $news_time - $lastvisit
                        7385 - 9788
                        -2403

                        Offe

                        Kommentar

                        Lädt...
                        X