Commit da5255f75676445d98df61ddc1639ec7b741dfb2
1 parent
a86fcb07
KTS-3168
"Searching integer field types results in SQL error" Fixed. Committed By: Conrad Vermeulen Reviewed By: Megan Watson git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@8257 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
13 additions
and
2 deletions
search2/search/fieldRegistry.inc.php
| ... | ... | @@ -158,10 +158,18 @@ class ExprFieldRegistry |
| 158 | 158 | |
| 159 | 159 | public function resolveMetadataField($fieldset, $field) |
| 160 | 160 | { |
| 161 | + if ($fieldset instanceof ValueExpr) | |
| 162 | + { | |
| 163 | + $fieldset = $fieldset->getValue(); | |
| 164 | + } | |
| 161 | 165 | if (!array_key_exists($fieldset,$this->metadata)) |
| 162 | 166 | { |
| 163 | 167 | throw new ResolutionException("Metadata class for fieldset '$fieldset' and field '$field' not found."); |
| 164 | 168 | } |
| 169 | + if ($field instanceof ValueExpr) | |
| 170 | + { | |
| 171 | + $field = $field->getValue(); | |
| 172 | + } | |
| 165 | 173 | if (!array_key_exists($field,$this->metadata[$fieldset])) |
| 166 | 174 | { |
| 167 | 175 | throw new ResolutionException("Metadata class for fieldset '$fieldset' and field '$field' not found."); |
| ... | ... | @@ -249,7 +257,7 @@ class ExprFieldRegistry |
| 249 | 257 | private function registerMetdataFields() |
| 250 | 258 | { |
| 251 | 259 | $sql = "SELECT |
| 252 | - fs.name as fieldset, f.name as field, fs.id as fsid, f.id as fid | |
| 260 | + fs.name as fieldset, f.name as field, fs.id as fsid, f.id as fid, f.data_type | |
| 253 | 261 | FROM |
| 254 | 262 | fieldsets fs |
| 255 | 263 | INNER JOIN document_fields f ON f.parent_fieldset=fs.id |
| ... | ... | @@ -263,6 +271,7 @@ class ExprFieldRegistry |
| 263 | 271 | $field = addslashes($record['field']); |
| 264 | 272 | $fieldsetid = $record['fsid']; |
| 265 | 273 | $fieldid = $record['fid']; |
| 274 | + $type = $record['data_type']; | |
| 266 | 275 | $classname = "MetadataField$fieldid"; |
| 267 | 276 | |
| 268 | 277 | $classdefn = " |
| ... | ... | @@ -270,7 +279,9 @@ class ExprFieldRegistry |
| 270 | 279 | { |
| 271 | 280 | public function __construct() |
| 272 | 281 | { |
| 273 | - parent::__construct('$fieldset','$field',$fieldsetid, $fieldid); | |
| 282 | + parent::__construct('$fieldset','$field',$fieldsetid, $fieldid);" . | |
| 283 | + | |
| 284 | + (($type=='INT')?'$this->isValueQuoted(false);':'') . " | |
| 274 | 285 | } |
| 275 | 286 | }"; |
| 276 | 287 | eval($classdefn); | ... | ... |