ilch Forum » Ilch Clan 1.1 » Allgemein » Forum: Themen der letzten 24 Stunden

Geschlossen
  1. #1
    User Pic
    RedSunset Mitglied
    Registriert seit
    29.05.2009
    Beiträge
    173
    Beitragswertungen
    4 Beitragspunkte
    Hallo,

    in einigen Foren gibt es einen Link "Themen der letzten 24 Stunden", dieser zeigt an in welchen Themen in den letzten 24 Stunden etwas gepostet wurde bzw welche neu erstellt wurden usw.

    dazu müsste ich ja die contents/forum/search.php erweitern, nur i.wie blick ich da nicht ganz durch, wie ich das ändern muss. Im Prinzip müsste es ja reichen zu sagen "gib mir alle Postings mit nem Zeitstempel von vor 24 Stunden und aktueller".. aber i.wie krieg ich keine Ergebnisse.

    Folgende Änderungen wurdne gemacht:

    In contents/forum.php:
    switch ($menu->get(1)) {
      default :            $incdatei = 'show_forum.php';   break;
    	case 'showtopics' :  $incdatei = 'show_topic.php';   break;
    	case 'editforum'  :  $incdatei = 'edit_forum.php';   break;
        case 'showcat'    :  $incdatei = 'show_cat.php';     break;
    	case 'showposts'  :  $incdatei = 'show_posts.php';   break;
    	case 'newtopic'   :  $incdatei = 'new_topic.php';    break;
    	case 'savetopic'  :  $incdatei = 'save_topic.php';   break;
    	case 'newpost'    :  $incdatei = 'new_post.php';     break;
    	case 'savepost'   :  $incdatei = 'save_post.php';    break;
    	case 'edittopic'  :  $incdatei = 'edit_topic.php';   break;
    	case 'delpost'    :  $incdatei = 'del_post.php';     break;
    	case 'editpost'   :  $incdatei = 'edit_post.php';    break;
    	case 'privmsg'    :  $incdatei = 'privmsg.php';      break;
    	case 'aeit'       :
    	case 'aubt'       :
    	case 'last24' :
    	case 'augt'       :  $incdatei = 'search.php';       break;
        case 'search'     :  $incdatei = 'suchen.php';       break;
    }

    hinzugefügt case 'last24' :
    da dieser Link auch auf die search.php gehen soll, nichts weiter hinzu.

    In templates/forum/show_topic.htm den neuen Link hinzugefügt

    In contents/forum/search.php
    ..
    } elseif ($such == 'aubt') {
        $mtitle = $lang['topicwithnoreply'];
    } elseif ($such == 'last24'){
        $mtitle = 'Themen der letzten 24 Stunden';
    } else {
        $mtitle = $lang['newtopicssincelastvisit'];
    }
    ..
    } 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));
    } elseif ($such == 'last24') {
        $where = "c.time >= ". $x ;
        $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));
    }
    ...


    Hoffe mir kann da jemand auf die Sprünge helfen.

    Vielen Dank und liebe Grüße
    Red~
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Hippo4u Mitglied
    Registriert seit
    02.10.2009
    Beiträge
    19
    Beitragswertungen
    0 Beitragspunkte
    Kann jetz sein das ich was falsch verstehe aber wieso suche? Erstell doch einfach eine neue PHP Datei und eine Template datei und lass sie im switch includen.

    In die Datei schreibst du eine Abfrage die dir Themen bzw Beiträge ausgibt die in den letzten 24h gemacht wurden.

    Naja so würde ich das jetzt machen. Was du da mit der Suche willst verstehe ich nicht ^^
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    RedSunset Mitglied
    Registriert seit
    29.05.2009
    Beiträge
    173
    Beitragswertungen
    4 Beitragspunkte
    ich will die vorhande datei einfach erweitern .. warum das rad neu erfinden wenn ich denn alles in einer datei habe o.o .. die "unbeantworteten Threads" usw werden ja auch da erstellt.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    GeCk0 Hall Of Fame
    Registriert seit
    01.05.2009
    Beiträge
    2.989
    Beitragswertungen
    96 Beitragspunkte
    so oder so ähnlich

    <?php
    $ldp_time = time() - 86400; # JETZT - 24 std( = 86400 sec)
    
    $ldp_qry = db_query("SELECT id,tid,erst,erstid,time FROM `prefix_posts` WHERE a.time >= ".$ldp_time."");
    
    while ($ldp_row = db_fetch_assoc($ldp_qry)) {
    	echo '
    	<p>
    		<a href="index.php?forum-showposts-'.$ldp_row['tid'].'#'.$ldp_row['id'].'">'.substr($ldp_row['txt'],0,35).'</a>
    		von <a href="index.php?user-details-'.$ldp_row['erstid'].'">'.$ldp_row['erst'].'
    	</p>';
    }
    
    ?>


    ist nicht getestet und ganz einfach gehalten

    man könnte natürlich durch LEFT JOIN -Abfragen noch den Tread-Titel ect auslesen

    wenn du es in die suche.php baust muss noch ein neues case angelegt werden
    ansonsten würde ich es wohl auch mit einer neuen php-datei vorschlagen, ist zumindest einfacher
    Alle Module von mir sind nun unter php-gecko.de erreichbar
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    RedSunset Mitglied
    Registriert seit
    29.05.2009
    Beiträge
    173
    Beitragswertungen
    4 Beitragspunkte
    na gut lächeln trotzdem dankeschön

    <?php
    
    defined ('main') or die ( 'no direct access' );
    
    $mtitle = 'Themen der letzten 24 Stunden';
    
    $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;
    
    $ldp_time = time() - 86400; # JETZT - 24 std( = 86400 sec)
    
    $q = "SELECT  DISTINCT b.id as fid, a.name as titel, a.id as id, 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 >= ".$ldp_time."
      ORDER BY c.time DESC ";
    
    
    $tpl = new tpl('forum/search'); 
    $q = db_query($q." LIMIT $anfang,$limit");
    $gAnz = @db_result(db_query("
    SELECT  COUNT(DISTINCT a.id)  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 >= ".$ldp_time."
    "));
    $class = '';
    $MPL = db_make_sites ($page , "", $limit , 'index.php?forum-'.$such.($such == 'aeit' ? '-'.$uid : '') , "" , $gAnz);
    
    $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'];
        $r['author'] = '';
        $tpl->set_ar_out($r,1);
    }
    
    $tpl->set_out('MPL',$MPL,2);
     
    $design->footer();
    
    ?>


    So hab ichs jetzt, zwar net besonders hübsch, aber funktioniert.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten