function do_performSearch() { $datavars = KTUtil::arrayGet($_REQUEST, 'boolean_search'); $sName = $this->oValidator->validateEntityName('KTSavedSearch', KTUtil::arrayGet($_REQUEST, 'name'), array('extra_condition' => 'not is_condition', 'redirect_to' => array('new'))); if (!is_array($datavars)) { $datavars = unserialize($datavars); } if (empty($datavars)) { $this->errorRedirectToMain(_kt('You need to have at least 1 condition.')); } $sNamespace = KTUtil::nameToLocalNamespace('Saved searches', $sName); $oSearch = KTSavedSearch::createFromArray(array('name' => $sName, 'namespace' => $sNamespace, 'iscondition' => false, 'iscomplete' => true, 'userid' => null, 'search' => $datavars)); $this->oValidator->notError($oSearch, array('redirect_to' => 'main', 'message' => _kt('Search not saved'))); $this->successRedirectToMain(_kt('Search saved')); }
function do_saveSearch() { $this->startTransaction(); $iSearchId = KTUtil::arrayGet($_REQUEST, 'fSearchId', false); $sName = KTUtil::arrayGet($_REQUEST, 'name', false); $sSearch = KTUtil::arrayGet($_REQUEST, 'boolean_search'); if ($iSearchId === false && $sName === false) { $this->errorRedirectTo('performSearch', _kt('Please either enter a name, or select a search to save over'), sprintf('boolean_search_id=%s', $sSearch)); exit(0); } if ($this->oUser->isAnonymous()) { $this->errorRedirectTo('performSearch', _kt('Cannot save searches as anonymous user'), sprintf('boolean_search_id=%s', $sSearch)); exit(0); } $datavars = $_SESSION['boolean_search'][$sSearch]; if (!is_array($datavars)) { $datavars = unserialize($datavars); } if (empty($datavars)) { $this->errorRedirectToMain(_kt('You need to have at least 1 condition.')); } if ($iSearchId) { $oSearch = KTSavedSearch::get($iSearchId); if (PEAR::isError($oSearch) || $oSearch == false) { $this->errorRedirectToMain(_kt('No such search')); exit(0); } $oSearch->setSearch($datavars); $oSearch = $oSearch->update(); } else { $sName = $this->oValidator->validateEntityName('KTSavedSearch', KTUtil::arrayGet($_REQUEST, 'name'), array('extra_condition' => 'not is_condition', 'redirect_to' => array('new'))); $sNamespace = KTUtil::nameToLocalNamespace('Saved searches', $sName); $oSearch = KTSavedSearch::createFromArray(array('name' => $sName, 'namespace' => $sNamespace, 'iscondition' => false, 'iscomplete' => true, 'userid' => $this->oUser->getId(), 'search' => $datavars)); } $this->oValidator->notError($oSearch, array('redirect_to' => 'main', 'message' => _kt('Search not saved'))); $this->commitTransaction(); $this->successRedirectTo('performSearch', _kt('Search saved'), sprintf('boolean_search_id=%s', $sSearch)); }
<?php require_once '../../config/dmsDefaults.php'; require_once KT_LIB_DIR . '/search/savedsearch.inc.php'; $aSearch = array('join' => 'AND', 'subgroup' => array(array('join' => 'AND', 'values' => array(array('type' => '-3', 'data' => array('bmd_3' => '4')))))); $oSearch = KTSavedSearch::createFromArray(array('name' => 'name', 'namespace' => 'namespace', 'iscondition' => false, 'iscomplete' => true, 'userid' => null, 'search' => $aSearch)); var_dump($oSearch);