aboutsummaryrefslogtreecommitdiffstats
path: root/include/category_recent_cats.inc.php
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2004-11-20 17:23:42 +0000
committerplegall <plg@piwigo.org>2004-11-20 17:23:42 +0000
commit13cd251e63232e88069759e8396b0c35b991088b (patch)
treeabf65955235f108908dc95e37678e2404ff87115 /include/category_recent_cats.inc.php
parentf39c3af29b7d44fa11b0670bb8ad6f7e9b7c53d0 (diff)
- optimization : representative picture becomes mandatory for a non empty
category. So, at each insertion in images table for a category, a new representative element is elected (by rand). This must be improved by not reelcting a random picture admin set an element as representative manually. - optimization : recent cats page only needs 2 queries instead of 3*N (N categories to display). The bad point is that it shows representative element of recent cat and not a random element among recently added. - optimization : empty cats page only needs 1 query per non empty sub category instead of... a lot. For each sub category, PhpWebGallery shows the representative element of a category chosen randomly in sub cats. Thus, get_non_empty_subcat_ids and get_first_non_empty_cat_id becomes obsolete. - new function get_cat_display_name_cache to show category names with a caching for all gallery categories names. This function, to the contrary of get_cat_display_name shows names in the correct order... git-svn-id: http://piwigo.org/svn/trunk@610 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'include/category_recent_cats.inc.php')
-rw-r--r--include/category_recent_cats.inc.php26
1 files changed, 7 insertions, 19 deletions
diff --git a/include/category_recent_cats.inc.php b/include/category_recent_cats.inc.php
index 3da82c1f8..ed193e380 100644
--- a/include/category_recent_cats.inc.php
+++ b/include/category_recent_cats.inc.php
@@ -35,8 +35,9 @@
// recently. The calculated table field categories.date_last will be
// easier to use
$query = '
-SELECT id AS category_id
- FROM '.CATEGORIES_TABLE.'
+SELECT c.id AS category_id,uppercats,representative_picture_id,path,file,tn_ext
+ 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'] != '' )
@@ -62,22 +63,9 @@ if (mysql_num_rows($result) > 0)
// the name to display
while ( $row = mysql_fetch_array( $result ) )
{
- $cat_infos = get_cat_info( $row['category_id'] );
- $name = get_cat_display_name($cat_infos['name'],'<br />','',false);
-
- $query = '
-SELECT path,file,tn_ext
- FROM '.IMAGES_TABLE.', '.IMAGE_CATEGORY_TABLE.'
- WHERE category_id = '.$row['category_id'].'
- AND date_available > SUBDATE(CURRENT_DATE
- ,INTERVAL '.$user['recent_period'].' DAY)
- AND id = image_id
- ORDER BY RAND()
- LIMIT 0,1
-;';
- $subrow = mysql_fetch_array(pwg_query($query));
+ $name = get_cat_display_name_cache($row['uppercats'], '<br />', '', false);
- $thumbnail_src = get_thumbnail_src($subrow['path'], @$subrow['tn_ext']);
+ $thumbnail_src = get_thumbnail_src($row['path'], @$row['tn_ext']);
$url_link = PHPWG_ROOT_PATH.'category.php?cat='.$row['category_id'];
@@ -85,12 +73,12 @@ SELECT path,file,tn_ext
'thumbnails.line.thumbnail',
array(
'IMAGE' => $thumbnail_src,
- 'IMAGE_ALT' => $subrow['file'],
+ 'IMAGE_ALT' => $row['file'],
'IMAGE_TITLE' => $lang['hint_category'],
'IMAGE_NAME' => '['.$name.']',
'IMAGE_STYLE' => 'thumb_category',
- 'U_IMG_LINK' => add_session_id( $url_link )
+ 'U_IMG_LINK' => add_session_id($url_link)
)
);
$template->assign_block_vars('thumbnails.line.thumbnail.bullet',array());