Files
EasySoft-ZenTaoPMS/module/search/control.php
2020-01-13 14:22:53 +08:00

134 lines
4.6 KiB
PHP

<?php
/**
* The control file of search module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @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)
{
$module = empty($module) ? $this->session->searchParams['module'] : $module;
$searchParams = $module . 'searchParams';
$queryID = (empty($module) and empty($queryID)) ? $_SESSION[$searchParams]['queryID'] : $queryID;
$searchFields = empty($searchFields) ? json_decode($_SESSION[$searchParams]['searchFields'], true) : $searchFields;
$fieldParams = empty($fieldParams) ? json_decode($_SESSION[$searchParams]['fieldParams'], true) : $fieldParams;
$actionURL = empty($actionURL) ? $_SESSION[$searchParams]['actionURL'] : $actionURL;
$style = isset($_SESSION[$searchParams]['style']) ? $_SESSION[$searchParams]['style'] : '';
$onMenuBar = isset($_SESSION[$searchParams]['onMenuBar']) ? $_SESSION[$searchParams]['onMenuBar'] : '';
$_SESSION['searchParams']['module'] = $module;
$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->view->onMenuBar = empty($onMenuBar) ? 'no' : $onMenuBar;
$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($module, $onMenuBar = 'no')
{
if($_POST)
{
$queryID = $this->search->saveQuery();
if(!$queryID) die(js::error(dao::getError()));
$data = fixer::input('post')->get();
$shortcut = empty($data->onMenuBar) ? 0 : 1;
die(js::closeModal('parent.parent', '', "function(){parent.parent.loadQueries($queryID, $shortcut, '{$data->title}')}"));
}
$this->view->module = $module;
$this->view->onMenuBar = $onMenuBar;
$this->display();
}
/**
* 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);
$html = '';
foreach($queries as $queryID => $queryName)
{
if(empty($queryID)) continue;
$html .= '<li>' . html::a("javascript:executeQuery({$queryID})", $queryName . (common::hasPriv('search', 'deleteQuery') ? '<i class="icon icon-close"></i>' : ''), '', "class='label user-query' data-query-id='$queryID'") . '</li>';
}
die($html);
}
/**
* Ajax remove from menu.
*
* @param int $queryID
* @access public
* @return void
*/
public function ajaxRemoveMenu($queryID)
{
$this->dao->update(TABLE_USERQUERY)->set('shortcut')->eq(0)->where('id')->eq($queryID)->exec();
}
}