ilch Forum » Ilch Clan 1.1 » Allgemein » forum-augt

Geschlossen
  1. #1
    User Pic
    Der Bock Mitglied
    Registriert seit
    20.11.2008
    Beiträge
    53
    Beitragswertungen
    0 Beitragspunkte
    Hallo,
    ich versuche es schon länger, komme aber zu keinem Ergebniss.
    Und zwar möchte ich unter forum-augt nur die bis dahin ungelesenen und somit ungesehenden Forumsbeiträge sehen!
    Sobald ich sie angesehen habe sollen sie aus der Liste verschwinden!
    Keine Abhängigkeit von "lastlogin", wirklich nur nach gesehen oder eben nicht!
    Kann mir jemand dabei helfen?
    Gruß
    Andre
    Hier der Code von der search.php, die definition sollte doch in Zeile 79 liegen!?
    <?php
    #   Copyright by: Manuel Staechele
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    $such = $menu->get(1);
    
    if ($such == 'aeit') {
        if (isset($_POST['name'])) {
            $name = escape($_POST['name'],'string');
            $uid = @db_result(db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$name."'"));
            if ($uid > 0) {
                $menu->set_url(2,$uid);
            }
        }
        if ($menu->get(2) >= 1 AND $menu->get(2) != $_SESSION['authid']) {
        $uid = $menu->get(2);
        $name = get_n($uid);
        $mtitle = $lang['posts'].' '.$lang['from'].' '.$name;
        } else {
            $uid = $_SESSION['authid'];
            $mtitle = $lang['ownposts'];
            $name = '';
        }
    } elseif ($such == 'aubt') {
        $mtitle = $lang['topicwithnoreply'];
    } else {
        $mtitle = $lang['newtopicssincelastvisit'];
    }
    
    $title = $allgAr['title'].' :: Forum :: '.$mtitle;
    $hmenu  = $extented_forum_menu.'<a class="smalfont" href="index.php?forum">Forum</a><b> &raquo; </b> '.$mtitle;
    $design = new design ( $title , $hmenu, 1);
    $design->header();
    
    # mehrere seiten falls gefordert
    $limit = 25;  // Limit
    $page = ($menu->getE('p') > 0 ? $menu->getE('p') : 1 );
    $anfang = ($page - 1) * $limit;
    
    $s = "DISTINCT b.id as fid, a.name as titel, a.id as id, d.name as author";
    $q = "SELECT {SELECT}
      FROM prefix_topics a
        LEFT JOIN prefix_forums b ON b.id = a.fid
        LEFT JOIN prefix_posts c ON c.tid = a.id
        LEFT JOIN prefix_user d ON c.erstid = d.id
        LEFT JOIN prefix_groupusers vg ON vg.uid = ".$_SESSION['authid']." AND vg.gid = b.view
        LEFT JOIN prefix_groupusers rg ON rg.uid = ".$_SESSION['authid']." AND rg.gid = b.reply
        LEFT JOIN prefix_groupusers sg ON sg.uid = ".$_SESSION['authid']." AND sg.gid = b.start
      WHERE (((b.view >= ".$_SESSION['authright']." AND b.view <= 0) OR
                (b.reply >= ".$_SESSION['authright']." AND b.reply <= 0) OR
                (b.start >= ".$_SESSION['authright']." AND b.start <= 0)) OR
                (vg.fid IS NOT NULL OR rg.fid IS NOT NULL OR sg.fid IS NOT NULL OR ".$_SESSION['authright']." = -9))
         AND {WHERE}
      ORDER BY c.time DESC";
    $q2 = "SELECT DISTINCT b.id as fid, a.name as titel, a.id as id, MIN(c.id) AS firstnew, d.name as author
        FROM prefix_topics a
          LEFT JOIN prefix_forums b ON b.id = a.fid
          LEFT JOIN prefix_posts c ON c.tid = a.id
          LEFT JOIN prefix_user d ON c.erstid = d.id
          LEFT JOIN prefix_groupusers vg ON vg.uid = ".$_SESSION['authid']." AND vg.gid = b.view
          LEFT JOIN prefix_groupusers rg ON rg.uid = ".$_SESSION['authid']." AND rg.gid = b.reply
          LEFT JOIN prefix_groupusers sg ON sg.uid = ".$_SESSION['authid']." AND sg.gid = b.start
        WHERE (((b.view >= ".$_SESSION['authright']." AND b.view <= 0) OR
                (b.reply >= ".$_SESSION['authright']." AND b.reply <= 0) OR
                (b.start >= ".$_SESSION['authright']." AND b.start <= 0)) OR
                (vg.fid IS NOT NULL OR rg.fid IS NOT NULL OR sg.fid IS NOT NULL OR ".$_SESSION['authright']." = -9))
          AND c.time >= ".$_SESSION['lastlogin']."
        GROUP BY b.id,a.id, a.name
        ORDER BY c.time DESC";
    $x = time() - (3600 * 24 * 360);
    if ($such == 'aubt') {
        $where = "c.time >= ". $x ." AND a.rep = 0";
        $gAnz  = @db_result(db_query(str_replace('{WHERE}',$where,str_replace('{SELECT}',' COUNT(DISTINCT a.id)',$q))),0);
        $q     = str_replace('{WHERE}',$where,str_replace('{SELECT}',$s,$q));
    } elseif ($such == 'augt') {
        $where = "c.time >= ". $x ." AND c.time >= ".$_SESSION['lastlogin'];
        $gAnz  = @db_result(db_query(str_replace('{WHERE}',$where,str_replace('{SELECT}',' COUNT(DISTINCT a.id)',$q))),0);
        $q     = str_replace('{WHERE}',$where,str_replace('{SELECT}',$s,$q2));
    } elseif ($such == 'aeit') {
        $where = "c.time >= ". $x ." AND c.erstid = ".$uid;
        $gAnz  = @db_result(db_query(str_replace('{WHERE}',$where,str_replace('{SELECT}',' COUNT(DISTINCT a.id)',$q))),0);
        $q     = str_replace('{WHERE}',$where,str_replace('{SELECT}',$s,$q));
    }
    $MPL = db_make_sites ($page , "", $limit , 'index.php?forum-'.$such.($such == 'aeit' ? '-'.$uid : '') , "" , $gAnz);
    
    $tpl = new tpl('forum/search');
    $q = db_query($q." LIMIT $anfang,$limit");
    $class = '';
    $tpl->set_out('gAnz',$gAnz,0);
    while($r = db_fetch_assoc($q) ) {
        $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite' );
        $r['class'] = $class;
        $r['ctime'] = db_result(db_query("SELECT MAX(time) FROM prefix_posts WHERE tid = ".$r['id']),0,0);
        $r['ord'] = forum_get_ordner($r['ctime'],$r['id'],$r['fid']);
        $r['link'] = 'forum-showposts-'.$r['id'];
        if ($menu->get(1) == 'aeit') {
            $r['author'] = '';
        } elseif ($such == 'aubt') {
            $r['author'] = ' '.$lang['from'].' '.$r['author'];
        } else {
            $r['author'] = ' '.$lang['newpost'].' '.$lang['from'].' '.$r['author'];
            $r['postsbefore'] = db_count_query('SELECT COUNT(id) FROM prefix_posts WHERE tid = '.$r['id'].' AND id < '.$r['firstnew']);
            $r['page'] = ceil(($r['postsbefore']+1)/$allgAr['Fpanz']);
            $r['link'] .= '-p'.$r['page'].'#'.$r['firstnew'];
        }
    
        $tpl->set_ar_out($r,1);
    }
    $tpl->set_out('MPL',$MPL,2);
    if ($such == 'aeit') {
        $tpl->set_out('name',$name,3);
    }
    
    $design->footer();
    ?>


    betroffene Homepage: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Anhand von $r['ord'] kannst du herausfinden obs nun neu ist oder nicht, und wenns nicht neu ist, einfach mit continue das ausgeben der Zeile überspringen.


    Zuletzt modifiziert von Mairu am 29.10.2009 - 18:51:04
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Der Bock Mitglied
    Registriert seit
    20.11.2008
    Beiträge
    53
    Beitragswertungen
    0 Beitragspunkte
    Danke für deine schnelle Antwort!
    Ich fummel mir ja viel zurecht, aber hier muss ich passen!
    Könntest du mir die konkrete Änderung geben?
    Gruß
    Andre
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Fire86 Mitglied
    Registriert seit
    25.04.2009
    Beiträge
    543
    Beitragswertungen
    0 Beitragspunkte
    if ( $r['ord'] == 'ord' ) continue;
    Kein Support per Email oder ICQ!
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Der Bock Mitglied
    Registriert seit
    20.11.2008
    Beiträge
    53
    Beitragswertungen
    0 Beitragspunkte
    Jetzt wird garnichts mehr angezeigt!
    Obwohl neue Beiträge ungelesen da waren!
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Fire86 Mitglied
    Registriert seit
    25.04.2009
    Beiträge
    543
    Beitragswertungen
    0 Beitragspunkte
    Das war ja auch nicht die fertige Lösung, aber ich hab heute mal meinen hilfsbereiten...

    Unter Zeile 97 folgendes einfügen, dann klappt's
    if ( $r['ord'] == 'ord' AND $such == 'augt' ) continue;
    Kein Support per Email oder ICQ!
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Der Bock Mitglied
    Registriert seit
    20.11.2008
    Beiträge
    53
    Beitragswertungen
    0 Beitragspunkte
    OK...das funktioniert!
    Aber leider macht er es immer noch vom "lastlogin" abhängig!
    Ich hätte es gerne das so lange bleibt bis ich es wirklich angeschaut habe!
    Egal ob ich mich ausgeloggt habe.
    Ist das auch machbar, wäre sehr dankbar!!!
    Gruß
    Andre
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Fire86 Mitglied
    Registriert seit
    25.04.2009
    Beiträge
    543
    Beitragswertungen
    0 Beitragspunkte
    Machbar schon, aber nur mit umfangreichen Änderungen des Forumcodes und der Datenbank.
    Auch wenn das ne wirklich sinnvolle Änderung ist, wird sicherlich niemand das mal eben so für dich machen.
    Es sei denn...frag mal Gecko zunge
    Kein Support per Email oder ICQ!
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten