예제 #1
0
 public static function top_news()
 {
     $orderby = array('news_id' => self::ORDER_DESC);
     $filter = array('importance' => self::TYPE_TOP, 'defunct' => Model_News::DEFUNCT_NO);
     $news_list = Model_News::find($filter, 1, 10, $orderby);
     return $news_list;
 }
예제 #2
0
 public function action_index()
 {
     $page = $this->get_query('page', 1);
     $limit = $this->get_query('limit', 50);
     $orderby = array('news_id' => 'DESC');
     $news_list = Model_News::find(array(), $page, $limit, $orderby);
     $this->template_data['title'] = __('admin.news.index.news_list');
     $this->template_data['news_list'] = $news_list;
 }
예제 #3
0
파일: news.php 프로젝트: ClixLtd/pccupload
 public function action_delete($id = null)
 {
     if ($news = Model_News::find($id)) {
         $news->delete();
         Session::set_flash('success', 'Deleted news #' . $id);
     } else {
         Session::set_flash('error', 'Could not delete news #' . $id);
     }
     Response::redirect('news');
 }
예제 #4
0
 public function action_index()
 {
     if ($this->user->birthday == "0000-00-00") {
         Response::redirect("teachers/setting/new");
     }
     $data["reservations"] = Model_Lessontime::find("all", ["where" => [["deleted_at", 0], ["teacher_id", $this->user->id], ["status", 1], ["freetime_at", ">=", time()]], "order_by" => [["id", "desc"]]]);
     $data["feedbacks"] = Model_Lessontime::find("all", ["where" => [["deleted_at", 0], ["teacher_id", $this->user->id], ["status", "<>", 0], ["status", "<>", 3], ["feedback", ""], ["freetime_at", "<=", time()]], "order_by" => [["id", "desc"]]]);
     $data["news"] = Model_News::find("all", ["where" => [["deleted_at", 0], ["for_teachers", 1]], "order_by" => [["id", "desc"]], "limit" => 5]);
     $data["user"] = $this->user;
     $view = View::forge("teachers/top", $data);
     $this->template->content = $view;
 }
예제 #5
0
 public function get_search_items()
 {
     /************ Start generating query ***********/
     $items = Model_News::find(function ($query) {
         // Get search filters
         foreach (\Input::get() as $key => $value) {
             if (!empty($value) || $value == '0') {
                 switch ($key) {
                     case 'title':
                         $query->where($key, 'like', "%{$value}%");
                         break;
                     case 'featured':
                         if (is_numeric($value)) {
                             $query->where($key, $value);
                         }
                         break;
                     case 'status':
                         if (is_numeric($value)) {
                             $query->where($key, $value);
                         }
                         break;
                     case 'active_from':
                         $date = strtotime($value);
                         if ($date) {
                             $query->where($key, '>=', $date);
                         }
                         break;
                     case 'active_to':
                         $date = strtotime($value);
                         if ($date) {
                             $query->where($key, '<=', $date);
                         }
                         break;
                 }
             }
         }
         // Order query
         $query->order_by('sort', 'asc');
         $query->order_by('id', 'asc');
     });
     /************ End generating query ***********/
     // Reset to empty array if there are no result found by query
     if (is_null($items)) {
         $items = array();
     }
     // Initiate pagination
     $pagination = \Hybrid\Pagination::make(array('total_items' => count($items), 'per_page' => \Input::get('per_page', 10), 'uri_segment' => null));
     // Remove unwanted items, and show only required ones
     $items = array_slice($items, $pagination->offset, $pagination->per_page);
     $status = array('false' => 'Select', '1' => 'Active', '0' => 'Inactive', '2' => 'Active in period');
     return array('items' => $items, 'pagination' => $pagination, 'status' => $status);
 }
예제 #6
0
파일: news.php 프로젝트: roine/wawaw
 public function action_delete($id = null)
 {
     if (!Auth::has_access('news.delete')) {
         Session::set_flash('warning', 'You don\'t have the right to delete a news');
         Response::redirect('admin');
     }
     if ($news = Model_News::find($id)) {
         $news->delete();
         Session::set_flash('success', 'Deleted news #' . $id);
     } else {
         Session::set_flash('error', 'Could not delete news #' . $id);
     }
     Response::redirect('news');
 }
