Changeset 1018 for trunk/feed.php


Ignore:
Timestamp:
Feb 1, 2006, 12:38:48 AM (18 years ago)
Author:
rub
Message:

[NBM] Step 1: Create new include files with current notification/mail fonctions (with improvement)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/feed.php

    r958 r1018  
    33// | PhpWebGallery - a PHP based picture gallery                           |
    44// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
    5 // | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
     5// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
    66// +-----------------------------------------------------------------------+
    77// | branch        : BSF (Best So Far)
     
    2828define('PHPWG_ROOT_PATH','./');
    2929include_once(PHPWG_ROOT_PATH.'include/common.inc.php');
     30include_once(PHPWG_ROOT_PATH.'include/functions_notification.inc.php');
    3031
    3132// +-----------------------------------------------------------------------+
    3233// |                               functions                               |
    3334// +-----------------------------------------------------------------------+
    34 
    35 /**
    36  * new comments between two dates, according to authorized categories
    37  *
    38  * @param string start (mysql datetime format)
    39  * @param string end (mysql datetime format)
    40  * @param string forbidden categories (comma separated)
    41  * @return array comment ids
    42  */
    43 function new_comments($start, $end)
    44 {
    45   global $user;
    46  
    47   $query = '
    48 SELECT DISTINCT c.id AS comment_id
    49   FROM '.COMMENTS_TABLE.' AS c
    50      , '.IMAGE_CATEGORY_TABLE.' AS ic
    51   WHERE c.image_id = ic.image_id
    52     AND c.validation_date > \''.$start.'\'
    53     AND c.validation_date <= \''.$end.'\'
    54     AND category_id NOT IN ('.$user['forbidden_categories'].')
    55 ;';
    56   return array_from_query($query, 'comment_id');
    57 }
    58 
    59 /**
    60  * unvalidated at a precise date
    61  *
    62  * Comments that are registered and not validated yet on a precise date
    63  *
    64  * @param string date (mysql datetime format)
    65  * @return array comment ids
    66  */
    67 function unvalidated_comments($date)
    68 {
    69   $query = '
    70 SELECT DISTINCT id
    71   FROM '.COMMENTS_TABLE.'
    72   WHERE date <= \''.$date.'\'
    73     AND (validated = \'false\'
    74          OR validation_date > \''.$date.'\')
    75 ;';
    76   return array_from_query($query, 'id');
    77 }
    78 
    79 /**
    80  * new elements between two dates, according to authorized categories
    81  *
    82  * @param string start (mysql datetime format)
    83  * @param string end (mysql datetime format)
    84  * @param string forbidden categories (comma separated)
    85  * @return array element ids
    86  */
    87 function new_elements($start, $end)
    88 {
    89   global $user;
    90  
    91   $query = '
    92 SELECT DISTINCT image_id
    93   FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON image_id = id
    94   WHERE date_available > \''.$start.'\'
    95     AND date_available <= \''.$end.'\'
    96     AND category_id NOT IN ('.$user['forbidden_categories'].')
    97 ;';
    98   return array_from_query($query, 'image_id');
    99 }
    100 
    101 /**
    102  * updated categories between two dates, according to authorized categories
    103  *
    104  * @param string start (mysql datetime format)
    105  * @param string end (mysql datetime format)
    106  * @param string forbidden categories (comma separated)
    107  * @return array element ids
    108  */
    109 function updated_categories($start, $end)
    110 {
    111   global $user;
    112  
    113   $query = '
    114 SELECT DISTINCT category_id
    115   FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON image_id = id
    116   WHERE date_available > \''.$start.'\'
    117     AND date_available <= \''.$end.'\'
    118     AND category_id NOT IN ('.$user['forbidden_categories'].')
    119 ;';
    120   return array_from_query($query, 'category_id');
    121 }
    122 
    123 /**
    124  * new registered users between two dates
    125  *
    126  * @param string start (mysql datetime format)
    127  * @param string end (mysql datetime format)
    128  * @return array user ids
    129  */
    130 function new_users($start, $end)
    131 {
    132   $query = '
    133 SELECT user_id
    134   FROM '.USER_INFOS_TABLE.'
    135   WHERE registration_date > \''.$start.'\'
    136     AND registration_date <= \''.$end.'\'
    137 ;';
    138   return array_from_query($query, 'user_id');
    139 }
    140 
    141 /**
    142  * currently waiting pictures
    143  *
    144  * @return array waiting ids
    145  */
    146 function waiting_elements()
    147 {
    148   $query = '
    149 SELECT id
    150   FROM '.WAITING_TABLE.'
    151   WHERE validated = \'false\'
    152 ;';
    153 
    154   return array_from_query($query, 'id');
    155 }
    156 
    157 /**
    158  * What's new between two dates ?
    159  *
    160  * Informations : number of new comments, number of new elements, number of
    161  * updated categories. Administrators are also informed about : number of
    162  * unvalidated comments, number of new users (TODO : number of unvalidated
    163  * elements)
    164  *
    165  * @param string start date (mysql datetime format)
    166  * @param string end date (mysql datetime format)
    167  */
    168 function news($start, $end)
    169 {
    170   global $user;
    171 
    172   $news = array();
    173  
    174   $nb_new_comments = count(new_comments($start, $end));
    175   if ($nb_new_comments > 0)
    176   {
    177     array_push($news, sprintf(l10n('%d new comments'), $nb_new_comments));
    178   }
    179 
    180   $nb_new_elements = count(new_elements($start, $end));
    181   if ($nb_new_elements > 0)
    182   {
    183     array_push($news, sprintf(l10n('%d new elements'), $nb_new_elements));
    184   }
    185 
    186   $nb_updated_categories = count(updated_categories($start, $end));
    187   if ($nb_updated_categories > 0)
    188   {
    189     array_push($news, sprintf(l10n('%d categories updated'),
    190                               $nb_updated_categories));
    191   }
    192  
    193   if ('admin' == $user['status'])
    194   {
    195     $nb_unvalidated_comments = count(unvalidated_comments($end));
    196     if ($nb_unvalidated_comments > 0)
    197     {
    198       array_push($news, sprintf(l10n('%d comments to validate'),
    199                                 $nb_unvalidated_comments));
    200     }
    201 
    202     $nb_new_users = count(new_users($start, $end));
    203     if ($nb_new_users > 0)
    204     {
    205       array_push($news, sprintf(l10n('%d new users'), $nb_new_users));
    206     }
    207 
    208     $nb_waiting_elements = count(waiting_elements());
    209     if ($nb_waiting_elements > 0)
    210     {
    211       array_push(
    212         $news,
    213         sprintf(
    214           l10n('%d waiting elements'),
    215           $nb_waiting_elements
    216           )
    217         );
    218     }
    219   }
    220 
    221   return $news;
    222 }
    22335
    22436/**
Note: See TracChangeset for help on using the changeset viewer.