diff options
Diffstat (limited to '')
-rw-r--r-- | include/category_cats.inc.php (renamed from include/category_subcats.inc.php) | 132 |
1 files changed, 79 insertions, 53 deletions
diff --git a/include/category_subcats.inc.php b/include/category_cats.inc.php index 7800e6319..9a3cccceb 100644 --- a/include/category_subcats.inc.php +++ b/include/category_cats.inc.php @@ -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'] +} +$result = pwg_query($query); $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'); } } |