* @package search * @version $Id: control.php 4129 2013-01-18 01:58:14Z wwccss $ * @link http://www.zentao.net */ class search extends control { /** * Build search form. * * @param string $module * @param array $searchFields * @param array $fieldParams * @param string $actionURL * @param int $queryID * @access public * @return void */ public function buildForm($module = '', $searchFields = '', $fieldParams = '', $actionURL = '', $queryID = 0) { $queryID = (empty($module) and empty($queryID)) ? $this->session->searchParams['queryID'] : $queryID; $module = empty($module) ? $this->session->searchParams['module'] : $module; $searchFields = empty($searchFields) ? json_decode($this->session->searchParams['searchFields'], true) : $searchFields; $fieldParams = empty($fieldParams) ? json_decode($this->session->searchParams['fieldParams'], true) : $fieldParams; $actionURL = empty($actionURL) ? $this->session->searchParams['actionURL'] : $actionURL; $style = isset($_SESSION['searchParams']['style']) ? $this->session->searchParams['style'] : ''; $this->search->initSession($module, $searchFields, $fieldParams); $this->view->module = $module; $this->view->groupItems = $this->config->search->groupItems; $this->view->searchFields = $searchFields; $this->view->actionURL = $actionURL; $this->view->fieldParams = $this->search->setDefaultParams($searchFields, $fieldParams); $this->view->queries = $this->search->getQueryPairs($module); $this->view->queryID = $queryID; $this->view->style = empty($style) ? 'full' : $style; $this->display(); } /** * Build query * * @access public * @return void */ public function buildQuery() { $this->search->buildQuery(); die(js::locate($this->post->actionURL, 'parent')); } /** * Save search query. * * @access public * @return void */ public function saveQuery() { $queryID = $this->search->saveQuery(); if(!$queryID) die(js::error(dao::getError())); die($queryID); } /** * Delete current search query. * * @param int $queryID * @access public * @return void */ public function deleteQuery($queryID) { $this->search->deleteQuery($queryID); if(dao::isError()) die(js::error(dao::getError())); die('success'); } /** * AJAX: get search query. * * @param string $module * @param int $queryID * @access public * @return void */ public function ajaxGetQuery($module = '', $queryID = 0) { $query = $queryID ? $queryID : ''; $module = empty($module) ? $this->session->searchParams['module'] : $module; $queries = $this->search->getQueryPairs($module); die(html::select('queryID', $queries, $query, 'onchange=executeQuery(this.value) class=form-control')); } /** * Ajax save shortcut. * * @param strint $module * @access public * @return void */ public function ajaxSaveShortcut($module) { $queries = $this->search->getQueryPairs($module); if($this->server->request_method == 'POST') { $shortcuts = empty($_POST['shortcuts']) ? array() : $_POST['shortcuts']; foreach($queries as $queryID => $query) { $shortcut = ($shortcuts and in_array($queryID, $shortcuts)) ? 1 : 0; $this->dao->update(TABLE_USERQUERY)->set('shortcut')->eq($shortcut)->where('id')->eq($queryID)->exec(); } die(js::reload('parent.parent')); } $this->view->queries = $queries; $this->view->shortcuts = $this->search->getShorcutQueryPairs($module); $this->display(); } }