84 if($a_usr_id == ANONYMOUS_USER_ID)
90 $this->usr_id = $a_usr_id;
105 if(is_object(self::$instance)
and self::$instance)
107 return self::$instance;
144 return $this->search_result ? $this->search_result :
array();
156 $this->search_result = $a_results;
168 $this->search_result[$a_result_item[
'ref_id']][
'ref_id'] = $a_result_item[
'ref_id'];
169 $this->search_result[$a_result_item[
'ref_id']][
'obj_id'] = $a_result_item[
'obj_id'];
170 $this->search_result[$a_result_item[
'ref_id']][
'type'] = $a_result_item[
'type'];
183 $this->failed[$a_ref_id] = $a_ref_id;
195 return in_array($a_ref_id,$this->failed) ? true :
false;
208 $this->checked[$a_ref_id] = $a_obj_id;
220 return array_key_exists($a_ref_id,$this->checked)
and $this->checked[$a_ref_id];
232 return $this->checked ? $this->checked :
array();
245 $this->page_number = $a_number;
257 return $this->page_number ? $this->page_number : 1;
267 $this->query = $a_query;
290 return urlencode(str_replace(
'"',
'.',
$query[
'lom_content']));
292 return urlencode(str_replace(
'"',
'.', $this->
getQuery()));
302 $this->root = $a_root;
312 return $this->root ? $this->root : ROOT_FOLDER_ID;
317 $this->item_filter = $a_filter;
327 $this->mime_filter = $a_filter;
338 $this->creation_filter = $a_filter;
363 $query =
"SELECT COUNT(*) num FROM usr_search ".
364 "WHERE usr_id = ".$ilDB->quote($this->usr_id,
'integer').
" ".
365 "AND search_type = ".$ilDB->quote($this->search_type,
'integer');
371 $ilDB->update(
'usr_search',
373 'search_result' =>
array(
'clob',serialize(
array(0))),
374 'checked' =>
array(
'clob',serialize(
array(0))),
375 'failed' =>
array(
'clob',serialize(
array(0))),
376 'page' =>
array(
'integer',0)),
378 'usr_id' =>
array(
'integer',(
int) $this->usr_id),
379 'search_type' =>
array(
'integer',(
int) $this->search_type)
384 $ilDB->insert(
'usr_search',
386 'search_result' =>
array(
'clob',serialize(
array(0))),
387 'checked' =>
array(
'clob',serialize(
array(0))),
388 'failed' =>
array(
'clob',serialize(
array(0))),
389 'page' =>
array(
'integer',0),
390 'usr_id' =>
array(
'integer',(
int) $this->usr_id),
391 'search_type' =>
array(
'integer',(
int) $this->search_type)
396 $this->search_result =
array();
397 $this->checked =
array();
398 $this->failed =
array();
408 $this->search_result =
array();
409 $this->checked =
array();
410 $this->failed =
array();
423 public function delete()
427 $query =
"DELETE FROM usr_search ".
428 "WHERE usr_id = ".$this->db->quote($this->usr_id ,
'integer').
" ".
429 "AND search_type = ".$this->db->quote($this->search_type ,
'integer');
451 $query =
"DELETE FROM usr_search ".
452 "WHERE usr_id = ".$ilDB->quote($this->usr_id ,
'integer').
" ".
453 "AND ( search_type = ".$ilDB->quote($this->search_type ,
'integer').
' '.
454 "OR search_type = ".$ilDB->quote(self::LAST_QUERY,
'integer').
')';
457 $ilDB->insert(
'usr_search',
array(
458 'usr_id' =>
array(
'integer',(
int) $this->usr_id),
459 'search_result' =>
array(
'clob',serialize($this->search_result)),
460 'checked' =>
array(
'clob',serialize($this->checked)),
461 'failed' =>
array(
'clob',serialize($this->failed)),
462 'page' =>
array(
'integer',(
int) $this->page_number),
463 'search_type' =>
array(
'integer',(
int) $this->search_type),
473 $ilDB->insert(
'usr_search',
475 'usr_id' =>
array(
'integer',$this->usr_id),
476 'search_type' =>
array(
'integer',self::LAST_QUERY),
511 $this->failed =
array();
512 $this->checked =
array();
513 $this->search_result =
array();
514 $this->page_number = 0;
521 $query =
"SELECT * FROM usr_search ".
522 "WHERE usr_id = ".$this->db->quote($this->usr_id ,
'integer').
" ".
523 "AND search_type = ".$this->db->quote($this->search_type ,
'integer');
528 $this->search_result = unserialize(stripslashes(
$row->search_result));
529 if(strlen(
$row->checked))
531 $this->checked = unserialize(stripslashes(
$row->checked));
533 if(strlen(
$row->failed))
535 $this->failed = unserialize(stripslashes(
$row->failed));
537 $this->page_number =
$row->page;
551 $this->search_result = (
array)
$_SESSION[
'usr_search_cache'][$this->search_type][
'search_result'];
552 $this->checked = (
array)
$_SESSION[
'usr_search_cache'][$this->search_type][
'checked'];
553 $this->failed = (
array)
$_SESSION[
'usr_search_cache'][$this->search_type][
'failed'];
557 $this->
setRoot((
string)
$_SESSION[
'usr_search_cache'][$this->search_type][
'root']);
setQuery($a_query)
set query
isChecked($a_ref_id)
Check if reference was already checked.
addResult($a_result_item)
Append result.
__construct($a_usr_id)
Constructor.
getCheckedItems()
Get all checked items.
deleteCachedEntries()
delete cached entries
setCreationFilter($a_filter)
switchSearchType($a_type)
switch to search type reads entries from database
deleteCachedEntriesAnonymous()
Delete cached entries for anonymous user.
readAnonymous()
Read from session for anonymous user.
getResultPageNumber()
get result page number
getUrlEncodedQuery()
Urlencode query for further use in e.g glossariers (highlighting off search terms).
static _getInstance($a_usr_id)
Get singleton instance.
setResults($a_results)
Set results.
setRoot($a_root)
set root node of search
Create styles array
The data for the language used.
isFailed($a_ref_id)
check if reference has failed access
appendToFailed($a_ref_id)
Append failed id.
isAnonymous()
Check if current user is anonymous user.
Class for storing search result.
appendToChecked($a_ref_id, $a_obj_id)
Append checked id.
setResultPageNumber($a_number)
Set result page number.