public function actionEditPost()
 {
     $id = (int) \Yii::$app->request->post('id');
     $item_name = Html::decode(\Yii::$app->request->post('item_name'));
     $item_url = Html::decode(\Yii::$app->request->post('item_url'));
     $item_ifshow = \Yii::$app->request->post('item_ifshow');
     $item_opennew = \Yii::$app->request->post('item_opennew');
     $item_type = \Yii::$app->request->post('item_type');
     $item_vieworder = (int) \Yii::$app->request->post('item_vieworder', 0);
     $row = Nav::find()->select(['ctype', 'cid', 'is_show', 'type'])->where($id)->one();
     $arr = Nav::analyse_uri($item_url);
     if ($arr) {
         if ($row['ctype'] == $arr['type'] && $row['cid'] == $arr['id']) {
             //如果没有修改分类
             if ($item_type != 'middle') {
                 //位置不在中部
                 Nav::setShowInNav($arr['type'], $arr['id'], 0);
             }
         } else {
             //修改了分类
             if ($row['is_show'] == 1 && $row['type'] == 'middle') {
                 Nav::setShowInNav($row['ctype'], $row['cid'], 0);
                 //设置成不显示
             }
         }
         //分类判断
         if ($item_ifshow != Nav::isShowInNav($arr['type'], $arr['id']) && $item_type == 'middle') {
             Nav::setShowInNav($arr['type'], $arr['id'], $item_ifshow);
         }
         Nav::updateAll(['name' => $item_name, 'ctype' => $arr['type'], 'cid' => $arr['id'], 'is_show' => $item_ifshow, 'view_order' => $item_vieworder, 'open_new' => $item_opennew, 'url' => $item_url, 'type' => $item_type], 'id=:id', [':id' => $id]);
     } else {
         if ($row['ctype'] && $row['cid']) {
             Nav::setShowInNav($row['ctype'], $row['cid'], 0);
         }
         Nav::updateAll(['name' => $item_name, 'ctype' => '', 'cid' => '', 'is_show' => $item_ifshow, 'view_order' => $item_vieworder, 'open_new' => $item_opennew, 'url' => $item_url, 'type' => $item_type], 'id=:id', [':id' => $id]);
     }
     exit(UtilD::handleResult(true, \Yii::t('common', 'edit_ok')));
 }
Beispiel #2
0
 /**
  * 是否新窗口打开状态修改
  * @param $id
  * @param int $status
  * @return bool|int
  */
 public function setOpennew($id, $status = 1)
 {
     if (!in_array($status, [0, 1])) {
         return false;
     }
     return Nav::updateAll(['opennew' => $status], 'id = :id', [':id' => $id]);
 }