Changeset 1053 in svn for trunk/htdocs/common/common.php


Ignore:
Timestamp:
2012-07-27T09:17:42+02:00 (3 years ago)
Author:
Xuefer
Message:

refactor: move htdocs, bin, lib for easier installation

Location:
trunk/htdocs/common
Files:
1 added
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/htdocs/common/common.php

    r1052 r1053  
    11<?php
    22
     3class Cycle
     4{
     5    var $values;
     6    var $i;
     7    var $count;
     8
     9    function Cycle($v)
     10    {
     11        $this->values = func_get_args();
     12        $this->i = -1;
     13        $this->count = count($this->values);
     14    }
     15
     16    function next()
     17    {
     18        $this->i = ($this->i + 1) % $this->count;
     19        return $this->values[$this->i];
     20    }
     21
     22    function cur()
     23    {
     24        return $this->values[$this->i];
     25    }
     26
     27    function reset()
     28    {
     29        $this->i = -1;
     30    }
     31}
     32
     33function switcher($name, $options)
     34{
     35    $n = isset($_GET[$name]) ? $_GET[$name] : null;
     36    $html = array();
     37    foreach ($options as $k => $v) {
     38        $html[] = sprintf('<a href="?%s=%s"%s>%s</a>', $name, $k, $k == $n ? ' class="active"' : '', $v);
     39    }
     40    return implode('', $html);
     41}
     42
     43function moduleswitcher()
     44{
     45    global $module, $modules;
     46    $html = array();
     47    foreach ($modules as $k => $v) {
     48        $html[] = sprintf('<a href="../%s/"%s>%s</a>', $k, $k == $module ? ' class="active"' : '', $v);
     49    }
     50    return implode('', $html);
     51}
     52
     53function th($name, $attrs = null)
     54{
     55    $translated = __($name);
     56    if ($translated == $name) {
     57        $translated = "$name|$name";
     58    }
     59    list($text, $title) = explode('|', $translated, 2);
     60    return sprintf('%s<th%s id="%s" title="%s"><a href="javascript:" onclick="resort(this); return false">%s</a></th>%s'
     61            , "\t"
     62            , $attrs ? " $attrs" : ""
     63            , $name, htmlspecialchars(trim($title)), trim($text)
     64            , "\n");
     65}
     66
    367function xcache_validateFileName($name)
    468{
     
    670}
    771
    8 function get_language_file_ex($name, $l, $s)
    9 {
    10     static $lmap = array(
     72function get_language_file_ex($name, $lang)
     73{
     74    static $langMap = array(
    1175            'zh'    => 'zh-simplified',
    1276            'zh-hk' => 'zh-traditional',
    1377            'zh-tw' => 'zh-traditional',
    1478            );
    15     static $smap = array(
    16             'gbk'     => 'gb2312',
    17             'gb18030' => 'gb2312',
    18             );
    19 
    20     if (isset($lmap[$l])) {
    21         $l = $lmap[$l];
    22     }
    23     $file = "$name-$l-$s.lang.php";
     79
     80    if (isset($langMap[$lang])) {
     81        $lang = $langMap[$lang];
     82    }
     83    $file = "$name-$lang.lang.php";
    2484    if (xcache_validateFileName($file) && file_exists($file)) {
    2585        return $file;
    2686    }
    27     if (isset($smap[$s])) {
    28         $s = $smap[$s];
    29         $file = "$name-$l-$s.lang.php";
    30         if (xcache_validateFileName($file) && file_exists($file)) {
    31             return $file;
    32         }
    33     }
    34     $file = "$name-$l.lang.php";
    35     if (xcache_validateFileName($file) && file_exists($file)) {
    36         return $file;
    37     }
    3887    return null;
    3988}
     
    4291{
    4392    global $config;
    44     $s = strtolower($config['charset']);
    4593    if (!empty($config['lang'])) {
    46         $l = strtolower($config['lang']);
    47         $file = get_language_file_ex($name, $l, $s);
     94        $lang = strtolower($config['lang']);
     95        $file = get_language_file_ex($name, $lang);
    4896        if (!isset($file)) {
    49             $l = strtok($l, ':-');
    50             $file = get_language_file_ex($name, $l, $s);
     97            $lang = strtok($lang, ':-');
     98            $file = get_language_file_ex($name, $lang);
    5199        }
    52100    }
    53101    else if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    54         foreach (explode(',', str_replace(' ', '', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) as $l) {
    55             $l = strtok($l, ':;');
    56             $file = get_language_file_ex($name, $l, $s);
     102        foreach (explode(',', str_replace(' ', '', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) as $lang) {
     103            $lang = strtok($lang, ':;');
     104            $file = get_language_file_ex($name, $lang);
    57105            if (isset($file)) {
    58                 $config['lang'] = $l;
     106                $config['lang'] = $lang;
    59107                break;
    60108            }
    61             if (strpos($l, '-') !== false) {
    62                 $ll = strtok($l, ':-');
    63                 $file = get_language_file_ex($name, $ll, $s);
     109            if (strpos($lang, '-') !== false) {
     110                $file = get_language_file_ex($name, strtok($lang, ':-'));
    64111                if (isset($file)) {
    65                     $config['lang'] = $l;
     112                    $config['lang'] = $lang;
    66113                    break;
    67114                }
     
    91138{
    92139    return $str;
     140}
     141
     142function number_formats($a, $keys)
     143{
     144    foreach ($keys as $k) {
     145        $a[$k] = number_format($a[$k]);
     146    }
     147    return $a;
     148}
     149
     150function size($size)
     151{
     152    $size = (int) $size;
     153    if ($size < 1024)
     154        return number_format($size, 2) . ' b';
     155
     156    if ($size < 1048576)
     157        return number_format($size / 1024, 2) . ' K';
     158
     159    return number_format($size / 1048576, 2) . ' M';
     160}
     161
     162function age($time)
     163{
     164    if (!$time) return '';
     165    $delta = REQUEST_TIME - $time;
     166
     167    if ($delta < 0) {
     168        $delta = -$delta;
     169    }
     170   
     171    static $seconds = array(1, 60, 3600, 86400, 604800, 2678400, 31536000);
     172    static $name = array('s', 'm', 'h', 'd', 'w', 'M', 'Y');
     173
     174    for ($i = 6; $i >= 0; $i --) {
     175        if ($delta >= $seconds[$i]) {
     176            $ret = (int) ($delta / $seconds[$i]);
     177            return $ret . ' ' . $name[$i];
     178        }
     179    }
     180
     181    return '0 s';
    93182}
    94183
     
    121210    return $list_html;
    122211}
    123 
    124212
    125213error_reporting(E_ALL);
     
    137225
    138226$config = array();
    139 include("./config.default.php");
     227if (file_exists("./config.default.php")) {
     228    include("./config.default.php");
     229}
     230include("../config.default.php");
     231if (file_exists("../config.php")) {
     232    include("../config.php");
     233}
    140234if (file_exists("./config.php")) {
    141235    include("./config.php");
     
    143237
    144238include(get_language_file("common"));
    145 if (empty($config['lang'])) {
    146     $config['lang'] = 'en-us';
    147 }
    148 
     239
     240$modules = array();
     241if (file_exists("../cacher/index.php")) {
     242    $modules["cacher"] = _("Cacher");
     243}
     244if (file_exists("../coverager/index.php")) {
     245    $modules["coverager"] = _("Coverager");
     246}
    149247header("Cache-Control: no-cache, must-revalidate");
    150248header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
Note: See TracChangeset for help on using the changeset viewer.