public function getReply($boardId) { $b = Board::find($boardId, array('id', 'content')); $board = array(); if ($b !== null) { $board = $b->getAttributes(); } $r = BoardReply::where('board_id', '=', $boardId)->orderBy('created_at', 'desc')->first(array('tags', 'content')); $reply = array(); if ($r !== null) { $reply = $r->getAttributes(); } // prepare faq $faqs = ServiceFaq::where('type', '=', 'faq')->where('_parent', '<>', 'N')->orderBy('sort', 'desc')->get(array('id', 'title')); $items = array(); foreach ($faqs as $m) { $items[$m->id] = $m->title; } $tags = Arr::get($reply, 'tags', null); if ($tags == null) { $selected = $tags; } else { $selected = unserialize($tags); } return View::make('admin.board.view_reply', array('board' => $board, 'reply' => $reply, 'lblWidgetOptions' => array('elementId' => 'label-panel', 'fieldName' => 'labels[]', 'formTitle' => '常見問題標籤', 'items' => &$items, 'selected' => $selected))); }
public function getArticleAction($id = null) { try { $article = array('id' => null, 'status' => 1, 'isInSiderbar' => 0); if ($id != null) { $article = Wintness::find($id)->toArray(); if (empty($article)) { throw new Exception('Error request [10]'); } } $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) { $value = Arr::get($article, $val['fieldName'], null); $imgUploaderList[$key]['items'] = empty($value) ? array() : json_decode($value, true); } // detect is the request has tabs $rows = Tabs::where('type', '=', 'wintness')->where('item_id', '=', $article['id'])->orderBy('sort', 'asc')->get(array('title', 'content', 'sort')); $tabItems = array(); if (!empty($rows)) { foreach ($rows as $r) { $tabItems[] = $r->toArray(); } } else { if (($tabNames = Input::old('tabName', null)) !== null && ($tabContents = Input::old('tabContents', null)) !== null) { $order = 1; foreach ($tabNames as $key => $tab) { if (!isset($tabContents[$key])) { continue; } $tabItems[] = array('title' => $tab, 'content' => $tabContents[$key], 'sort' => $order); } } } $labelItmes = array('service' => array(), 'faq' => array()); $list = ServiceFaq::where("status", "=", 'Y')->where('_parent', '<>', 'N')->orderBy('_parent', 'desc')->orderBy('sort', 'desc')->orderBy('updated_at', 'desc')->get(array('id', 'title', 'type')); foreach ($list as $item) { $labelItmes[$item->type][$item->id] = $item->title; } $labelSelected = WintnessLabels::where('wid', '=', $article['id'])->lists('label_id'); return View::make('admin.wintness.view_article_action', array('article' => $article, 'labelItems' => &$labelItmes, 'labelSelected' => &$labelSelected, 'tabItems' => &$tabItems, 'imgUploaderList' => &$imgUploaderList)); } catch (Exception $e) { return Redirect::route('admin.wintness.article.list', array('errorMessage' => $e->getMessage())); } }
private function getNavigation($type) { $rows = \ServiceFaq::where('type', '=', $type)->where('status', '=', 'Y')->orderBy('_parent', 'desc')->orderBy('sort', 'desc')->orderBy('updated_at', 'desc')->get(); $navs = array(); if (sizeof($rows) == 0) { return $navs; } foreach ($rows as $r) { $p = $r->_parent; $id = $r->id; if ($p !== 'N') { if (isset($navs[$p])) { $navs[$p]['childs'][] = array('id' => $id, 'title' => $r->title); } } else { if (!isset($navs[$id])) { $navs[$id] = array('id' => $id, 'title' => $r->title, 'childs' => array()); } } } return $navs; }
public function getAjaxArticles() { try { $page = \Arr::get($_GET, 'page', null); $itemId = (int) \Arr::get($_GET, 'item', null); $keyword = \Arr::get($_GET, 'keyword', null); if (empty($page)) { throw new \Exception("Error request [10]"); } $page = (int) $page; $limit = 10; $offset = ($page - 1) * $limit; $cmd = \DB::table('wintness')->select('wintness.id', 'wintness.title', 'wintness.cover', 'wintness.background_color', 'wintness.description')->where('wintness.status', '=', '1')->orderBy('wintness.sort', 'desc')->orderBy('wintness.updated_at', 'desc')->skip($offset)->take($limit); if ($itemId >= 1) { $cmd = $cmd->join('wintness_labels', 'wintness.id', '=', 'wintness_labels.wid')->where('wintness_labels.label_id', '=', $itemId); } if (!empty($keyword)) { $format = '(`tabs`.`title` like "%s" or `tabs`.`content` like "%s" or `wintness`.`title` like "%s" or `wintness`.`description` like "%s")'; $keyword = '%' . $keyword . '%'; $cmd = $cmd->join('tabs', 'wintness.id', '=', 'tabs.item_id')->where('tabs.type', '=', 'wintness')->whereRaw(sprintf($format, $keyword, $keyword, $keyword, $keyword))->groupBy('wintness.id'); } $rows = $cmd->get(); $data = array(); if (!empty($rows)) { foreach ($rows as $row) { $cover = json_decode($row->cover, true); $row->cover = !empty($cover) ? $cover[0]['image'] : 'null'; $labels_service = \WintnessLabels::where('wid', '=', $row->id)->lists('label_id'); $services = null; if (!empty($labels_service)) { $services = \ServiceFaq::where('status', '=', 'Y')->where('type', '=', 'service')->whereIn('id', $labels_service)->get(array('id', 'title')); } $labelList = array(); if (!empty($services)) { foreach ($services as $idx => $label) { $label->link = \URL::route('frontend.service_faq.article', array('type' => 'service', 'id' => $label->id)); $labelList[] = $label->toArray(); } } $row->label_faq = $labelList; $row->description = \Text::preEllipsize($row->description, 46, 0.6); $data[] = (array) $row; } } return \Response::json(array('status' => 'ok', 'data' => $data, 'item' => $itemId)); } catch (Excpetion $e) { return \Response::json(array('status' => 'error', 'message' => $e->getMessage())); } }
public function postUpdateSort($type) { $this->beforeAction($type); try { if (!isset($_POST) || !isset($_POST['id']) || !isset($_POST['sort']) || !isset($_POST['role'])) { throw new Exception('Error request [10]'); } $id = (int) Arr::get($_POST, 'id'); $role = Arr::get($_POST, 'role'); $sort = (int) Arr::get($_POST, 'sort'); $isUpdatedTime = Arr::get($_POST, 'isUpdatedTime', false); $lastUpdatedId = Arr::get($_POST, 'lastUpdatedId', false); $model = ServiceFaq::find($id); if (empty($model)) { throw new Exception("Error request [11]"); } $model->sort = $sort; if (!$model->save()) { throw new Exception("更新排序失敗,請通知工程師"); } if ($isUpdatedTime) { $cmd = ServiceFaq::where('id', '<>', $id)->where('sort', '=', $sort)->where('id', '>=', $lastUpdatedId)->orderBy('sort', 'desc')->orderBy('updated_at', 'desc'); if ($role == 'category') { $cmd->where('_parent', '=', 'N'); } else { $cmd->where('_parent', '=', $model->_parent); } $items = $cmd->get(); if (sizeof($items) > 0) { $t = time(); foreach ($items as $key => $item) { $t = $t + $key; $item->updated_at = $t; $item->save(); } } } return Response::json(array('status' => 'ok', 'message' => '更新排序完成')); } catch (Exception $e) { return Response::json(array('status' => 'error', 'message' => $e->getMessage())); } }
<?php $servicefaq = ServiceFaq::where('status', '=', 'Y')->orderBy('type', 'asc')->orderBy('_parent', 'desc')->orderBy('sort', 'desc')->orderBy('updated_at', 'desc')->get(); $servicesFaqs = array('service' => array(), 'faq' => array()); foreach ($servicefaq as $item) { $key = $item->id; $parent = $item->_parent; $list = $servicesFaqs[$item->type]; if ($parent == 'N') { if (!isset($list[$key])) { $list[$key] = array('title' => $item->title, 'subItems' => array()); } } else { $list[$parent]['subItems'][] = $item; } $servicesFaqs[$item->type] = $list; } ?> <nav id="mainNav" role="navigation"> <ul class="lv0"> <li> <a href="#">關於煥儷</a> <ul class="subNav lv1"> @foreach (ArticlesController::getNav(1) as $article) <li><a href="{{ URL::to('articles/'.$article->id) }}">{{ $article->title }}</a></li> @endforeach </ul> </li> <li> <a href="#">服務項目</a> <ul class="subNav lv1">