public function getArticle($id = 0) { try { if (empty($id)) { throw new \Exception("Error request [10]"); } $model = \Wintness::where('status', '=', '1')->find($id); if (empty($model)) { throw new \Exception('Error request [11]'); } $list = array('cover' => array('fieldName' => 'cover', 'items' => array()), 'before' => array('fieldName' => 'img_before', 'items' => array()), 'after' => array('fieldName' => 'img_after', 'items' => array()), 'gallery' => array('fieldName' => 'gallery', 'items' => array())); foreach ($list as $key => $val) { $bool = $key == 'gallery' || $key == 'tabs' ? false : true; $list[$key]['items'] = json_decode($model->{$val}['fieldName'], $bool); } $labels = array(); $rows = \WintnessLabels::where('wid', '=', $model->id)->lists('label_id'); if (!empty($rows)) { $labels = $rows; } $labelList = array('service' => array(), 'faq' => array()); $rows = \ServiceFaq::where('status', '=', 'Y')->orderBy('_parent', 'desc')->orderBy('sort', 'desc')->orderBy('updated_at', 'desc')->findMany($labels, array('id', 'title', 'type')); if (!empty($rows)) { foreach ($rows as $row) { $labelList[$row->type][] = array('id' => $row->id, 'title' => $row->title); } } // find prev and next $prev = \Wintness::where('status', '=', '1')->where('sort', '>=', $model->sort)->where('updated_at', '>', $model->updated_at)->first(array('id', 'title')); $next = \Wintness::where('status', '=', '1')->where('sort', '<=', $model->sort)->where('updated_at', '<', $model->updated_at)->first(array('id', 'title')); // read service $servicefaq = \ServiceFaq::where('status', '=', 'Y')->orderBy('type', 'asc')->orderBy('_parent', 'desc')->orderBy('sort', 'desc')->orderBy('updated_at', 'desc')->get(array('id', 'title', '_parent', 'type')); $servicesFaqs = array('service' => array(), 'faq' => array()); foreach ($servicefaq as $item) { $key = $item->id; $parent = $item->_parent; $items = $servicesFaqs[$item->type]; if ($parent == 'N') { if (!isset($items[$key])) { $items[$key] = array('id' => $key, 'title' => $item->title, 'subItems' => array()); } } else { $items[$parent]['subItems'][] = array('id' => $key, 'title' => $item->title); } $servicesFaqs[$item->type] = $items; } $tabs = \Tabs::where('type', '=', 'wintness')->where('item_id', '=', $model->id)->orderBy('sort', 'desc')->get(array('title', 'content')); return \View::make('aesthetics.wintness.view_article', array('bodyId' => 'casePost', 'labelList' => &$labelList, 'list' => &$list, 'model' => &$model, 'prev' => $prev, 'next' => $next, 'servicesFaqs' => &$servicesFaqs, 'tabs' => &$tabs)); } catch (Exception $e) { return \Redirect::route('frontend.wintness.index'); } }
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()); } }