ILIAS  trunk Revision v11.0_alpha-1749-g1a06bdef097
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilAbstractSearch Class Reference
+ Inheritance diagram for ilAbstractSearch:
+ Collaboration diagram for ilAbstractSearch:

Public Member Functions

 __construct (ilQueryParser $qp_obj)
 
 setFields (array $a_fields)
 
 getFields ()
 
 setFilter (array $a_filter)
 
 setIdFilter (array $a_id_filter)
 
 getIdFilter ()
 
 appendToFilter (string $a_type)
 
 getFilter ()
 
 __createLocateString ()
 
 __prepareFound (object $row)
 
 performSearch ()
 

Protected Member Functions

 getValidObjectTypes (ilObjectDefinition $object_definition)
 

Protected Attributes

ilDBInterface $db
 
ilQueryParser $query_parser
 
ilSearchResult $search_result
 
array $object_types = []
 

Private Attributes

array $id_filter = []
 
array $fields = []
 

Detailed Description

Definition at line 32 of file class.ilAbstractSearch.php.

Constructor & Destructor Documentation

◆ __construct()

ilAbstractSearch::__construct ( ilQueryParser  $qp_obj)

Definition at line 55 of file class.ilAbstractSearch.php.

References $DIC, and getValidObjectTypes().

56  {
57  global $DIC;
58 
59  $this->db = $DIC->database();
60  $this->query_parser = $qp_obj;
61  $this->search_result = new ilSearchResult();
62 
63  $this->object_types = $this->getValidObjectTypes($DIC['objDefinition']);
64  }
getValidObjectTypes(ilObjectDefinition $object_definition)
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:

Member Function Documentation

◆ __createLocateString()

ilAbstractSearch::__createLocateString ( )

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

References ilQueryParser\QP_COMBINATION_OR.

Referenced by ilMetaDataSearch\__searchContribute(), ilMetaDataSearch\__searchDescriptions(), ilAdvancedSearch\__searchEntity(), ilAdvancedSearch\__searchGeneral(), ilAdvancedSearch\__searchKeyword(), ilMetaDataSearch\__searchKeywords(), ilAdvancedSearch\__searchLifecycle(), ilTestSearch\__searchSurveyIntroduction(), ilTestSearch\__searchSurveyTitle(), ilAdvancedSearch\__searchTaxon(), ilTestSearch\__searchTestIntroduction(), ilTestSearch\__searchTestTitle(), ilMetaDataSearch\__searchTitles(), ilMediaPoolSearch\performKeywordSearch(), ilUserDefinedFieldSearch\performSearch(), ilWikiContentSearch\performSearch(), ilGlossaryDefinitionSearch\performSearch(), ilMediaCastSearch\performSearch(), ilForumSearch\performSearch(), ilLMContentSearch\performSearch(), ilLikeUserMultiFieldSearch\performSearch(), ilWebresourceSearch\performSearch(), ilMediaPoolSearch\performSearch(), ilExerciseSearch\performSearch(), ilUserSearch\performSearch(), ilLikeUserOrgUnitSearch\performSearch(), ilAdvancedMDSearch\performSearch(), ilObjectSearch\performSearch(), and ilAdvancedSearch\searchObjectProperties().

138  : string
139  {
140  if ($this->query_parser->getCombination() == ilQueryParser::QP_COMBINATION_OR) {
141  return '';
142  }
143  if (count($this->fields) > 1) {
144  $tmp_fields = [];
145  foreach ($this->fields as $field) {
146  $tmp_fields[] = array($field,'text');
147  }
148  $complete_str = $this->db->concat($tmp_fields);
149  } else {
150  $complete_str = $this->fields[0];
151  }
152 
153  $counter = 0;
154  $locate = '';
155  foreach ($this->query_parser->getQuotedWords() as $word) {
156  $word = str_replace('\%', '%', $word);
157  $word = str_replace('\_', '_', $word);
158 
159  $locate .= ',';
160  $locate .= $this->db->locate($this->db->quote($word, 'text'), $complete_str);
161  $locate .= (' found' . $counter++);
162  $locate .= ' ';
163  }
164 
165  return $locate;
166  }
+ Here is the caller graph for this function:

◆ __prepareFound()

ilAbstractSearch::__prepareFound ( object  $row)

Definition at line 168 of file class.ilAbstractSearch.php.

References ILIAS\Repository\int(), and performSearch().

Referenced by ilAdvancedSearch\__searchEntity(), ilAdvancedSearch\__searchGeneral(), ilAdvancedSearch\__searchKeyword(), ilAdvancedSearch\__searchLifecycle(), and ilAdvancedSearch\__searchTaxon().

