Example #1
0
 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);
 }
Example #2
0
 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'));
     }
 }
Example #5
0
 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);
 }
Example #6
0
<?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));
Example #8
0
 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);