Public Member Functions | Data Fields | Protected Attributes | Private Member Functions | Private Attributes

ilAdvancedMDRecordGUI Class Reference
[Services/AdvancedMetaData]

Collaboration diagram for ilAdvancedMDRecordGUI:

Public Member Functions

 __construct ($a_mode, $a_obj_type= '', $a_obj_id= '')
 Constructor.
 setPropertyForm ($form)
 set property form object
 setSearchValues ($a_values)
 Set values for search form.
 setInfoObject ($info)
 get info sections
 parse ()
 Get HTML.
 loadFromPost ()
 Load values from post.
 saveValues ()
 Save values.

Data Fields

const MODE_EDITOR = 1
const MODE_SEARCH = 2
const MODE_INFO = 3

Protected Attributes

 $lng

Private Member Functions

 parseEditor ()
 Parse property form in editor mode.
 parseSearch ()
 Parse search.
 parseInfoPage ()
 toUnixTime ($date)
 convert input array to unix time

Private Attributes

 $mode
 $obj_type
 $obj_id
 $form
 $values = array()
 $search_values = array()

Detailed Description

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

Definition at line 33 of file class.ilAdvancedMDRecordGUI.php.


Constructor & Destructor Documentation

ilAdvancedMDRecordGUI::__construct ( a_mode,
a_obj_type = '',
a_obj_id = '' 
)

Constructor.

public

Parameters:
int mode either MODE_EDITOR or MODE_SEARCH
int obj_type

Definition at line 57 of file class.ilAdvancedMDRecordGUI.php.

References $lng.

        {
                global $lng;
                
                $this->lng = $lng;
                $this->mode = $a_mode;
                $this->obj_type = $a_obj_type;
                $this->obj_id = $a_obj_id;
        }


Member Function Documentation

ilAdvancedMDRecordGUI::loadFromPost (  ) 

Load values from post.

public

Definition at line 134 of file class.ilAdvancedMDRecordGUI.php.

References ilAdvancedMDValue::_getInstance(), ilAdvancedMDFieldDefinition::_getInstanceByFieldId(), ilUtil::stripSlashes(), toUnixTime(), and ilAdvancedMDFieldDefinition::TYPE_DATE.

        {
                include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDValue.php');
                include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
                
                if(!isset($_POST['md']))
                {
                        return false;
                }
                
                foreach($_POST['md'] as $field_id => $value)
                {
                        $def = ilAdvancedMDFieldDefinition::_getInstanceByFieldId($field_id);
                        switch($def->getFieldType())
                        {
                                case ilAdvancedMDFieldDefinition::TYPE_DATE:
                                        if(is_array($value) and $_POST['md_activated'][$field_id])
                                        {
                                                $value = $this->toUnixTime($value['date']);
                                        }
                                        else
                                        {
                                                $value = 0;
                                        }
                                        break;
                                
                                default:
                                        $value = ilUtil::stripSlashes($value);
                                        break;
                        }
                        $val = ilAdvancedMDValue::_getInstance($this->obj_id,$field_id);
                        $val->setValue($value);
                        $this->values[] = $val;
                        unset($value);
                }
        }

Here is the call graph for this function:

ilAdvancedMDRecordGUI::parse (  ) 

Get HTML.

public

Parameters:
 

Definition at line 110 of file class.ilAdvancedMDRecordGUI.php.

References parseEditor(), parseInfoPage(), and parseSearch().

        {
                switch($this->mode)
                {
                        case self::MODE_EDITOR:
                                return $this->parseEditor();
                                
                        case self::MODE_SEARCH:
                                return $this->parseSearch();
                        
                        case self::MODE_INFO:
                                return $this->parseInfoPage();
                                
                        default:
                                die('Not implemented yet');
                }
        }

Here is the call graph for this function:

ilAdvancedMDRecordGUI::parseEditor (  )  [private]

Parse property form in editor mode.

private

Definition at line 192 of file class.ilAdvancedMDRecordGUI.php.

References ilAdvancedMDRecord::_getActivatedRecordsByObjectType(), ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId(), ilAdvancedMDValue::_getInstance(), ilAdvancedMDFieldDefinition::TYPE_DATE, ilAdvancedMDFieldDefinition::TYPE_SELECT, and ilAdvancedMDFieldDefinition::TYPE_TEXT.

