Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class ActiveMenu extends CMenu
- {
- public function init(){
- if(!Yii::app()->user->isGuest){
- echo $this->generateMenu(Yii::app()->user->idgroup(), 0, 0);
- }
- }
- private function allowViewMenu($intUserGroupId, $intMenuId){
- $strSQL = "SELECT allow_view FROM t_menu_privileges WHERE user_group_id = ".$intUserGroupId." AND menu_id = ".$intMenuId;
- $dependency = new CDbCacheDependency('SELECT MAX(id) FROM t_menu_privileges');
- $objDataSet = Yii::app()->db->cache(1000, $dependency)->createCommand($strSQL)->queryRow();
- if(isset($objDataSet)){
- if(intval($objDataSet['allow_view']) == 1){
- return true;
- }else{
- return false;
- }
- }else{
- return false;
- }
- }
- private function generateMenu($intUserGroupId, $intParentId, $intMenuLevel){
- $strSQL = "SELECT id,menu_controller,menu_name,menu_icon FROM t_menu WHERE parent_id = ".$intParentId." AND published = 1 AND activate = 1 ORDER BY sort_order ASC";
- $dependency = new CDbCacheDependency('SELECT MAX(id) FROM t_menu');
- $objDataSet = Yii::app()->db->cache(1000, $dependency)->createCommand($strSQL)->queryAll();
- $strHtmlMenu = "";
- $intCurrentLevel = $intMenuLevel;
- if(count($objDataSet) > 0){
- if($intMenuLevel == 0){
- $strHtmlMenu .= "<ul id=\"yw1\" class=\"nav\">";
- foreach($objDataSet as $row){
- if($this->allowViewMenu($intUserGroupId, $row['id'])){
- $strHtmlMenu .= "<li class=\"dropdown\">";
- $strHtmlMenu .= "<a href=\"".$row['menu_controller']."\" data-toggle=\"dropdown\" class=\"dropdown-toggle\"><span class=\"".$row['menu_icon']."\"></span> ".$row['menu_name']."<b class=\"caret\"></b></a>";
- $strSQL = "SELECT id,menu_controller,menu_name,menu_icon FROM t_menu WHERE parent_id = ".$row['id']." AND published = 1 AND activate = 1 ORDER BY sort_order ASC";
- $dependency = new CDbCacheDependency('SELECT MAX(id) FROM t_menu');
- $objDataSetChild = Yii::app()->db->cache(1000, $dependency)->createCommand($strSQL)->queryAll();
- if(count($objDataSetChild) > 0){
- $intCurrentLevel += 1;
- $strHtmlMenu .= $this->generateMenu($intUserGroupId, $row['id'], $intCurrentLevel);
- $intCurrentLevel -= 1;
- }
- $strHtmlMenu .= "</li>";
- }
- }
- $strHtmlMenu .= "</ul>";
- }elseif($intMenuLevel == 1){
- $strHtmlMenu .= "<ul class=\"dropdown-menu sub-dropdown\">";
- foreach($objDataSet as $row){
- if($this->allowViewMenu($intUserGroupId, $row['id'])){
- $strSQL = "SELECT id,menu_controller,menu_name,menu_icon FROM t_menu WHERE parent_id = ".$row['id']." AND published = 1 AND activate = 1 ORDER BY sort_order ASC";
- $dependency = new CDbCacheDependency('SELECT MAX(id) FROM t_menu');
- $objDataSetChild = Yii::app()->db->cache(1000, $dependency)->createCommand($strSQL)->queryAll();
- if(count($objDataSetChild) > 0){
- $strHtmlMenu .= "<li class=\"dropdown sub-dropdown\"><a href=".Yii::app()->createUrl($row["menu_controller"])."><span class=\"".$row['menu_icon']."\"></span> ".$row['menu_name']." <b class=\"caret-right\"></b></a>";
- $intCurrentLevel += 1;
- $strHtmlMenu .= $this->generateMenu($intUserGroupId, $row['id'], $intCurrentLevel);
- $intCurrentLevel -= 1;
- $strHtmlMenu .= "</li>";
- }else{
- $strHtmlMenu .= "<li><a href=".Yii::app()->createUrl($row["menu_controller"])."><span class=\"".$row['menu_icon']."\"></span> ".$row['menu_name']."</a></li>";
- }
- }
- }
- $strHtmlMenu .= "</ul>";
- }elseif($intMenuLevel >= 2){
- $strHtmlMenu .= "<ul class=\"dropdown-menu sub-menu\">";
- foreach($objDataSet as $row){
- if($this->allowViewMenu($intUserGroupId, $row['id'])){
- $strSQL = "SELECT id,menu_controller,menu_name,menu_icon FROM t_menu WHERE parent_id = ".$row['id']." AND published = 1 AND activate = 1 ORDER BY sort_order ASC";
- $dependency = new CDbCacheDependency('SELECT MAX(id) FROM t_menu');
- $objDataSetChild = Yii::app()->db->cache(1000, $dependency)->createCommand($strSQL)->queryAll();
- if(count($objDataSetChild) > 0){
- $strHtmlMenu .= "<li class=\"dropdown sub-dropdown\"><a href=".Yii::app()->createUrl($row["menu_controller"])."><span class=\"".$row['menu_icon']."\"></span> ".$row['menu_name']." <b class=\"caret-right\"></b></a>";
- $intCurrentLevel += 1;
- $strHtmlMenu .= $this->generateMenu($intUserGroupId, $row['id'], $intCurrentLevel);
- $intCurrentLevel -= 1;
- $strHtmlMenu .= "</li>";
- }else{
- $strHtmlMenu .= "<li><a href=".Yii::app()->createUrl($row["menu_controller"])."><span class=\"".$row['menu_icon']."\"></span> ".$row['menu_name']."</a></li>";
- }
- }
- }
- $strHtmlMenu .= "</ul>";
- }
- }
- return $strHtmlMenu;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement