Esempio n. 1
0
 public function listDOM($page)
 {
     $model = new Navigator();
     $result = '';
     //get biggest level (<4)
     $maxLv = $model->where('in_page', $page)->max('level');
     //count amount root tag
     $countRoot = $model->where('in_page', $page)->where('level', 0)->count();
     $listNavigators = [];
     //get all Tag from level root(0)-> biggest(3);
     for ($i = 0; $i <= $maxLv; $i++) {
         $listNavigators[] = $model->where('in_page', $page)->where('level', $i)->get(['id', 'parent_id', 'uri', 'level', 'name'])->toArray();
     }
     //loop time = amount root tag
     for ($i = 0; $i < $countRoot; $i++) {
         //get id ,name  of root tag [[0]=>[root=>['id'=>,...],[1]=>['child_lv1'=>['],,]]
         $result .= '<option value="' . array_get($listNavigators[0][$i], 'id') . '">----';
         $result .= array_get($listNavigators[0][$i], 'name');
         $result .= '</option>';
         //end tag root
         //check has list child(1)
         if (isset($listNavigators[1])) {
             //true, loop = amount child(1) tag
             for ($j = 0; $j < sizeof($listNavigators[1]); $j++) {
                 //check is child(1) of current root tag
                 if (array_get($listNavigators[1][$j], 'parent_id') == array_get($listNavigators[0][$i], 'id')) {
                     //True, get id ,name  of child(1) tag
                     $result .= '<option value="' . array_get($listNavigators[1][$j], 'id') . '">--------';
                     $result .= array_get($listNavigators[1][$j], 'name');
                     $result .= '</option>';
                     //check has list child(2)
                     if (isset($listNavigators[2])) {
                         //true, loop = amount child(2) tag
                         for ($m = 0; $m < sizeof($listNavigators[2]); $m++) {
                             if (array_get($listNavigators[2][$m], 'parent_id') == array_get($listNavigators[1][$j], 'id')) {
                                 $result .= '<option value="' . array_get($listNavigators[2][$m], 'id') . '">------------';
                                 $result .= array_get($listNavigators[2][$m], 'name');
                                 $result .= '</option>';
                                 //check has list child(3)
                                 if (isset($listNavigators[3])) {
                                     //true, loop = amount child(3) tag
                                     for ($n = 0; $n < sizeof($listNavigators[3]); $n++) {
                                         //check is child(1) of current child(2) tag
                                         if (array_get($listNavigators[3][$n], 'parent_id') == array_get($listNavigators[2][$m], 'id')) {
                                             $result .= '<option value="' . array_get($listNavigators[3][$n], 'id') . '">----------------';
                                             $result .= array_get($listNavigators[3][$n], 'name');
                                             $result .= '</option>';
                                             $result .= array_get($listNavigators[3][$n], 'name');
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     echo $result;
 }
Esempio n. 2
0
 public function destroyByAjax(Request $request)
 {
     $rules = ['navigator' => 'required|exists:navigators,name', 'in_page' => 'required|in:0,1'];
     $validator = Validator::make($request->all(), $rules);
     if ($validator->fails()) {
         return '{"type":"e","message":"Error!"}';
     }
     $inPage = Input::get('in_page');
     $navigator = Input::get('navigator');
     $arrayNavigator = explode(', ', $navigator);
     $model = new Navigator();
     //true , get id current tag
     $Parent = Navigator::where('name', 'like', $navigator)->where('in_page', $inPage)->first()->toArray();
     $idParent = $Parent['id'];
     //if current differ root tag allow delete
     if ($Parent['level'] == 0) {
         return '{"message":"Cannot delete root!","type":"e"}';
     }
     //check current tag has child yet?
     $check = Navigator::where('parent_id', 'like', $idParent)->where('in_page', $inPage)->count();
     if ($check > 0) {
         $child = Navigator::where('parent_id', 'like', $idParent)->where('in_page', $inPage)->get()->toArray();
         //delete current tag
         Navigator::where('parent_id', 'like', $idParent)->where('in_page', $inPage)->delete();
         foreach ($child as $aChild) {
             $check = Navigator::where('parent_id', 'like', $aChild['id'])->where('in_page', $inPage)->count();
             if ($check > 0) {
                 Navigator::where('parent_id', 'like', $aChild['id'])->where('in_page', $inPage)->delete();
             }
         }
     }
     $model->where('name', 'like', $navigator)->where('in_page', $inPage)->delete();
     return '{"message":"Delete!","type":"s"}';
 }