Changeset 1639


Ignore:
Timestamp:
Dec 7, 2006, 4:49:20 AM (17 years ago)
Author:
rvelices
Message:

put some functionnality from feed.php into a function (to be used
later in the notification by email)

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/feed.php

    r1637 r1639  
    189189}
    190190
    191 // build items for last images/albums
    192 $query = '
    193 SELECT date_available,
    194       COUNT(DISTINCT id) nb_images,
    195       COUNT(DISTINCT category_id) nb_cats
    196   FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id=image_id
    197   WHERE category_id NOT IN ('.$user['forbidden_categories'].')
    198   GROUP BY date_available
    199   ORDER BY date_available DESC
    200   LIMIT 0,5
    201 ;';
    202 $result = pwg_query($query);
    203 $dates = array();
    204 while ($row = mysql_fetch_assoc($result))
    205 {
    206   array_push($dates, $row);
    207 }
     191$dates = get_recent_post_dates( 5, 6, 6);
    208192
    209193foreach($dates as  $date_detail)
     
    212196  $exploded_date = explode_mysqldt($date);
    213197  $item = new FeedItem();
    214   $item->title = l10n_dec('%d element added', '%d elements added', $date_detail['nb_images']);
     198  $item->title = l10n_dec('%d element added', '%d elements added', $date_detail['nb_elements']);
    215199  $item->title .= ' ('.$lang['month'][(int)$exploded_date['month']].' '.$exploded_date['day'].')';
    216200  $item->link = make_index_url(
     
    228212  $item->description .=
    229213        '<li>'
    230         .l10n_dec('%d element added', '%d elements added', $date_detail['nb_images'])
     214        .l10n_dec('%d element added', '%d elements added', $date_detail['nb_elements'])
    231215        .' ('
    232216        .'<a href="'.make_index_url(array('section'=>'recent_pics')).'">'
     
    235219        .'</li>';
    236220
    237   // get some thumbnails ...
    238   $query = '
    239 SELECT DISTINCT id, path, name, tn_ext
    240   FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id=image_id
    241   WHERE category_id NOT IN ('.$user['forbidden_categories'].')
    242     AND date_available="'.$date.'"
    243     AND tn_ext IS NOT NULL
    244   LIMIT 0,6
    245 ;';
    246   $result = pwg_query($query);
    247   while ($row = mysql_fetch_assoc($result))
     221  foreach( $date_detail['elements'] as $element )
    248222  {
    249     $tn_src = get_thumbnail_url($row);
     223    $tn_src = get_thumbnail_url($element);
    250224    $item->description .= '<img src="'.$tn_src.'"/>';
    251225  }
    252226  $item->description .= '...<br/>';
    253227
    254 
    255228  $item->description .=
    256229        '<li>'
    257         .l10n_dec('%d category updated', '%d categories updated', 
     230        .l10n_dec('%d category updated', '%d categories updated',
    258231                  $date_detail['nb_cats'])
    259232        .'</li>';
    260   // get some categories ...
    261   $query = '
    262 SELECT DISTINCT c.uppercats, COUNT(DISTINCT i.id) img_count
    263   FROM '.IMAGES_TABLE.' i INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON i.id=image_id
    264     INNER JOIN '.CATEGORIES_TABLE.' c ON c.id=category_id
    265   WHERE category_id NOT IN ('.$user['forbidden_categories'].')
    266     AND date_available="'.$date.'"
    267   GROUP BY category_id
    268   ORDER BY img_count DESC
    269   LIMIT 0,6
    270 ;';
    271   $result = pwg_query($query);
     233
    272234  $item->description .= '<ul>';
    273   while ($row = mysql_fetch_array($result))
     235  foreach( $date_detail['categories'] as $cat )
    274236  {
    275237    $item->description .=
    276238          '<li>'
    277           .get_cat_display_name_cache($row['uppercats'])
     239          .get_cat_display_name_cache($cat['uppercats'])
    278240          .' ('.
    279           l10n_dec('%d element added', 
    280                    '%d elements added', $row['img_count']).')'
     241          l10n_dec('%d element added',
     242                   '%d elements added', $cat['img_count']).')'
    281243          .'</li>';
    282244  }
  • trunk/include/functions_notification.inc.php

    r1637 r1639  
    414414}
    415415
     416/**
     417 * returns information about recently published elements grouped by post date
     418 * @param int max_dates maximum returned number of recent dates
     419 * @param int max_elements maximum returned number of elements per date
     420 * @param int max_cats maximum returned number of categories per date
     421 */
     422function get_recent_post_dates($max_dates, $max_elements, $max_cats)
     423{
     424  global $conf, $user;
     425
     426  $where_sql = 'WHERE category_id NOT IN ('.$user['forbidden_categories'].')';
     427
     428  $query = '
     429SELECT date_available,
     430      COUNT(DISTINCT id) nb_elements,
     431      COUNT(DISTINCT category_id) nb_cats
     432  FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id=image_id
     433  '.$where_sql.'
     434  GROUP BY date_available
     435  ORDER BY date_available DESC
     436  LIMIT 0,'.$max_dates.'
     437;';
     438  $result = pwg_query($query);
     439  $dates = array();
     440  while ($row = mysql_fetch_assoc($result))
     441  {
     442    array_push($dates, $row);
     443  }
     444
     445  for ($i=0; $i<count($dates); $i++)
     446  {
     447    if ($max_elements>0)
     448    { // get some thumbnails ...
     449      $query = '
     450SELECT DISTINCT id, path, name, tn_ext
     451  FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id=image_id
     452  '.$where_sql.'
     453    AND date_available="'.$dates[$i]['date_available'].'"
     454    AND tn_ext IS NOT NULL
     455  LIMIT 0,'.$max_elements.'
     456;';
     457      $dates[$i]['elements'] = array();
     458      $result = pwg_query($query);
     459      while ($row = mysql_fetch_assoc($result))
     460      {
     461        array_push($dates[$i]['elements'], $row);
     462      }
     463    }
     464
     465    if ($max_cats>0)
     466    {// get some categories ...
     467      $query = '
     468SELECT DISTINCT c.uppercats, COUNT(DISTINCT i.id) img_count
     469  FROM '.IMAGES_TABLE.' i INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON i.id=image_id
     470    INNER JOIN '.CATEGORIES_TABLE.' c ON c.id=category_id
     471  '.$where_sql.'
     472    AND date_available="'.$dates[$i]['date_available'].'"
     473  GROUP BY category_id
     474  ORDER BY img_count DESC
     475  LIMIT 0,'.$max_cats.'
     476;';
     477      $dates[$i]['categories'] = array();
     478      $result = pwg_query($query);
     479      while ($row = mysql_fetch_assoc($result))
     480      {
     481        array_push($dates[$i]['categories'], $row);
     482      }
     483    }
     484  }
     485  return $dates;
     486}
    416487?>
Note: See TracChangeset for help on using the changeset viewer.