예제 #7
0
 public function action_index()
 {
     if ($this->user->birthday == "0000-00-00") {
         Response::redirect("students/setting/new");
     }
     $data["reservations"] = Model_Lessontime::find("all", ["where" => [["deleted_at", 0], ["student_id", $this->user->id], ["status", 1], ["freetime_at", ">=", time()]], "order_by" => [["id", "desc"]]]);
     $data["lastClass"] = Model_Lessontime::find("last", ["where" => [["student_id", $this->user->id], ["status", 2], ["language", Input::get("course", 0)], ["deleted_at", 0]]]);
     $data["lesson"] = Model_Lessontime::find("first", ["where" => [["deleted_at", 0], ["student_id", $this->user->id], ["status", 1], ["freetime_at", "<=", time() + 1800], ["freetime_at", ">=", time() - 1800]]]);
     $data["news"] = Model_News::find("all", ["where" => [["deleted_at", 0], ["for_students", 1]], "order_by" => [["id", "desc"]], "limit" => 5]);
     $data["pasts"] = Model_Lessontime::find("all", ["where" => [["student_id", $this->user->id], ["status", 2], ["language", Input::get("course", 0)], ["deleted_at", 0]]]);
     $data["donetrial"] = Model_Lessontime::find("all", ["where" => [["student_id", $this->user->id], ["status", 2], ["language", Input::get("course", -1)], ["deleted_at", 0]]]);
     $data["user"] = $this->user;
     $view = View::forge("students/top", $data);
     $this->template->content = $view;
 }
예제 #8
0
 public function action_detail($id)
 {
     $data["news"] = Model_News::find($id, ["where" => [["deleted_at", 0], ["for_teachers", 1]]]);
     if ($data["news"] == null) {
         Response::redirect("teachers/news");
     }
     $is_read = Model_Readnews::find("first", ["where" => [["user_id" => $this->user->id], ["news_id" => $id]]]);
     if ($is_read == null) {
         $is_read = Model_Readnews::forge();
         $is_read->user_id = $this->user->id;
         $is_read->news_id = $id;
         $is_read->save();
     }
     $data["user"] = $this->user;
     $view = View::forge("teachers/news/detail", $data);
     $this->template->content = $view;
 }
예제 #9
0
 public function post_delnews()
 {
     $code = 0;
     $message = "ok";
     if ($this->auth_status) {
         $news = Model_News::find(Input::post("id", 0));
         if ($news != null) {
             $news->deleted_at = time();
             $news->save();
         } else {
             $code = 404;
             $message = "Content not found.";
         }
     } else {
         $code = 500;
         $message = "Auth error.";
     }
     $this->response(array('code' => $code, 'message' => $message));
 }
예제 #10
0
 public function action_detail($id)
 {
     $data["news"] = Model_News::find($id, ["where" => [["deleted_at", 0], ["for_students", 1]]]);
     $data['pasts'] = Model_Lessontime::find("all", ["where" => [["student_id", $this->user->id], ["status", 2], ["language", Input::get("course", 0)], ["deleted_at", 0]]]);
     $data["donetrial"] = Model_Lessontime::find("all", ["where" => [["student_id", $this->user->id], ["status", 2], ["language", Input::get("course", -1)], ["deleted_at", 0]]]);
     if ($data["news"] == null) {
         Response::redirect("students/news");
     }
     $is_read = Model_Readnews::find("first", ["where" => [["user_id" => $this->user->id], ["news_id" => $id]]]);
     if ($is_read == null) {
         $is_read = Model_Readnews::forge();
         $is_read->user_id = $this->user->id;
         $is_read->news_id = $id;
         $is_read->save();
     }
     $data["user"] = $this->user;
     $view = View::forge("students/news/detail", $data);
     $this->template->content = $view;
 }
