root
2017-08-03 02d49834cb0d8936dc49352b3968c3baf6da3232
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
 
class Util{
 
    public function selectItem($id, $selected = 0){
        $module_service = new Service_Module();
        $modules = $module_service->getModuleList();
        return "<select class='form-control' id='".$id."' name='".$id."'>".self::getModules($modules, 0, 0, $selected)."</select>";
    }
 
    public function getModules($modules, $parent = 0, $deep = 0, $selected){
        static $html = "<option value='0'>顶级栏目</option>";
        foreach ($modules as $key => $module) {
            if($module['parent'] == $parent){            
                if($deep == 0 || $parent == 0){
                    $html .="<option value='".$module['_id']."' ".($selected == $module['_id']? "seleced":'').">".$module['name']."</option>";
                }
                else{
                    $html .="<option value='".$module['_id']."' ".($selected == $module['_id']? "seleced":'').">".str_repeat('&nbsp&nbsp', $deep)."└".$module['name']."</option>";
                }
                $deep ++;
                unset($modules[$key]);
                self::getModules($modules, $module['_id'], $deep, $selected);
            }
            
        }
        return $html;
    }
    /**
     * 随机字符串
     * @param int $length 长度
     * @param int $numeric 类型(0:混合;1:纯数字)
     * @return string
     */
    public function random($length, $numeric = 0) {
         $seed = base_convert(md5(microtime().$_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);
         $seed = $numeric ? (str_replace('0', '', $seed).'012340567890') : ($seed.'zZ'.strtoupper($seed));
         if($numeric) {
              $hash = '';
         } else {
              $hash = chr(rand(1, 26) + rand(0, 1) * 32 + 64);
              $length--;
         }
         $max = strlen($seed) - 1;
         for($i = 0; $i < $length; $i++) {
              $hash .= $seed{mt_rand(0, $max)};
         }
         return $hash;
    }
 
    /**
     * 更新角色权限
     * @return [type] [description]
     */
    public function updateRoleAuth(){
        $role_service = new Service_Role();
        $roles = $role_service->getRoleList();
        $role_auths = array();
        foreach ($roles as $role) {
            $role_auth[$role['_id']] = explode(',', $role['modules']);
        }
        //初始化redis
        $redis = System_Service_Locator::getInstance()->get('redis');
        $redis->set('role_auth', $role_auth);
    }
 
    /**
     * 更新栏目
     * @return [type] [description]
     */
    public function updateModules(){
        $this->module_service = new Service_Module();
        $modules= $this->module_service->getModuleList(array(), array(), array('level' => 1));
        //初始化redis
        $redis = System_Service_Locator::getInstance()->get('redis');
        $redis->set('modules', $modules);
    }
 
}