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,7 +20,8 @@ class BooleanSearchDispatcher extends KTStandardDispatcher {
20 var $sSection = "browse"; 20 var $sSection = "browse";
21 21
22 function do_main() { 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 $oTemplating = new KTTemplating; 25 $oTemplating = new KTTemplating;
25 $oTemplate = $oTemplating->loadTemplate("ktcore/boolean_search"); 26 $oTemplate = $oTemplating->loadTemplate("ktcore/boolean_search");
26 27
@@ -43,6 +44,10 @@ class BooleanSearchDispatcher extends KTStandardDispatcher { @@ -43,6 +44,10 @@ class BooleanSearchDispatcher extends KTStandardDispatcher {
43 if (!is_array($datavars)) { 44 if (!is_array($datavars)) {
44 $datavars = unserialize($datavars); 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 $iSavedSearchId = KTUtil::arrayGet($_REQUEST, 'fSavedSearchId'); 51 $iSavedSearchId = KTUtil::arrayGet($_REQUEST, 'fSavedSearchId');
47 if (!empty($iSavedSearchId)) { 52 if (!empty($iSavedSearchId)) {
48 $oSearch = KTSavedSearch::get($iSavedSearchId); 53 $oSearch = KTSavedSearch::get($iSavedSearchId);
@@ -52,31 +57,57 @@ class BooleanSearchDispatcher extends KTStandardDispatcher { @@ -52,31 +57,57 @@ class BooleanSearchDispatcher extends KTStandardDispatcher {
52 if (empty($datavars)) { 57 if (empty($datavars)) {
53 $this->errorRedirectToMain('You need to have at least 1 condition.'); 58 $this->errorRedirectToMain('You need to have at least 1 condition.');
54 } 59 }
55 - 60 +
56 $res = $this->handleCriteriaSet($datavars, KTUtil::arrayGet($_REQUEST, 'fStartIndex', 1)); 61 $res = $this->handleCriteriaSet($datavars, KTUtil::arrayGet($_REQUEST, 'fStartIndex', 1));
57 62
58 return $res; 63 return $res;
59 } 64 }
60 65
61 function handleCriteriaSet($aCriteriaSet, $iStartIndex) { 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