/** * IS: Terdeklarasinya filter dan param di session, dan page_row * FS: Mengirimkan ke viewer: cleanUrl, message, filter_alert, page_row, * dan paginator * Desc: Mengatur aksi yang dilakukan untuk halaman index review */ public function indexAction() { /** Send this page url to the view */ $this->view->cleanurl = $this->_cleanUrl; /** Get messages from CRUD process */ $message = $this->_flash->getMessages(); if (!empty($message)) { $this->view->message = $message; } /** Create table instance */ $table_review = new Model_DbTable_Review(); /** Set the variable initial value */ $filter = null; $new_search = FALSE; /** Get the filter params */ if ($this->getRequest()->isPost()) { $filter = $_POST['filterPage']; /** If new search is commited then we set the $new_search to TRUE */ $new_search = TRUE; switch ($filter) { case 0: $param = null; break; case 1: $param = $_POST['filterTitle']; break; case 2: $param = $_POST['filterStatus']; break; } $this->_paginator_sess->filter = $filter; $this->_paginator_sess->param = $param; } /** Get the params from session and create paginator */ $filter = $this->_paginator_sess->filter; $param = $this->_paginator_sess->param; /** Return alert to view on filter selected */ switch ($filter) { case 0: $filter_alert = "Show all reviews"; break; case 1: $filter_alert = "Reviews which title with keyword '" . $param . "'"; break; case 2: $param == '1' ? $state = 'Shown' : ($state = 'Not Shown'); $filter_alert = "Reviews with '" . $state . "' status"; break; } $this->view->alert = $filter_alert; $select = $table_review->getQueryAll($filter, $param); /** Get page row setting and send to the paginator control */ $page_row = $this->_getParam('filterPageRow'); $this->view->row = $page_row; 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; }