source: trunk/mod_cacher/htdocs/common.php @ 1038

Last change on this file since 1038 was 1038, checked in by moo, 2 years ago

cacher/admin: use title (tips) in table header

  • Property svn:eol-style set to native
File size: 3.5 KB
RevLine 
[123]1<?php
2
[783]3function xcache_validateFileName($name)
4{
5    return preg_match('!^[a-zA-Z0-9._-]+$!', $name);
6}
7
[123]8function get_language_file_ex($name, $l, $s)
9{
[182]10    static $lmap = array(
[123]11            'zh'    => 'zh-simplified',
12            'zh-hk' => 'zh-traditional',
13            'zh-tw' => 'zh-traditional',
14            );
[182]15    static $smap = array(
16            'gbk'     => 'gb2312',
17            'gb18030' => 'gb2312',
18            );
[123]19
[182]20    if (isset($lmap[$l])) {
21        $l = $lmap[$l];
[123]22    }
[783]23    $file = "$name-$l-$s.lang.php";
24    if (xcache_validateFileName($file) && file_exists($file)) {
[123]25        return $file;
26    }
[182]27    if (isset($smap[$s])) {
28        $s = $smap[$s];
[783]29        $file = "$name-$l-$s.lang.php";
30        if (xcache_validateFileName($file) && file_exists($file)) {
[182]31            return $file;
32        }
33    }
[783]34    $file = "$name-$l.lang.php";
35    if (xcache_validateFileName($file) && file_exists($file)) {
[123]36        return $file;
37    }
38    return null;
39}
40
41function get_language_file($name)
42{
[902]43    global $config;
44    $s = strtolower($config['charset']);
45    if (!empty($config['lang'])) {
46        $l = strtolower($config['lang']);
[134]47        $file = get_language_file_ex($name, $l, $s);
48        if (!isset($file)) {
[782]49            $l = strtok($l, ':-');
[134]50            $file = get_language_file_ex($name, $l, $s);
51        }
[123]52    }
53    else if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
54        foreach (explode(',', str_replace(' ', '', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) as $l) {
[782]55            $l = strtok($l, ':;');
[123]56            $file = get_language_file_ex($name, $l, $s);
57            if (isset($file)) {
[902]58                $config['lang'] = $l;
[123]59                break;
60            }
61            if (strpos($l, '-') !== false) {
[782]62                $ll = strtok($l, ':-');
[125]63                $file = get_language_file_ex($name, $ll, $s);
[123]64                if (isset($file)) {
[902]65                    $config['lang'] = $l;
[123]66                    break;
67                }
68            }
69        }
70    }
71    return isset($file) ? $file : "$name-en.lang.php";
72}
73
[1038]74function _($str)
[123]75{
76    if (isset($GLOBALS['strings'][$str])) {
77        return $GLOBALS['strings'][$str];
78    }
[902]79    if (!empty($GLOBALS['config']['show_todo_strings'])) {
[1038]80        return '<span style="color:red">' . htmlspecialchars($str) . '</span>|';
[123]81    }
82    return $str;
83}
84
[1038]85function __($str)
86{
87    return _($str);
88}
89
90function N_($str)
91{
92    return $str;
93}
94
[418]95function stripaddslashes_array($value, $mqs = false)
96{
97    if (is_array($value)) {
98        foreach($value as $k => $v) {
99            $value[$k] = stripaddslashes_array($v, $mqs);
100        }
101    }
102    else if(is_string($value)) {
103        $value = $mqs ? str_replace('\'\'', '\'', $value) : stripslashes($value);
104    }
105    return $value;
106}
107
[902]108function ob_filter_path_nicer_default($list_html)
109{
110    $sep = DIRECTORY_SEPARATOR;
111    $docRoot = $_SERVER['DOCUMENT_ROOT'];
[926]112    if ($sep != '/') {
113        $docRoot = str_replace('/', $sep, $docRoot);
114    }
[953]115    $list_html = str_replace(">$docRoot",  ">{DOCROOT}" . (substr($docRoot, -1) == $sep ? $sep : ""), $list_html);
[902]116    $xcachedir = realpath(dirname(__FILE__) . "$sep..$sep");
[953]117    $list_html = str_replace(">$xcachedir$sep", ">{XCache}$sep", $list_html);
[902]118    if ($sep == '/') {
[953]119        $list_html = str_replace(">/home/", ">{H}/", $list_html);
[902]120    }
121    return $list_html;
122}
123
124
[123]125error_reporting(E_ALL);
[181]126ini_set('display_errors', 'On');
[123]127define('REQUEST_TIME', time());
128
[549]129if (function_exists('get_magic_quotes_gpc') && @get_magic_quotes_gpc()) {
[418]130    $mqs = (bool) ini_get('magic_quotes_sybase');
131    $_GET = stripaddslashes_array($_GET, $mqs);
132    $_POST = stripaddslashes_array($_POST, $mqs);
133    $_REQUEST = stripaddslashes_array($_REQUEST, $mqs);
[902]134    unset($mqs);
[418]135}
136ini_set('magic_quotes_runtime', '0');
137
[902]138$config = array();
139include("./config.default.php");
[123]140if (file_exists("./config.php")) {
141    include("./config.php");
142}
143
144include(get_language_file("common"));
[902]145if (empty($config['lang'])) {
146    $config['lang'] = 'en-us';
[125]147}
[123]148
[951]149header("Cache-Control: no-cache, must-revalidate");
150header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
151
[123]152?>
Note: See TracBrowser for help on using the repository browser.