ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ilLuceneAdvancedSearchFields Class Reference

Field definitions of advanced meta data search. More...

+ Collaboration diagram for ilLuceneAdvancedSearchFields:

Public Member Functions

 getActiveFields ()
 Get all active fields. More...
 
 getActiveSections ()
 
 getFormElement ($a_query, $a_field_name, ilPropertyFormGUI $a_form)
 
 parseFieldQuery ($a_field, $a_query)
 Called from ilLuceneAdvancedQueryParser Parse a field specific query. More...
 

Static Public Member Functions

static getInstance ()
 Get singleton instance. More...
 
static getFields ()
 Return an array of all meta data fields. More...
 

Data Fields

const ONLINE_QUERY = 1
 
const OFFLINE_QUERY = 2
 

Protected Member Functions

 __construct ()
 
 readFields ()
 Read active fields. More...
 
 readSections ()
 Read active sections. More...
 
 getRangeSelect ($txt_from, $select_from, $txt_until, $select_until)
 get a range selection More...
 

Protected Attributes

 $lng = null
 

Private Attributes

 $settings = null
 
 $active_fields = array()
 
 $active_sections = array()
 

Static Private Attributes

static $instance = null
 
static $fields = null
 
static $sections = null
 

Detailed Description

Field definitions of advanced meta data search.

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

Definition at line 36 of file class.ilLuceneAdvancedSearchFields.php.

Constructor & Destructor Documentation

◆ __construct()

ilLuceneAdvancedSearchFields::__construct ( )
protected

Definition at line 53 of file class.ilLuceneAdvancedSearchFields.php.

54 {
55 global $DIC;
56
57 $lng = $DIC['lng'];
58
60
61 $this->lng = $lng;
62 $this->lng->loadLanguageModule('meta');
63
64 $this->readFields();
65 $this->readSections();
66 }
global $DIC
Definition: saml.php:7
settings()
Definition: settings.php:2

References $DIC, $lng, ilLuceneAdvancedSearchSettings\getInstance(), readFields(), readSections(), and settings().

+ Here is the call graph for this function:

Member Function Documentation

◆ getActiveFields()

ilLuceneAdvancedSearchFields::getActiveFields ( )

Get all active fields.

Definition at line 133 of file class.ilLuceneAdvancedSearchFields.php.

134 {
135 return $this->active_fields ? $this->active_fields : array();
136 }

Referenced by readSections().

+ Here is the caller graph for this function:

◆ getActiveSections()

ilLuceneAdvancedSearchFields::getActiveSections ( )

Definition at line 138 of file class.ilLuceneAdvancedSearchFields.php.

139 {
140 return $this->active_sections ? $this->active_sections : array();
141 }

◆ getFields()

static ilLuceneAdvancedSearchFields::getFields ( )
static

Return an array of all meta data fields.

Definition at line 82 of file class.ilLuceneAdvancedSearchFields.php.

83 {
84 global $DIC;
85
86 $lng = $DIC['lng'];
87
88 $lng->loadLanguageModule('meta');
89
90 $fields['lom_content'] = $lng->txt('content');
91
92 include_once './Services/Search/classes/class.ilSearchSettings.php';
93 if (ilSearchSettings::getInstance()->enabledLucene()) {
94 $fields['general_offline'] = $lng->txt('lucene_offline_filter');
95 }
96 //'lom_type' = $lng->txt('type');
97 $fields['lom_language'] = $lng->txt('language');
98 $fields['lom_keyword'] = $lng->txt('meta_keyword');
99 $fields['lom_coverage'] = $lng->txt('meta_coverage');
100 $fields['lom_structure'] = $lng->txt('meta_structure');
101 $fields['lom_status'] = $lng->txt('meta_status');
102 $fields['lom_version'] = $lng->txt('meta_version');
103 $fields['lom_contribute'] = $lng->txt('meta_contribute');
104 $fields['lom_format'] = $lng->txt('meta_format');
105 $fields['lom_operating_system'] = $lng->txt('meta_operating_system');
106 $fields['lom_browser'] = $lng->txt('meta_browser');
107 $fields['lom_interactivity'] = $lng->txt('meta_interactivity_type');
108 $fields['lom_resource'] = $lng->txt('meta_learning_resource_type');
109 $fields['lom_level'] = $lng->txt('meta_interactivity_level');
110 $fields['lom_density'] = $lng->txt('meta_semantic_density');
111 $fields['lom_user_role'] = $lng->txt('meta_intended_end_user_role');
112 $fields['lom_context'] = $lng->txt('meta_context');
113 $fields['lom_difficulty'] = $lng->txt('meta_difficulty');
114 $fields['lom_costs'] = $lng->txt('meta_cost');
115 $fields['lom_copyright'] = $lng->txt('meta_copyright_and_other_restrictions');
116 $fields['lom_purpose'] = $lng->txt('meta_purpose');
117 $fields['lom_taxon'] = $lng->txt('meta_taxon');
118
119 // Append all advanced meta data fields
120 include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
121 include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
122 foreach (ilAdvancedMDRecord::_getRecords() as $record) {
123 foreach (ilAdvancedMDFieldDefinition::getInstancesByRecordId($record->getRecordId(), true) as $def) {
124 $fields['adv_' . $def->getFieldId()] = $def->getTitle();
125 }
126 }
127 return $fields;
128 }
static getInstancesByRecordId($a_record_id, $a_only_searchable=false)
Get definitions by record id.
static _getRecords()
Get records.
$def
Definition: croninfo.php:21

References $def, $DIC, $fields, $lng, ilAdvancedMDRecord\_getRecords(), ilSearchSettings\getInstance(), and ilAdvancedMDFieldDefinition\getInstancesByRecordId().

Referenced by ilLuceneAdvancedSearchActivationTableGUI\parse(), ilLuceneAdvancedSearchSettings\read(), and ilObjSearchSettingsGUI\saveAdvancedLuceneSettingsObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFormElement()

ilLuceneAdvancedSearchFields::getFormElement (   $a_query,
  $a_field_name,
ilPropertyFormGUI  $a_form 
)

Definition at line 143 of file class.ilLuceneAdvancedSearchFields.php.

144 {
145 include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
146
147 $a_post_name = 'query[' . $a_field_name . ']';
148
149 ilLoggerFactory::getLogger('sea')->debug('Query was: ' . print_r($a_query, true));
150 if (!is_array($a_query)) {
151 $a_query = array();
152 }
153
154 switch ($a_field_name) {
155 case 'general_offline':
156 $offline_options = array(
157 '0' => $this->lng->txt('search_any'),
158 self::ONLINE_QUERY => $this->lng->txt('search_option_online'),
159 self::OFFLINE_QUERY => $this->lng->txt('search_option_offline')
160 );
161 $offline = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
162 $offline->setOptions($offline_options);
163 $offline->setValue($a_query['general_offline']);
164 return $offline;
165
166 case 'lom_content':
167 $text = new ilTextInputGUI($this->active_fields[$a_field_name], $a_post_name);
168 $text->setSubmitFormOnEnter(true);
169 $text->setValue($a_query['lom_content']);
170 $text->setSize(30);
171 $text->setMaxLength(255);
172 return $text;
173
174 // General
175 case 'lom_language':
176 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
177 $select->setValue($a_query['lom_language']);
178 $select->setOptions(ilMDUtilSelect::_getLanguageSelect(
179 '',
180 $a_field_name,
181 array(0 => $this->lng->txt('search_any')),
182 true
183 ));
184 return $select;
185
186 case 'lom_keyword':
187 $text = new ilTextInputGUI($this->active_fields[$a_field_name], $a_post_name);
188 $text->setSubmitFormOnEnter(true);
189 $text->setValue($a_query['lom_keyword']);
190 $text->setSize(30);
191 $text->setMaxLength(255);
192 return $text;
193
194 case 'lom_coverage':
195 $text = new ilTextInputGUI($this->active_fields[$a_field_name], $a_post_name);
196 $text->setSubmitFormOnEnter(true);
197 $text->setValue($a_query['lom_coverage']);
198 $text->setSize(30);
199 $text->setMaxLength(255);
200 return $text;
201
202 case 'lom_structure':
203 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
204 $select->setValue($a_query['lom_structure']);
205 $select->setOptions(ilMDUtilSelect::_getStructureSelect(
206 '',
207 $a_field_name,
208 array(0 => $this->lng->txt('search_any')),
209 true
210 ));
211 return $select;
212
213 // Lifecycle
214 case 'lom_status':
215 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
216 $select->setValue($a_query['lom_status']);
217 $select->setOptions(ilMDUtilSelect::_getStatusSelect(
218 '',
219 $a_field_name,
220 array(0 => $this->lng->txt('search_any')),
221 true
222 ));
223 return $select;
224
225 case 'lom_version':
226 $text = new ilTextInputGUI($this->active_fields[$a_field_name], $a_post_name);
227 $text->setSubmitFormOnEnter(true);
228 $text->setValue($a_query['lom_version']);
229 $text->setSize(30);
230 $text->setMaxLength(255);
231 return $text;
232
233 case 'lom_contribute':
234 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], 'query[' . 'lom_role' . ']');
235 $select->setValue($a_query['lom_role']);
236 $select->setOptions(ilMDUtilSelect::_getRoleSelect(
237 '',
238 $a_field_name,
239 array(0 => $this->lng->txt('search_any')),
240 true
241 ));
242
243 $text = new ilTextInputGUI($this->lng->txt('meta_entry'), 'query[' . 'lom_role_entry' . ']');
244 $text->setValue($a_query['lom_role_entry']);
245 $text->setSize(30);
246 $text->setMaxLength(255);
247
248 $select->addSubItem($text);
249 return $select;
250
251 // Technical
252 case 'lom_format':
253 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
254 $select->setValue($a_query['lom_format']);
255 $select->setOptions(ilMDUtilSelect::_getFormatSelect(
256 '',
257 $a_field_name,
258 array(0 => $this->lng->txt('search_any')),
259 true
260 ));
261 return $select;
262
263 case 'lom_operating_system':
264 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
265 $select->setValue($a_query['lom_operating_system']);
267 '',
268 $a_field_name,
269 array(0 => $this->lng->txt('search_any')),
270 true
271 ));
272 return $select;
273
274 case 'lom_browser':
275 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
276 $select->setValue($a_query['lom_browser']);
277 $select->setOptions(ilMDUtilSelect::_getBrowserSelect(
278 '',
279 $a_field_name,
280 array(0 => $this->lng->txt('search_any')),
281 true
282 ));
283 return $select;
284
285 // Education
286 case 'lom_interactivity':
287 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
288 $select->setValue($a_query['lom_interactivity']);
290 '',
291 $a_field_name,
292 array(0 => $this->lng->txt('search_any')),
293 true
294 ));
295 return $select;
296
297 case 'lom_resource':
298 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
299 $select->setValue($a_query['lom_resource']);
301 '',
302 $a_field_name,
303 array(0 => $this->lng->txt('search_any')),
304 true
305 ));
306 return $select;
307
308 case 'lom_level':
309 $range = new ilCustomInputGUI($this->active_fields[$a_field_name]);
310 $html = $this->getRangeSelect(
311 $this->lng->txt('from'),
313 $a_query['lom_level_start'],
314 'query[' . 'lom_level_start' . ']',
315 array(0 => $this->lng->txt('search_any'))
316 ),
317 $this->lng->txt('until'),
319 $a_query['lom_level_end'],
320 'query[' . 'lom_level_end' . ']',
321 array(0 => $this->lng->txt('search_any'))
322 )
323 );
324 $range->setHTML($html);
325 return $range;
326
327 case 'lom_density':
328 $range = new ilCustomInputGUI($this->active_fields[$a_field_name]);
329 $html = $this->getRangeSelect(
330 $this->lng->txt('from'),
332 $a_query['lom_density_start'],
333 'query[' . 'lom_density_start' . ']',
334 array(0 => $this->lng->txt('search_any'))
335 ),
336 $this->lng->txt('until'),
338 $a_query['lom_density_end'],
339 'query[' . 'lom_density_end' . ']',
340 array(0 => $this->lng->txt('search_any'))
341 )
342 );
343 $range->setHTML($html);
344 return $range;
345
346
347 case 'lom_user_role':
348 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
349 $select->setValue($a_query['lom_user_role']);
351 '',
352 $a_field_name,
353 array(0 => $this->lng->txt('search_any')),
354 true
355 ));
356 return $select;
357
358 case 'lom_context':
359 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
360 $select->setValue($a_query['lom_context']);
361 $select->setOptions(ilMDUtilSelect::_getContextSelect(
362 '',
363 $a_field_name,
364 array(0 => $this->lng->txt('search_any')),
365 true
366 ));
367 return $select;
368
369 case 'lom_difficulty':
370 $range = new ilCustomInputGUI($this->active_fields[$a_field_name]);
371 $html = $this->getRangeSelect(
372 $this->lng->txt('from'),
374 $a_query['lom_difficulty_start'],
375 'query[' . 'lom_difficulty_start' . ']',
376 array(0 => $this->lng->txt('search_any'))
377 ),
378 $this->lng->txt('until'),
380 $a_query['lom_difficulty_end'],
381 'query[' . 'lom_difficulty_end' . ']',
382 array(0 => $this->lng->txt('search_any'))
383 )
384 );
385 $range->setHTML($html);
386 return $range;
387
388 // Rights
389 case 'lom_costs':
390 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
391 $select->setValue($a_query['lom_costs']);
392 $select->setOptions(ilMDUtilSelect::_getCostsSelect(
393 '',
394 $a_field_name,
395 array(0 => $this->lng->txt('search_any')),
396 true
397 ));
398 return $select;
399
400 case 'lom_copyright':
401 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
402 $select->setValue($a_query['lom_copyright']);
404 '',
405 $a_field_name,
406 array(0 => $this->lng->txt('search_any')),
407 true
408 ));
409 return $select;
410
411
412
413 // Classification
414 case 'lom_purpose':
415 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
416 $select->setValue($a_query['lom_purpose']);
417 $select->setOptions(ilMDUtilSelect::_getPurposeSelect(
418 '',
419 $a_field_name,
420 array(0 => $this->lng->txt('search_any')),
421 true
422 ));
423 return $select;
424
425 case 'lom_taxon':
426 $text = new ilTextInputGUI($this->active_fields[$a_field_name], $a_post_name);
427 $text->setSubmitFormOnEnter(true);
428 $text->setValue($a_query['lom_taxon']);
429 $text->setSize(30);
430 $text->setMaxLength(255);
431 return $text;
432
433 default:
434 if (substr($a_field_name, 0, 3) != 'adv') {
435 break;
436 }
437
438 // Advanced meta data
439 $field_id = substr($a_field_name, 4);
440 include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
442
443 $field_form = ilADTFactory::getInstance()->getSearchBridgeForDefinitionInstance($field->getADTDefinition(), true, false);
444 $field_form->setForm($a_form);
445 $field_form->setElementId($a_post_name);
446 $field_form->setTitle($this->active_fields[$a_field_name]);
447 $field_form->addToForm();
448
449 // #17071 - reload search values
450 if (is_array($a_query) &&
451 array_key_exists($a_field_name, $a_query)) {
452 $field_form->importFromPost($a_query);
453 $field_form->validate();
454 }
455
456 return;
457 }
458 return null;
459 }
static getInstance()
Get singleton.
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
This class represents a custom property in a property form.
static getLogger($a_component_id)
Get component logger.
getRangeSelect($txt_from, $select_from, $txt_until, $select_until)
get a range selection
static _getInteractivityTypeSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta educational interactivity type All possible entries in meta_format are shown.
static _getInteractivityLevelSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta educational interactivity level All possible entries in meta_format are shown.
static _getCopyrightAndOtherRestrictionsSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta rights copyright and other restrictions All possible entries in meta_format are shown.
static _getOperatingSystemSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta technical os selector.
static _getStatusSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta lifecycle status selector.
static _getCostsSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta rights costs All possible entries in meta_format are shown.
static _getPurposeSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta rights copyright and other restrictions All possible entries in meta_format are shown.
static _getLearningResourceTypeSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta educational learning resource type All possible entries in meta_format are shown.
static _getBrowserSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta technical browser selector.
static _getFormatSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta technical format selector All possible entries in meta_format are shown.
static _getLanguageSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta data language selector.
static _getStructureSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta general structure selector.
static _getContextSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta context.
static _getSemanticDensitySelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta educational semantic density All possible entries in meta_format are shown.
static _getIntendedEndUserRoleSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta educational intended end user role All possible entries in meta_format are shown.
static _getRoleSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta lifecycle status selector.
static _getDifficultySelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta educational difficulty All possible entries in meta_format are shown.
This class represents a selection list property in a property form.
This class represents a text property in a property form.
$html
Definition: example_001.php:87
$text
Definition: errorreport.php:18

References $html, $text, ilMDUtilSelect\_getBrowserSelect(), ilMDUtilSelect\_getContextSelect(), ilMDUtilSelect\_getCopyrightAndOtherRestrictionsSelect(), ilMDUtilSelect\_getCostsSelect(), ilMDUtilSelect\_getDifficultySelect(), ilMDUtilSelect\_getFormatSelect(), ilMDUtilSelect\_getIntendedEndUserRoleSelect(), ilMDUtilSelect\_getInteractivityLevelSelect(), ilMDUtilSelect\_getInteractivityTypeSelect(), ilMDUtilSelect\_getLanguageSelect(), ilMDUtilSelect\_getLearningResourceTypeSelect(), ilMDUtilSelect\_getOperatingSystemSelect(), ilMDUtilSelect\_getPurposeSelect(), ilMDUtilSelect\_getRoleSelect(), ilMDUtilSelect\_getSemanticDensitySelect(), ilMDUtilSelect\_getStatusSelect(), ilMDUtilSelect\_getStructureSelect(), ilAdvancedMDFieldDefinition\getInstance(), ilADTFactory\getInstance(), ilLoggerFactory\getLogger(), and getRangeSelect().

+ Here is the call graph for this function:

◆ getInstance()

static ilLuceneAdvancedSearchFields::getInstance ( )
static

Get singleton instance.

Definition at line 71 of file class.ilLuceneAdvancedSearchFields.php.

72 {
73 if (isset(self::$instance) and self::$instance) {
74 return self::$instance;
75 }
76 return self::$instance = new ilLuceneAdvancedSearchFields();
77 }
Field definitions of advanced meta data search.

References $instance.

Referenced by ilLuceneAdvancedQueryParser\__construct(), ilAdvancedSearchGUI\__construct(), ilLuceneAdvancedSearchGUI\__construct(), ilLuceneSearchGUI\__construct(), and ilLuceneUserSearchGUI\getTabs().

+ Here is the caller graph for this function:

◆ getRangeSelect()

ilLuceneAdvancedSearchFields::getRangeSelect (   $txt_from,
  $select_from,
  $txt_until,
  $select_until 
)
protected

get a range selection

Definition at line 806 of file class.ilLuceneAdvancedSearchFields.php.

807 {
808 $tpl = new ilTemplate('tpl.range_search.html', true, true, 'Services/Search');
809 $tpl->setVariable('TXT_FROM', $txt_from);
810 $tpl->setVariable('FROM', $select_from);
811 $tpl->setVariable('TXT_UPTO', $txt_until);
812 $tpl->setVariable('UPTO', $select_until);
813 return $tpl->get();
814 }
$tpl
Definition: ilias.php:10
special template class to simplify handling of ITX/PEAR

References $tpl.

Referenced by getFormElement().

+ Here is the caller graph for this function:

◆ parseFieldQuery()

ilLuceneAdvancedSearchFields::parseFieldQuery (   $a_field,
  $a_query 
)

Called from ilLuceneAdvancedQueryParser Parse a field specific query.

Definition at line 466 of file class.ilLuceneAdvancedSearchFields.php.

467 {
468 switch ($a_field) {
469 case 'lom_content':
470 return $a_query;
471
472 case 'general_offline':
473
474 switch ($a_query) {
476 return 'offline:1';
477
478 default:
479 return '-offline:1';
480
481 }
482 return '';
483
484 // General
485 case 'lom_language':
486 return 'lomLanguage:' . $a_query;
487
488 case 'lom_keyword':
489 return 'lomKeyword:' . $a_query;
490
491 case 'lom_coverage':
492 return 'lomCoverage:' . $a_query;
493
494 case 'lom_structure':
495 return 'lomStructure:' . $a_query;
496
497 // Lifecycle
498 case 'lom_status':
499 return 'lomStatus:' . $a_query;
500
501 case 'lom_version':
502 return 'lomVersion:' . $a_query;
503
504 // Begin Contribute
505 case 'lom_role':
506 return 'lomRole:' . $a_query;
507
508 case 'lom_role_entry':
509 return 'lomRoleEntity:' . $a_query;
510 // End contribute
511
512 // Technical
513 case 'lom_format':
514 return 'lomFormat:' . $a_query;
515
516 case 'lom_operating_system':
517 return 'lomOS:' . $a_query;
518
519 case 'lom_browser':
520 return 'lomBrowser:' . $a_query;
521
522 // Educational
523 case 'lom_interactivity':
524 return 'lomInteractivity:' . $a_query;
525
526 case 'lom_resource':
527 return 'lomResource:' . $a_query;
528
529 case 'lom_level_start':
530 $q_string = '';
531 include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
532 $options = ilMDUtilSelect::_getInteractivityLevelSelect(0, 'lom_level', array(), true);
533 for ($i = $a_query; $i <= count($options); $i++) {
534 if (strlen($q_string)) {
535 $q_string .= 'OR ';
536 }
537 $q_string .= ('lomLevel:"' . $options[$i] . '" ');
538 }
539 return $q_string;
540
541 case 'lom_level_end':
542 $q_string = '';
543 include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
544 $options = ilMDUtilSelect::_getInteractivityLevelSelect(0, 'lom_level', array(), true);
545 for ($i = 1; $i <= $a_query; $i++) {
546 if (strlen($q_string)) {
547 $q_string .= 'OR ';
548 }
549 $q_string .= ('lomLevel:"' . $options[$i] . '" ');
550 }
551 return $q_string;
552
553 case 'lom_density_start':
554 $q_string = '';
555 include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
556 $options = ilMDUtilSelect::_getSemanticDensitySelect(0, 'lom_density', array(), true);
557 for ($i = $a_query; $i <= count($options); $i++) {
558 if (strlen($q_string)) {
559 $q_string .= 'OR ';
560 }
561 $q_string .= ('lomDensity:"' . $options[$i] . '" ');
562 }
563 return $q_string;
564
565 case 'lom_density_end':
566 $q_string = '';
567 include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
568 $options = ilMDUtilSelect::_getSemanticDensitySelect(0, 'lom_density', array(), true);
569 for ($i = 1; $i <= $a_query; $i++) {
570 if (strlen($q_string)) {
571 $q_string .= 'OR ';
572 }
573 $q_string .= ('lomDensity:"' . $options[$i] . '" ');
574 }
575 return $q_string;
576
577 case 'lom_user_role':
578 return 'lomUserRole:' . $a_query;
579
580 case 'lom_context':
581 return 'lomContext:' . $a_query;
582
583 case 'lom_difficulty_start':
584 $q_string = '';
585 include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
586 $options = ilMDUtilSelect::_getDifficultySelect(0, 'lom_difficulty', array(), true);
587 for ($i = $a_query; $i <= count($options); $i++) {
588 if (strlen($q_string)) {
589 $q_string .= 'OR ';
590 }
591 $q_string .= ('lomDifficulty:"' . $options[$i] . '" ');
592 }
593 return $q_string;
594
595 case 'lom_difficulty_end':
596 $q_string = '';
597 include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
598 $options = ilMDUtilSelect::_getDifficultySelect(0, 'lom_difficulty', array(), true);
599 for ($i = 1; $i <= $a_query; $i++) {
600 if (strlen($q_string)) {
601 $q_string .= 'OR ';
602 }
603 $q_string .= ('lomDifficulty:"' . $options[$i] . '" ');
604 }
605 return $q_string;
606
607 // Rights
608 case 'lom_costs':
609 return 'lomCosts:' . $a_query;
610
611 case 'lom_copyright':
612 return 'lomCopyright:' . $a_query;
613
614 // Classification
615 case 'lom_purpose':
616 return 'lomPurpose:' . $a_query;
617
618 case 'lom_taxon':
619 return 'lomTaxon:' . $a_query;
620
621 default:
622 if (substr($a_field, 0, 3) != 'adv') {
623 break;
624 }
625
626 // Advanced meta data
627 $field_id = substr($a_field, 4);
628 include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
629 try {
630 // field might be invalid (cached query)
632 } catch (Exception $ex) {
633 return '';
634 }
635
636 $adv_query = $field->getLuceneSearchString($a_query);
637 if ($adv_query) {
638 // #17558
639 if (!is_array($adv_query)) {
640 return 'advancedMetaData_' . $field_id . ': ' . $adv_query;
641 } else {
642 $res = array();
643 foreach ($adv_query as $adv_query_item) {
644 $res[] = 'advancedMetaData_' . $field_id . ': ' . $adv_query_item;
645 }
646 return '(' . implode(' OR ', $res) . ')';
647 }
648 }
649 }
650 }
$i
Definition: disco.tpl.php:19
foreach($_POST as $key=> $value) $res

References $i, PHPMailer\PHPMailer\$options, $res, ilMDUtilSelect\_getDifficultySelect(), ilMDUtilSelect\_getInteractivityLevelSelect(), ilMDUtilSelect\_getSemanticDensitySelect(), ilAdvancedMDFieldDefinition\getInstance(), and OFFLINE_QUERY.

+ Here is the call graph for this function:

◆ readFields()

ilLuceneAdvancedSearchFields::readFields ( )
protected

Read active fields.

Definition at line 656 of file class.ilLuceneAdvancedSearchFields.php.

657 {
658 foreach (self::getFields() as $name => $translation) {
659 if ($this->settings->isActive($name)) {
660 $this->active_fields[$name] = $translation;
661 }
662 }
663 }

References $name, and settings().

Referenced by __construct().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ readSections()

ilLuceneAdvancedSearchFields::readSections ( )
protected

Read active sections.

Definition at line 668 of file class.ilLuceneAdvancedSearchFields.php.

669 {
670 foreach ($this->getActiveFields() as $field_name => $translation) {
671 switch ($field_name) {
672 // Default section
673 case 'lom_content':
674 $this->active_sections['default']['fields'][] = 'lom_content';
675 $this->active_sections['default']['name'] = '';
676 break;
677
678 case 'general_offline':
679 $this->active_sections['default']['fields'][] = 'general_offline';
680 $this->active_sections['default']['name'] = '';
681 break;
682
683 case 'lom_type':
684 $this->active_sections['default']['fields'][] = 'lom_type';
685 $this->active_sections['default']['name'] = '';
686 break;
687
688 // General
689 case 'lom_language':
690 $this->active_sections['general']['fields'][] = 'lom_language';
691 $this->active_sections['general']['name'] = $this->lng->txt('meta_general');
692 break;
693 case 'lom_keyword':
694 $this->active_sections['general']['fields'][] = 'lom_keyword';
695 $this->active_sections['general']['name'] = $this->lng->txt('meta_general');
696 break;
697 case 'lom_coverage':
698 $this->active_sections['general']['fields'][] = 'lom_coverage';
699 $this->active_sections['general']['name'] = $this->lng->txt('meta_general');
700 break;
701 case 'lom_structure':
702 $this->active_sections['general']['fields'][] = 'lom_structure';
703 $this->active_sections['general']['name'] = $this->lng->txt('meta_general');
704 break;
705
706 // Lifecycle
707 case 'lom_status':
708 $this->active_sections['lifecycle']['fields'][] = 'lom_status';
709 $this->active_sections['lifecycle']['name'] = $this->lng->txt('meta_lifecycle');
710 break;
711 case 'lom_version':
712 $this->active_sections['lifecycle']['fields'][] = 'lom_version';
713 $this->active_sections['lifecycle']['name'] = $this->lng->txt('meta_lifecycle');
714 break;
715 case 'lom_contribute':
716 $this->active_sections['lifecycle']['fields'][] = 'lom_contribute';
717 $this->active_sections['lifecycle']['name'] = $this->lng->txt('meta_lifecycle');
718 break;
719
720 // Technical
721 case 'lom_format':
722 $this->active_sections['technical']['fields'][] = 'lom_format';
723 $this->active_sections['technical']['name'] = $this->lng->txt('meta_technical');
724 break;
725 case 'lom_operating_system':
726 $this->active_sections['technical']['fields'][] = 'lom_operating_system';
727 $this->active_sections['technical']['name'] = $this->lng->txt('meta_technical');
728 break;
729 case 'lom_browser':
730 $this->active_sections['technical']['fields'][] = 'lom_browser';
731 $this->active_sections['technical']['name'] = $this->lng->txt('meta_technical');
732 break;
733
734 // Education
735 case 'lom_interactivity':
736 $this->active_sections['education']['fields'][] = 'lom_interactivity';
737 $this->active_sections['education']['name'] = $this->lng->txt('meta_education');
738 break;
739 case 'lom_resource':
740 $this->active_sections['education']['fields'][] = 'lom_resource';
741 $this->active_sections['education']['name'] = $this->lng->txt('meta_education');
742 break;
743 case 'lom_level':
744 $this->active_sections['education']['fields'][] = 'lom_level';
745 $this->active_sections['education']['name'] = $this->lng->txt('meta_education');
746 break;
747 case 'lom_density':
748 $this->active_sections['education']['fields'][] = 'lom_density';
749 $this->active_sections['education']['name'] = $this->lng->txt('meta_education');
750 break;
751 case 'lom_user_role':
752 $this->active_sections['education']['fields'][] = 'lom_user_role';
753 $this->active_sections['education']['name'] = $this->lng->txt('meta_education');
754 break;
755 case 'lom_context':
756 $this->active_sections['education']['fields'][] = 'lom_context';
757 $this->active_sections['education']['name'] = $this->lng->txt('meta_education');
758 break;
759 case 'lom_difficulty':
760 $this->active_sections['education']['fields'][] = 'lom_difficulty';
761 $this->active_sections['education']['name'] = $this->lng->txt('meta_education');
762 break;
763
764 // Rights
765 case 'lom_costs':
766 $this->active_sections['rights']['fields'][] = 'lom_costs';
767 $this->active_sections['rights']['name'] = $this->lng->txt('meta_rights');
768 break;
769 case 'lom_copyright':
770 $this->active_sections['rights']['fields'][] = 'lom_copyright';
771 $this->active_sections['rights']['name'] = $this->lng->txt('meta_rights');
772 break;
773
774 // Classification
775 case 'lom_purpose':
776 $this->active_sections['classification']['fields'][] = 'lom_purpose';
777 $this->active_sections['classification']['name'] = $this->lng->txt('meta_classification');
778 break;
779 case 'lom_taxon':
780 $this->active_sections['classification']['fields'][] = 'lom_taxon';
781 $this->active_sections['classification']['name'] = $this->lng->txt('meta_classification');
782 break;
783
784 default:
785 if (substr($field_name, 0, 3) != 'adv') {
786 break;
787 }
788
789 // Advanced meta data
790 $field_id = substr($field_name, 4);
791 include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
792 include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
794 $record_id = $field->getRecordId();
795
796 $this->active_sections['adv_record_' . $record_id]['fields'][] = $field_name;
797 $this->active_sections['adv_record_' . $record_id]['name'] = ilAdvancedMDRecord::_lookupTitle($record_id);
798 break;
799 }
800 }
801 }
static _lookupTitle($a_record_id)
Lookup title.

References ilAdvancedMDRecord\_lookupTitle(), getActiveFields(), and ilAdvancedMDFieldDefinition\getInstance().

Referenced by __construct().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $active_fields

ilLuceneAdvancedSearchFields::$active_fields = array()
private

Definition at line 47 of file class.ilLuceneAdvancedSearchFields.php.

◆ $active_sections

ilLuceneAdvancedSearchFields::$active_sections = array()
private

Definition at line 50 of file class.ilLuceneAdvancedSearchFields.php.

◆ $fields

ilLuceneAdvancedSearchFields::$fields = null
staticprivate

Definition at line 46 of file class.ilLuceneAdvancedSearchFields.php.

Referenced by getFields().

◆ $instance

ilLuceneAdvancedSearchFields::$instance = null
staticprivate

Definition at line 41 of file class.ilLuceneAdvancedSearchFields.php.

Referenced by getInstance().

◆ $lng

ilLuceneAdvancedSearchFields::$lng = null
protected

Definition at line 44 of file class.ilLuceneAdvancedSearchFields.php.

Referenced by __construct(), and getFields().

◆ $sections

ilLuceneAdvancedSearchFields::$sections = null
staticprivate

Definition at line 49 of file class.ilLuceneAdvancedSearchFields.php.

◆ $settings

ilLuceneAdvancedSearchFields::$settings = null
private

Definition at line 42 of file class.ilLuceneAdvancedSearchFields.php.

◆ OFFLINE_QUERY

const ilLuceneAdvancedSearchFields::OFFLINE_QUERY = 2

Definition at line 39 of file class.ilLuceneAdvancedSearchFields.php.

Referenced by parseFieldQuery().

◆ ONLINE_QUERY

const ilLuceneAdvancedSearchFields::ONLINE_QUERY = 1

Definition at line 38 of file class.ilLuceneAdvancedSearchFields.php.


The documentation for this class was generated from the following file: