diff options
author | plegall <plg@piwigo.org> | 2006-03-15 22:44:35 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2006-03-15 22:44:35 +0000 |
commit | 114ae324452ac88fe7b672338cba931d838ee2a4 (patch) | |
tree | 2ccc8e920a04fae1f97732f6490fa7c67594c05e /category.php | |
parent | 88e3b36e2f805404e0bfd56d865e317495e9c973 (diff) |
new: cleaner URL. Instead of category.php?cat=search&search=123&start=42,
you now have category.php?/search/123/start-42. Functions make_index_url and
make_picture_url build these new URLs. Functions duplicate_picture_url and
duplicate_index_url provide shortcuts to URL creation. The current main page
page is still category.php but this can be modified easily in make_index_url
function. In this first version, no backward compatibility. Calendar
definition in URL must be discussed with rvelices.
improvement: picture.php redesigned. First actions like "set as
representative" or "delete a comment" which all lead to a redirection. Then
the page (the big mess) and includes of new sub pages to manage specific
parts of the page (metadata, user comments, rates).
new: with the cleaner URL comes a new terminology. $page['cat'] doesn't
exist anymore. $page['section'] is among 'categories', 'tags' (TODO),
'list', 'most_seen'... And sub parameters are set : $page['category'] if
$page['section'] is "categories". See URL analyse in
include/section_init.inc.php for details.
git-svn-id: http://piwigo.org/svn/trunk@1082 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | category.php | 351 |
1 files changed, 170 insertions, 181 deletions
diff --git a/category.php b/category.php index 2bc078598..b467836e8 100644 --- a/category.php +++ b/category.php @@ -57,67 +57,31 @@ if (isset($_GET['image_order'])) ); redirect( - PHPWG_ROOT_PATH - .'category.php' - .get_query_string_diff(array('image_order')) + make_index_URL( + array(), + array('image_order') + ) ); } //-------------------------------------------------------------- initialization +include(PHPWG_ROOT_PATH.'include/section_init.inc.php'); // 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 ) ) +if (!isset($page['start'])) { $page['start'] = 0; } -else -{ - $page['start'] = $_GET['start']; -} - -include(PHPWG_ROOT_PATH.'include/section_init.inc.php'); // access authorization check -if (isset($page['cat']) and is_numeric($page['cat'])) +if (isset($page['category'])) { - check_restrictions($page['cat']); + check_restrictions($page['category']); } -if ( isset($page['cat_nb_images']) +if (isset($page['cat_nb_images']) and $page['cat_nb_images'] > $user['nb_image_page']) { - // $nav_url is used to create the navigation bar - $nav_url = PHPWG_ROOT_PATH.'category.php?'; - if ( isset($page['cat']) ) - { - $nav_url .= 'cat='.$page['cat'].'&'; - - switch ($page['cat']) - { - case 'search': - { - $nav_url.= 'search='.$_GET['search'].'&'; - break; - } - case 'list': - { - $nav_url.= 'list='.$_GET['list'].'&'; - break; - } - } - } - - if ( isset($_GET['calendar']) ) - { - $nav_url.= 'calendar='.$_GET['calendar']; - } - else - { - $nav_url = preg_replace('/&$/', '', $nav_url); - } - $page['navigation_bar'] = create_navigation_bar( - $nav_url, + duplicate_index_URL(array(), array('start')), $page['cat_nb_images'], $page['start'], $user['nb_image_page'], @@ -133,6 +97,7 @@ else if (isset($_GET['caddie'])) { fill_caddie($page['items']); + // redirect(); } //----------------------------------------------------- template initialization @@ -145,117 +110,125 @@ include(PHPWG_ROOT_PATH.'include/page_header.php'); $template->set_filenames( array('category'=>'category.tpl') ); //-------------------------------------------------------------- category title -if (isset($page['cat']) and is_numeric($page['cat'])) +if (isset($page['category'])) { - $template_title = get_cat_display_name($page['cat_name'], - 'category.php?cat=', - false); + $template_title = get_cat_display_name( + $page['cat_name'], + 'category.php?/category/', + false + ); } else { $template_title = $page['title']; } -if ( isset( $page['cat_nb_images'] ) and $page['cat_nb_images'] > 0 ) +if (isset($page['cat_nb_images']) and $page['cat_nb_images'] > 0) { $template_title.= ' ['.$page['cat_nb_images'].']'; } $icon_recent = get_icon(date('Y-m-d')); -$calendar_view_link = PHPWG_ROOT_PATH.'category.php' - .get_query_string_diff(array('start','calendar')); -if ( ! isset($_GET['calendar']) ) +$calendar_view_link = duplicate_index_URL( + array(), // nothing to redefine + array('chronology_type', 'start') // what to remove ? + ); + +if (!isset($page['chronology_type'])) { - $calendar_view_link .= (empty($_GET)? '?':'&' ) . 'calendar='; + $calendar_view_link.= '/calendar-'; + $template->assign_block_vars( 'mode_created', - array( 'URL' => $calendar_view_link.'created' ) + array( + 'URL' => $calendar_view_link.'created' + ) ); + $template->assign_block_vars( 'mode_posted', - array( 'URL' => $calendar_view_link.'posted' ) + array( + 'URL' => $calendar_view_link.'posted' + ) ); - } else { $template->assign_block_vars( 'mode_normal', - array( 'URL' => $calendar_view_link ) + array( + 'URL' => $calendar_view_link + ) ); - if (get_query_string_diff( array('start','calendar') )=='') - { - $calendar_view_link .= '?'; - } - else - { - $calendar_view_link .= '&'; - } - $calendar_view_link .= 'calendar='; - if ( strpos($_GET['calendar'], 'posted') === false) + $calendar_view_link .= '/calendar-'; + if ($page['chronology_type'] == 'created') { $template->assign_block_vars( 'mode_posted', - array( 'URL' => $calendar_view_link.'posted' ) + array( + 'URL' => $calendar_view_link.'posted' + ) ); } else { $template->assign_block_vars( 'mode_created', - array( 'URL' => $calendar_view_link.'created' ) + array( + 'URL' => $calendar_view_link.'created' + ) ); } } $template->assign_vars( array( - 'NB_PICTURE' => $user['nb_total_images'], - 'TITLE' => $template_title, - 'USERNAME' => $user['username'], - 'TOP_NUMBER'=>$conf['top_number'], - 'MENU_CATEGORIES_CONTENT'=>get_categories_menu(), - - 'L_CATEGORIES' => $lang['categories'], - 'L_HINT_CATEGORY' => $lang['hint_category'], - 'L_SUBCAT' => $lang['sub-cat'], - 'L_IMG_AVAILABLE' => $lang['images_available'], - 'L_TOTAL' => $lang['total'], - 'L_SPECIAL_CATEGORIES' => $lang['special_categories'], - 'L_SUMMARY' => $lang['title_menu'], - 'L_UPLOAD' => $lang['upload_picture'], - 'L_COMMENT' => $lang['comments'], - 'L_IDENTIFY' => $lang['identification'], - 'L_PASSWORD' => $lang['password'], - 'L_HELLO' => $lang['hello'], - 'L_REGISTER' => $lang['ident_register'], - 'L_LOGOUT' => $lang['logout'], - 'L_ADMIN' => $lang['admin'], - 'L_ADMIN_HINT' => $lang['hint_admin'], - 'L_PROFILE' => $lang['customize'], - 'L_PROFILE_HINT' => $lang['hint_customize'], - 'L_REMEMBER_ME' => $lang['remember_me'], - - 'F_IDENTIFY' => PHPWG_ROOT_PATH.'identification.php', - 'T_RECENT' => $icon_recent, - - 'U_HOME' => PHPWG_ROOT_PATH.'category.php', - 'U_REGISTER' => PHPWG_ROOT_PATH.'register.php', - 'U_LOST_PASSWORD' => PHPWG_ROOT_PATH.'password.php', - 'U_LOGOUT' => PHPWG_ROOT_PATH.'category.php?act=logout', - 'U_ADMIN'=> PHPWG_ROOT_PATH.'admin.php', - 'U_PROFILE'=> PHPWG_ROOT_PATH.'profile.php', - ) -); - -if (isset($page['cat']) and 'search' == $page['cat']) + 'NB_PICTURE' => $user['nb_total_images'], + 'TITLE' => $template_title, + 'USERNAME' => $user['username'], + 'TOP_NUMBER' => $conf['top_number'], + 'MENU_CATEGORIES_CONTENT' => get_categories_menu(), + + 'L_CATEGORIES' => $lang['categories'], + 'L_HINT_CATEGORY' => $lang['hint_category'], + 'L_SUBCAT' => $lang['sub-cat'], + 'L_IMG_AVAILABLE' => $lang['images_available'], + 'L_TOTAL' => $lang['total'], + 'L_SPECIAL_CATEGORIES' => $lang['special_categories'], + 'L_SUMMARY' => $lang['title_menu'], + 'L_UPLOAD' => $lang['upload_picture'], + 'L_COMMENT' => $lang['comments'], + 'L_IDENTIFY' => $lang['identification'], + 'L_PASSWORD' => $lang['password'], + 'L_HELLO' => $lang['hello'], + 'L_REGISTER' => $lang['ident_register'], + 'L_LOGOUT' => $lang['logout'], + 'L_ADMIN' => $lang['admin'], + 'L_ADMIN_HINT' => $lang['hint_admin'], + 'L_PROFILE' => $lang['customize'], + 'L_PROFILE_HINT' => $lang['hint_customize'], + 'L_REMEMBER_ME' => $lang['remember_me'], + + 'F_IDENTIFY' => PHPWG_ROOT_PATH.'identification.php', + 'T_RECENT' => $icon_recent, + + 'U_HOME' => make_index_URL(), + 'U_REGISTER' => PHPWG_ROOT_PATH.'register.php', + 'U_LOST_PASSWORD' => PHPWG_ROOT_PATH.'password.php', + 'U_LOGOUT' => make_index_URL().'&act=logout', + 'U_ADMIN'=> PHPWG_ROOT_PATH.'admin.php', + 'U_PROFILE'=> PHPWG_ROOT_PATH.'profile.php', + ) + ); + +if ('search' == $page['section']) { $template->assign_block_vars( 'search_rules', array( - 'URL' => PHPWG_ROOT_PATH.'/search_rules.php?search_id='.$_GET['search'], + 'URL' => PHPWG_ROOT_PATH.'/search_rules.php?search_id='.$page['search'], ) ); } @@ -271,7 +244,8 @@ if (count($conf['links']) > 0) array( 'URL' => $url, 'LABEL' => $label - )); + ) + ); } } //---------------------------------------------------------- special categories @@ -283,7 +257,7 @@ if ( !$user['is_the_guest'] ) $template->assign_block_vars( 'special_cat', array( - 'URL' => PHPWG_ROOT_PATH.'category.php?cat=fav', + 'URL' => make_index_URL(array('section' => 'favorites')), 'TITLE' => $lang['favorite_cat_hint'], 'NAME' => $lang['favorite_cat'] )); @@ -292,7 +266,7 @@ if ( !$user['is_the_guest'] ) $template->assign_block_vars( 'special_cat', array( - 'URL' => PHPWG_ROOT_PATH.'category.php?cat=most_visited', + 'URL' => make_index_URL(array('section' => 'most_visited')), 'TITLE' => $lang['most_visited_cat_hint'], 'NAME' => $lang['most_visited_cat'] )); @@ -302,7 +276,7 @@ if ($conf['rate']) $template->assign_block_vars( 'special_cat', array( - 'URL' => PHPWG_ROOT_PATH.'category.php?cat=best_rated', + 'URL' => make_index_URL(array('section' => 'best_rated')), 'TITLE' => $lang['best_rated_cat_hint'], 'NAME' => $lang['best_rated_cat'] ) @@ -320,7 +294,7 @@ $template->assign_block_vars( $template->assign_block_vars( 'special_cat', array( - 'URL' => PHPWG_ROOT_PATH.'category.php?cat=recent_pics', + 'URL' => make_index_URL(array('section' => 'recent_pics')), 'TITLE' => $lang['recent_pics_cat_hint'], 'NAME' => $lang['recent_pics_cat'] )); @@ -328,27 +302,24 @@ $template->assign_block_vars( $template->assign_block_vars( 'special_cat', array( - 'URL' => PHPWG_ROOT_PATH.'category.php?cat=recent_cats', + 'URL' => make_index_URL(array('section' => 'recent_cats')), 'TITLE' => $lang['recent_cats_cat_hint'], 'NAME' => $lang['recent_cats_cat'] )); + // calendar -if ( $conf['calendar_datefield'] == 'date_available' ) -{ - $calendar_link = 'posted'; -} -else -{ - $calendar_link = 'created'; -} -$calendar_link .= '-monthly-c'; $template->assign_block_vars( 'special_cat', array( - 'URL' => PHPWG_ROOT_PATH.'category.php?calendar='.$calendar_link, + 'URL' => + make_index_URL() + .'/calendar-' + .($conf['calendar_datefield'] == 'date_available' ? 'posted' : 'created') + .'-monthly-c', 'TITLE' => $lang['calendar_hint'], 'NAME' => $lang['calendar'] - )); + ) + ); //--------------------------------------------------------------------- summary if ($user['is_the_guest']) @@ -385,26 +356,39 @@ else } // search link -$template->assign_block_vars('summary', array( -'TITLE'=>$lang['hint_search'], -'NAME'=>$lang['search'], -'U_SUMMARY'=> 'search.php', -'REL'=> 'rel="search"' -)); +$template->assign_block_vars( + 'summary', + array( + 'TITLE'=>$lang['hint_search'], + 'NAME'=>$lang['search'], + 'U_SUMMARY'=> 'search.php', + 'REL'=> 'rel="search"' + ) + ); // comments link -$template->assign_block_vars('summary', array( -'TITLE'=>$lang['hint_comments'], -'NAME'=>$lang['comments'], -'U_SUMMARY'=> 'comments.php', -)); +$template->assign_block_vars( + 'summary', + array( + 'TITLE'=>$lang['hint_comments'], + 'NAME'=>$lang['comments'], + 'U_SUMMARY'=> 'comments.php', + ) + ); // about link -$template->assign_block_vars('summary', array( -'TITLE'=>$lang['about_page_title'], -'NAME'=>$lang['About'], -'U_SUMMARY'=> 'about.php?'.str_replace( '&', '&', $_SERVER['QUERY_STRING'] ) -)); +$template->assign_block_vars( + 'summary', + array( + 'TITLE' => $lang['about_page_title'], + 'NAME' => $lang['About'], + 'U_SUMMARY' => 'about.php?'.str_replace( + '&', + '&', + $_SERVER['QUERY_STRING'] + ) + ) + ); // notification $template->assign_block_vars( @@ -414,96 +398,101 @@ $template->assign_block_vars( 'NAME'=>l10n('Notification'), 'U_SUMMARY'=> PHPWG_ROOT_PATH.'notification.php', 'REL'=> 'rel="nofollow"' -)); + ) + ); -if (isset($page['cat']) - and is_numeric($page['cat']) - and is_admin()) +if (isset($page['category']) and is_admin()) { $template->assign_block_vars( 'edit', array( 'URL' => - PHPWG_ROOT_PATH.'admin.php?page=cat_modify' - .'&cat_id='.$page['cat'] + PHPWG_ROOT_PATH.'admin.php?page=cat_modify' + .'&cat_id='.$page['category'] ) ); } //------------------------------------------------------ main part : thumbnails -if ( isset($page['thumbnails_include']) ) +if (isset($page['thumbnails_include'])) { include(PHPWG_ROOT_PATH.$page['thumbnails_include']); } //------------------------------------------------------- category informations -if ( $page['navigation_bar'] != '' - or ( isset( $page['comment'] ) and $page['comment'] != '' ) ) +if ( + $page['navigation_bar'] != '' + or (isset($page['comment']) and $page['comment'] != '') + ) { $template->assign_block_vars('cat_infos',array()); } // navigation bar -if ( $page['navigation_bar'] != '' ) +if ($page['navigation_bar'] != '') { $template->assign_block_vars( 'cat_infos.navigation', - array('NAV_BAR' => $page['navigation_bar']) + array( + 'NAV_BAR' => $page['navigation_bar'], + ) ); } -if ( ( isset($page['cat_nb_images']) and $page['cat_nb_images']>0 ) - and - ( !isset($page['cat']) - or ($page['cat'] != 'most_visited' and $page['cat'] != 'best_rated') ) - ) +if (isset($page['cat_nb_images']) and $page['cat_nb_images'] > 0 + and $page['section'] != 'most_visited' + and $page['section'] != 'best_rated') { // image order $template->assign_block_vars( 'preferred_image_order', array() ); - $order_idx = isset($_COOKIE['pwg_image_order']) ? - $_COOKIE['pwg_image_order'] : 0; + $order_idx = isset($_COOKIE['pwg_image_order']) + ? $_COOKIE['pwg_image_order'] + : 0 + ; $orders = get_category_preferred_image_orders(); - for ( $i = 0; $i < count($orders); $i++) + for ($i = 0; $i < count($orders); $i++) { if ($orders[$i][2]) { - $url = PHPWG_ROOT_PATH.'category.php' - .get_query_string_diff(array('image_order')); - $url .= '&image_order='.$i; - $template->assign_block_vars( 'preferred_image_order.order', array( - 'DISPLAY' => $orders[$i][0], - 'URL' => $url, - 'SELECTED_OPTION' => ($order_idx==$i ? 'SELECTED' : '' ), - ) ); + $template->assign_block_vars( + 'preferred_image_order.order', + array( + 'DISPLAY' => $orders[$i][0], + 'URL' => duplicate_index_URL().'&image_order='.$i, + 'SELECTED_OPTION' => ($order_idx==$i ? 'SELECTED' : ''), + ) + ); } } } -if ( isset ( $page['cat'] ) ) +if (isset($page['category'])) { // upload a picture in the category - if (is_numeric($page['cat']) -// and $page['cat_site_id'] == 1 - and $page['cat_dir'] != '' - and $page['cat_uploadable']) + if ($page['cat_uploadable']) { - $url = PHPWG_ROOT_PATH.'upload.php?cat='.$page['cat']; + $url = PHPWG_ROOT_PATH.'upload.php?cat='.$page['category']; $template->assign_block_vars( 'upload', - array('U_UPLOAD'=> $url ) + array( + 'U_UPLOAD'=> $url + ) ); } + // category comment - if ( isset( $page['comment'] ) and $page['comment'] != '' ) + if (isset($page['comment']) and $page['comment'] != '') { $template->assign_block_vars( 'cat_infos.comment', - array('COMMENTS' => $page['comment']) + array( + 'COMMENTS' => $page['comment'] + ) ); } } //------------------------------------------------------------ log informations -pwg_log( 'category', $page['title'] ); +pwg_log('category', $page['title']); $template->parse('category'); include(PHPWG_ROOT_PATH.'include/page_tail.php'); |