168  : array
169  {
170  if ($this->query_parser->getCombination() == 'or') {
171  return array();
172  }
173  $counter = 0;
174  $found = [];
175  foreach ($this->query_parser->getQuotedWords() as $word) {
176  $res_found = "found" . $counter++;
177  $found[] = (int) $row->$res_found;
178  }
179  return $found;
180  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ appendToFilter()

ilAbstractSearch::appendToFilter ( string  $a_type)

Definition at line 122 of file class.ilAbstractSearch.php.

122  : void
123  {
124  if (!in_array($a_type, $this->object_types)) {
125  $this->object_types[] = $a_type;
126  }
127  }

◆ getFields()

ilAbstractSearch::getFields ( )
Returns
string[] array of search fields. E.g. array(title,description)

Definition at line 99 of file class.ilAbstractSearch.php.

References $fields.

Referenced by ilLikeTestSearch\__createWhereCondition(), ilLikeUserSearch\__createWhereCondition(), ilLikeUserDefinedFieldSearch\__createWhereCondition(), and ilLikeUserMultiFieldSearch\__createWhereCondition().

99  : array
100  {
101  return $this->fields;
102  }
+ Here is the caller graph for this function:

◆ getFilter()

◆ getIdFilter()

ilAbstractSearch::getIdFilter ( )
Returns
int[]

Definition at line 117 of file class.ilAbstractSearch.php.

References $id_filter.

Referenced by ilWikiContentSearch\__createInStatement(), ilLMContentSearch\__createInStatement(), and ilObjectSearch\__createInStatement().

117  : array
118  {
119  return $this->id_filter;
120  }
+ Here is the caller graph for this function:

◆ getValidObjectTypes()

ilAbstractSearch::getValidObjectTypes ( ilObjectDefinition  $object_definition)
protected

Definition at line 66 of file class.ilAbstractSearch.php.

References ilObjectDefinition\getAllObjects(), ilObjectDefinition\getGroupOfObj(), ilObjectDefinition\isAdministrationObject(), ilObjectDefinition\isAllowedInRepository(), ilObjectDefinition\isRBACObject(), ilObjectDefinition\isSideBlock(), and ilObjectDefinition\isSystemObject().

Referenced by __construct().

66  : array
67  {
68  $valid_types = [];
69  foreach ($object_definition->getAllObjects() as $type) {
70  if (
71  !$object_definition->isSystemObject($type) &&
72  !$object_definition->isAdministrationObject($type) &&
73  !$object_definition->isSideBlock($type) &&
74  $object_definition->isRBACObject($type) &&
75  $object_definition->isAllowedInRepository($type)
76  ) {
77  $valid_types[] = $type;
78  }
79  }
80 
81  $grouped_types = [];
82  foreach ($object_definition->getAllObjects() as $type) {
83  if (in_array($object_definition->getGroupOfObj($type), $valid_types)) {
84  $grouped_types[] = $type;
85  }
86  }
87 
88  return array_unique(array_merge($valid_types, $grouped_types));
89  }
isSystemObject(string $obj_name)
checks if object type is a system object
isAdministrationObject(string $obj_name)
Check if administration object.
getGroupOfObj(string $obj_name)
Get Group of object type.
isRBACObject(string $obj_name)
get RBAC status by type returns true if object type is a RBAC object type
isAllowedInRepository(string $obj_name)
checks if object type can be used in repository context
isSideBlock(string $obj_name)
Check, whether object type is a side block.
getAllObjects()
get all object types
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ performSearch()

ilAbstractSearch::performSearch ( )
abstract

Referenced by __prepareFound().

+ Here is the caller graph for this function:

◆ setFields()

◆ setFilter()

ilAbstractSearch::setFilter ( array  $a_filter)

Definition at line 104 of file class.ilAbstractSearch.php.

104  : void
105  {
106  $this->object_types = $a_filter;
107  }

◆ setIdFilter()

ilAbstractSearch::setIdFilter ( array  $a_id_filter)

Definition at line 109 of file class.ilAbstractSearch.php.

109  : void
110  {
111  $this->id_filter = $a_id_filter;
112  }

Field Documentation

◆ $db

ilDBInterface ilAbstractSearch::$db
protected

Definition at line 34 of file class.ilAbstractSearch.php.

◆ $fields

◆ $id_filter

array ilAbstractSearch::$id_filter = []
private

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

Referenced by getIdFilter().

◆ $object_types

array ilAbstractSearch::$object_types = []
protected

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

Referenced by getFilter().

◆ $query_parser

ilQueryParser ilAbstractSearch::$query_parser
protected

Definition at line 35 of file class.ilAbstractSearch.php.

Referenced by ilAdvancedMDSearch\__construct().

◆ $search_result

ilSearchResult ilAbstractSearch::$search_result
protected

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

Referenced by ilAdvancedSearch\__searchClassification(), ilMetaDataSearch\__searchContribute(), ilAdvancedSearch\__searchContribute(), ilMetaDataSearch\__searchDescriptions(), ilAdvancedSearch\__searchEducational(), ilAdvancedSearch\__searchEntity(), ilAdvancedSearch\__searchFormat(), ilAdvancedSearch\__searchGeneral(), ilAdvancedSearch\__searchKeyword(), ilMetaDataSearch\__searchKeywords(), ilAdvancedSearch\__searchLanguage(), ilAdvancedSearch\__searchLifecycle(), ilAdvancedSearch\__searchRequirement(), ilAdvancedSearch\__searchRights(), ilTestSearch\__searchSurveyIntroduction(), ilTestSearch\__searchSurveyTitle(), ilAdvancedSearch\__searchTaxon(), ilTestSearch\__searchTestIntroduction(), ilTestSearch\__searchTestTitle(), ilAdvancedSearch\__searchTitleDescription(), ilMetaDataSearch\__searchTitles(), ilAdvancedSearch\__searchTypicalAgeRange(), ilMediaPoolSearch\performKeywordSearch(), ilUserDefinedFieldSearch\performSearch(), ilWikiContentSearch\performSearch(), ilMediaPoolSearch\performSearch(), ilLMContentSearch\performSearch(), ilForumSearch\performSearch(), ilMediaCastSearch\performSearch(), ilGlossaryDefinitionSearch\performSearch(), ilExerciseSearch\performSearch(), ilWebresourceSearch\performSearch(), ilLikeUserMultiFieldSearch\performSearch(), ilLikeUserOrgUnitSearch\performSearch(), ilUserSearch\performSearch(), ilAdvancedMDSearch\performSearch(), ilObjectSearch\performSearch(), ilTestSearch\performSearch(), and ilAdvancedSearch\searchObjectProperties().


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