Changeset 1311 in ExiteCMS for trunk/themes/ExiteCMS/theme.php


Ignore:
Timestamp:
02/27/08 11:25:49 (4 years ago)
Author:
hverton
Message:

added the new thread_first_read field to all posts unread queries, to get a more accurante unread posts number

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/themes/ExiteCMS/theme.php

    r1307 r1311  
    6767if (iMEMBER) { 
    6868    if ($userdata['user_posts_unread']) { 
    69         // include the users own posts 
    70         $result = dbquery("SELECT count(*) as unread FROM ".$db_prefix."posts p LEFT JOIN ".$db_prefix."threads_read tr ON p.thread_id = tr.thread_id WHERE tr.user_id = '".$userdata['user_id']."' AND (p.post_datestamp > ".$settings['unread_threshold']." OR p.post_edittime > ".$settings['unread_threshold'].") AND (p.post_datestamp > tr.thread_last_read OR p.post_edittime > tr.thread_last_read)", false); 
     69        $result = dbquery(" 
     70            SELECT count(*) as unread  
     71                FROM ".$db_prefix."posts p  
     72                    LEFT JOIN ".$db_prefix."threads_read tr ON p.thread_id = tr.thread_id  
     73                WHERE tr.user_id = '".$userdata['user_id']."'  
     74                    AND (p.post_datestamp > ".$settings['unread_threshold']." OR p.post_edittime > ".$settings['unread_threshold'].") 
     75                    AND ((p.post_datestamp > tr.thread_last_read OR p.post_edittime > tr.thread_last_read) 
     76                        OR (p.post_datestamp < tr.thread_first_read OR (p.post_edittime != 0 AND p.post_edittime < tr.thread_first_read)))" 
     77            ); 
    7178    } else { 
    72         // filter the users own posts 
    73         $result = dbquery("SELECT count(*) as unread FROM ".$db_prefix."posts p LEFT JOIN ".$db_prefix."threads_read tr ON p.thread_id = tr.thread_id WHERE tr.user_id = '".$userdata['user_id']."' AND p.post_author != '".$userdata['user_id']."' AND p.post_edituser != '".$userdata['user_id']."' AND (p.post_datestamp > ".$settings['unread_threshold']." OR p.post_edittime > ".$settings['unread_threshold'].") AND (p.post_datestamp > tr.thread_last_read OR p.post_edittime > tr.thread_last_read)", false); 
    74     } 
     79        $result = dbquery(" 
     80            SELECT count(*) as unread  
     81                FROM ".$db_prefix."posts p  
     82                    LEFT JOIN ".$db_prefix."threads_read tr ON p.thread_id = tr.thread_id  
     83                WHERE tr.user_id = '".$userdata['user_id']."'  
     84                    AND p.post_author != '".$userdata['user_id']."' 
     85                    AND p.post_edituser != '".$userdata['user_id']."' 
     86                    AND (p.post_datestamp > ".$settings['unread_threshold']." OR p.post_edittime > ".$settings['unread_threshold'].") 
     87                    AND ((p.post_datestamp > tr.thread_last_read OR p.post_edittime > tr.thread_last_read) 
     88                        OR (p.post_datestamp < tr.thread_first_read OR (p.post_edittime != 0 AND p.post_edittime < tr.thread_first_read)))" 
     89            ); 
     90    }  
    7591    $variables['new_posts'] = ($result ? mysql_result($result, 0) : 0); 
    7692} else { 
Note: See TracChangeset for help on using the changeset viewer.