Esempio n. 1
0
 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()));
     }
 }
Esempio n. 6
0
<?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">