Exemple #1
0
 public function listMenus($parent, $level, $type)
 {
     $connection = \Yii::$app->db;
     $sql = "SELECT a.id, a.names, a.icons, a.urls, a.type, a.target, Deriv1.Count FROM `tbl_menus` a  " . "LEFT OUTER JOIN (SELECT parent_id, COUNT(*) AS Count FROM `tbl_menus` GROUP BY parent_id) " . "Deriv1 ON a.id = Deriv1.parent_id WHERE a.parent_id=" . $parent . " AND a.published=1 AND " . "a.type=" . $type . " ORDER BY a.ordering";
     $command = $connection->createCommand($sql);
     $reader = $command->query();
     $data = array();
     foreach ($reader as $r) {
         if ($r['Count'] > 0) {
             $data['label'] = '<i class="' . $r['icons'] . '"></i> ' . $r['names'];
             $data['url'] = $r['article_id'] ? ['default/view', 'id' => $r['article_id']] : $r['urls'];
             $data['items'] = Menus::listMenus($r['id'], $level + 1, $type);
         } else {
             $data['label'] = '<i class="' . $r['icons'] . '"></i> ' . $r['names'];
             $htt = substr($r['urls'], 0, 4);
             $data['url'] = $htt == 'http' ? $r['urls'] : $r['urls'];
             if ($r['target'] == 1) {
                 $data['linkOptions'] = ['target' => '_blank'];
             }
             unset($data['items']);
         }
         $items[] = $data;
     }
     return $items;
 }