ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
SurveySearch Class Reference

Class for search actions in ILIAS survey tool. More...

+ Collaboration diagram for SurveySearch:

Public Member Functions

 SurveySearch ( $search_text="", $concatenation=self::CONCAT_AND, $search_field="all", $search_type="all")
 SurveySearch constructor. More...
 
 search ()
 Executes a search. More...
 

Data Fields

const CONCAT_AND = 0
 
const CONCAT_OR = 1
 
 $search_terms
 
 $concatenation
 
 $search_field
 
 $search_type
 
 $search_results
 
 $ilDB
 

Detailed Description

Class for search actions in ILIAS survey tool.

The SurveySearch class defines and encapsulates basic methods and attributes to search the ILIAS survey tool for questions.

Author
Helmut Schottmüller helmu.nosp@m.t.sc.nosp@m.hottm.nosp@m.uell.nosp@m.er@ma.nosp@m.c.co.nosp@m.m
Version
$Id$

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

Member Function Documentation

◆ search()

SurveySearch::search ( )

Executes a search.

Executes a search

@access public

Definition at line 130 of file class.SurveySearch.php.

131 {
132 global $ilDB;
133
134 $where = "";
135 $fields = array();
136 if (strcmp($this->search_type, "all") != 0)
137 {
138 $where = "svy_qtype.type_tag = " . $ilDB->quote($this->search_type, 'text');
139 }
140 foreach ($this->search_terms as $term)
141 {
142 switch ($this->search_field)
143 {
144 case "all":
145 $fields["$term"] = array();
146 array_push($fields["$term"], $ilDB->like("svy_question.title", 'text', "%" .$term . "%"));
147 array_push($fields["$term"], $ilDB->like("svy_question.description", 'text', "%" .$term . "%"));
148 array_push($fields["$term"], $ilDB->like("svy_question.author", 'text', "%" .$term . "%"));
149 array_push($fields["$term"], $ilDB->like("svy_question.questiontext", 'text', "%" .$term . "%"));
150 break;
151 default:
152 $fields["$term"] = array();
153 array_push($fields["$term"], $ilDB->like("svy_question." . $this->search_field, 'text', "%" .$term . "%"));
154 break;
155 }
156 }
157 $cumulated_fields = array();
158 foreach ($fields as $params)
159 {
160 array_push($cumulated_fields, "(" . join($params, " OR ") . ")");
161 }
162 $str_where = "";
163 if ($this->concatenation == self::CONCAT_AND)
164 {
165 $str_where = "(" . join($cumulated_fields, " AND ") . ")";
166 }
167 else
168 {
169 $str_where = "(" . join($cumulated_fields, " OR ") . ")";
170 }
171 if ($str_where)
172 {
173 $str_where = " AND $str_where";
174 }
175 if ($where)
176 {
177 $str_where .= " AND (" . $where . ")";
178 }
179 $result = $ilDB->query("SELECT svy_question.*, svy_qtype.type_tag, object_reference.ref_id FROM " .
180 "svy_question, svy_qtype, object_reference WHERE svy_question.questiontype_fi = svy_qtype.questiontype_id ".
181 "AND svy_question.original_id IS NULL AND svy_question.obj_fi = object_reference.obj_id AND ".
182 "svy_question.obj_fi > 0$str_where");
183 $result_array = array();
184 global $rbacsystem;
185 if ($result->numRows() > 0)
186 {
187 while ($row = $ilDB->fetchAssoc($result))
188 {
189 if (($row["complete"] == 1) and ($rbacsystem->checkAccess('write', $row["ref_id"])))
190 {
191 array_push($result_array, $row);
192 }
193 }
194 }
195 $this->search_results =& $result_array;
196 }
$result
$params
Definition: example_049.php:96

References $ilDB, $params, $result, and $row.

◆ SurveySearch()

SurveySearch::SurveySearch (   $search_text = "",
  $concatenation = self::CONCAT_AND,
  $search_field = "all",
  $search_type = "all" 
)

SurveySearch constructor.

The constructor takes possible arguments an creates an instance of the SurveySearch object.

Parameters
string$titleA title string to describe the question
string$descriptionA description string to describe the question
string$authorA string containing the name of the questions author
integer$ownerA numerical ID to identify the owner/creator @access public

Definition at line 105 of file class.SurveySearch.php.

111 {
112 global $ilDB;
113
114 $this->ilDB =& $ilDB;
115
116 $this->search_terms = split(" +", $search_text);
117 $this->concatenation = $concatenation;
118 $this->search_field = $search_field;
119 $this->search_type = $search_type;
120 $this->search_results = array();
121 }
Database Wrapper.
Definition: class.ilDB.php:29

References $concatenation, $ilDB, $search_field, and $search_type.

Field Documentation

◆ $concatenation

SurveySearch::$concatenation

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

Referenced by SurveySearch().

◆ $ilDB

SurveySearch::$ilDB

Definition at line 91 of file class.SurveySearch.php.

Referenced by search(), and SurveySearch().

◆ $search_field

SurveySearch::$search_field

Definition at line 64 of file class.SurveySearch.php.

Referenced by SurveySearch().

◆ $search_results

SurveySearch::$search_results

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

◆ $search_terms

SurveySearch::$search_terms

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

◆ $search_type

SurveySearch::$search_type

Definition at line 73 of file class.SurveySearch.php.

Referenced by SurveySearch().

◆ CONCAT_AND

const SurveySearch::CONCAT_AND = 0

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

◆ CONCAT_OR

const SurveySearch::CONCAT_OR = 1

Definition at line 37 of file class.SurveySearch.php.


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