piwigo/include/category_default.inc.php
rvelices e34c68cb89 - embellish_url compacts now ..
- some trigger improvements (render_category_description)
- improved perf of duplicate_xxx_url ( rewrote func params_for_duplication and remove some vars from $page )

git-svn-id: http://piwigo.org/svn/trunk@3126 68402e56-0260-453c-a942-63ccdbb3a9ee
2009-02-05 03:03:30 +00:00

183 lines
No EOL
5.4 KiB
PHP

<?php
// +-----------------------------------------------------------------------+
// | Piwigo - a PHP based picture gallery |
// +-----------------------------------------------------------------------+
// | Copyright(C) 2008-2009 Piwigo Team http://piwigo.org |
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
// +-----------------------------------------------------------------------+
// | This program is free software; you can redistribute it and/or modify |
// | it under the terms of the GNU General Public License as published by |
// | the Free Software Foundation |
// | |
// | This program is distributed in the hope that it will be useful, but |
// | WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | General Public License for more details. |
// | |
// | You should have received a copy of the GNU General Public License |
// | along with this program; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
/**
* This file is included by the main page to show thumbnails for the default
* case
*
*/
$pictures = array();
$selection = array_slice(
$page['items'],
$page['start'],
$page['nb_image_page']
);
if (count($selection) > 0)
{
$rank_of = array_flip($page['items']);
$query = '
SELECT *
FROM '.IMAGES_TABLE.'
WHERE id IN ('.implode(',', $selection).')
;';
$result = pwg_query($query);
while ($row = mysql_fetch_assoc($result))
{
$row['rank'] = $page['rank_of'][ $row['id'] ];
array_push($pictures, $row);
}
usort($pictures, 'rank_compare');
unset($rank_of);
}
if (count($pictures) > 0)
{
// define category slideshow url
$row = reset($pictures);
$page['cat_slideshow_url'] =
add_url_params(
duplicate_picture_url(
array(
'image_id' => $row['id'],
'image_file' => $row['file']
),
array('start')
),
array('slideshow' =>
(isset($_GET['slideshow']) ? $_GET['slideshow']
: '' ))
);
if ($user['show_nb_comments'])
{
$query = '
SELECT image_id, COUNT(*) AS nb_comments
FROM '.COMMENTS_TABLE.'
WHERE validated = \'true\'
AND image_id IN ('.implode(',', $selection).')
GROUP BY image_id
;';
$nb_comments_of = simple_hash_from_query($query, 'image_id', 'nb_comments');
}
}
// template thumbnail initialization
$template->set_filenames( array( 'index_thumbnails' => 'thumbnails.tpl',));
trigger_action('loc_begin_index_thumbnails', $pictures);
$tpl_thumbnails_var = array();
foreach ($pictures as $row)
{
// link on picture.php page
$url = duplicate_picture_url(
array(
'image_id' => $row['id'],
'image_file' => $row['file']
),
array('start')
);
$tpl_var =
array(
'ID' => $row['id'],
'TN_SRC' => get_thumbnail_url($row),
'TN_ALT' => $row['file'],
'TN_TITLE' => get_thumbnail_title($row),
'ICON_TS' => get_icon($row['date_available']),
'URL' => $url,
/* Fields for template-extension usage */
'FILE_PATH' => $row['path'],
'FILE_POSTED' => $row['date_available'],
'FILE_CREATED' => $row['date_creation'],
'FILE_DESC' => $row['comment'],
'FILE_AUTHOR' => $row['author'],
'FILE_HIT' => $row['hit'],
'FILE_SIZE' => $row['filesize'],
'FILE_WIDTH' => $row['width'],
'FILE_HEIGHT' => $row['height'],
'FILE_METADATE' => $row['date_metadata_update'],
'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
true:false, /* lack of include/functions_picture.inc.php */
);
if ($user['show_nb_hits'])
{
$tpl_var['NB_HITS'] = $row['hit'];
}
if ($conf['show_thumbnail_caption'])
{
// name of the picture
if (isset($row['name']) and $row['name'] != '')
{
$name = $row['name'];
}
else
{
$name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
}
switch ($page['section'])
{
case 'best_rated' :
{
$name = '('.$row['average_rate'].') '.$name;
break;
}
case 'most_visited' :
{
if ( !$user['show_nb_hits']) {
$name = '('.$row['hit'].') '.$name;
}
break;
}
}
$tpl_var['NAME'] = $name;
}
if ( isset($nb_comments_of) )
{
$row['nb_comments'] = isset($nb_comments_of[$row['id']])
? (int)$nb_comments_of[$row['id']] : 0;
$tpl_var['NB_COMMENTS'] = $row['nb_comments'];
}
$tpl_thumbnails_var[] = $tpl_var;
}
$tpl_thumbnails_var = trigger_event('loc_end_index_thumbnails', $tpl_thumbnails_var, $pictures);
$template->assign('thumbnails', $tpl_thumbnails_var);
$template->assign_var_from_handle('THUMBNAILS', 'index_thumbnails');
pwg_debug('end include/category_default.inc.php');
?>