/application/controllers/menu.php

https://gitlab.com/wildanoo/E-procurement · PHP · 105 lines · 86 code · 17 blank · 2 comment · 10 complexity · e8b1dbf57c894a18ec72969266511a87 MD5 · raw file

  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. class Menu extends CI_Controller {
  4. function __construct(){
  5. parent::__construct();
  6. $this->load->model('m_menutop');
  7. }
  8. function index(){
  9. redirect('/auth/login/');
  10. }
  11. function browse(){
  12. if ($this->m_menutop->authenticate()) {
  13. $id = $this->uri->segment(3);
  14. if($id){
  15. $data['user_id'] = $this->tank_auth->get_user_id();
  16. $data['username'] = $this->tank_auth->get_username();
  17. $browse = $this->crud->browse("","groups","id",$id,"false","*");
  18. $data1 = $this->db->query("SELECT t1.id as menu1ID,t1.menu1,t1.status as stat1, t1.url, t2.id as featureID,t2.id_menu,t2.level,t2.groups FROM menu1 as t1 LEFT JOIN menu_feature as t2 ON t1.id=t2.id_menu AND t2.level = 1 WHERE t1.status = '1'")->result();
  19. $data2 = $this->db->query("SELECT t1.id as menu2ID,t1.id_up, t1.menu2,t1.status as stat1, t1.url, t2.id as featureID,t2.id_menu,t2.level,t2.groups FROM menu2 as t1 LEFT JOIN menu_feature as t2 ON t1.id=t2.id_menu AND t2.level = 2 WHERE t1.status = '1'")->result();
  20. $data3 = $this->db->query("SELECT t1.id as menu3ID,t1.id_up, t1.menu3,t1.status as stat1, t1.url, t2.id as featureID,t2.id_menu,t2.level,t2.groups FROM menu3 as t1 LEFT JOIN menu_feature as t2 ON t1.id=t2.id_menu AND t2.level = 3 WHERE t1.status = '1'")->result();
  21. $data['browse'] = $browse;
  22. $data['row1'] = $data1;
  23. $data['row2'] = $data2;
  24. $data['row3'] = $data3;
  25. $data['view'] = "menu/browse";
  26. $this->load->view('layout/template',$data);
  27. }else{
  28. redirect('/auth/login/');
  29. }
  30. }else{
  31. $this->session->set_flashdata('message','user not authorized');
  32. redirect('/auth/login/');
  33. }
  34. }
  35. function updatemenu(){
  36. $id = $this->input->post('id');
  37. $group1 = $this->input->post('ck_list1');
  38. $group2 = $this->input->post('ck_list2');
  39. $group3 = $this->input->post('ck_list3');
  40. $menu1 = $this->db->query("SELECT * FROM menu_feature WHERE level = '1'")->result();
  41. $menu2 = $this->db->query("SELECT * FROM menu_feature WHERE level = '2'")->result();
  42. $menu3 = $this->db->query("SELECT * FROM menu_feature WHERE level = '3'")->result();
  43. foreach($menu1 as $m1){
  44. if(in_array($m1->id,$group1)){
  45. $this->update_usergroup($m1->id,$id,$m1->groups,"add");
  46. }else{
  47. $this->update_usergroup($m1->id,$id,$m1->groups,"delete");
  48. }
  49. }
  50. foreach($menu2 as $m2){
  51. if(in_array($m2->id,$group2)){
  52. $this->update_usergroup($m2->id,$id,$m2->groups,"add");
  53. }else{
  54. $this->update_usergroup($m2->id,$id,$m2->groups,"delete");
  55. }
  56. }
  57. foreach($menu3 as $m3){
  58. if(in_array($m3->id,$group3)){
  59. $this->update_usergroup($m3->id,$id,$m3->groups,"add");
  60. }else{
  61. $this->update_usergroup($m3->id,$id,$m3->groups,"delete");
  62. }
  63. }
  64. redirect('user/groups');
  65. }
  66. function update_usergroup($idfeature,$idgroup,$existgroup,$action){
  67. if($action == "add"){
  68. $addgroup = explode(',',$existgroup);
  69. if(!in_array($idgroup,$addgroup)){
  70. $addgroup[]=$idgroup;
  71. $addgroup = implode(',',$addgroup);
  72. $addgroup = array('groups'=>$addgroup);
  73. $this->crud->update("","menu_feature","id",$idfeature,$addgroup);
  74. }else{}
  75. }elseif($action == "delete"){
  76. $existgroup = explode(',',$existgroup);
  77. if(in_array($idgroup,$existgroup)){
  78. $idgroup = array($idgroup);
  79. $delgroup = array_diff($existgroup,$idgroup);
  80. $delgroup = implode(',',$delgroup);
  81. $delgroup = array('groups'=>$delgroup);
  82. $this->crud->update("","menu_feature","id",$idfeature,$delgroup);
  83. }
  84. }
  85. }
  86. }
  87. /* End of file menu.php */
  88. /* Location: ./application/controllers/menu.php */