function render() { require_once KT_LIB_DIR . '/search/savedsearch.inc.php'; $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("kt3/portlets/search_portlet"); $iFolderId = KTUtil::arrayGet($_REQUEST, 'fFolderId', 1); $iDocumentId = KTUtil::arrayGet($_REQUEST, 'fDocumentId'); if (!$iFolderId && !$iDocumentId) { return null; } $iUserId = $_SESSION['userID']; $aSearches = KTSavedSearch::getUserSearches($iUserId); // empty on error. if (PEAR::isError($aSearches)) { $aSearches = array(); } $iFolderId = KTUtil::arrayGet($_REQUEST, 'fFolderId', 1); $aTemplateData = array("context" => $this, "saved_searches" => $aSearches, "folder_id" => $iFolderId, "document_id" => $iDocumentId); return $oTemplate->render($aTemplateData); }
function handleCriteriaSet($aCriteriaSet, $iStartIndex, $sTitle = null, $bIsCondition = false) { if ($sTitle == null) { $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('Advanced Search')); $sTitle = _kt('Search Results'); } else { if ($bIsCondition) { $this->aBreadcrumbs[] = array('name' => _kt('Test Condition')); $this->oPage->setTitle(sprintf(_kt('Test Condition: %s'), $sTitle)); } else { $this->aBreadcrumbs[] = array('name' => _kt('Saved Search')); $this->oPage->setTitle(sprintf(_kt('Saved Search: %s'), $sTitle)); } $this->oPage->setBreadcrumbDetails($sTitle); } $this->browseType = "Folder"; $searchable_text = KTUtil::arrayGet($_REQUEST, "fSearchableText"); $sSearch = md5(serialize($aCriteriaSet)); $_SESSION['boolean_search'][$sSearch] = $aCriteriaSet; $collection = new AdvancedCollection(); $oColumnRegistry = KTColumnRegistry::getSingleton(); $aColumns = $oColumnRegistry->getColumnsForView('ktcore.views.search'); $collection->addColumns($aColumns); // get search parameters $oCriteriaRegistry =& KTCriteriaRegistry::getSingleton(); $aParams = array(); $aJoins = array(); $aJoins['main'] = $aCriteriaSet['join'] == 'AND' ? _kt('all') : _kt('any'); foreach ($aCriteriaSet['subgroup'] as $k => $subgroup) { $aGroup = array(); $aJoins[$k] = $subgroup['join'] == 'AND' ? _kt('all') : _kt('any'); if (!empty($subgroup['values'])) { foreach ($subgroup['values'] as $value) { $oCriterion =& $oCriteriaRegistry->getCriterion($value['type']); if ($oCriterion == null || $oCriterion == "" || PEAR::isError($oCriterion)) { $this->errorRedirectToMain('Criterion error'); } $aGroup[] = $oCriterion->parameterDisplay($value['data']); } } $aParams[] = $aGroup; } // set a view option $aTitleOptions = array('documenturl' => $GLOBALS['KTRootUrl'] . '/view.php'); $collection->setColumnOptions('ktcore.columns.title', $aTitleOptions); $collection->setColumnOptions('ktcore.columns.selection', array('rangename' => 'selection', 'show_folders' => true, 'show_documents' => true)); $aOptions = $collection->getEnvironOptions(); // extract data from the environment $aOptions['return_url'] = KTUtil::addQueryStringSelf("action=performSearch&boolean_search_id=" . urlencode($sSearch)); $aOptions['empty_message'] = _kt("No documents or folders match this query."); $aOptions['is_browse'] = true; $collection->setOptions($aOptions); $collection->setQueryObject(new BooleanSearchQuery($aCriteriaSet)); //$a = new BooleanSearchQuery($aCriteriaSet); //var_dump($a->getDocumentCount()); exit(0); // form fields for saving the search $save_fields = array(); $save_fields[] = new KTStringWidget(_kt('New search'), _kt('The name to save this search as'), 'name', null, $this->oPage, true); $aUserSearches = KTSavedSearch::getUserSearches($this->oUser->getId(), true); if (count($aUserSearches)) { $aVocab = array('' => ' ---- '); foreach ($aUserSearches as $oSearch) { $aVocab[$oSearch->getId()] = $oSearch->getName(); } $aSelectOptions = array('vocab' => $aVocab); $save_fields[] = new KTLookupWidget(_kt('Existing search'), _kt('To save over one of your existing searches, select it here.'), 'fSearchId', null, $this->oPage, true, null, null, $aSelectOptions); } $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("kt3/browse"); $aTemplateData = array("context" => $this, "collection" => $collection, "custom_title" => $sTitle, "save_fields" => $save_fields, "params" => $aParams, "joins" => $aJoins, 'isEditable' => true, "boolean_search" => $sSearch, 'bulkactions' => KTBulkActionUtil::getAllBulkActions(), 'browseutil' => new KTBrowseUtil(), 'returnaction' => 'booleanSearch', 'returndata' => $sSearch); return $oTemplate->render($aTemplateData); }
function upgradeSavedSearches() { foreach (KTSavedSearch::getSearches() as $oS) { $sS = $oS->getSearch(); $aSearch = UpgradeFunctions::_upgradeSavedSearch($sS); $oS->setSearch($aSearch); $oS->update(); } }
function getConfigDescription() { if (!$this->isLoaded()) { return _kt('This trigger has no configuration.'); } // the actual permissions are stored in the array. $perms = array(); if (empty($this->aConfig) || is_null($this->aConfig['condition_id'])) { return _kt('No condition must be fulfilled before this transition becomes available.'); } $oCondition = KTSavedSearch::get($this->aConfig['condition_id']); if (PEAR::isError($oCondition)) { return _kt('The condition required for this trigger has been deleted, so it is always available.'); } else { return sprintf(_kt('The document must match condition "<strong>%s</strong>".'), htmlentities($oCondition->getName(), ENT_NOQUOTES, 'UTF-8')); } }
function do_edit() { $this->oPage->setBreadcrumbDetails(_kt('Viewing Permissions')); $iFolderId = $this->oFolder->getId(); $oPO = KTPermissionObject::get($this->oFolder->getPermissionObjectId()); $aOptions = array('redirect_to' => array('main', 'fFolderId=' . $iFolderId)); if (!KTBrowseUtil::inAdminMode($this->oUser, $this->oFolder)) { $this->oValidator->userHasPermissionOnItem($this->oUser, $this->_sEditShowPermission, $this->oFolder, $aOptions); } // copy permissions if they were inherited $oInherited = KTPermissionUtil::findRootObjectForPermissionObject($oPO); if ($oInherited->getId() !== $iFolderId) { $override = KTUtil::arrayGet($_REQUEST, 'override', false); if (empty($override)) { $this->errorRedirectToMain(_kt('This folder does not override its permissions'), sprintf('fFolderId=%d', $iFolderId)); } $this->startTransaction(); $this->_copyPermissions(); $this->commitTransaction(); $oPO = KTPermissionObject::get($this->oFolder->getPermissionObjectId()); } // permissions in JS format $aPermissionsToJSON = array(); $aPermList = KTPermission::getList(); foreach ($aPermList as $oP) { $aPermissionsToJSON[] = array('id' => $oP->getId(), 'name' => $oP->getHumanName()); } $oJSON = new Services_JSON(); $sJSONPermissions = $oJSON->encode($aPermissionsToJSON); // dynamic conditions $aDynamicConditions = KTPermissionDynamicCondition::getByPermissionObject($oPO); // templating $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate('ktcore/folder/permissions'); $bCanInherit = $iFolderId != 1; global $default; if ($default->enableESignatures) { $sUrl = KTPluginUtil::getPluginPath('electronic.signatures.plugin', true); $heading = _kt('You are attempting to modify permissions'); $input['type'] = 'button'; $input['onclick'] = "javascript: showSignatureForm('{$sUrl}', '{$heading}', 'ktcore.transactions.permissions_change', 'folder', 'update_permissions_form', 'submit', {$iFolderId});"; } else { $input['type'] = 'submit'; $input['onclick'] = ''; } $perms = $aPermList; $docperms = KTPermission::getDocumentRelevantList(); $aTemplateData = array('iFolderId' => $iFolderId, 'roles' => Role::getList(), 'groups' => Group::getList(), 'conditions' => KTSavedSearch::getConditions(), 'dynamic_conditions' => $aDynamicConditions, 'context' => &$this, 'foldername' => $this->oFolder->getName(), 'jsonpermissions' => $sJSONPermissions, 'edit' => true, 'permissions' => $perms, 'document_permissions' => $docperms, 'can_inherit' => $bCanInherit, 'input' => $input); return $oTemplate->render($aTemplateData); }
<?php require_once '../../config/dmsDefaults.php'; require_once KT_LIB_DIR . '/search/savedsearch.inc.php'; $oSearch = KTSavedSearch::getByNamespace('namespace'); var_dump($oSearch->getSearch());
<?php require_once '../../config/dmsDefaults.php'; require_once KT_LIB_DIR . '/search/savedsearch.inc.php'; require_once KT_LIB_DIR . '/search/searchutil.inc.php'; $oSearch = KTSavedSearch::getByNamespace('http://ktcvs.local/local/savedsearches/mp3'); $iDocumentId = 96; var_dump(KTSearchUtil::testConditionOnDocument($oSearch, $iDocumentId));
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')); }
<?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);