Commit 9d407d2369f2d27242cc823bb4b14a327c530448

Authored by nbm
1 parent 3c44a61a

Deal with searches criteria potentially adding joins to the advanced

search query.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3288 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/search/advancedSearchBL.php
... ... @@ -63,12 +63,17 @@ function getAdvancedSearchResults($aOrigReq, $iStartIndex) {
63 63  
64 64 $aIDs = array_unique(array_map("criteriaNumber", array_keys($aReq)));
65 65 $aSQL = array();
  66 + $aJoinSQL = array();
66 67 foreach ($aIDs as $iID) {
67 68 $oCriterion =& Criteria::getCriterionByNumber($iID);
68 69 $res = $oCriterion->searchSQL($aReq);
69 70 if (!is_null($res)) {
70 71 $aSQL[] = $res;
71 72 }
  73 + $res = $oCriterion->searchJoinSQL();
  74 + if (!is_null($res)) {
  75 + $aJoinSQL[] = $res;
  76 + }
72 77 }
73 78 $aCritParams = array();
74 79 $aCritQueries = array();
... ... @@ -86,6 +91,7 @@ function getAdvancedSearchResults($aOrigReq, $iStartIndex) {
86 91 }
87 92  
88 93 $sSQLSearchString = join(" AND ", $aCritQueries);
  94 + $sJoinSQL = join(" ", $aJoinSQL);
89 95  
90 96 $sQuery = DBUtil::compactQuery("
91 97 SELECT
... ... @@ -94,8 +100,7 @@ SELECT
94 100 FROM
95 101 $default->documents_table AS D
96 102 INNER JOIN $default->folders_table AS F ON D.folder_id = F.id
97   - LEFT JOIN $default->document_fields_link_table AS DFL ON DFL.document_id = D.id
98   - LEFT JOIN $default->document_fields_table AS DF ON DF.id = DFL.document_field_id
  103 + $sJoinSQL
99 104 INNER JOIN $default->search_permissions_table AS SDUL ON SDUL.document_id = D.id
100 105 INNER JOIN $default->status_table AS SL on D.status_id=SL.id
101 106 WHERE
... ...