/** * IS: Terdeklarasinya filter dan param di session, dan page_row * FS: Mengirimkan ke viewer: cleanUrl, message, filter_alert, page_row, * all_category, dan paginator * Desc: Mengatur aksi yang dilakukan untuk halaman index event */ public function indexAction() { //variable initiation and instance creation $this->view->cleanurl = $this->_cleanUrl; //get messages from CRUD process $message = $this->_flash->getMessages(); if (!empty($message)) { $this->view->message = $message; } //create table instances $table_event = new Model_DbTable_Event(); $table_category = new Model_DbTable_Category(); //set variable initial value $filter = null; $new_search = FALSE; //get params for the filter if ($this->getRequest()->isPost()) { $filter = $_POST['filterPage']; $new_search = TRUE; $this->_paginator_sess->filter = $filter; switch ($filter) { case 0: $param = null; case 1: $param = $_POST['filterName']; break; case 2: $param = $_POST['filterDestination']; break; case 3: $param = $_POST['filterCategory']; break; case 4: $param = $_POST['filterDate1']; $param2 = $_POST['filterDate2']; break; } $this->_paginator_sess->param = $param; } //set paginator for list of destination data $filter = $this->_paginator_sess->filter; $param = $this->_paginator_sess->param; if (isset($param2)) { $select = $table_event->getQueryAllByLang($filter, $param, $param2, 2); } else { $select = $table_event->getQueryAllByLang($filter, $param, null, 2); } if ($page_row != null) { $paginator = parent::setPaginator($select, $page_row); } else { $paginator = parent::setPaginator($select); } //if this is a new search then return the page number back to the 1st page if ($new_search) { $paginator->setCurrentPageNumber(1); } //send data to the view $this->view->paginator = $paginator; $filter_data = $table_category->getAllParentCategoryIdNameByLangId(2); $this->view->all_category = $filter_data; /** Return alert to view on filter selected */ switch ($filter) { case 0: $filter_alert = "Show all events"; break; case 1: $filter_alert = "Events which name with keyword '" . $param . "'"; break; case 2: $filter_alert = "Events that related to '" . $param . "'"; break; case 3: foreach ($filter_data as $category) { $parent[$category['category_id']] = $category['name']; } $filter_alert = "Events with '" . $parent[$param] . "' category"; break; case 4: if (!empty($param) && !empty($param2)) { $filter_alert = "Events between " . $param . " and " . $param2; } else { if (!empty($param) && empty($param2)) { $filter_alert = "Events after " . $param; } else { if (empty($param) && !empty($param2)) { $filter_alert = "Events before " . $param2; } else { $filter_alert = "Show all events"; } } } break; } $this->view->alert = $filter_alert; }