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 do_main() { $oColumnRegistry =& KTColumnRegistry::getSingleton(); $collection = new AdvancedCollection(); $collection->addColumns($oColumnRegistry->getColumnsForView('ktcore.views.browse')); $aOptions = $collection->getEnvironOptions(); // extract data from the environment $aOptions['result_url'] = $this->resultURL; $aOptions['is_browse'] = true; $collection->setOptions($aOptions); $collection->setQueryObject($this->oQuery); $collection->setColumnOptions('ktcore.columns.selection', array('rangename' => 'selection', 'show_folders' => true, 'show_documents' => true)); // get bulk actions $aBulkActions = KTBulkActionUtil::getAllBulkActions(); $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate('kt3/browse'); $aTemplateData = array('context' => $this, 'collection' => $collection, 'browse_mode' => $this->browse_mode, 'isEditable' => $this->editable, 'bulkactions' => $aBulkActions, 'browseutil' => new KTBrowseUtil(), 'returnaction' => 'browse'); if ($this->oFolder) { $aTemplateData['returndata'] = $this->oFolder->getId(); } return $oTemplate->render($aTemplateData); }
function displayConfiguration($args) { $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate('ktcore/workflowtriggers/moveaction'); require_once KT_LIB_DIR . '/browse/DocumentCollection.inc.php'; require_once KT_LIB_DIR . '/browse/columnregistry.inc.php'; $collection = new AdvancedCollection(); $oColumnRegistry = KTColumnRegistry::getSingleton(); $aColumns = array(); $aColumns[] = $oColumnRegistry->getColumn('ktcore.columns.singleselection'); $aColumns[] = $oColumnRegistry->getColumn('ktcore.columns.title'); $collection->addColumns($aColumns); $aOptions = $collection->getEnvironOptions(); // extract data from the environment $qsFrag = array(); foreach ($args as $k => $v) { if ($k == 'action') { $v = 'editactiontrigger'; } // horrible hack - we really need iframe embedding. $qsFrag[] = sprintf('%s=%s', urlencode($k), urlencode($v)); } $qs = implode('&', $qsFrag); $aOptions['result_url'] = KTUtil::addQueryStringSelf($qs); $aOptions['show_documents'] = false; $fFolderId = KTUtil::arrayGet($_REQUEST, 'fFolderId', KTUtil::arrayGet($this->aConfig, 'folder_id', 1)); $oFolder = Folder::get($fFolderId); if (PEAR::isError($oFolder)) { $iRoot = 1; $oFolder = Folder::get($iRoot); $fFolderId = 1; } $collection->setOptions($aOptions); $collection->setQueryObject(new BrowseQuery($fFolderId, $this->oUser)); $collection->setColumnOptions('ktcore.columns.singleselection', array('rangename' => 'folder_id', 'show_folders' => true, 'show_documents' => false)); $collection->setColumnOptions('ktcore.columns.title', array('direct_folder' => false, 'folder_link' => $aOptions['result_url'])); $aBreadcrumbs = array(); $folder_path_names = $oFolder->getPathArray(); $folder_path_ids = explode(',', $oFolder->getParentFolderIds()); $folder_path_ids[] = $oFolder->getId(); if ($folder_path_ids[0] == 0) { array_shift($folder_path_ids); array_shift($folder_path_names); } foreach (range(0, count($folder_path_ids) - 1) as $index) { $id = $folder_path_ids[$index]; $qsFrag2 = $qsFrag; $qsFrag2[] = sprintf('fFolderId=%d', $id); $qs2 = implode('&', $qsFrag2); $url = KTUtil::addQueryStringSelf($qs2); $aBreadcrumbs[] = sprintf('<a href="%s">%s</a>', $url, htmlentities($folder_path_names[$index], ENT_NOQUOTES, 'UTF-8')); } $sBreadcrumbs = implode(' » ', $aBreadcrumbs); $aTemplateData = array('context' => $this, 'breadcrumbs' => $sBreadcrumbs, 'collection' => $collection, 'args' => $args); return $oTemplate->render($aTemplateData); }
function do_oldSearchResults() { // call the results sorting function in case of sort options selected search2QuerySort(stripslashes($_GET['sort_on']), stripslashes($_GET['sort_order'])); $this->oPage->setBreadcrumbDetails(_kt("Search Results")); $this->oPage->title = _kt("Search Results"); $collection = new AdvancedCollection(); $oColumnRegistry = KTColumnRegistry::getSingleton(); $aColumns = $oColumnRegistry->getColumnsForView('ktcore.views.search'); $collection->addColumns($aColumns); // set a view option $aTitleOptions = array('documenturl' => $GLOBALS['KTRootUrl'] . '/view.php', 'direct_folder' => true); $collection->setColumnOptions('ktcore.columns.title', $aTitleOptions); // set the selection options $collection->setColumnOptions('ktcore.columns.selection', array('rangename' => 'selection', 'show_folders' => true, 'show_documents' => true)); $aOptions = $collection->getEnvironOptions(); // extract data from the environment $aOptions['empty_message'] = _kt("No documents or folders match this query."); $aOptions['is_browse'] = true; $aOptions['return_url'] = KTUtil::addQueryStringSelf("action=oldSearchResults"); $collection->setOptions($aOptions); $collection->setQueryObject(new Search2Query()); $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("kt3/browse"); $aTemplateData = array("context" => $this, "collection" => $collection, 'isEditable' => true, 'bulkactions' => KTBulkActionUtil::getAllBulkActions(), 'browseutil' => new KTBrowseUtil(), 'returnaction' => 'search2'); return $oTemplate->render($aTemplateData); }
function do_main() { $aErrorOptions = array("message" => _kt("Please provide a search term")); $searchable_text = sanitizeForSQL(KTUtil::arrayGet($_REQUEST, "fSearchableText")); $this->oValidator->notEmpty($searchable_text, $aErrorOptions); $collection = new AdvancedCollection(); $oColumnRegistry = KTColumnRegistry::getSingleton(); $aColumns = $oColumnRegistry->getColumnsForView('ktcore.views.search'); $collection->addColumns($aColumns); // set a view option $aTitleOptions = array('documenturl' => $GLOBALS['KTRootUrl'] . '/view.php', 'direct_folder' => true); $collection->setColumnOptions('ktcore.columns.title', $aTitleOptions); // set the selection options $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("fSearchableText=" . urlencode($searchable_text)); $aOptions['empty_message'] = _kt("No documents or folders match this query."); $aOptions['is_browse'] = true; $collection->setOptions($aOptions); $collection->setQueryObject(new SimpleSearchQuery($searchable_text)); $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("kt3/browse"); $aTemplateData = array("context" => $this, "collection" => $collection, 'isEditable' => true, 'bulkactions' => KTBulkActionUtil::getAllBulkActions(), 'browseutil' => new KTBrowseUtil(), 'returnaction' => 'simpleSearch', 'returndata' => $searchable_text); return $oTemplate->render($aTemplateData); }
function do_search() { // Get the tag to search for and create search query $tag = isset($_REQUEST['tag']) ? $_REQUEST['tag'] : ''; $decode = isset($_REQUEST['decode']) ? $_REQUEST['decode'] : ''; if ($decode == 'true') { $tag = urldecode($tag); } $iUserId = $_SESSION['userID']; $oUser = User::get($iUserId); // set breadcrumbs $this->aBreadcrumbs[] = array('url' => 'dashboard.php', 'name' => _kt('Dashboard')); $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('Tag Cloud Search')); $tagList = $_SESSION['tagList']; if (!empty($tagList)) { $aPrevTag = end($tagList); $aTagTree = $aPrevTag['tagTree']; $base = KTUtil::addQueryString('TagCloudRedirection&action=recall', null); foreach ($aTagTree as $key => $item) { if ($tag == $item) { continue; } $url = $base . '&tag=' . urlencode($item) . '&pos=' . $key; $this->aBreadcrumbs[] = array('url' => $url, 'name' => $item); } } if (!empty($tag)) { $this->aBreadcrumbs[] = array('url' => '', 'name' => $tag); } // set page title $sTitle = _kt('Search Results'); $this->oPage->setBreadcrumbDetails($sTitle); // Set tag cloud portlet $portlet = new TagCloudPortlet($oUser, $tag); $this->oPage->addPortlet($portlet); $collection = new AdvancedCollection(); $oColumnRegistry = KTColumnRegistry::getSingleton(); $aColumns = $oColumnRegistry->getColumnsForView('ktcore.views.search'); $collection->addColumns($aColumns); // 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 $returnUrl = KTUtil::addQueryString('TagCloudRedirection&action=search&tag=' . urlencode($tag), false); $aOptions['return_url'] = $returnUrl; $aOptions['empty_message'] = _kt('No documents or folders match this query.'); $aOptions['is_browse'] = true; $collection->setOptions($aOptions); $collection->setQueryObject(new TagQuery($oUser, $tag)); $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate('kt3/browse'); $aTemplateData = array('context' => $this, 'collection' => $collection, 'custom_title' => $sTitle, 'isEditable' => true, 'boolean_search' => $sSearch, 'bulkactions' => KTBulkActionUtil::getAllBulkActions(), 'browseutil' => new KTBrowseUtil(), 'returnaction' => $returnUrl); return $oTemplate->render($aTemplateData); }