Commit 6601055515f8023887f24d56e81c10b4a23f21dc
1 parent
c09ffcc0
Hide search criteria when plugin not enabled
Story ID:2450996. Enable search of document metadata (custom numbering plugin) Committed by: Paul Barrett
Showing
1 changed file
with
25 additions
and
26 deletions
search2/search/fieldRegistry.inc.php
| ... | ... | @@ -271,37 +271,36 @@ class ExprFieldRegistry |
| 271 | 271 | // check the database for any registered plugin specific search criteria |
| 272 | 272 | $pluginSearchCriteria = null; |
| 273 | 273 | |
| 274 | - $result = DBUtil::getOneResult('Select pathname FROM plugin_helper WHERE classtype = "search_criteria"'); | |
| 274 | + $result = DBUtil::getResultArray('Select h.pathname FROM plugin_helper h INNER JOIN plugins p ON (p.namespace = h.plugin) ' | |
| 275 | + . 'WHERE p.disabled = 0 AND h.classtype = "search_criteria"'); | |
| 275 | 276 | if (PEAR::isError($result)) { |
| 276 | 277 | return; |
| 277 | 278 | } |
| 278 | 279 | |
| 279 | - $fieldPath = KT_DIR . DIRECTORY_SEPARATOR . $result['pathname']; | |
| 280 | + foreach ($result as $pluginSearchResult) { | |
| 281 | + $fieldPath = KT_DIR . DIRECTORY_SEPARATOR . $pluginSearchResult['pathname']; | |
| 280 | 282 | |
| 281 | - // loop through those found and include from the plugin path | |
| 282 | - $dir = opendir($fieldPath); | |
| 283 | - while (($file = readdir($dir)) !== false) | |
| 284 | - { | |
| 285 | - if (substr($file,-13) == 'Field.inc.php') | |
| 286 | - { | |
| 287 | - require_once($fieldPath . DIRECTORY_SEPARATOR . $file); | |
| 288 | - $class = substr($file, 0, -8); | |
| 289 | - | |
| 290 | - if (!class_exists($class)) | |
| 291 | - { | |
| 292 | - continue; | |
| 293 | - } | |
| 294 | - | |
| 295 | - $field = new $class; | |
| 296 | - if (is_null($field) || !($field instanceof FieldExpr)) | |
| 297 | - { | |
| 298 | - continue; | |
| 299 | - } | |
| 300 | - | |
| 301 | - $this->registerField($field); | |
| 302 | - } | |
| 303 | - } | |
| 304 | - closedir($dir); | |
| 283 | + // loop through those found and include from the plugin path | |
| 284 | + $dir = opendir($fieldPath); | |
| 285 | + while (($file = readdir($dir)) !== false) { | |
| 286 | + if (substr($file,-13) == 'Field.inc.php') { | |
| 287 | + require_once($fieldPath . DIRECTORY_SEPARATOR . $file); | |
| 288 | + $class = substr($file, 0, -8); | |
| 289 | + | |
| 290 | + if (!class_exists($class)) { | |
| 291 | + continue; | |
| 292 | + } | |
| 293 | + | |
| 294 | + $field = new $class; | |
| 295 | + if (is_null($field) || !($field instanceof FieldExpr)) { | |
| 296 | + continue; | |
| 297 | + } | |
| 298 | + | |
| 299 | + $this->registerField($field); | |
| 300 | + } | |
| 301 | + } | |
| 302 | + closedir($dir); | |
| 303 | + } | |
| 305 | 304 | } |
| 306 | 305 | |
| 307 | 306 | /** | ... | ... |