<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 菜單自動化 ~~~php /** * 獲取權限菜單 * @param null $authId * @return array|mixed */ public function getMenu($authId=null){ if(session('MENU_LIST')){ return session('MENU_LIST'); } //讀取菜單 $menu = $this->select(); //如果不是超級管理員返回權限菜單 if(session('username')!= C('RBAC_SUPERADMIN')){ $keys = array_column($menu,'id'); $menu = array_combine($keys,$menu); if(null===$authId) $authId = $_SESSION[C('USER_AUTH_KEY')]; $access = Rbac::getAccessList($authId); $access = $access['ADMIN']; //讀取節點 $list = []; foreach($access as $key=>$value){ foreach($value as $id=>$item){ $list[] =strtolower($key.'/'.$id); } } //返回有權限的菜單 $menuList = []; foreach($menu as $key=>$value){ if(in_array($value['link'],$list)){ if($value['pid']!=0){ $menuList[] = $menu[$value['pid']]; } $menuList[] = $value; } } } $menuList = isset($menuList)?$menuList:$menu; session('MENU_LIST',$menuList); return $menuList; } /** * 生成菜單 * @param $data * @param int $pid * @param string $fieldPri * @param string $fieldPid * @return bool|string */ public function buildMenu($data, $pid = 0, $fieldPri = 'id', $fieldPid = 'pid'){ if (empty($data)) { return false; } $arr =""; $do = session('menuList'); foreach ($data as $v) { if ($v[$fieldPid] == $pid) { $son = self::buildMenu($data,$v[$fieldPri], $fieldPri, $fieldPid); //活躍標簽 $active =($do['p']==$v[$fieldPri])?'class="active open"':''; $active =($do['s']==$v[$fieldPri])?'class="active"':$active; $arr .= '<li '.$active.'><a '.($son?'class="dropdown-toggle"':'').' href="'.($v['link']!=''?U($v['link']):'#').'">'; if($v['icon']!=''){ $arr .= '<i class="'.$v['icon'].'"></i>'; }else{ $arr .= '<i class="icon-double-angle-right"></i>'; } $arr .= ('<span class="menu-text">'.$v['title'].'</span>').($son?'<b class="arrow icon-angle-down"></b>':'').'</a>'; //子菜單 if($son){ $arr .= '<ul class="submenu">'.$son.'</ul>'; } $arr .= '</li>'; } } return $arr; } /** * 設置活躍菜單 * @param $data * @param string $link * @param string $fieldPri * @param string $fieldPid */ public function menuActive($data,$link='', $fieldPri = 'id', $fieldPid = 'pid'){ foreach ($data as $v) { if(strtolower($v['link'])==strtolower($link)){ session('menuList',['s'=>$v[$fieldPri],'p'=>$v[$fieldPid]]); } } } ~~~ ## 整個模型代碼 ~~~php <?php /** * Created by dh2y. * bolg: http://blog.csdn.net/sinat_22878395 * Date: 2017/7/4 16:13 * functional: 功能說明 */ namespace Admin\Model; use Common\Model\BaseModel; use Common\Org\Data; use Org\Util\Rbac; class MenuModel extends BaseModel { protected $tableName = 'menu'; protected $labels = ['pid'=>'','title'=>'','sort'=>99]; //自動驗證 protected $_validate = array( ['pid','require',['tag'=>'pid','error'=>'請選擇上級菜單']], ['title','require',['tag'=>'title','error'=>'菜單名稱必須']], ['sort','/^[0-9]\d*$/',['tag'=>'sort','error'=>'排序序號整形']], ); public function store($data){ $action = isset($data[$this->pk]) ? "save" : "add"; if ($this->create($data)) { if($this->$action($this->labels)){ return ['status' => true, 'message' => '數據操作成功']; } } return ['status' => false, 'message' => $this->getError()]; } /** * 菜單列表 */ public function lists(){ $data = $this->select(); return Data::tree($data,'title', $fieldPri = 'id'); } /** * 獲取權限菜單 * @param null $authId * @return array|mixed */ public function getMenu($authId=null){ if(session('MENU_LIST')){ return session('MENU_LIST'); } //讀取菜單 $menu = $this->select(); //如果不是超級管理員返回權限菜單 if(session('username')!= C('RBAC_SUPERADMIN')){ $keys = array_column($menu,'id'); $menu = array_combine($keys,$menu); if(null===$authId) $authId = $_SESSION[C('USER_AUTH_KEY')]; $access = Rbac::getAccessList($authId); $access = $access['ADMIN']; //讀取節點 $list = []; foreach($access as $key=>$value){ foreach($value as $id=>$item){ $list[] =strtolower($key.'/'.$id); } } //返回有權限的菜單 $menuList = []; foreach($menu as $key=>$value){ if(in_array($value['link'],$list)){ if($value['pid']!=0){ $menuList[] = $menu[$value['pid']]; } $menuList[] = $value; } } } $menuList = isset($menuList)?$menuList:$menu; session('MENU_LIST',$menuList); return $menuList; } /** * 生成菜單 * @param $data * @param int $pid * @param string $fieldPri * @param string $fieldPid * @return bool|string */ public function buildMenu($data, $pid = 0, $fieldPri = 'id', $fieldPid = 'pid'){ if (empty($data)) { return false; } $arr =""; $do = session('menuList'); foreach ($data as $v) { if ($v[$fieldPid] == $pid) { $son = self::buildMenu($data,$v[$fieldPri], $fieldPri, $fieldPid); //活躍標簽 $active =($do['p']==$v[$fieldPri])?'class="active open"':''; $active =($do['s']==$v[$fieldPri])?'class="active"':$active; $arr .= '<li '.$active.'><a '.($son?'class="dropdown-toggle"':'').' href="'.($v['link']!=''?U($v['link']):'#').'">'; if($v['icon']!=''){ $arr .= '<i class="'.$v['icon'].'"></i>'; }else{ $arr .= '<i class="icon-double-angle-right"></i>'; } $arr .= ('<span class="menu-text">'.$v['title'].'</span>').($son?'<b class="arrow icon-angle-down"></b>':'').'</a>'; //子菜單 if($son){ $arr .= '<ul class="submenu">'.$son.'</ul>'; } $arr .= '</li>'; } } return $arr; } /** * 設置活躍菜單 * @param $data * @param string $link * @param string $fieldPri * @param string $fieldPid */ public function menuActive($data,$link='', $fieldPri = 'id', $fieldPid = 'pid'){ foreach ($data as $v) { if(strtolower($v['link'])==strtolower($link)){ session('menuList',['s'=>$v[$fieldPri],'p'=>$v[$fieldPid]]); } } } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看