예제 #11
0
 /**
  * Get additional content data selected
  * 
  * @param $result = Query result
  */
 public static function post_find($result)
 {
     if ($result !== null) {
         if (is_array($result)) {
             foreach ($result as $item) {
                 // It will first check if we already have result in temporary result,
                 // and only execute query if we dont. That way we dont have duplicate queries
                 // Get content images
                 $item->get_images = static::lazy_load(function () use($item) {
                     return Model_Image::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'images');
                 // Get content files
                 $item->get_files = static::lazy_load(function () use($item) {
                     return Model_File::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'files');
                 // Get content videos
                 $item->get_videos = static::lazy_load(function () use($item) {
                     return Model_Video::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'videos');
                 // Get content children
                 $item->get_children = static::lazy_load(function () use($item) {
                     return Model_News::find(array('where' => array('parent_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'children');
                 // Get content accordions
                 $item->get_accordions = static::lazy_load(function () use($item) {
                     return Model_Accordion::find(array('where' => array('parent_id' => $item->id), 'order_by' => array('sort' => 'asc')));
                 }, $item->id, 'accordions');
                 // Get content children
                 $item->get_seo = static::lazy_load(function () use($item) {
                     return Model_Seo::find_one_by_content_id($item->id);
                 }, $item->id, 'seo', 'object');
             }
         }
     }
     // return the result
     return $result;
 }
예제 #12
0
 public function action_edit($id = 0)
 {
     if (Input::post('action') == 'confirm') {
         foreach ($this->fields as $field) {
             Session::set_flash($field, Input::post($field));
         }
         $data = array();
         foreach ($this->fields as $field) {
             $data[$field] = Session::get_flash($field);
             Session::keep_flash($field);
         }
         $this->template->content = View::forge('admin/news/confirm', $data);
     } else {
         $data["news"] = Model_News::find($id);
         if ($data["news"] == null) {
             $data["news"] = Model_News::forge();
         }
         // add
         if (Session::get_flash('title') != null and Security::check_token()) {
             // save
             $news = $data["news"];
             $news->for_teachers = Session::get_flash("for_teachers", 0);
             $news->for_students = Session::get_flash("for_students", 0);
             $news->title = Session::get_flash("title");
             $news->body = Session::get_flash("body");
             if ($news->for_students == null) {
                 $news->for_students = 0;
             }
             if ($news->for_teachers == null) {
                 $news->for_teachers = 0;
             }
             $news->save();
             $body = View::forge("email/news");
             $body->set("title", $news->title);
             $body->set("body", $news->body);
             if ($news->for_teachers == 1) {
                 $teachers = Model_User::find("all", ["where" => [["group_id", 10], ["deleted_at", 0]], "order_by" => [["id", "desc"]]]);
                 foreach ($teachers as $teacher) {
                     $sendmail = Email::forge("JIS");
                     $sendmail->from(Config::get("statics.info_email"), Config::get("statics.info_name"));
                     $sendmail->to($teacher->email);
                     $sendmail->subject("{$news->title} / Game-bootcamp");
                     $sendmail->html_body("Dear {$teacher->firstname},<br><br>" . htmlspecialchars_decode($body) . "If you are no longer interested, you can " . "<a href=" . Uri::base() . "?" . md5('id') . "={$teacher->id}/unsubscribe=" . md5($teacher->email) . ">Unsubscribe.</a>");
                     $sendmail->send();
                 }
             }
             if ($news->for_students == 1) {
                 $students = Model_User::find("all", ["where" => [["group_id", 1], ["deleted_at", 0]], "order_by" => [["id", "desc"]]]);
                 foreach ($students as $student) {
                     $sendmail = Email::forge("JIS");
                     $sendmail->from(Config::get("statics.info_email"), Config::get("statics.info_name"));
                     $sendmail->to($student->email);
                     $sendmail->subject("{$news->title} / Game-bootcamp");
                     $sendmail->html_body("Dear {$student->firstname},<br><br>" . htmlspecialchars_decode($body) . "If you are no longer interested, you can " . "<a href=" . Uri::base() . "?" . md5('id') . "={$student->id}/unsubscribe=" . md5($student->email) . ">Unsubscribe.</a>");
                     $sendmail->send();
                 }
             }
             Response::redirect("/admin/news/");
         }
         $view = View::forge("admin/news/edit", $data);
         $this->template->content = $view;
     }
 }