diff options
author | rub <rub@piwigo.org> | 2007-02-07 23:08:04 +0000 |
---|---|---|
committer | rub <rub@piwigo.org> | 2007-02-07 23:08:04 +0000 |
commit | 5631a3fc545bd736cb4b82a93fa7d2b48814973c (patch) | |
tree | aea9cfa1fb8f563e1d41fd4b611a6024864c1af4 /include | |
parent | 3c8775b25255a2be4f561b1c0ede275cbae3f73b (diff) |
Issue 0000639: Force selected page on index.php
When page index.php is called without defined section, redirect to a page selected by random on a user list.
git-svn-id: http://piwigo.org/svn/trunk@1788 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'include')
-rw-r--r-- | include/config_default.inc.php | 13 | ||||
-rw-r--r-- | include/functions_url.inc.php | 6 | ||||
-rw-r--r-- | include/menubar.inc.php | 2 | ||||
-rw-r--r-- | include/section_init.inc.php | 25 |
4 files changed, 42 insertions, 4 deletions
diff --git a/include/config_default.inc.php b/include/config_default.inc.php index f33047a73..b93f3e51d 100644 --- a/include/config_default.inc.php +++ b/include/config_default.inc.php @@ -212,6 +212,19 @@ $conf['show_version'] = true; // page. $conf['links'] = array(); +// random_index_redirect: list of 'internal' links to use when no section is defined on index.php. +// An example is the best than a long explanation : +// +// for each link is associated a php condition +// '' condition is equivalent to 'return true;' +// $conf['random_index_redirect'] = array( +// PHPWG_ROOT_PATH.'index.php?/best_rated' => 'return true;', +// PHPWG_ROOT_PATH.'index.php?/recent_pics' => 'return $user[\'is_the_guest\'];', +// PHPWG_ROOT_PATH.'random.php' => '', +// PHPWG_ROOT_PATH.'index.php?/categories' => '', +// ); +$conf['random_index_redirect'] = array(); + // List of notes to display on all header page // example $conf['header_notes'] = array('Test', 'Hello'); $conf['header_notes'] = array(); diff --git a/include/functions_url.inc.php b/include/functions_url.inc.php index 376d4f4e9..2a567e8c5 100644 --- a/include/functions_url.inc.php +++ b/include/functions_url.inc.php @@ -312,7 +312,7 @@ function make_section_in_url($params) if (!isset($params['section'])) { - $params['section'] = 'categories'; + $params['section'] = 'none'; } switch($params['section']) @@ -398,6 +398,10 @@ function make_section_in_url($params) break; } + case 'none' : + { + break; + } default : { $section_string.= '/'.$params['section']; diff --git a/include/menubar.inc.php b/include/menubar.inc.php index 4a35cccbf..030c46cbd 100644 --- a/include/menubar.inc.php +++ b/include/menubar.inc.php @@ -43,7 +43,7 @@ $template->assign_vars( 'USERNAME' => $user['username'], 'MENU_CATEGORIES_CONTENT' => get_categories_menu(), 'F_IDENTIFY' => get_root_url().'identification.php', - 'U_HOME' => make_index_url(), + 'U_CATEGORIES' => make_index_url(array('section' => 'categories')), 'U_REGISTER' => get_root_url().'register.php', 'U_LOST_PASSWORD' => get_root_url().'password.php', 'U_LOGOUT' => get_root_url().'?act=logout', diff --git a/include/section_init.inc.php b/include/section_init.inc.php index a1535668a..78ec73fa0 100644 --- a/include/section_init.inc.php +++ b/include/section_init.inc.php @@ -51,8 +51,6 @@ // 'action' => 'fill_caddie' // ); -$page['section'] = 'categories'; - // some ISPs set PATH_INFO to empty string or to SCRIPT_FILENAME while in the // default apache implementation it is not set if ( $conf['question_mark_in_urls']==false and @@ -268,6 +266,29 @@ else if ('list' == $tokens[$next_token]) } $next_token++; } +else +{ + if (!empty($conf['random_index_redirect'])) + { + $random_index_redirect = array(); + foreach ($conf['random_index_redirect'] as $random_url => $random_url_condition) + { + if (empty($random_url_condition) or eval($random_url_condition)) + { + $random_index_redirect[] = $random_url; + } + } + } + + if (!empty($random_index_redirect)) + { + redirect($random_index_redirect[mt_rand(0, count($random_index_redirect)-1)]); + } + else + { + $page['section'] = 'categories'; + } +} $i = $next_token; |