Commit 9d407d2369f2d27242cc823bb4b14a327c530448
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
Showing
1 changed file
with
7 additions
and
2 deletions
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 | ... | ... |