public function postArticleAction() { try { if (!isset($_POST['id'])) { throw new Exception("Error Processing Request [10]"); } $id = (int) Arr::get($_POST, 'id', null); if (empty($id)) { $model = new Wintness(); } else { $model = Wintness::find($id); if ($model == null) { throw new Exception("Error Processing Request [11]"); } } // collect image uploader /* * (array) currentList * (string) competeKey * (array) newList * (string) deleteFieldName */ $delImages = Arr::get($_POST, 'deleteImages', array()); $delLength = sizeof($delImages); for ($i = 0; $i < $delLength; $i++) { $delLength[$i] = basename($delLength); } $imgUploaderList = array('cover' => array('fieldName' => 'cover', 'items' => null), 'before' => array('fieldName' => 'img_before', 'items' => null), 'after' => array('fieldName' => 'img_after', 'items' => null), 'gallery' => array('fieldName' => 'gallery', 'items' => null)); foreach ($imgUploaderList as $key => $val) { $imgs = json_decode($model->{$val}['fieldName']); if (!empty($imgs) && sizeof($imgs) > 0) { foreach ($imgs as $img) { if ($delLength > 0 && in_array($img->id, $delImages)) { fps::getInstance()->delete($img->image); } } } $list = array(); $descFieldName = $val['fieldName'] . '_desc'; $imagesDesc = Input::get($descFieldName, array()); $images = Input::get($val['fieldName'], array()); foreach ($images as $idx => $image) { $list[] = array('id' => basename($image), 'image' => $image, 'text' => $imagesDesc[$idx]); } $imgUploaderList[$key]['items'] = $list; } $status = (int) Arr::get($_POST, 'status', 0); $isInSiderbar = (int) Arr::get($_POST, 'isInSiderbar', 0); $model->title = Input::get('title'); $model->background_color = Input::get('background_color', '#ccc'); $model->cover = json_encode($imgUploaderList['cover']['items']); $model->img_before = json_encode($imgUploaderList['before']['items']); $model->img_after = json_encode($imgUploaderList['after']['items']); $model->description = Input::get('description', ''); $model->gallery = json_encode($imgUploaderList['gallery']['items']); $model->status = $status % 2; $model->isInSiderbar = $isInSiderbar % 2; $model->created_at = time(); $model->updated_at = time(); $model->save(); WintnessLabels::where('wid', '=', $model->id)->delete(); $types = array('service', 'faq'); foreach ($types as $type) { $fieldName = 'label_' . $type; $labels = Input::get($fieldName, array()); foreach ($labels as $label) { WintnessLabels::create(array('wid' => (int) $model->id, 'label_id' => (int) $label)); } } Tabs::where('type', '=', 'wintness')->where('item_id', '=', $model->id)->delete(); // collect tabs $tabContents = Input::get('tabContents', array()); $tabs = array(); $tabName = Input::get('tabName', array()); $order = 1; foreach ($tabName as $key => $tab) { if (!isset($tabContents[$key])) { continue; } else { Tabs::create(array('type' => 'wintness', 'item_id' => $model->id, 'title' => $tab, 'content' => $tabContents[$key], 'sort' => $order++)); } } return Redirect::route('admin.wintness.article.list', array('page' => 1, 'message' => 'success')); } catch (Exception $e) { return Redirect::back()->withInput()->withErrors($e->getMessage()); } }