Commit 7545ed81e204da6bcfd761d4afeb40a3b6835304

Authored by nbm
1 parent ed5751d2

Modernise to use the document collections system.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@4254 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/search/booleanSearch.php
... ... @@ -20,7 +20,8 @@ class BooleanSearchDispatcher extends KTStandardDispatcher {
20 20 var $sSection = "browse";
21 21  
22 22 function do_main() {
23   - $this->oPage->setBreadcrumbDetails('searching');
  23 + $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => "Boolean search");
  24 + $this->oPage->setBreadcrumbDetails('defining search');
24 25 $oTemplating = new KTTemplating;
25 26 $oTemplate = $oTemplating->loadTemplate("ktcore/boolean_search");
26 27  
... ... @@ -43,6 +44,10 @@ class BooleanSearchDispatcher extends KTStandardDispatcher {
43 44 if (!is_array($datavars)) {
44 45 $datavars = unserialize($datavars);
45 46 }
  47 + $boolean_search_id = KTUtil::arrayGet($_REQUEST, 'boolean_search_id');
  48 + if ($boolean_search_id) {
  49 + $datavars = $_SESSION['boolean_search'][$boolean_search_id];
  50 + }
46 51 $iSavedSearchId = KTUtil::arrayGet($_REQUEST, 'fSavedSearchId');
47 52 if (!empty($iSavedSearchId)) {
48 53 $oSearch = KTSavedSearch::get($iSavedSearchId);
... ... @@ -52,31 +57,57 @@ class BooleanSearchDispatcher extends KTStandardDispatcher {
52 57 if (empty($datavars)) {
53 58 $this->errorRedirectToMain('You need to have at least 1 condition.');
54 59 }
55   -
  60 +
56 61 $res = $this->handleCriteriaSet($datavars, KTUtil::arrayGet($_REQUEST, 'fStartIndex', 1));
57 62  
58 63 return $res;
59 64 }
60 65  
61 66 function handleCriteriaSet($aCriteriaSet, $iStartIndex) {
62   - global $default;
63   - $aQuery = KTSearchUtil::criteriaToLegacyQuery($aCriteriaSet, $_SESSION['userID'], 'ktcore.permissions.read');
64   - $aColumns = array("folder_name", "file_name", "document_name", "view");
65   - $aColumnTypes = array(3,3,3,3);
66   - $aColumnHeaders = array("<font color=\"ffffff\"><img src=\"$default->graphicsUrl/widgets/dfolder.gif\" />" . _("Folder") . "</font>", "<font color=\"ffffff\">" . _("Name") . "</font>", "<font color=\"ffffff\">" . _("Title") . "</font>", "<font color=\"ffffff\">" . _("View") . "</font>");
67   - $aLinkURLs = array("$default->rootUrl/control.php?action=browse","$default->rootUrl/control.php?action=viewDocument", "$default->rootUrl/control.php?action=viewDocument", "$default->rootUrl/control.php?action=downloadDocument");
68   - $aDBQueryStringColumns = array("document_id","folder_id");
69   - $aQueryStringVariableNames = array("fDocumentID", "fFolderID");
70   -
71   - $oPatternBrowse = & new PatternBrowseableSearchResults($aQuery, 10, $aColumns, $aColumnTypes, $aColumnHeaders, $aLinkURLs, $aDBQueryStringColumns, $aQueryStringVariableNames);
72   - $oPatternBrowse->setStartIndex($iStartIndex);
73   - $oPatternBrowse->setSearchText("");
74   - $sFormStart = '<form method="POST" name="MainForm">';
75   -
76   - $sFormEnd = '<input type="hidden" name="boolean_search" value="'. htmlentities(serialize($aCriteriaSet)) . '" />';
77   - $sFormEnd .= '<input type="hidden" name="action" value="performSearch" />';
78   -
79   - return renderHeading(_("Advanced Search")) . $sFormStart . $oPatternBrowse->render() . $sFormEnd . $sRefreshMessage;
  67 + $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => "Boolean search");
  68 + $this->oPage->setBreadcrumbDetails('searching');
  69 + $collection = new DocumentCollection;
  70 + $this->browseType = "Folder";
  71 +
  72 + $collection->addColumn(new SelectionColumn("Browse Selection","selection"));
  73 + $t =& new TitleColumn("Test 1 (title)","title");
  74 + $t->setOptions(array('documenturl' => '../documentmanagement/view.php'));
  75 + $collection->addColumn($t);
  76 + $collection->addColumn(new DateColumn("Created","created", "getCreatedDateTime"));
  77 + $collection->addColumn(new DateColumn("Last Modified","modified", "getLastModifiedDate"));
  78 + $collection->addColumn(new DateColumn("Last Modified","modified", "getLastModifiedDate"));
  79 + $collection->addColumn(new UserColumn('Creator','creator_id','getCreatorID'));
  80 +
  81 + $searchable_text = KTUtil::arrayGet($_REQUEST, "fSearchableText");
  82 +
  83 + $batchPage = (int) KTUtil::arrayGet($_REQUEST, "page", 0);
  84 + $batchSize = 20;
  85 +
  86 + $sSearch = md5(serialize($aCriteriaSet));
  87 + $_SESSION['boolean_search'][$sSearch] = $aCriteriaSet;
  88 + $resultURL = "?action=performSearch&boolean_search_id=" . urlencode($sSearch);
  89 + $collection->setBatching($resultURL, $batchPage, $batchSize);
  90 +
  91 +
  92 + // ordering. (direction and column)
  93 + $displayOrder = KTUtil::arrayGet($_REQUEST, 'sort_order', "asc");
  94 + if ($displayOrder !== "asc") { $displayOrder = "desc"; }
  95 + $displayControl = KTUtil::arrayGet($_REQUEST, 'sort_on', "title");
  96 +
  97 + $collection->setSorting($displayControl, $displayOrder);
  98 +
  99 + // add in the query object.
  100 + $qObj = new BooleanSearchQuery($aCriteriaSet);
  101 + $collection->setQueryObject($qObj);
  102 +
  103 + $collection->getResults();
  104 + $oTemplating = new KTTemplating;
  105 + $oTemplate = $oTemplating->loadTemplate("kt3/browse");
  106 + $aTemplateData = array(
  107 + "context" => $this,
  108 + "collection" => $collection,
  109 + );
  110 + return $oTemplate->render($aTemplateData);
80 111 }
81 112 }
82 113  
... ...