Your IP : 216.73.216.79


Current Path : /var/www/html/school/common/components/
Upload File :
Current File : /var/www/html/school/common/components/MenuHelper.php

<?php
/**
 * @link http://www.myopensoft.net/
 * @copyright Copyright (c) 2017 Opensoft Technologies Sdn Bhd
 * @license http://www.myopensoft.net/license/
 */
namespace common\components;

use Yii;
use common\models\Menu;
use backend\models\MainMenu;
use yii\data\Sort;

class MenuHelper {

    public static function getAssignedMenu() {
        $menus = Menu::getMenus();
        $mitema = array();
        $msubitema = array();
        foreach ($menus as $m) {
            $submenus = Menu::getMenus($default_menu = '0', $hide_ind = '0', $module_ind = '0', $parentid = $m->id);
            $msubitema = array();
            foreach ($submenus as $n) {
                array_push($msubitema, ['label' => Yii::t('app', $n->menu_txt), 'icon' => ($n->icon_name == '' ? '' : $n->icon_name), 'url' => ["/" . $n->menu_loc]]);
            }
            if (count($submenus) > 0) {
                array_push($mitema, ['label' => Yii::t('app', $m->menu_txt), 'items' => $msubitema, 'icon' => ($m->icon_name == '' ? '' : $m->icon_name), 'url' => ["/" . $m->menu_loc]]);
            } else {
                array_push($mitema, ['label' => Yii::t('app', $m->menu_txt), 'icon' => ($m->icon_name == '' ? '' : $m->icon_name), 'url' => ["/" . $m->menu_loc]]);
            }
        }

        $rolemenus = Menu::getMenuByRole();
        $rmitema = array();
        $rmsubitema = array();
        foreach ($rolemenus as $m) {
            $rsubmenus = Menu::getMenus($default_menu = '0', $hide_ind = '0', $module_ind = '0', $parentid = $m->id);
            if (count($rsubmenus) > 0) {
                $rmsubitema = array();
                foreach ($rsubmenus as $n) {
                    array_push($rmsubitema, ['label' => Yii::t('app', $n->menu_txt), 'icon' => ($n->icon_name == '' ? '' : $n->icon_name), 'url' => ["/" . $n->menu_loc]]);
                }
                array_push($rmitema, ['label' => Yii::t('app', $m->menu_txt), 'items' => $rmsubitema, 'icon' => ($m->icon_name == '' ? '' : $m->icon_name), 'url' => ["/" . $m->menu_loc]]);
            } else {
                array_push($rmitema, ['label' => Yii::t('app', $m->menu_txt), 'icon' => ($m->icon_name == '' ? '' : $m->icon_name), 'url' => ["/" . $m->menu_loc]]);
            }
        }

        $mainmenu = MainMenu::find()->orderBy('sort')->all();
        $dmstrport = array();

        $arr = array();


        array_push($dmstrport, [
            'label' => Yii::t('app', 'Dashboard'),
            'icon' => 'fa fa-bar-chart-o',
            'url' => Yii::$app->homeUrl,
        ]);


        // MENU ASSIGNED BY ROLE
        if (!empty($mainmenu)) {
            foreach ($mainmenu as $m) {
                $rolemenusa = static::menuByRole($m->code);
                array_push($dmstrport, [
                    'label' => Yii::t('app', $m->descr),
                    'icon' => Yii::t('app', $m->icon_name),
                    'url' => '#',
                    'visible' => (count($rolemenusa) > 0 ? true : false),
                    'items' => $rolemenusa,
                ]);
            }
        }


        return $dmstrport;
    }

    public static function menuByRole($mainmenu) {
        $rolemenus = Menu::getMenuByPortfolioRole($mainmenu);
        $rmitema = array();
        $rmsubitema = array();
        foreach ($rolemenus as $m) {
            $rsubmenus = Menu::getMenus($default_menu = '0', $hide_ind = '0', $module_ind = '0', $parentid = $m->id);
            if (count($rsubmenus) > 0) {
                $rmsubitema = array();
                foreach ($rsubmenus as $n) {
                    array_push($rmsubitema, ['label' => Yii::t('app', $n->menu_txt), 'icon' => ($n->icon_name == '' ? '' : $n->icon_name), 'url' => ["/" . $n->menu_loc]]);
                }
                array_push($rmitema, ['label' => Yii::t('app', $m->menu_txt), 'items' => $rmsubitema, 'icon' => ($m->icon_name == '' ? '' : $m->icon_name), 'url' => ["/" . $m->menu_loc]]);
            } else {
                array_push($rmitema, ['label' => Yii::t('app', $m->menu_txt), 'icon' => ($m->icon_name == '' ? '' : $m->icon_name), 'url' => ["/" . $m->menu_loc]]);
            }
        }
        return $rmitema;
    }

}