Updating branch refs/heads/master to e3a78a5a4ffdf57e7a1b12c0de874a8ec9ae3185 (commit) from 1573b0f2fe016dfaa47f6bffa3d5f4854798f206 (commit)
commit e3a78a5a4ffdf57e7a1b12c0de874a8ec9ae3185 Author: Nick Schermer <n...@xfce.org> Date: Fri Jan 6 21:15:08 2012 +0100 Add help redirect script. help.php | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 103 insertions(+), 0 deletions(-) diff --git a/help.php b/help.php new file mode 100644 index 0000000..8bb679b --- /dev/null +++ b/help.php @@ -0,0 +1,103 @@ +<?php + +function get_value($name, $fallback = null) +{ + if (isset ($_GET[$name])) + return $_GET[$name]; + return $fallback; +} + +/* Path to the dokuwiki data */ +$relpath = '/../domains/docs2.xfce.org/data/pages/'; +$root = realpath (dirname ($_SERVER['SCRIPT_FILENAME']) . $relpath); +if (!is_dir ($root) || !chdir (($root))) + die ('Pages path is not properly configured'); + +/* Subpaths in which components are expected */ +$subdirs = array ('xfce', 'apps', 'panel-plugins', 'thunar-plugins'); +$defpage = 'start'; + +/* Get information about from the uri */ +//$version = get_value ('version'); +$locale = get_value ('locale'); +$component = get_value ('component'); +$page = get_value ('page', $defpage); +$offset = get_value ('offset'); + +/* Start uri */ +$uri = ''; + +/* Find component */ +if ($component != null) +{ + foreach ($subdirs as $subdir) + { + $path = $subdir.'/'.$component.'/'; + if (is_dir ($path)) + { + $uri = $path; + break; + } + } +} + +/* Get component page */ +if (is_file ($uri.$page.'.txt')) + $uri .= $page; +elseif (is_file ($uri.$defpage.'.txt')) + $uri .= $defpage; +else + $uri = $defpage; + +/* Get locales array */ +if (empty ($locale)) +{ + $locales = array (); +} +else +{ + /* Sanitize the value */ + list ($locale) = preg_split ('/[\s.]+/', $locale); + $locale = str_replace ('_', '-', $locale); + + /* Create possible locales array */ + $locales = array ($locale); + $codes = explode ('-', $locale); + if (count ($codes) > 1) + $locales[] = $codes[0]; +} + +/* Append browser languages */ +if (isset ($_SERVER['HTTP_ACCEPT_LANGUAGE'])) +{ + $accept = strtolower ($_SERVER['HTTP_ACCEPT_LANGUAGE']); + foreach (explode (',', $accept) as $lang) + { + list ($code) = explode (';', $lang); + if (!in_array ($code, $locales)) + $locales[] = $code; + } +} + +/* Check if there is a translation */ +foreach ($locales as $code) +{ + if (!empty ($code) && is_dir ($code)) + { + $path = $code.'/'.$uri; + if (is_file ($path.'.txt')) + { + $uri = $path; + break; + } + } +} + +/* Append the offset */ +if (!empty ($offset)) + $uri .= '#'.$offset; + +/* Redirect */ +header('Location: /'.$uri); + +?> _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits