ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
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 $lng;
56
58
59 $this->lng = $lng;
60 $this->lng->loadLanguageModule('meta');
61
62 $this->readFields();
63 $this->readSections();
64 }
settings()
Definition: settings.php:2

References $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 129 of file class.ilLuceneAdvancedSearchFields.php.

130 {
131 return $this->active_fields ? $this->active_fields : array();
132 }

Referenced by readSections().

+ Here is the caller graph for this function:

◆ getActiveSections()

ilLuceneAdvancedSearchFields::getActiveSections ( )

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

135 {
136 return $this->active_sections ? $this->active_sections : array();
137 }

◆ getFields()

static ilLuceneAdvancedSearchFields::getFields ( )
static

Return an array of all meta data fields.

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

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

140 {
141 include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
142
143 $a_post_name = 'query[' . $a_field_name . ']';
144
145 ilLoggerFactory::getLogger('sea')->debug('Query was: ' . print_r($a_query, true));
146 if (!is_array($a_query)) {
147 $a_query = array();
148 }
149
150 switch ($a_field_name) {
151 case 'general_offline':
152 $offline_options = array(
153 '0' => $this->lng->txt('search_any'),
154 self::ONLINE_QUERY => $this->lng->txt('search_option_online'),
155 self::OFFLINE_QUERY => $this->lng->txt('search_option_offline')
156 );
157 $offline = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
158 $offline->setOptions($offline_options);
159 $offline->setValue($a_query['general_offline']);
160 return $offline;
161
162 case 'lom_content':
163 $text = new ilTextInputGUI($this->active_fields[$a_field_name], $a_post_name);
164 $text->setSubmitFormOnEnter(true);
165 $text->setValue($a_query['lom_content']);
166 $text->setSize(30);
167 $text->setMaxLength(255);
168 return $text;
169
170 // General
171 case 'lom_language':
172 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
173 $select->setValue($a_query['lom_language']);
174 $select->setOptions(ilMDUtilSelect::_getLanguageSelect(
175 '',
176 $a_field_name,
177 array(0 => $this->lng->txt('search_any')),
178 true
179 ));
180 return $select;
181
182 case 'lom_keyword':
183 $text = new ilTextInputGUI($this->active_fields[$a_field_name], $a_post_name);
184 $text->setSubmitFormOnEnter(true);
185 $text->setValue($a_query['lom_keyword']);
186 $text->setSize(30);
187 $text->setMaxLength(255);
188 return $text;
189
190 case 'lom_coverage':
191 $text = new ilTextInputGUI($this->active_fields[$a_field_name], $a_post_name);
192 $text->setSubmitFormOnEnter(true);
193 $text->setValue($a_query['lom_coverage']);
194 $text->setSize(30);
195 $text->setMaxLength(255);
196 return $text;
197
198 case 'lom_structure':
199 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
200 $select->setValue($a_query['lom_structure']);
201 $select->setOptions(ilMDUtilSelect::_getStructureSelect(
202 '',
203 $a_field_name,
204 array(0 => $this->lng->txt('search_any')),
205 true
206 ));
207 return $select;
208
209 // Lifecycle
210 case 'lom_status':
211 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
212 $select->setValue($a_query['lom_status']);
213 $select->setOptions(ilMDUtilSelect::_getStatusSelect(
214 '',
215 $a_field_name,
216 array(0 => $this->lng->txt('search_any')),
217 true
218 ));
219 return $select;
220
221 case 'lom_version':
222 $text = new ilTextInputGUI($this->active_fields[$a_field_name], $a_post_name);
223 $text->setSubmitFormOnEnter(true);
224 $text->setValue($a_query['lom_version']);
225 $text->setSize(30);
226 $text->setMaxLength(255);
227 return $text;
228
229 case 'lom_contribute':
230 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], 'query[' . 'lom_role' . ']');
231 $select->setValue($a_query['lom_role']);
232 $select->setOptions(ilMDUtilSelect::_getRoleSelect(
233 '',
234 $a_field_name,
235 array(0 => $this->lng->txt('search_any')),
236 true
237 ));
238
239 $text = new ilTextInputGUI($this->lng->txt('meta_entry'), 'query[' . 'lom_role_entry' . ']');
240 $text->setValue($a_query['lom_role_entry']);
241 $text->setSize(30);
242 $text->setMaxLength(255);
243
244 $select->addSubItem($text);
245 return $select;
246
247 // Technical
248 case 'lom_format':
249 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
250 $select->setValue($a_query['lom_format']);
251 $select->setOptions(ilMDUtilSelect::_getFormatSelect(
252 '',
253 $a_field_name,
254 array(0 => $this->lng->txt('search_any')),
255 true
256 ));
257 return $select;
258
259 case 'lom_operating_system':
260 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
261 $select->setValue($a_query['lom_operating_system']);
263 '',
264 $a_field_name,
265 array(0 => $this->lng->txt('search_any')),
266 true
267 ));
268 return $select;
269
270 case 'lom_browser':
271 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
272 $select->setValue($a_query['lom_browser']);
273 $select->setOptions(ilMDUtilSelect::_getBrowserSelect(
274 '',
275 $a_field_name,
276 array(0 => $this->lng->txt('search_any')),
277 true
278 ));
279 return $select;
280
281 // Education
282 case 'lom_interactivity':
283 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
284 $select->setValue($a_query['lom_interactivity']);
286 '',
287 $a_field_name,
288 array(0 => $this->lng->txt('search_any')),
289 true
290 ));
291 return $select;
292
293 case 'lom_resource':
294 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
295 $select->setValue($a_query['lom_resource']);
297 '',
298 $a_field_name,
299 array(0 => $this->lng->txt('search_any')),
300 true
301 ));
302 return $select;
303
304 case 'lom_level':
305 $range = new ilCustomInputGUI($this->active_fields[$a_field_name]);
306 $html = $this->getRangeSelect(
307 $this->lng->txt('from'),
309 $a_query['lom_level_start'],
310 'query[' . 'lom_level_start' . ']',
311 array(0 => $this->lng->txt('search_any'))
312 ),
313 $this->lng->txt('until'),
315 $a_query['lom_level_end'],
316 'query[' . 'lom_level_end' . ']',
317 array(0 => $this->lng->txt('search_any'))
318 )
319 );
320 $range->setHTML($html);
321 return $range;
322
323 case 'lom_density':
324 $range = new ilCustomInputGUI($this->active_fields[$a_field_name]);
325 $html = $this->getRangeSelect(
326 $this->lng->txt('from'),
328 $a_query['lom_density_start'],
329 'query[' . 'lom_density_start' . ']',
330 array(0 => $this->lng->txt('search_any'))
331 ),
332 $this->lng->txt('until'),
334 $a_query['lom_density_end'],
335 'query[' . 'lom_density_end' . ']',
336 array(0 => $this->lng->txt('search_any'))
337 )
338 );
339 $range->setHTML($html);
340 return $range;
341
342
343 case 'lom_user_role':
344 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
345 $select->setValue($a_query['lom_user_role']);
347 '',
348 $a_field_name,
349 array(0 => $this->lng->txt('search_any')),
350 true
351 ));
352 return $select;
353
354 case 'lom_context':
355 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
356 $select->setValue($a_query['lom_context']);
357 $select->setOptions(ilMDUtilSelect::_getContextSelect(
358 '',
359 $a_field_name,
360 array(0 => $this->lng->txt('search_any')),
361 true
362 ));
363 return $select;
364
365 case 'lom_difficulty':
366 $range = new ilCustomInputGUI($this->active_fields[$a_field_name]);
367 $html = $this->getRangeSelect(
368 $this->lng->txt('from'),
370 $a_query['lom_difficulty_start'],
371 'query[' . 'lom_difficulty_start' . ']',
372 array(0 => $this->lng->txt('search_any'))
373 ),
374 $this->lng->txt('until'),
376 $a_query['lom_difficulty_end'],
377 'query[' . 'lom_difficulty_end' . ']',
378 array(0 => $this->lng->txt('search_any'))
379 )
380 );
381 $range->setHTML($html);
382 return $range;
383
384 // Rights
385 case 'lom_costs':
386 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
387 $select->setValue($a_query['lom_costs']);
388 $select->setOptions(ilMDUtilSelect::_getCostsSelect(
389 '',
390 $a_field_name,
391 array(0 => $this->lng->txt('search_any')),
392 true
393 ));
394 return $select;
395
396 case 'lom_copyright':
397 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
398 $select->setValue($a_query['lom_copyright']);
400 '',
401 $a_field_name,
402 array(0 => $this->lng->txt('search_any')),
403 true
404 ));
405 return $select;
406
407
408
409 // Classification
410 case 'lom_purpose':
411 $select = new ilSelectInputGUI($this->active_fields[$a_field_name], $a_post_name);
412 $select->setValue($a_query['lom_purpose']);
413 $select->setOptions(ilMDUtilSelect::_getPurposeSelect(
414 '',
415 $a_field_name,
416 array(0 => $this->lng->txt('search_any')),
417 true
418 ));
419 return $select;
420
421 case 'lom_taxon':
422 $text = new ilTextInputGUI($this->active_fields[$a_field_name], $a_post_name);
423 $text->setSubmitFormOnEnter(true);
424 $text->setValue($a_query['lom_taxon']);
425 $text->setSize(30);
426 $text->setMaxLength(255);
427 return $text;
428
429 default:
430 if (substr($a_field_name, 0, 3) != 'adv') {
431 break;
432 }
433
434 // Advanced meta data
435 $field_id = substr($a_field_name, 4);
436 include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
438
439 $field_form = ilADTFactory::getInstance()->getSearchBridgeForDefinitionInstance($field->getADTDefinition(), true, false);
440 $field_form->setForm($a_form);
441 $field_form->setElementId($a_post_name);
442 $field_form->setTitle($this->active_fields[$a_field_name]);
443 $field_form->addToForm();
444
445 // #17071 - reload search values
446 if (is_array($a_query) &&
447 array_key_exists($a_field_name, $a_query)) {
448 $field_form->importFromPost($a_query);
449 $field_form->validate();
450 }
451
452 return;
453 }
454 return null;
455 }
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 69 of file class.ilLuceneAdvancedSearchFields.php.

70 {
71 if (isset(self::$instance) and self::$instance) {
72 return self::$instance;
73 }
74 return self::$instance = new ilLuceneAdvancedSearchFields();
75 }
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 802 of file class.ilLuceneAdvancedSearchFields.php.

803 {
804 $tpl = new ilTemplate('tpl.range_search.html', true, true, 'Services/Search');
805 $tpl->setVariable('TXT_FROM', $txt_from);
806 $tpl->setVariable('FROM', $select_from);
807 $tpl->setVariable('TXT_UPTO', $txt_until);
808 $tpl->setVariable('UPTO', $select_until);
809 return $tpl->get();
810 }
$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 462 of file class.ilLuceneAdvancedSearchFields.php.

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

References $i, $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 652 of file class.ilLuceneAdvancedSearchFields.php.

653 {
654 foreach (self::getFields() as $name => $translation) {
655 if ($this->settings->isActive($name)) {
656 $this->active_fields[$name] = $translation;
657 }
658 }
659 }
if($format !==null) $name
Definition: metadata.php:146

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 664 of file class.ilLuceneAdvancedSearchFields.php.

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