1. 程式人生 > >建立選單(存入資料庫,顯示在頁面中,同步資料)

建立選單(存入資料庫,顯示在頁面中,同步資料)

定義index方法,先呼叫getCurrentMp方法,判斷mp是否為空
public function index(){
      $mp = getCurrentMp();
      if (empty($mp)) {
         $this->error('沒有公眾號在使用',U('mp/index'));
       }
      $data = M('mp_menu')->where("mp_id = {$mp['id']}")->order('id')->select();
    // print_r($data);
    $data2 = $data;
        foreach ($data as $key1 => $value1) {
          foreach ($data2 as $key2 => $value2) {
            if($value1['index']==$value2['pindex']){
              $data[$key1]['sub'][]=$value2;
              unset($data[$key2]);
            }
          } 
    }
    // print_r($data);
    $this->assign('mpInfo',$mp);
    $this->assign('list',$data);
    $this->display();

  }
public function menuedit(){
       // $this->display();
      $mp = getCurrentMp();
      if (empty($mp)) {
         $this->ajaxReturn(array('error'=>true,'msg'=>'沒有公眾號在使用','url'=>U('mp/index')));
         exit;
      }
      $data1 = I('post.data');
      // print_r($data1);
      // exit;
      // $arr = array();
      //$data1 是自定義選單裡的 $mp 是rh_mp資料庫裡的
      foreach ($data1 as &$value) {
        //鍵名是自定義的,值是自定義選單裡的表單提交資訊
         // $row = array();
         // $row['mp_id'] = $mp['id'];
            $value['mp_id'] = $mp['id'];
         // $row['index'] = $value['index'];
         // $row['pindex'] = $value['name'];
         // $row['content'] = $value['code'];
         // $row['type'] = $value['type'];
         // $row['sort'] = $value['sort'];
         // $arr[] = $row;

      }
      $model = M('mp_menu');
      $model->where("mp_id={$mp['id']}")->delete();
      // $ret = M('mp_menu')->addAll($arr); 
      // $model->addAll($arr);
      $model->addAll($data1);
      //ajax返回的資料庫裡的資訊($arr);

      // $this->ajaxReturn(array('error'=>false,'data'=>$data1));
      // exit;

      $data2 = $data1;
        foreach ($data1 as $key1 => $value1) {
          foreach ($data2 as $key2 => $value2) {
            if($value1['id']==$value2['pid']){
              $data1[$key1]['type']='';
              $data1[$key1]['content']='';
              break;
            }
          }
          unset($data1[$key1]['sort']);
          if($value1['type']=='event'){
            $data1[$key1]['type'] = $value1['content'];
            $data[$key1]['content'] = 'K_'.rand(100,999);
          }
        }
      include APP_PATH .'LaneWeChat/lanewechat.php';
      $ret = Menu::setMenu($data1);
      // file_put_contents('menu.txt',$ret); 


    if($ret == true){
     $this->ajaxReturn(array('msg'=>'建立選單成功'));
    }else{
     $this->ajaxReturn(array('msg'=>$ret));
    }
    
   }


   //同步選單
  public function downmenu(){
    $mp = $this->mp;
    $mp_id = $mp['id'];

    include APP_PATH . 'LaneWeChat/lanewechat.php';
    $menu = Menu::getMenu($data);

    // print_r($menu);
    // // exit;

    // print_r($menu['menu']['button']);
    // exit;

    $menu = $menu['menu']['button'];

    $arr = array();
    $index = 1;
    foreach ($menu as $key => &$value) {
      $value['mp_id']= $mp_id;
      $value['index'] = $index;
      $value['pindex'] = 0;
      $value['sort'] = $index;
      
      if(!empty($value['sub_button'])){
        $value['type'] = '';//設定一級選單,預設值
        $value['content'] = '';//設定一級選單,預設值

        $sub_menu = $value['sub_button']; //把二級選單入到變數$sub_menu
        unset($value['sub_button']);
        $arr[] = $value;

        $subindex = 1;
        foreach ($sub_menu as $subkey=>&$subvalue) {
          $subvalue['mp_id'] = $mp_id;
          $subvalue['index'] = $index . $subindex;
          $subvalue['pindex'] = $index;
          $subvalue['sort'] = $subindex;

          if($subvalue['type']== 'click'){
            $subvalue['content'] = $subvalue['key'];
            unset($subvalue['key']);
          }else if($subvalue['type']=='view'){
            $subvalue['content'] = $subvalue['url'];
            unset($subvalue['url']);
          }else {
             
             $subvalue['content'] = $subvalue['type'];
             $subvalue['type'] = 'event';
             unset($subvalue['key']);
          }

          unset($subvalue['sub_button']);
          $arr[] = $subvalue;

          $subindex++;
        }
        
      }else{
        if($value['type']== 'click'){
          $value['content'] = $value['key'];
          unset($value['key']);
        }else if($value['type']=='view'){
          $value['content'] = $value['url'];
          unset($value['url']);
        }else {
           
           $value['content'] = $value['type'];
           $value['type'] = 'event';
           unset($value['key']);
        }

        unset($value['sub_button']);
        $arr[] = $value;
      }
      $index++;
    }

    // print_r($arr);
// exit;

    $model = M('mp_menu');
    $model->where("mp_id={$mp['id']}")->delete();
    foreach ($arr as $key => $value) {
      $model->add($value);  
    }
    $this->redirect('index');
    
  }