- merge category_recent_cats and category_subcats into category_cats (a lot
of common code,and now representative selection works for recent cats...) - some replacements of get_thumbnail_src with get_thumbnail_url git-svn-id: http://piwigo.org/svn/trunk@1597 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
8f52e36a6f
commit
e44f0b0154
4 changed files with 93 additions and 232 deletions
|
@ -3,11 +3,10 @@
|
|||
// | PhpWebGallery - a PHP based picture gallery |
|
||||
// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | branch : BSF (Best So Far)
|
||||
// | file : $RCSfile$
|
||||
// | last update : $Date: 2006-01-27 02:11:43 +0100 (ven, 27 jan 2006) $
|
||||
// | last modifier : $Author: rvelices $
|
||||
// | revision : $Revision: 1014 $
|
||||
// | file : $Id$
|
||||
// | last update : $Date$
|
||||
// | last modifier : $Author$
|
||||
// | revision : $Revision$
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | 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 |
|
||||
|
@ -341,7 +340,7 @@ function build_month_calendar()
|
|||
{
|
||||
$page['chronology_date'][CDAY]=$day;
|
||||
$query = '
|
||||
SELECT file,tn_ext,path, width, height, DAYOFWEEK('.$this->date_field.')-1 as dow';
|
||||
SELECT id, file,tn_ext,path, width, height, DAYOFWEEK('.$this->date_field.')-1 as dow';
|
||||
$query.= $this->inner_sql;
|
||||
$query.= $this->get_date_where();
|
||||
$query.= '
|
||||
|
@ -349,8 +348,8 @@ SELECT file,tn_ext,path, width, height, DAYOFWEEK('.$this->date_field.')-1 as do
|
|||
LIMIT 0,1';
|
||||
unset ( $page['chronology_date'][CDAY] );
|
||||
|
||||
$row = mysql_fetch_array(pwg_query($query));
|
||||
$items[$day]['tn_path'] = get_thumbnail_src($row['path'], @$row['tn_ext']);
|
||||
$row = mysql_fetch_assoc(pwg_query($query));
|
||||
$items[$day]['tn_url'] = get_thumbnail_url($row);
|
||||
$items[$day]['file'] = $row['file'];
|
||||
$items[$day]['path'] = $row['path'];
|
||||
$items[$day]['tn_ext'] = @$row['tn_ext'];
|
||||
|
@ -448,9 +447,7 @@ SELECT file,tn_ext,path, width, height, DAYOFWEEK('.$this->date_field.')-1 as do
|
|||
}
|
||||
else
|
||||
{// item not an image (tn is either mime type or an image)
|
||||
$thumb = get_thumbnail_src(
|
||||
$items[$day]['path'], @$items[$day]['tn_ext'], false
|
||||
);
|
||||
$thumb = get_thumbnail_path($items[$day]);
|
||||
$tn_size = @getimagesize($thumb);
|
||||
}
|
||||
$tn_width = $tn_size[0];
|
||||
|
@ -507,11 +504,11 @@ SELECT file,tn_ext,path, width, height, DAYOFWEEK('.$this->date_field.')-1 as do
|
|||
)
|
||||
);
|
||||
$alt = $wday_labels[$dow] . ' ' . $day.
|
||||
' ('.$items[$day]['nb_images'].')';
|
||||
' ('.sprintf("%d ".l10n('pictures'), $items[$day]['nb_images']).')';
|
||||
$template->assign_block_vars('calendar.thumbnails.row.col.full',
|
||||
array(
|
||||
'LABEL' => $day,
|
||||
'IMAGE' => $items[$day]['tn_path'],
|
||||
'IMAGE' => $items[$day]['tn_url'],
|
||||
'U_IMG_LINK'=> $url,
|
||||
'STYLE' => $css_style,
|
||||
'IMG_WIDTH' => $img_width,
|
||||
|
@ -553,7 +550,7 @@ SELECT file,tn_ext,path, width, height, DAYOFWEEK('.$this->date_field.')-1 as do
|
|||
$template->assign_block_vars(
|
||||
'thumbnails.line.thumbnail',
|
||||
array(
|
||||
'IMAGE'=>$data['tn_path'],
|
||||
'IMAGE'=>$data['tn_url'],
|
||||
'IMAGE_ALT'=>$data['file'],
|
||||
'IMAGE_TITLE'=>$thumbnail_title,
|
||||
'U_IMG_LINK'=>$url
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
// | PhpWebGallery - a PHP based picture gallery |
|
||||
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
||||
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
|
||||
// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | branch : BSF (Best So Far)
|
||||
// | file : $RCSfile$
|
||||
// | file : $Id$
|
||||
// | last update : $Date$
|
||||
// | last modifier : $Author$
|
||||
// | revision : $Revision$
|
||||
|
@ -27,36 +27,45 @@
|
|||
|
||||
/**
|
||||
* This file is included by the main page to show thumbnails for a category
|
||||
* that have only subcategories
|
||||
* that have only subcategories or to show recent categories
|
||||
*
|
||||
*/
|
||||
|
||||
$query = '
|
||||
SELECT id, name, date_last, representative_picture_id, comment, nb_images
|
||||
if ($page['section']=='recent_cats')
|
||||
{
|
||||
$query = '
|
||||
SELECT id,name,date_last,representative_picture_id,comment,nb_images,uppercats
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE date_last > SUBDATE(
|
||||
CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY
|
||||
)
|
||||
AND id NOT IN ('.$user['forbidden_categories'].')';
|
||||
}
|
||||
else
|
||||
{
|
||||
$query = '
|
||||
SELECT id,name,date_last,representative_picture_id,comment,nb_images
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE id_uppercat '.
|
||||
(!isset($page['category']) ? 'is NULL' : '= '.$page['category']).'
|
||||
AND id NOT IN ('.$user['forbidden_categories'].')
|
||||
ORDER BY rank
|
||||
;';
|
||||
}
|
||||
|
||||
$result = pwg_query($query);
|
||||
|
||||
// $conf['allow_random_representative']
|
||||
|
||||
$categories = array();
|
||||
$image_ids = array();
|
||||
|
||||
while ($row = mysql_fetch_array($result))
|
||||
while ($row = mysql_fetch_assoc($result))
|
||||
{
|
||||
if (isset($row['representative_picture_id'])
|
||||
and is_numeric($row['representative_picture_id']))
|
||||
{
|
||||
// if a representative picture is set, it has priority
|
||||
{ // if a representative picture is set, it has priority
|
||||
$image_id = $row['representative_picture_id'];
|
||||
}
|
||||
else if ($conf['allow_random_representative'])
|
||||
{
|
||||
// searching a random representant among elements in sub-categories
|
||||
{// searching a random representant among elements in sub-categories
|
||||
$query = '
|
||||
SELECT image_id
|
||||
FROM '.CATEGORIES_TABLE.' AS c INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic
|
||||
|
@ -67,14 +76,13 @@ SELECT image_id
|
|||
LIMIT 0,1
|
||||
;';
|
||||
$subresult = pwg_query($query);
|
||||
if (mysql_num_rows($result) > 0)
|
||||
if (mysql_num_rows($subresult) > 0)
|
||||
{
|
||||
list($image_id) = mysql_fetch_row($subresult);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// searching a random representant among representant of sub-categories
|
||||
{ // searching a random representant among representant of sub-categories
|
||||
$query = '
|
||||
SELECT representative_picture_id
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
|
@ -91,33 +99,16 @@ SELECT representative_picture_id
|
|||
}
|
||||
}
|
||||
|
||||
$comment = null;
|
||||
if (isset($row['comment']))
|
||||
{
|
||||
$comment = strip_tags($row['comment'], '<a><br><p><b><i><small><strong><font>');
|
||||
}
|
||||
|
||||
if (isset($image_id))
|
||||
{
|
||||
array_push(
|
||||
$categories,
|
||||
array(
|
||||
'category' => $row['id'],
|
||||
'picture' => $image_id,
|
||||
'name' => $row['name'],
|
||||
'date_last' => @$row['date_last'],
|
||||
'comment' => $comment,
|
||||
'nb_images' => $row['nb_images'],
|
||||
)
|
||||
);
|
||||
|
||||
$row['representative_picture_id'] = $image_id;
|
||||
array_push($image_ids, $image_id);
|
||||
array_push($categories, $row);
|
||||
}
|
||||
|
||||
unset($image_id);
|
||||
}
|
||||
|
||||
if (count($image_ids) > 0)
|
||||
if (count($categories) > 0)
|
||||
{
|
||||
$thumbnail_src_of = array();
|
||||
|
||||
|
@ -127,12 +118,14 @@ SELECT id, path, tn_ext
|
|||
WHERE id IN ('.implode(',', $image_ids).')
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ($row = mysql_fetch_array($result))
|
||||
while ($row = mysql_fetch_assoc($result))
|
||||
{
|
||||
$thumbnail_src_of[$row['id']] =
|
||||
get_thumbnail_src($row['path'], @$row['tn_ext']);
|
||||
$thumbnail_src_of[$row['id']] = get_thumbnail_url($row);
|
||||
}
|
||||
}
|
||||
|
||||
if (count($categories) > 0)
|
||||
{
|
||||
if ($conf['subcatify'])
|
||||
{
|
||||
$template->set_filenames(
|
||||
|
@ -141,27 +134,37 @@ SELECT id, path, tn_ext
|
|||
)
|
||||
);
|
||||
|
||||
$template->assign_block_vars('categories', array());
|
||||
|
||||
foreach ($categories as $category)
|
||||
{
|
||||
$comment = strip_tags(@$category['comment'], '<a><br><p><b><i><small><strong><font>');
|
||||
if ($page['section']=='recent_cats')
|
||||
{
|
||||
$name = get_cat_display_name_cache($category['uppercats'], null, false);
|
||||
$icon_ts = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
$name = $category['name'];
|
||||
$icon_ts = get_icon(@$category['date_last']);
|
||||
}
|
||||
|
||||
$template->assign_block_vars(
|
||||
'categories.category',
|
||||
array(
|
||||
'SRC' => $thumbnail_src_of[ $category['picture'] ],
|
||||
'SRC' => $thumbnail_src_of[$category['representative_picture_id']],
|
||||
'ALT' => $category['name'],
|
||||
'TITLE' => $lang['hint_category'],
|
||||
'ICON' => get_icon(@$category['date_last']),
|
||||
'ICON' => $icon_ts,
|
||||
|
||||
'URL' => make_index_url(
|
||||
'URL' => make_index_url(
|
||||
array(
|
||||
'category' => $category['category'],
|
||||
'category' => $category['id'],
|
||||
'cat_name' => $category['name'],
|
||||
)
|
||||
),
|
||||
'NAME' => $category['name'],
|
||||
'CAPTION_NB_IMAGES' => (($category['nb_images'] == 0) ? '' : sprintf("%d ".l10n('pictures'), $category['nb_images'])),
|
||||
'DESCRIPTION' => @$category['comment'],
|
||||
'DESCRIPTION' => @$comment,
|
||||
'NAME' => $name,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
@ -171,36 +174,53 @@ SELECT id, path, tn_ext
|
|||
else
|
||||
{
|
||||
$template->set_filenames( array( 'thumbnails' => 'thumbnails.tpl',));
|
||||
$template->assign_block_vars('thumbnails', array());
|
||||
// first line
|
||||
$template->assign_block_vars('thumbnails.line', array());
|
||||
// current row displayed
|
||||
$row_number = 0;
|
||||
|
||||
if ($page['section']=='recent_cats')
|
||||
{
|
||||
$old_level_separator = $conf['level_separator'];
|
||||
$conf['level_separator'] = '<br />';
|
||||
}
|
||||
|
||||
foreach ($categories as $category)
|
||||
{
|
||||
$template->assign_block_vars(
|
||||
'thumbnails.line.thumbnail',
|
||||
array(
|
||||
'IMAGE' => $thumbnail_src_of[ $category['picture'] ],
|
||||
'IMAGE' => $thumbnail_src_of[ $category['representative_picture_id'] ],
|
||||
'IMAGE_ALT' => $category['name'],
|
||||
'IMAGE_TITLE' => $lang['hint_category'],
|
||||
'IMAGE_TS' => get_icon(@$category['date_last']),
|
||||
|
||||
'U_IMG_LINK' => make_index_url(
|
||||
array(
|
||||
'category' => $category['category'],
|
||||
'category' => $category['id'],
|
||||
'cat_name' => $category['name'],
|
||||
)
|
||||
),
|
||||
'CLASS' => 'thumbCat',
|
||||
)
|
||||
);
|
||||
|
||||
if ($page['section']=='recent_cats')
|
||||
{
|
||||
$name = get_cat_display_name_cache($category['uppercats'], null, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
$name = $category['name'];
|
||||
$template->merge_block_vars(
|
||||
'thumbnails.line.thumbnail',
|
||||
array(
|
||||
'IMAGE_TS' => get_icon(@$category['date_last']),
|
||||
)
|
||||
);
|
||||
}
|
||||
$template->assign_block_vars(
|
||||
'thumbnails.line.thumbnail.category_name',
|
||||
array(
|
||||
'NAME' => $category['name']
|
||||
'NAME' => $name
|
||||
)
|
||||
);
|
||||
|
||||
|
@ -211,6 +231,12 @@ SELECT id, path, tn_ext
|
|||
$row_number = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if ( isset($old_level_separator) )
|
||||
{
|
||||
$conf['level_separator']=$old_level_separator;
|
||||
}
|
||||
|
||||
$template->assign_var_from_handle('THUMBNAILS', 'thumbnails');
|
||||
}
|
||||
}
|
|
@ -1,162 +0,0 @@
|
|||
<?php
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | PhpWebGallery - a PHP based picture gallery |
|
||||
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
||||
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | branch : BSF (Best So Far)
|
||||
// | file : $RCSfile$
|
||||
// | last update : $Date$
|
||||
// | last modifier : $Author$
|
||||
// | revision : $Revision$
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | 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 recent_cats
|
||||
* category
|
||||
*
|
||||
*/
|
||||
|
||||
// FIXME: categories having no representant
|
||||
// ($conf['allow_random_representative'] = true) are not displayed :-/
|
||||
|
||||
// retrieving categories recently update, ie containing pictures added
|
||||
// recently. The calculated table field categories.date_last will be
|
||||
// easier to use
|
||||
$query = '
|
||||
SELECT c.id AS category_id
|
||||
, uppercats
|
||||
, representative_picture_id
|
||||
, path
|
||||
, file
|
||||
, c.comment
|
||||
, tn_ext
|
||||
, nb_images
|
||||
, c.name AS cat_name
|
||||
FROM '.CATEGORIES_TABLE.' AS c
|
||||
INNER JOIN '.IMAGES_TABLE.' AS i ON i.id = c.representative_picture_id
|
||||
WHERE date_last > SUBDATE(
|
||||
CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY
|
||||
)';
|
||||
if ( $user['forbidden_categories'] != '' )
|
||||
{
|
||||
$query.= '
|
||||
AND c.id NOT IN ('.$user['forbidden_categories'].')';
|
||||
}
|
||||
$query.= '
|
||||
;';
|
||||
$result = pwg_query( $query );
|
||||
|
||||
if ($conf['subcatify'])
|
||||
{
|
||||
$template->set_filenames(
|
||||
array(
|
||||
'mainpage_categories' => 'mainpage_categories.tpl',
|
||||
)
|
||||
);
|
||||
|
||||
// template thumbnail initialization
|
||||
if (mysql_num_rows($result) > 0)
|
||||
{
|
||||
$template->assign_block_vars('categories', array());
|
||||
}
|
||||
|
||||
$comment = null;
|
||||
if (isset($row['comment']))
|
||||
{
|
||||
$comment = strip_tags($row['comment'], '<a><br><p><b><i><small><strong><font>');
|
||||
}
|
||||
|
||||
// for each category, we have to search a recent picture to display and
|
||||
// the name to display
|
||||
while ( $row = mysql_fetch_array( $result ) )
|
||||
{
|
||||
$template->assign_block_vars(
|
||||
'categories.category',
|
||||
array(
|
||||
'SRC' => get_thumbnail_src($row['path'], @$row['tn_ext']),
|
||||
'ALT' => $row['file'],
|
||||
'TITLE' => $lang['hint_category'],
|
||||
|
||||
'URL' => make_index_url(
|
||||
array(
|
||||
'category' => $row['category_id'],
|
||||
'cat_name' => $row['cat_name'],
|
||||
)
|
||||
),
|
||||
'NAME' => get_cat_display_name_cache($row['uppercats'], null, false),
|
||||
'CAPTION_NB_IMAGES' => (($row['nb_images'] == 0) ? '' : sprintf("%d ".l10n('pictures'), $row['nb_images'])),
|
||||
'DESCRIPTION' => $comment,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$template->assign_var_from_handle('CATEGORIES', 'mainpage_categories');
|
||||
}
|
||||
else
|
||||
{
|
||||
$template->set_filenames( array( 'thumbnails' => 'thumbnails.tpl',));
|
||||
// template thumbnail initialization
|
||||
if (mysql_num_rows($result) > 0)
|
||||
{
|
||||
$template->assign_block_vars('thumbnails', array());
|
||||
// first line
|
||||
$template->assign_block_vars('thumbnails.line', array());
|
||||
// current row displayed
|
||||
$row_number = 0;
|
||||
}
|
||||
|
||||
$old_level_separator = $conf['level_separator'];
|
||||
$conf['level_separator'] = '<br />';
|
||||
// for each category, we have to search a recent picture to display and
|
||||
// the name to display
|
||||
while ( $row = mysql_fetch_array( $result ) )
|
||||
{
|
||||
$template->assign_block_vars(
|
||||
'thumbnails.line.thumbnail',
|
||||
array(
|
||||
'IMAGE' => get_thumbnail_src($row['path'], @$row['tn_ext']),
|
||||
'IMAGE_ALT' => $row['file'],
|
||||
'IMAGE_TITLE' => $lang['hint_category'],
|
||||
|
||||
'U_IMG_LINK' => make_index_url(
|
||||
array(
|
||||
'category' => $row['category_id'],
|
||||
'cat_name' => $row['cat_name'],
|
||||
)
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
$template->assign_block_vars(
|
||||
'thumbnails.line.thumbnail.category_name',
|
||||
array(
|
||||
'NAME' => get_cat_display_name_cache($row['uppercats'], null, false),
|
||||
)
|
||||
);
|
||||
|
||||
// create a new line ?
|
||||
if (++$row_number == $user['nb_image_line'])
|
||||
{
|
||||
$template->assign_block_vars('thumbnails.line', array());
|
||||
$row_number = 0;
|
||||
}
|
||||
}
|
||||
$conf['level_separator'] = $old_level_separator;
|
||||
$template->assign_var_from_handle('THUMBNAILS', 'thumbnails');
|
||||
}
|
||||
?>
|
|
@ -359,13 +359,13 @@ SELECT image_id
|
|||
$page['thumbnails_include'] =
|
||||
$result['nb_images'] > 0
|
||||
? 'include/category_default.inc.php'
|
||||
: 'include/category_subcats.inc.php';
|
||||
: 'include/category_cats.inc.php';
|
||||
} //otherwise the calendar will requery all subitems
|
||||
}
|
||||
else
|
||||
{
|
||||
$page['title'] = $lang['no_category'];
|
||||
$page['thumbnails_include'] = 'include/category_subcats.inc.php';
|
||||
$page['thumbnails_include'] = 'include/category_cats.inc.php';
|
||||
}
|
||||
}
|
||||
// special sections
|
||||
|
@ -534,7 +534,7 @@ SELECT DISTINCT(id)
|
|||
$page,
|
||||
array(
|
||||
'title' => $lang['recent_cats_cat'],
|
||||
'thumbnails_include' => 'include/category_recent_cats.inc.php',
|
||||
'thumbnails_include' => 'include/category_cats.inc.php',
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue