示例#1
0
 public function action_Department($Kid)
 {
     //CSRF対策
     $this->data['token_key'] = Config::get('security.csrf_token_key');
     $this->data['token'] = Security::fetch_token();
     //カテゴリごとの投稿件数を取得
     $count = Model_Post::query()->where('Kid', '=', $Kid)->count();
     //ページネーションの設定(カテゴリごとの投稿表示仕様)
     $config = array('pagination_url' => 'noteshare/list/' . $Kid, 'uri_segment' => 3, 'num_links' => 3, 'per_page' => $this->per_page, 'total_items' => $count, 'show_first' => true, 'show_last' => true);
     $pagination = Pagination::forge('post_pagination', $config);
     $this->data['posts'] = Model_Post::query()->where('Kid', '=', $Kid)->order_by('Ptime', 'desc')->limit($this->per_page)->offset($pagination->offset)->get();
     $this->data['department'] = Model_Category::query()->where('Kid', '=', $Kid)->get();
     $this->action_categorize();
     //homeのビューオブジェクトを生成
     if (!$count) {
         $this->data['error'] = true;
         $view = View::forge('list/DepartmentList', $this->data);
         $view->set_safe('pagination', $pagination);
         //メッセージの定義
     } else {
         $view = View::forge('list/DepartmentList', $this->data);
         $view->set_safe('pagination', $pagination);
     }
     return $view;
 }
 public function action_Edit($Kid = 0)
 {
     //ドロップダウンリストの生成
     $select = Model_College::get_list();
     $Kid and $this->data['category'] = Model_Category::query()->where('Kid', '=', $Kid)->get();
     if (Input::post()) {
         $val = Model_Category::validate();
         if ($val->run()) {
             $query = DB::update('Category')->set(array('Cid' => Input::post('college'), 'Kname' => Input::post('Kname'), 'Kkana' => Input::post('Kkana'), 'luID' => Auth::get_screen_name()))->where('Kid', '=', $Kid)->execute();
             Response::redirect('category');
         } else {
             $this->message = $val->error();
             $view = View::forge('categorymanagement/CategoryEdit', $this->data);
             $view->set_global('message', $this->message, false);
             //ドロップダウン箇所のセット
             $view->set_global('select', $select, false);
         }
     } else {
         $view = View::forge('categorymanagement/CategoryEdit', $this->data);
         $view->set_global('message', $this->message, false);
         //ドロップダウン箇所のセット
         $view->set_global('select', $select, false);
     }
     return $view;
 }
示例#3
0
 public function action_index()
 {
     $this->dataGlobal['pageTitle'] = __('backend.category.manage');
     $per_page = floor(Model_Category::count() / 2);
     // Pagination
     $config = array('pagination_url' => \Uri::current(), 'total_items' => Model_Category::count(), 'per_page' => $per_page, 'uri_segment' => 'page');
     $this->data['pagination'] = $pagination = \Pagination::forge('category_pagination', $config);
     // Get categories
     $this->data['categories'] = Model_Category::query()->offset($pagination->offset)->limit($pagination->per_page)->order_by('created_at', 'DESC')->get();
     return \Response::forge(\View::forge('backend/category/index')->set($this->data, null, false));
 }
示例#4
0
 /**
  * Get all categorys from author
  * @param  string $author username
  */
 public function action_show_by_author($author = false)
 {
     $author = $this->data['author'] = \Model_User::query()->where('username', $author)->get_one();
     if (!$author) {
         \Messages::error(__('frontend.author.not-found'));
         \Response::redirect_back(\Router::get('homepage'));
     } else {
         // Pagination
         $config = array('pagination_url' => \Uri::current(), 'total_items' => count($author->posts), 'per_page' => \Config::get('application.pagination.per_page'), 'uri_segment' => 'page');
         $this->data['pagination'] = $pagination = \Pagination::forge('category_pagination', $config);
         // Get categorys
         $this->data['categories'] = Model_Category::query()->where('user_id', $author->id)->order_by('created_at', 'DESC')->offset($pagination->offset)->limit($pagination->per_page)->get();
         return \Response::forge(\View::forge('frontend/category/author')->set($this->data, null, false));
     }
 }
示例#5
0
 public function action_show_by_category($category = false)
 {
     $category = $this->data['category'] = Model_Category::query()->where('slug', $category)->get_one();
     if (!$category) {
         \Messages::error(__('frontend.category.not-found'));
         \Response::redirect_back(\Router::get('homepage'));
     } else {
         // Pagination
         $config = array('pagination_url' => \Uri::current(), 'total_items' => $category->post_count, 'per_page' => \Config::get('application.pagination.per_page'), 'uri_segment' => 'page');
         $this->data['pagination'] = $pagination = \Pagination::forge('category_pagination', $config);
         // Get posts
         $this->data['posts'] = Model_Post::query()->where('category_id', $category->id)->order_by('created_at', 'DESC')->get();
         return \Response::forge(\View::forge('frontend/post/category')->set($this->data, null, false));
     }
 }
示例#6
0
 public function get_navSubCategories()
 {
     /*
      * Initially get sub categories by post slug and default to world category
      * On subsequent requests get sub categories by category slug
      */
     $slug = \Input::get('slug');
     $slugType = \Input::get('slugType');
     /* [ post | category ] */
     $category = false;
     if ($slugType === 'post') {
         $post = Model_Post::query()->where('slug', $slug)->get_one();
         if ($post) {
             $category = Model_Category::query()->where('id', $post->category_id)->get_one();
             $category = Model_Category::query()->where('id', $category->parent_id)->get_one();
             if (!$category) {
                 $category = Model_Category::query()->where('id', $post->category_id)->get_one();
             }
         } else {
             $cat_id = 1;
             $cat_name = 'world';
         }
     } elseif ($slugType == 'category') {
         $category = Model_Category::query()->where('slug', $slug)->get_one();
     }
     if (!$category) {
         $cat_id = 1;
         $cat_name = 'world';
     } else {
         $cat_id = $category->id;
         $cat_name = $category->name;
     }
     $subCategories = Model_Category::query()->where('parent_id', $cat_id)->get();
     $posts = array();
     $subSections = array();
     $gallery = array();
     $data = array();
     foreach ($subCategories as $key => $cat) {
         $subCategories[$key]['posts'] = Model_Post::query()->where('category_id', $cat->id)->related('galleries')->limit(3)->get();
         foreach ($subCategories[$key]['posts'] as $k => $post) {
             $gallery[$key][$k] = \Model_Gallery::query()->where('post_id', $post->id)->related('asset')->get_one();
         }
     }
     $subCategories['section'] = $cat_name;
     return $this->response = $subCategories;
 }
示例#7
0
 public function action_index()
 {
     $data = array();
     $message = '';
     $username = Auth::get_screen_name();
     $class = Auth::get('classID');
     $data['posts'] = Model_Post::query()->where('username', '=', $username)->order_by('Ptime', 'desc')->get();
     $data['users'] = Model_Users::query()->where('username', '=', $username)->get();
     //同じクラスのユーザを取得
     $data['classname'] = Model_Class::query()->where('classID', '=', $class)->get();
     $data['classuser'] = Model_Users::query()->where('classID', '=', $class)->get();
     $data['categorize'] = Model_Category::query()->where('df', '=', '0')->get();
     $view = View::forge('mypage/mypage', $data);
     $view->username = $username;
     $view->set_global('message', $message, false);
     return $view;
 }
示例#8
0
 public function action_send($Pid = 0)
 {
     $this->action_csrf();
     $val = Validation::forge();
     $val->add('sentence', '通報内容')->add_rule('required');
     $username = Auth::get_screen_name();
     $address = Auth::get_email();
     $problem = Input::post('problem');
     $email = Email::forge();
     $email->from('*****@*****.**');
     $email->to($address);
     $email->subject('投稿ID ' . $Pid . '番に対する「' . $problem . '」の通報がありました。');
     $body = Input::post('sentence');
     $email->body($body);
     if ($val->run()) {
         if (Security::check_token()) {
             try {
                 $email->send();
                 $view = View::forge('problemreport/success');
                 return $view;
             } catch (\EmailValidationFailedException $e) {
                 $view = View::forge('welcome/404');
                 return $view;
             } catch (\EmailSendingFailedException $e) {
             }
         } else {
             $this->error['csrf'] = '「CSRFエラー」です。<br>もう一度最初からアクセスし直してください。。';
             $this->action_csrf();
             $this->action_post($Pid);
             $this->data['categorize'] = Model_Category::query()->where('df', '=', '0')->get();
             $view = View::forge('problemreport/ProblemReport', $this->data);
             $view->set_global('error', $this->error, false);
             return $view;
         }
     } else {
         $this->error = $val->error();
         $this->action_csrf();
         $this->action_post($Pid);
         $this->data['categorize'] = Model_Category::query()->where('df', '=', '0')->get();
         $view = View::forge('problemreport/ProblemReport', $this->data);
         $view->set_global('error', $this->error, false);
         return $view;
     }
 }
示例#9
0
 public static function valid_by($where = array())
 {
     $result = Model_Category::query()->where($where);
     return $result->count() > 0;
 }
 public function action_categorise()
 {
     $this->data['categorize'] = Model_Category::query()->where('df', '=', '0')->get();
     return $this->data;
 }
示例#11
0
 public function action_SerchResultUser()
 {
     if (Input::get('keywords2')) {
         $search = Input::get('keywords2');
         //検索文字を空白(全角又は半角)で区切って配列に代入
         $keywords = preg_split('/ |\\s/', $search);
         foreach ($keywords as $key => $keyword) {
             $keywords[$key] = ' (Title LIKE "%' . $keyword . '%"';
             $keywords[$key] .= 'OR Pcontent LIKE "%' . $keyword . '%")';
         }
         $where = implode('OR', $keywords);
         $sql = sprintf("SELECT * FROM Post JOIN users ON Post.username = users.username WHERE %s ORDER BY `Pid` DESC", $where);
         $data['posts'] = DB::query($sql)->execute()->as_array();
         if (empty($data['posts'])) {
             //該当する投稿がなかった時
             $error = '該当する投稿はありませんでした。';
             $data['categorize'] = Model_Category::query()->where('df', '=', '0')->get();
             $view = View::forge('search/SearchResultUser', $data);
             $view->set_global('error', $error, false);
         } else {
             //該当する投稿があった時
             $error = '';
             $data['categorize'] = Model_Category::query()->where('df', '=', '0')->get();
             $data['coment'] = Model_Post::find('all');
             $view = View::forge('search/SearchResultUser', $data);
             $view->set_global('error', $error, false);
         }
     } else {
         //検索バーに値が入力されていなかった時
         $error = '検索する値が入力されていません。';
         $data['categorize'] = Model_Category::query()->where('df', '=', '0')->get();
         $view = View::forge('search/SearchResultUser', $data);
         $view->set_global('error', $error, false);
     }
     return $view;
 }