Referenced by parse().

        {
                include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
                foreach(ilAdvancedMDRecord::_getActivatedRecordsByObjectType($this->obj_type) as $record_obj)
                {
                        $section = new ilFormSectionHeaderGUI();
                        $section->setTitle($record_obj->getTitle());
                        $section->setInfo($record_obj->getDescription());
                        $this->form->addItem($section);
                        
                        include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
                        foreach(ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record_obj->getRecordId()) as $def)
                        {
                                include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDValue.php');
                                $value = ilAdvancedMDValue::_getInstance($this->obj_id,$def->getFieldId());
                                
                                switch($def->getFieldType())
                                {
                                        case ilAdvancedMDFieldDefinition::TYPE_TEXT:
                                                $text = new ilTextInputGUI($def->getTitle(),'md['.$def->getFieldId().']');
                                                $text->setValue($value->getValue());
                                                $text->setSize(40);
                                                $text->setMaxLength(512);
                                                $text->setDisabled($value->isDisabled());
                                                $this->form->addItem($text);
                                                break;
                                                
                                        case ilAdvancedMDFieldDefinition::TYPE_SELECT:
                                                $select = new ilSelectInputGUI($def->getTitle(),'md['.$def->getFieldId().']');
                                                $select->setOptions($def->getFieldValuesForSelect());
                                                $select->setValue($value->getValue());
                                                $select->setDisabled($value->isDisabled());
                                                $this->form->addItem($select);
                                                break;
                                                
                                        case ilAdvancedMDFieldDefinition::TYPE_DATE:
                                                $time = new ilDateTimeInputGUI($def->getTitle(),'md['.$def->getFieldId().']');
                                                $time->setShowTime(false);
                                                $time->setUnixTime($value->getValue());
                                                $time->enableDateActivation($this->lng->txt('enabled'),
                                                        'md_activated['.$def->getFieldId().']',
                                                        $value->getValue() ? true : false);
                                                $time->setDisabled($value->isDisabled());
                                                $this->form->addItem($time);
                                                break;
                                }
                        }
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilAdvancedMDRecordGUI::parseInfoPage (  )  [private]

Definition at line 342 of file class.ilAdvancedMDRecordGUI.php.

References ilAdvancedMDRecord::_getActivatedRecordsByObjectType(), ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId(), ilAdvancedMDValue::_getInstance(), ilFormat::formatUnixTime(), ilAdvancedMDFieldDefinition::TYPE_DATE, ilAdvancedMDFieldDefinition::TYPE_SELECT, and ilAdvancedMDFieldDefinition::TYPE_TEXT.

Referenced by parse().

        {
                include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
                foreach(ilAdvancedMDRecord::_getActivatedRecordsByObjectType($this->obj_type) as $record_obj)
                {
                        $this->info->addSection($record_obj->getTitle());
                        
                        include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
                        foreach(ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record_obj->getRecordId()) as $def)
                        {
                                include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDValue.php');
                                $value = ilAdvancedMDValue::_getInstance($this->obj_id,$def->getFieldId());
                                
                                switch($def->getFieldType())
                                {
                                        case ilAdvancedMDFieldDefinition::TYPE_TEXT:
                                                if($value->getValue())
                                                {
                                                        $this->info->addProperty($def->getTitle(),$value->getValue());
                                                }
                                                break;
                                                
                                        case ilAdvancedMDFieldDefinition::TYPE_SELECT:
                                                if($value->getValue())
                                                {
                                                        $this->info->addProperty($def->getTitle(),$value->getValue());
                                                }
                                                break;
                                                
                                        case ilAdvancedMDFieldDefinition::TYPE_DATE:
                                                if($value->getValue())
                                                {
                                                        $this->info->addProperty($def->getTitle(),ilFormat::formatUnixTime($value->getValue()));
                                                }
                                                break;
                                }
                        }
                }
                
        } 

Here is the call graph for this function:

Here is the caller graph for this function:

ilAdvancedMDRecordGUI::parseSearch (  )  [private]

Parse search.

private

Parameters:
 

Definition at line 249 of file class.ilAdvancedMDRecordGUI.php.

References ilAdvancedMDRecord::_getActiveSearchableRecords(), ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId(), toUnixTime(), ilAdvancedMDFieldDefinition::TYPE_DATE, ilAdvancedMDFieldDefinition::TYPE_SELECT, and ilAdvancedMDFieldDefinition::TYPE_TEXT.

Referenced by parse().

        {
                include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
                foreach(ilAdvancedMDRecord::_getActiveSearchableRecords() as $record)
                { 
                        $section = new ilFormSectionHeaderGUI();
                        $section->setTitle($record->getTitle());
                        $this->form->addItem($section);
                        
                        foreach(ilAdvancedMDFieldDefinition::_getDefinitionsByRecordId($record->getRecordId()) as $field)
                        {
                                if(!$field->isSearchable())
                                {
                                        continue;
                                }
                                switch($field->getFieldType())
                                {
                                        case ilAdvancedMDFieldDefinition::TYPE_TEXT:

                                                $group = new ilRadioGroupInputGUI('','boolean['.$field->getFieldId().']');
                                                $group->setValue(isset($this->search_values['boolean'][$field->getFieldId()]) ? 
                                                        $this->search_values['boolean'][$field->getFieldId()] : 0);
                                                $radio_option = new ilRadioOption($this->lng->txt("search_any_word"),0);
                                                $radio_option->setValue(0);
                                                $group->addOption($radio_option);
                                                $radio_option = new ilRadioOption($this->lng->txt("search_all_words"),1);
                                                $radio_option->setValue(1);
                                                $group->addOption($radio_option);
                                                
                                                $text = new ilTextInputGUI($field->getTitle(),$field->getFieldId());
                                                $text->setValue(isset($this->search_values[$field->getFieldId()]) ?
                                                        $this->search_values[$field->getFieldId()] :
                                                        '');
                                                $text->setSize(30);
                                                $text->setMaxLength(255);
                                                
                                                
                                                $text->addSubItem($group);
                                                $this->form->addItem($text);
                                                break;
                                                
                                        case ilAdvancedMDFieldDefinition::TYPE_SELECT:
                                                $select = new ilSelectInputGUI($field->getTitle(),$field->getFieldId());
                                                $select->setValue(isset($this->search_values[$field->getFieldId()]) ?
                                                        $this->search_values[$field->getFieldId()] :
                                                        0);
                                                $options = array(0 => $this->lng->txt('search_any'));
                                                $counter = 1;
                                                foreach($field->getFieldValues() as $key => $value)
                                                {
                                                        $options[$counter++] = $value;  
                                                }
                                                $select->setOptions($options);
                                                $this->form->addItem($select);                                          
                                                break;
                                                
                                        case ilAdvancedMDFieldDefinition::TYPE_DATE:
                                                $check = new ilCheckboxInputGUI($field->getTitle(),$field->getFieldId());
                                                $check->setValue(1);
                                                $check->setChecked(isset($this->search_values[$field->getFieldId()]) ?
                                                        $this->search_values[$field->getFieldId()] : 0);
                                        
                                                $time = new ilDateTimeInputGUI($this->lng->txt('from'),'date_start['.$field->getFieldId().']');
                                                $time->setShowTime(false);
                                                if(isset($this->search_values['date_start'][$field->getFieldId()]))
                                                {
                                                        $time->setUnixTime($this->toUnixTime($this->search_values['date_start'][$field->getFieldId()]['date']));                                                        
                                                }
                                                else
                                                {
                                                        $time->setUnixTime(time());
                                                }
                                                $check->addSubItem($time);

                                                $time = new ilDateTimeInputGUI($this->lng->txt('until'),'date_end['.$field->getFieldId().']');
                                                $time->setShowTime(false);
                                                if(isset($this->search_values['date_end'][$field->getFieldId()]))
                                                {
                                                        $time->setUnixTime($this->toUnixTime($this->search_values['date_end'][$field->getFieldId()]['date']));                                                  
                                                }
                                                else
                                                {
                                                        $time->setUnixTime(time() + 60 * 60 * 24 * 31);
                                                }
                                                $check->addSubItem($time);

                                                $this->form->addItem($check);
                                                break;
                                }
                        }
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilAdvancedMDRecordGUI::saveValues (  ) 

Save values.

public

Definition at line 177 of file class.ilAdvancedMDRecordGUI.php.

        {
                foreach($this->values as $value)
                {
                        $value->save();
                }
                return true;
        }

ilAdvancedMDRecordGUI::setInfoObject ( info  ) 

get info sections

public

Parameters:
object instance of ilInfoScreenGUI

Definition at line 98 of file class.ilAdvancedMDRecordGUI.php.

        {
                $this->info = $info;
        }

ilAdvancedMDRecordGUI::setPropertyForm ( form  ) 

set property form object

public

Parameters:
 

Definition at line 74 of file class.ilAdvancedMDRecordGUI.php.

References $form.

        {
                $this->form = $form;
        }

ilAdvancedMDRecordGUI::setSearchValues ( a_values  ) 

Set values for search form.

public

Definition at line 85 of file class.ilAdvancedMDRecordGUI.php.

        {
                $this->search_values = $a_values;
        }

ilAdvancedMDRecordGUI::toUnixTime ( date  )  [private]

convert input array to unix time

private

Parameters:
 

Definition at line 390 of file class.ilAdvancedMDRecordGUI.php.

Referenced by loadFromPost(), and parseSearch().

        {
                return mktime($time['h'],$time['m'],0,$date['m'],$date['d'],$date['y']);
        }

Here is the caller graph for this function:


Field Documentation

ilAdvancedMDRecordGUI::$form [private]

Definition at line 45 of file class.ilAdvancedMDRecordGUI.php.

Referenced by setPropertyForm().

ilAdvancedMDRecordGUI::$lng [protected]

Definition at line 39 of file class.ilAdvancedMDRecordGUI.php.

Referenced by __construct().

ilAdvancedMDRecordGUI::$mode [private]

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

ilAdvancedMDRecordGUI::$obj_id [private]

Definition at line 43 of file class.ilAdvancedMDRecordGUI.php.

ilAdvancedMDRecordGUI::$obj_type [private]

Definition at line 42 of file class.ilAdvancedMDRecordGUI.php.

ilAdvancedMDRecordGUI::$search_values = array() [private]

Definition at line 47 of file class.ilAdvancedMDRecordGUI.php.

ilAdvancedMDRecordGUI::$values = array() [private]

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


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