ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
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.

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

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
+ 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.

References array.

Referenced by readSections().

134  {
135  return $this->active_fields ? $this->active_fields : array();
136  }
Create styles array
The data for the language used.
+ Here is the caller graph for this function:

◆ getActiveSections()

ilLuceneAdvancedSearchFields::getActiveSections ( )

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

References array.

139  {
140  return $this->active_sections ? $this->active_sections : array();
141  }
Create styles array
The data for the language used.

◆ getFields()

static ilLuceneAdvancedSearchFields::getFields ( )
static

Return an array of all meta data fields.

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

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

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

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

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(), array, ilADTFactory\getInstance(), ilAdvancedMDFieldDefinition\getInstance(), ilLoggerFactory\getLogger(), and getRangeSelect().

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  {
152  $a_query = array();
153  }
154 
155  switch($a_field_name)
156  {
157  case 'general_offline':
158  $offline_options = array(
159  '0' => $this->lng->txt('search_any'),
160  self::ONLINE_QUERY => $this->lng->txt('search_option_online'),
161  self::OFFLINE_QUERY => $this->lng->txt('search_option_offline')
162  );
163  $offline = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
164  $offline->setOptions($offline_options);
165  $offline->setValue($a_query['general_offline']);
166  return $offline;
167 
168  case 'lom_content':
169  $text = new ilTextInputGUI($this->active_fields[$a_field_name],$a_post_name);
170  $text->setSubmitFormOnEnter(true);
171  $text->setValue($a_query['lom_content']);
172  $text->setSize(30);
173  $text->setMaxLength(255);
174  return $text;
175 
176  // General
177  case 'lom_language':
178  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
179  $select->setValue($a_query['lom_language']);
180  $select->setOptions(ilMDUtilSelect::_getLanguageSelect(
181  '',
182  $a_field_name,
183  array(0 => $this->lng->txt('search_any')),
184  true));
185  return $select;
186 
187  case 'lom_keyword':
188  $text = new ilTextInputGUI($this->active_fields[$a_field_name],$a_post_name);
189  $text->setSubmitFormOnEnter(true);
190  $text->setValue($a_query['lom_keyword']);
191  $text->setSize(30);
192  $text->setMaxLength(255);
193  return $text;
194 
195  case 'lom_coverage':
196  $text = new ilTextInputGUI($this->active_fields[$a_field_name],$a_post_name);
197  $text->setSubmitFormOnEnter(true);
198  $text->setValue($a_query['lom_coverage']);
199  $text->setSize(30);
200  $text->setMaxLength(255);
201  return $text;
202 
203  case 'lom_structure':
204  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
205  $select->setValue($a_query['lom_structure']);
206  $select->setOptions(ilMDUtilSelect::_getStructureSelect(
207  '',
208  $a_field_name,
209  array(0 => $this->lng->txt('search_any')),
210  true));
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  return $select;
223 
224  case 'lom_version':
225  $text = new ilTextInputGUI($this->active_fields[$a_field_name],$a_post_name);
226  $text->setSubmitFormOnEnter(true);
227  $text->setValue($a_query['lom_version']);
228  $text->setSize(30);
229  $text->setMaxLength(255);
230  return $text;
231 
232  case 'lom_contribute':
233  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],'query['.'lom_role'.']');
234  $select->setValue($a_query['lom_role']);
235  $select->setOptions(ilMDUtilSelect::_getRoleSelect(
236  '',
237  $a_field_name,
238  array(0 => $this->lng->txt('search_any')),
239  true));
240 
241  $text = new ilTextInputGUI($this->lng->txt('meta_entry'),'query['.'lom_role_entry'.']');
242  $text->setValue($a_query['lom_role_entry']);
243  $text->setSize(30);
244  $text->setMaxLength(255);
245 
246  $select->addSubItem($text);
247  return $select;
248 
249  // Technical
250  case 'lom_format':
251  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
252  $select->setValue($a_query['lom_format']);
253  $select->setOptions(ilMDUtilSelect::_getFormatSelect(
254  '',
255  $a_field_name,
256  array(0 => $this->lng->txt('search_any')),
257  true));
258  return $select;
259 
260  case 'lom_operating_system':
261  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
262  $select->setValue($a_query['lom_operating_system']);
263  $select->setOptions(ilMDUtilSelect::_getOperatingSystemSelect(
264  '',
265  $a_field_name,
266  array(0 => $this->lng->txt('search_any')),
267  true));
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  return $select;
279 
280  // Education
281  case 'lom_interactivity':
282  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
283  $select->setValue($a_query['lom_interactivity']);
285  '',
286  $a_field_name,
287  array(0 => $this->lng->txt('search_any')),
288  true));
289  return $select;
290 
291  case 'lom_resource':
292  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
293  $select->setValue($a_query['lom_resource']);
295  '',
296  $a_field_name,
297  array(0 => $this->lng->txt('search_any')),
298  true));
299  return $select;
300 
301  case 'lom_level':
302  $range = new ilCustomInputGUI($this->active_fields[$a_field_name]);
303  $html = $this->getRangeSelect(
304  $this->lng->txt('from'),
306  $a_query['lom_level_start'],
307  'query['.'lom_level_start'.']',
308  array(0 => $this->lng->txt('search_any'))),
309  $this->lng->txt('until'),
311  $a_query['lom_level_end'],
312  'query['.'lom_level_end'.']',
313  array(0 => $this->lng->txt('search_any')))
314  );
315  $range->setHTML($html);
316  return $range;
317 
318  case 'lom_density':
319  $range = new ilCustomInputGUI($this->active_fields[$a_field_name]);
320  $html = $this->getRangeSelect(
321  $this->lng->txt('from'),
323  $a_query['lom_density_start'],
324  'query['.'lom_density_start'.']',
325  array(0 => $this->lng->txt('search_any'))),
326  $this->lng->txt('until'),
328  $a_query['lom_density_end'],
329  'query['.'lom_density_end'.']',
330  array(0 => $this->lng->txt('search_any')))
331  );
332  $range->setHTML($html);
333  return $range;
334 
335 
336  case 'lom_user_role':
337  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
338  $select->setValue($a_query['lom_user_role']);
340  '',
341  $a_field_name,
342  array(0 => $this->lng->txt('search_any')),
343  true));
344  return $select;
345 
346  case 'lom_context':
347  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
348  $select->setValue($a_query['lom_context']);
349  $select->setOptions(ilMDUtilSelect::_getContextSelect(
350  '',
351  $a_field_name,
352  array(0 => $this->lng->txt('search_any')),
353  true));
354  return $select;
355 
356  case 'lom_difficulty':
357  $range = new ilCustomInputGUI($this->active_fields[$a_field_name]);
358  $html = $this->getRangeSelect(
359  $this->lng->txt('from'),
361  $a_query['lom_difficulty_start'],
362  'query['.'lom_difficulty_start'.']',
363  array(0 => $this->lng->txt('search_any'))),
364  $this->lng->txt('until'),
366  $a_query['lom_difficulty_end'],
367  'query['.'lom_difficulty_end'.']',
368  array(0 => $this->lng->txt('search_any')))
369  );
370  $range->setHTML($html);
371  return $range;
372 
373  // Rights
374  case 'lom_costs':
375  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
376  $select->setValue($a_query['lom_costs']);
377  $select->setOptions(ilMDUtilSelect::_getCostsSelect(
378  '',
379  $a_field_name,
380  array(0 => $this->lng->txt('search_any')),
381  true));
382  return $select;
383 
384  case 'lom_copyright':
385  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
386  $select->setValue($a_query['lom_copyright']);
388  '',
389  $a_field_name,
390  array(0 => $this->lng->txt('search_any')),
391  true));
392  return $select;
393 
394 
395 
396  // Classification
397  case 'lom_purpose':
398  $select = new ilSelectInputGUI($this->active_fields[$a_field_name],$a_post_name);
399  $select->setValue($a_query['lom_purpose']);
400  $select->setOptions(ilMDUtilSelect::_getPurposeSelect(
401  '',
402  $a_field_name,
403  array(0 => $this->lng->txt('search_any')),
404  true));
405  return $select;
406 
407  case 'lom_taxon':
408  $text = new ilTextInputGUI($this->active_fields[$a_field_name],$a_post_name);
409  $text->setSubmitFormOnEnter(true);
410  $text->setValue($a_query['lom_taxon']);
411  $text->setSize(30);
412  $text->setMaxLength(255);
413  return $text;
414 
415  default:
416  if(substr($a_field_name,0,3) != 'adv')
417  break;
418 
419  // Advanced meta data
420  $field_id = substr($a_field_name,4);
421  include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
422  $field = ilAdvancedMDFieldDefinition::getInstance($field_id);
423 
424  $field_form = ilADTFactory::getInstance()->getSearchBridgeForDefinitionInstance($field->getADTDefinition(), true, false);
425  $field_form->setForm($a_form);
426  $field_form->setElementId($a_post_name);
427  $field_form->setTitle($this->active_fields[$a_field_name]);
428  $field_form->addToForm();
429 
430  // #17071 - reload search values
431  if(is_array($a_query) &&
432  array_key_exists($a_field_name, $a_query))
433  {
434  $field_form->importFromPost($a_query);
435  $field_form->validate();
436  }
437 
438  return;
439  }
440  return null;
441  }
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 _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 _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 _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 _getLanguageSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta data language selector.
This class represents a selection list property in a property form.
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 getInstance()
Get singleton.
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 _getStatusSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta lifecycle status 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 _getBrowserSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta technical browser selector.
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
This class represents a text property in a property form.
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.
Create styles array
The data for the language used.
static _getStructureSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta general structure selector.
static _getOperatingSystemSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta technical os selector.
This class represents a custom property in a property form.
static _getContextSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta context.
getRangeSelect($txt_from, $select_from, $txt_until, $select_until)
get a range selection
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...
$text
static getLogger($a_component_id)
Get component logger.
static _getRoleSelect($a_selected, $a_name, $prepend=array(), $a_options_only=false)
Prepare a meta lifecycle status selector.
$html
Definition: example_001.php:87
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...
+ 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.

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

70  {
71  if(isset(self::$instance) and self::$instance)
72  {
73  return self::$instance;
74  }
75  return self::$instance = new ilLuceneAdvancedSearchFields();
76  }
Field definitions of advanced meta data search.
+ 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 812 of file class.ilLuceneAdvancedSearchFields.php.

References $tpl.

Referenced by getFormElement().

813  {
814  $tpl = new ilTemplate('tpl.range_search.html',true,true,'Services/Search');
815  $tpl->setVariable('TXT_FROM',$txt_from);
816  $tpl->setVariable('FROM',$select_from);
817  $tpl->setVariable('TXT_UPTO',$txt_until);
818  $tpl->setVariable('UPTO',$select_until);
819  return $tpl->get();
820  }
global $tpl
Definition: ilias.php:8
special template class to simplify handling of ITX/PEAR
+ 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 448 of file class.ilLuceneAdvancedSearchFields.php.

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

449  {
450  switch($a_field)
451  {
452  case 'lom_content':
453  return $a_query;
454 
455  case 'general_offline':
456 
457  switch($a_query)
458  {
459  case self::OFFLINE_QUERY:
460  return 'offline:1';
461 
462  default:
463  return '-offline:1';
464 
465  }
466  return '';
467 
468  // General
469  case 'lom_language':
470  return 'lomLanguage:'.$a_query;
471 
472  case 'lom_keyword':
473  return 'lomKeyword:'.$a_query;
474 
475  case 'lom_coverage':
476  return 'lomCoverage:'.$a_query;
477 
478  case 'lom_structure':
479  return 'lomStructure:'.$a_query;
480 
481  // Lifecycle
482  case 'lom_status':
483  return 'lomStatus:'.$a_query;
484 
485  case 'lom_version':
486  return 'lomVersion:'.$a_query;
487 
488  // Begin Contribute
489  case 'lom_role':
490  return 'lomRole:'.$a_query;
491 
492  case 'lom_role_entry':
493  return 'lomRoleEntity:'.$a_query;
494  // End contribute
495 
496  // Technical
497  case 'lom_format':
498  return 'lomFormat:'.$a_query;
499 
500  case 'lom_operating_system':
501  return 'lomOS:'.$a_query;
502 
503  case 'lom_browser':
504  return 'lomBrowser:'.$a_query;
505 
506  // Educational
507  case 'lom_interactivity':
508  return 'lomInteractivity:'.$a_query;
509 
510  case 'lom_resource':
511  return 'lomResource:'.$a_query;
512 
513  case 'lom_level_start':
514  $q_string = '';
515  include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
517  for($i = $a_query; $i <= count($options); $i++)
518  {
519  if(strlen($q_string))
520  {
521  $q_string .= 'OR ';
522  }
523  $q_string .= ('lomLevel:"'.$options[$i].'" ');
524  }
525  return $q_string;
526 
527  case 'lom_level_end':
528  $q_string = '';
529  include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
531  for($i = 1; $i <= $a_query; $i++)
532  {
533  if(strlen($q_string))
534  {
535  $q_string .= 'OR ';
536  }
537  $q_string .= ('lomLevel:"'.$options[$i].'" ');
538  }
539  return $q_string;
540 
541  case 'lom_density_start':
542  $q_string = '';
543  include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
544  $options = ilMDUtilSelect::_getSemanticDensitySelect(0,'lom_density',array(),true);
545  for($i = $a_query; $i <= count($options); $i++)
546  {
547  if(strlen($q_string))
548  {
549  $q_string .= 'OR ';
550  }
551  $q_string .= ('lomDensity:"'.$options[$i].'" ');
552  }
553  return $q_string;
554 
555  case 'lom_density_end':
556  $q_string = '';
557  include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
558  $options = ilMDUtilSelect::_getSemanticDensitySelect(0,'lom_density',array(),true);
559  for($i = 1; $i <= $a_query; $i++)
560  {
561  if(strlen($q_string))
562  {
563  $q_string .= 'OR ';
564  }
565  $q_string .= ('lomDensity:"'.$options[$i].'" ');
566  }
567  return $q_string;
568 
569  case 'lom_user_role':
570  return 'lomUserRole:'.$a_query;
571 
572  case 'lom_context':
573  return 'lomContext:'.$a_query;
574 
575  case 'lom_difficulty_start':
576  $q_string = '';
577  include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
578  $options = ilMDUtilSelect::_getDifficultySelect(0,'lom_difficulty',array(),true);
579  for($i = $a_query; $i <= count($options); $i++)
580  {
581  if(strlen($q_string))
582  {
583  $q_string .= 'OR ';
584  }
585  $q_string .= ('lomDifficulty:"'.$options[$i].'" ');
586  }
587  return $q_string;
588 
589  case 'lom_difficulty_end':
590  $q_string = '';
591  include_once './Services/MetaData/classes/class.ilMDUtilSelect.php';
592  $options = ilMDUtilSelect::_getDifficultySelect(0,'lom_difficulty',array(),true);
593  for($i = 1; $i <= $a_query; $i++)
594  {
595  if(strlen($q_string))
596  {
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  // Advanced meta data
622  $field_id = substr($a_field,4);
623  include_once './Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php';
624  try
625  {
626  // field might be invalid (cached query)
627  $field = ilAdvancedMDFieldDefinition::getInstance($field_id);
628  }
629  catch (Exception $ex)
630  {
631  return '';
632  }
633 
634  $adv_query = $field->getLuceneSearchString($a_query);
635  if($adv_query)
636  {
637  // #17558
638  if(!is_array($adv_query))
639  {
640  return 'advancedMetaData_'.$field_id.': '.$adv_query;
641  }
642  else
643  {
644  $res = array();
645  foreach($adv_query as $adv_query_item)
646  {
647  $res[] = 'advancedMetaData_'.$field_id.': '.$adv_query_item;
648  }
649  return '('.implode(' OR ', $res).')';
650  }
651  }
652  }
653  }
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 _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...
if(!is_array($argv)) $options
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
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.
Create styles array
The data for the language used.
+ Here is the call graph for this function:

◆ readFields()

ilLuceneAdvancedSearchFields::readFields ( )
protected

Read active fields.

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

References settings().

Referenced by __construct().

660  {
661  foreach(self::getFields() as $name => $translation)
662  {
663  if($this->settings->isActive($name))
664  {
665  $this->active_fields[$name] = $translation;
666  }
667  }
668  }
settings()
Definition: settings.php:2
+ 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 673 of file class.ilLuceneAdvancedSearchFields.php.

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

Referenced by __construct().

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

◆ $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.

◆ 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: