diff options
Diffstat (limited to '')
-rw-r--r-- | category.php | 166 |
1 files changed, 88 insertions, 78 deletions
diff --git a/category.php b/category.php index 1058eb958..0b93e6d06 100644 --- a/category.php +++ b/category.php @@ -16,14 +16,13 @@ * the Free Software Foundation; * * * ***************************************************************************/ -// determine the initial instant to indicate the generation time of this page -$t1 = explode( ' ', microtime() ); -$t2 = explode( '.', $t1[0] ); -$t2 = $t1[1].'.'.$t2[1]; -//----------------------------------------------------------- personnal include -include_once( './include/init.inc.php' ); +//----------------------------------------------------------- include +$phpwg_root_path = './'; +include_once( $phpwg_root_path.'common.php' ); //---------------------------------------------------------------------- logout -if ( $_GET['act'] == 'logout' and isset( $_COOKIE['id'] ) ) +if ( isset( $_GET['act'] ) + and $_GET['act'] == 'logout' + and isset( $_COOKIE['id'] ) ) { // cookie deletion if exists setcookie( 'id', '', 0, cookie_path() ); @@ -34,18 +33,23 @@ if ( $_GET['act'] == 'logout' and isset( $_COOKIE['id'] ) ) exit(); } //-------------------------------------------------- access authorization check -// creating the plain structure : array of all the available categories and -// their relative informations, see the definition of the function -// get_plain_structure for further details. -$page['plain_structure'] = get_plain_structure(); - -check_cat_id( $_GET['cat'] ); +if ( isset( $_GET['cat'] ) ) check_cat_id( $_GET['cat'] ); check_login_authorization(); if ( isset( $page['cat'] ) and is_numeric( $page['cat'] ) ) { check_restrictions( $page['cat'] ); } //-------------------------------------------------------------- initialization +// detection of the start picture to display +if ( !isset( $_GET['start'] ) + or !is_numeric( $_GET['start'] ) + or ( is_numeric( $_GET['start'] ) and $_GET['start'] < 0 ) ) + $page['start'] = 0; +else + $page['start'] = $_GET['start']; + +initialize_category(); + // creation of the array containing the cat ids to expand in the menu // $page['tab_expand'] contains an array with the category ids // $page['expand'] contains the string to display in URL with comma @@ -56,80 +60,83 @@ if ( isset ( $_GET['expand'] ) and $_GET['expand'] != 'all' ) foreach ( $tab_expand as $id ) { if ( is_numeric( $id ) ) array_push( $page['tab_expand'], $id ); } - if ( is_numeric( $page['cat'] ) ) - { - // the category displayed (in the URL cat=23) must be seen in the menu -> - // parent categories must be expanded - $parent = $page['plain_structure'][$page['cat']]['id_uppercat']; - while ( $parent != '' ) - { - array_push( $page['tab_expand'], $parent ); - $parent = $page['plain_structure'][$parent]['id_uppercat']; - } +} +if ( isset($page['cat']) && is_numeric( $page['cat'] ) ) +{ + // the category displayed (in the URL cat=23) must be seen in the menu -> + // parent categories must be expanded + $uppercats = explode( ',', $page['uppercats'] ); + foreach ( $uppercats as $uppercat ) { + array_push( $page['tab_expand'], $uppercat ); } - $page['expand'] = implode( ',', $page['tab_expand'] ); } +$page['tab_expand'] = array_unique( $page['tab_expand'] ); +$page['expand'] = implode( ',', $page['tab_expand'] ); // in case of expanding all authorized cats // The $page['expand'] equals 'all' and // $page['tab_expand'] contains all the authorized cat ids -if ( $user['expand'] or $_GET['expand'] == 'all' ) +if ( $user['expand'] + or ( isset( $_GET['expand'] ) and $_GET['expand'] == 'all' ) ) { $page['tab_expand'] = array(); $page['expand'] = 'all'; } -// detection of the start picture to display -if ( !isset( $_GET['start'] ) - or !is_numeric( $_GET['start'] ) - or ( is_numeric( $_GET['start'] ) and $_GET['start'] < 0 ) ) -{ - $page['start'] = 0; -} -else -{ - $page['start'] = $_GET['start']; -} // Sometimes, a "num" is provided in the URL. It is the number // of the picture to show. This picture must be in the thumbnails page. // We have to find the right $page['start'] that show the num picture // in this category -if ( is_numeric( $_GET['num'] ) and $_GET['num'] >= 0 ) +if ( isset( $_GET['num'] ) + and is_numeric( $_GET['num'] ) + and $_GET['num'] >= 0 ) { $page['start'] = floor( $_GET['num'] / $user['nb_image_page'] ); $page['start']*= $user['nb_image_page']; } // creating the structure of the categories (useful for displaying the menu) -$page['structure'] = create_structure( '', $user['restrictions'] ); +// creating the plain structure : array of all the available categories and +// their relative informations, see the definition of the function +// get_user_plain_structure for further details. +$page['plain_structure'] = get_user_plain_structure(); +$page['structure'] = create_user_structure( '' ); $page['structure'] = update_structure( $page['structure'] ); -initialize_category(); + //----------------------------------------------------- template initialization -$vtp = new VTemplate; + +// +// Start output of page +// +$title = $page['title']; +include('include/page_header.php'); + $handle = $vtp->Open( './template/'.$user['template'].'/category.vtp' ); initialize_template(); $tpl = array( 'categories','hint_category','sub-cat','images_available','total', 'title_menu','nb_image_category','send_mail','title_send_mail', - 'generation_time','connected_user','recent_image','days','generation_time', + 'connected_user','recent_image','days', 'favorite_cat_hint','favorite_cat','stats','most_visited_cat_hint', 'most_visited_cat','recent_cat','recent_cat_hint','upload_picture', 'comments' ); templatize_array( $tpl, 'lang', $handle ); -$tpl = array( 'mail_webmaster','webmaster','top_number','version','site_url' ); +$tpl = array( 'mail_webmaster','webmaster','top_number'); templatize_array( $tpl, 'conf', $handle ); $tpl = array( 'short_period','long_period','lien_collapsed', 'username' ); templatize_array( $tpl, 'user', $handle ); -$tpl = array( 'title','navigation_bar','cat_comment','cat_nb_images' ); +$tpl = array( 'navigation_bar','cat_comment','cat_nb_images' ); templatize_array( $tpl, 'page', $handle ); // special global template vars $vtp->setGlobalVar( $handle, 'icon_short', get_icon( time() ) ); $icon_long = get_icon( time() - ( $user['short_period'] * 24 * 60 * 60 + 1 ) ); $vtp->setGlobalVar( $handle, 'icon_long', $icon_long ); -$nb_total_pictures = count_images( $page['structure'] ); +$nb_total_pictures = count_user_total_images(); $vtp->setGlobalVar( $handle, 'nb_total_pictures',$nb_total_pictures ); + //------------------------------------------------------------- categories menu +$vtp->setVar( $handle, 'home_url', add_session_id( 'category.php' ) ); // normal categories foreach ( $page['structure'] as $category ) { // display category is a function relative to the template @@ -143,7 +150,7 @@ if ( !$user['is_the_guest'] ) $vtp->setVar( $handle, 'favorites.url', add_session_id( $url ) ); // searching the number of favorite picture $query = 'SELECT COUNT(*) AS count'; - $query.= ' FROM '.PREFIX_TABLE.'favorites'; + $query.= ' FROM '.FAVORITES_TABLE; $query.= ' WHERE user_id = '.$user['id'].';'; $result = mysql_query( $query ); $row = mysql_fetch_array( $result ); @@ -181,9 +188,10 @@ if ( !$user['is_the_guest'] ) $vtp->closeSession( $handle, 'summary' ); // customization link $vtp->addSession( $handle, 'summary' ); - $url = './profile.php?cat='.$page['cat']; - $url.= '&expand='.$page['expand']; - if ( $page['cat'] == 'search' ) + $url = './profile.php'; + if (isset($page['cat']) && isset($page['expand'])) + $url.='?cat='.$page['cat'].'&expand='.$page['expand']; + if ( isset($page['cat']) && $page['cat'] == 'search' ) { $url.= '&search='.$_GET['search'].'&mode='.$_GET['mode']; } @@ -253,8 +261,8 @@ if ( isset( $page['cat'] ) and $page['cat_nb_images'] != 0 ) $query = 'SELECT distinct(id),file,date_available,tn_ext,name,filesize'; $query.= ',storage_category_id'; - $query.= ' FROM '.PREFIX_TABLE.'images AS i'; - $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category AS ic ON id=ic.image_id'; + $query.= ' FROM '.IMAGES_TABLE.' AS i'; + $query.=' INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id=ic.image_id'; $query.= $page['where']; $query.= $conf['order_by']; $query.= ' LIMIT '.$page['start'].','.$page['nb_image_page']; @@ -270,7 +278,7 @@ if ( isset( $page['cat'] ) and $page['cat_nb_images'] != 0 ) while ( $row = mysql_fetch_array( $result ) ) { // retrieving the storage dir of the picture - if ( $array_cat_directories[$row['storage_category_id']] == '' ) + if ( !isset($array_cat_directories[$row['storage_category_id']])) { $array_cat_directories[$row['storage_category_id']] = get_complete_dir( $row['storage_category_id'] ); @@ -279,8 +287,8 @@ if ( isset( $page['cat'] ) and $page['cat_nb_images'] != 0 ) $file = get_filename_wo_extension( $row['file'] ); // name of the picture - if ( $row['name'] != '' ) $name = $row['name']; - else $name = str_replace( '_', ' ', $file ); + if ( isset( $row['name'] ) and $row['name'] != '' ) $name = $row['name']; + else $name = str_replace( '_', ' ', $file ); if ( $page['cat'] == 'search' ) { @@ -320,8 +328,7 @@ if ( isset( $page['cat'] ) and $page['cat_nb_images'] != 0 ) { $vtp->addSession( $handle, 'nb_comments' ); $query = 'SELECT COUNT(*) AS nb_comments'; - $query.= ' FROM '.PREFIX_TABLE.'comments'; - $query.= ' WHERE image_id = '.$row['id']; + $query.= ' FROM '.COMMENTS_TABLE.' WHERE image_id = '.$row['id']; $query.= " AND validated = 'true'"; $query.= ';'; $row = mysql_fetch_array( mysql_query( $query ) ); @@ -350,13 +357,16 @@ if ( isset( $page['cat'] ) and $page['cat_nb_images'] != 0 ) //-------------------------------------------------------------- empty category elseif ( ( isset( $page['cat'] ) and is_numeric( $page['cat'] ) - and $page['cat_nb_images'] == 0 ) - or $_GET['cat'] == '' ) + and $page['cat_nb_images'] == 0 + and $page['plain_structure'][$page['cat']]['nb_sub_categories'] > 0) + or (!isset($_GET['cat']))) { $vtp->addSession( $handle, 'thumbnails' ); $vtp->addSession( $handle, 'line' ); - $subcats = get_non_empty_subcat_ids( $page['cat'] ); + $subcats=array(); + if (isset($page['cat'])) $subcats = get_non_empty_subcat_ids( $page['cat'] ); + else $subcats = get_non_empty_subcat_ids( '' ); $cell_number = 1; $i = 0; foreach ( $subcats as $subcat_id => $non_empty_id ) { @@ -368,17 +378,17 @@ elseif ( ( isset( $page['cat'] ) // searching the representative picture of the category $query = 'SELECT representative_picture_id'; - $query.= ' FROM '.PREFIX_TABLE.'categories'; - $query.= ' WHERE id = '.$non_empty_id; + $query.= ' FROM '.CATEGORIES_TABLE.' WHERE id = '.$non_empty_id; + $query.= ';'; $row = mysql_fetch_array( mysql_query( $query ) ); $query = 'SELECT file,tn_ext,storage_category_id'; - $query.= ' FROM '.PREFIX_TABLE.'images'; - $query.= ' LEFT JOIN '.PREFIX_TABLE.'image_category ON id = image_id'; + $query.= ' FROM '.IMAGES_TABLE.', '.IMAGE_CATEGORY_TABLE; $query.= ' WHERE category_id = '.$non_empty_id; + $query.= ' AND id = image_id'; // if the category has a representative picture, this is its thumbnail - // tha will be displayed ! - if ( $row['representative_picture_id'] != '' ) + // that will be displayed ! + if ( isset( $row['representative_picture_id'] ) ) $query.= ' AND id = '.$row['representative_picture_id']; else $query.= ' ORDER BY RAND()'; @@ -397,7 +407,7 @@ elseif ( ( isset( $page['cat'] ) $thumbnail_title = $lang['hint_category']; $url_link = './category.php?cat='.$subcat_id; - if ( !in_array( $page['cat'], $page['tab_expand'] ) ) + if ( isset($page['cat'])&& !in_array( $page['cat'], $page['tab_expand'] ) ) { array_push( $page['tab_expand'], $page['cat'] ); $page['expand'] = implode( ',', $page['tab_expand'] ); @@ -459,30 +469,30 @@ if ( isset ( $page['cat'] ) ) $vtp->setVar( $handle, 'cat_infos.cat_name', get_cat_display_name( $page['cat_name'], ' - ', 'font-style:italic;' ) ); + // upload a picture in the category + if ( $page['cat_site_id'] == 1 + and $conf['upload_available'] + and $page['cat_uploadable'] ) + { + $vtp->addSession( $handle, 'upload' ); + $url = './upload.php?cat='.$page['cat'].'&expand='.$page['expand']; + $vtp->setVar( $handle, 'upload.url', add_session_id( $url ) ); + $vtp->closeSession( $handle, 'upload' ); + } } else { $vtp->setVar( $handle, 'cat_infos.cat_name', $page['title'] ); } - // upload a picture in the category - if ( $page['cat_site_id'] == 1 - and $conf['upload_available'] - and $page['cat_uploadable'] ) - { - $vtp->addSession( $handle, 'upload' ); - $url = './upload.php?cat='.$page['cat'].'&expand='.$page['expand']; - $vtp->setVar( $handle, 'upload.url', add_session_id( $url ) ); - $vtp->closeSession( $handle, 'upload' ); - } + $vtp->closeSession( $handle, 'cat_infos' ); } //------------------------------------------------------------ log informations pwg_log( 'category', $page['title'] ); mysql_close(); -//------------------------------------------------------------- generation time -$time = get_elapsed_time( $t2, get_moment() ); -$vtp->setGlobalVar( $handle, 'time', $time ); //----------------------------------------------------------- html code display $code = $vtp->Display( $handle, 0 ); echo $code; + +include('include/page_tail.php'); ?>
\ No newline at end of file |