aBreadcrumbs = array( array('action' => 'browse', 'name' => _('Browse')), ); return parent::KTStandardDispatcher(); } function do_main() { $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _("Boolean search")); $this->oPage->setBreadcrumbDetails(_('defining search')); $oTemplating = new KTTemplating; $oTemplate = $oTemplating->loadTemplate("ktcore/boolean_search"); $aCriteria = Criteria::getAllCriteria(); $aTemplateData = array( "context" => &$this, "aCriteria" => $aCriteria, ); return $oTemplate->render($aTemplateData); } function do_performSearch() { $datavars = KTUtil::arrayGet($_REQUEST, 'boolean_search'); if (!is_array($datavars)) { $datavars = unserialize($datavars); } $boolean_search_id = KTUtil::arrayGet($_REQUEST, 'boolean_search_id'); if ($boolean_search_id) { $datavars = $_SESSION['boolean_search'][$boolean_search_id]; } $iSavedSearchId = KTUtil::arrayGet($_REQUEST, 'fSavedSearchId'); if (!empty($iSavedSearchId)) { $oSearch = KTSavedSearch::get($iSavedSearchId); $datavars = $oSearch->getSearch(); } if (empty($datavars)) { $this->errorRedirectToMain(_('You need to have at least 1 condition.')); } $res = $this->handleCriteriaSet($datavars, KTUtil::arrayGet($_REQUEST, 'fStartIndex', 1)); return $res; } function handleCriteriaSet($aCriteriaSet, $iStartIndex) { $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _("Boolean search")); $this->oPage->setBreadcrumbDetails(_('searching')); $collection = new DocumentCollection; $this->browseType = "Folder"; $collection->addColumn(new SelectionColumn("Browse Selection","selection")); $t =& new TitleColumn("Test 1 (title)","title"); $t->setOptions(array('documenturl' => $GLOBALS['KTRootUrl'] . '/view.php')); $collection->addColumn($t); $collection->addColumn(new DateColumn(_("Created"),"created", "getCreatedDateTime")); $collection->addColumn(new DateColumn(_("Last Modified"),"modified", "getLastModifiedDate")); $collection->addColumn(new DateColumn(_("Last Modified"),"modified", "getLastModifiedDate")); $collection->addColumn(new UserColumn(_('Creator'),'creator_id','getCreatorID')); $searchable_text = KTUtil::arrayGet($_REQUEST, "fSearchableText"); $batchPage = (int) KTUtil::arrayGet($_REQUEST, "page", 0); $batchSize = 20; $sSearch = md5(serialize($aCriteriaSet)); $_SESSION['boolean_search'][$sSearch] = $aCriteriaSet; $resultURL = "?action=performSearch&boolean_search_id=" . urlencode($sSearch); $collection->setBatching($resultURL, $batchPage, $batchSize); // ordering. (direction and column) $displayOrder = KTUtil::arrayGet($_REQUEST, 'sort_order', "asc"); if ($displayOrder !== "asc") { $displayOrder = "desc"; } $displayControl = KTUtil::arrayGet($_REQUEST, 'sort_on', "title"); $collection->setSorting($displayControl, $displayOrder); // add in the query object. $qObj = new BooleanSearchQuery($aCriteriaSet); $collection->setQueryObject($qObj); $collection->getResults(); $oTemplating = new KTTemplating; $oTemplate = $oTemplating->loadTemplate("kt3/browse"); $aTemplateData = array( "context" => $this, "collection" => $collection, ); return $oTemplate->render($aTemplateData); } } $oDispatcher = new BooleanSearchDispatcher(); $oDispatcher->dispatch(); ?>