Public Member Functions | Protected Attributes

ilAdvancedMDSearch Class Reference

Inheritance diagram for ilAdvancedMDSearch:
Collaboration diagram for ilAdvancedMDSearch:

Public Member Functions

 __construct ($query_parser)
 Constructor.
 setDefinition ($a_def)
 set Definition
 getDefinition ()
 get definition
 performSearch ()
 perform search
 setTimeRange ($start, $end)
 set time range

Protected Attributes

 $definition

Detailed Description

Author:
Stefan Meyer <smeyer@databay.de>
Version:
$Id$

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


Constructor & Destructor Documentation

ilAdvancedMDSearch::__construct ( query_parser  ) 

Constructor.

public

Parameters:
obj query parser

Reimplemented in ilAdvancedMDLikeSearch.

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

References ilAbstractSearch::$query_parser.


Member Function Documentation

ilAdvancedMDSearch::getDefinition (  ) 

get definition

public

Definition at line 69 of file class.ilAdvancedMDSearch.php.

Referenced by performSearch().

        {
                return $this->definition;
        }

Here is the caller graph for this function:

ilAdvancedMDSearch::performSearch (  ) 

perform search

public

Parameters:
 

Reimplemented from ilAbstractSearch.

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

References $res, ilAbstractSearch::__createLocateString(), getDefinition(), ilAbstractSearch::getFilter(), ilAbstractSearch::setFields(), ilAdvancedMDFieldDefinition::TYPE_DATE, ilAdvancedMDFieldDefinition::TYPE_SELECT, and ilAdvancedMDFieldDefinition::TYPE_TEXT.

        {
                $this->setFields(array('value'));
                
                $and = '';
                if(count($this->getFilter()))
                {
                        $and = "AND type IN ('".implode("','",$this->getFilter())."')";
                }
                
                
                switch($this->getDefinition()->getFieldType())
                {
                        case ilAdvancedMDFieldDefinition::TYPE_DATE:
                                $query = "SELECT amv.obj_id,type ".
                                        "FROM adv_md_values AS amv ".
                                        "JOIN object_data USING (obj_id) ".
                                        "WHERE value >= ".(int) $this->range_start." ".
                                        "AND value <= ".(int) $this->range_end." ".
                                        "AND field_id = ".$this->db->quote($this->getDefinition()->getFieldId())." ".
                                        $and;
                                break;
                        
                        case ilAdvancedMDFieldDefinition::TYPE_SELECT:
                        case ilAdvancedMDFieldDefinition::TYPE_TEXT:
                                $where = $this->__createWhereCondition();
                                $locate = $this->__createLocateString();
                                
                                $query = "SELECT amv.obj_id,type ".
                                        $locate.
                                        "FROM adv_md_values as amv ".
                                        "JOIN object_data USING(obj_id) ".
                                        $where.
                                        "AND field_id = ".$this->db->quote($this->getDefinition()->getFieldId())." ".
                                        $and;
                                break;
                        
                }
                
                if($query)
                {
                        $res = $this->db->query($query);
                        while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
                        {
                                $this->search_result->addEntry($row->obj_id,$row->type,$this->__prepareFound($row));
                        }
                }
                return $this->search_result;
        }

Here is the call graph for this function:

ilAdvancedMDSearch::setDefinition ( a_def  ) 

set Definition

public

Parameters:
obj field definition object

Definition at line 58 of file class.ilAdvancedMDSearch.php.

        {
                $this->definition = $a_def;
        }

ilAdvancedMDSearch::setTimeRange ( start,
end 
)

set time range

public

Parameters:
int unix start time
int unix end time

Definition at line 139 of file class.ilAdvancedMDSearch.php.

        {
                $this->range_start = $start;
                $this->range_end = $end;
        }


Field Documentation

ilAdvancedMDSearch::$definition [protected]

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


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