Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | Static Private Attributes

ilAdvancedMDSubstitution Class Reference
[Services/AdvancedMetaData]

Collaboration diagram for ilAdvancedMDSubstitution:

Public Member Functions

 sortDefinitions ($a_definitions)
 Sort definitions.
 isActive ()
 Is substitution active.
 isDescriptionEnabled ()
 Is description enabled.
 enableDescription ($a_status)
 Enable description presentation.
 enabledFieldNames ()
 is field name enabled
 enableFieldNames ($a_status)
 enable field names
 getParsedSubstitutions ($a_ref_id, $a_obj_id)
 Substitute.
 resetSubstitutions ()
 set substitutions
 appendSubstitution ($a_field_id, $a_bold=false, $a_newline=false)
 append field to substitutions
 getSubstitutions ()
 get substitution string
 isSubstituted ($a_field_id)
 is substituted
 isBold ($a_field_id)
 is bold
 hasNewline ($a_field_id)
 has newline
 update ()
 update

Static Public Member Functions

static _getInstanceByObjectType ($a_type)
 Singleton: use this method to get an instance.

Protected Attributes

 $db
 $type
 $substitutions
 $bold = array()
 $newline = array()
 $enabled_desc = true
 $enabled_field_names = true
 $active = false
 $date_fields = array()
 $active_fields = array()

Private Member Functions

 __construct ($a_type)
 read ()
 Read db entries.

Static Private Attributes

static $instances = null

Detailed Description

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

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


Constructor & Destructor Documentation

ilAdvancedMDSubstitution::__construct ( a_type  )  [private]

Definition at line 56 of file class.ilAdvancedMDSubstitution.php.

References read().

        {
                global $ilDB;
                
                $this->db = $ilDB;
                $this->type = $a_type;
                
                $this->read();  
        }

Here is the call graph for this function:


Member Function Documentation

static ilAdvancedMDSubstitution::_getInstanceByObjectType ( a_type  )  [static]

Singleton: use this method to get an instance.

Parameters:
string ilias object type (3 or 4 characters) public

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

Referenced by ilObjRemoteCourseListGUI::init(), ilObjCourseListGUI::init(), ilObjCategoryListGUI::init(), ilAdvancedMDSettingsGUI::initFormSubstitutions(), and ilAdvancedMDSettingsGUI::updateSubstitutions().

        {
                if(isset(self::$instances[$a_type]))
                {
                        return self::$instances[$a_type];
                }
                return self::$instances[$a_type] = new ilAdvancedMDSubstitution($a_type);
        }

Here is the caller graph for this function:

ilAdvancedMDSubstitution::appendSubstitution ( a_field_id,
a_bold = false,
a_newline = false 
)

append field to substitutions

public

Parameters:
int field id

Definition at line 271 of file class.ilAdvancedMDSubstitution.php.

        {
                $this->substitutions[] = $a_field_id;
                if($a_bold)
                {
                        $this->bold[] = $a_field_id;
                }
                if($a_newline)
                {
                        $this->newline[] = $a_field_id;
                } 
        }

ilAdvancedMDSubstitution::enableDescription ( a_status  ) 

Enable description presentation.

public

Parameters:
bool status description enabled

Definition at line 131 of file class.ilAdvancedMDSubstitution.php.

        {
                $this->enabled_desc = $a_status;
        }

ilAdvancedMDSubstitution::enabledFieldNames (  ) 

is field name enabled

public

Definition at line 142 of file class.ilAdvancedMDSubstitution.php.

Referenced by update().

        {
                return (bool) $this->hide_field_names;
        }

Here is the caller graph for this function:

ilAdvancedMDSubstitution::enableFieldNames ( a_status  ) 

enable field names

public

Parameters:
bool enable/disable status

Definition at line 154 of file class.ilAdvancedMDSubstitution.php.

        {
                $this->hide_field_names = $a_status;
        }

ilAdvancedMDSubstitution::getParsedSubstitutions ( a_ref_id,
a_obj_id 
)

Substitute.

public

Parameters:
int ref_id
int obj_id
string description

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

References ilAdvancedMDValues::_getValuesByObjId(), ilFormat::formatUnixTime(), getSubstitutions(), hasNewline(), and isBold().

        {
                if(!count($this->getSubstitutions()))
                {
                        return array();
                }
                
                include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
                $values = ilAdvancedMDValues::_getValuesByObjId($a_obj_id);
                                
                $counter = 0;
                foreach($this->getSubstitutions() as $field_id)
                {
                        if(!isset($this->active_fields[$field_id]))
                        {
                                continue;
                        }
                        if(!isset($values[$field_id]) or !$values[$field_id])
                        {
                                if($this->hasNewline($field_id) and $counter)
                                {
                                        $substituted[$counter-1]['newline'] = true;
                                }
                                continue;
                        }
                        
                        if(in_array($field_id,$this->date_fields))
                        {
                                $value = ilFormat::formatUnixTime((int) $values[$field_id]);
                        }
                        else
                        {
                                $value = $values[$field_id];
                        }
        
                        $substituted[$counter]['name'] = $this->active_fields[$field_id];
                        $substituted[$counter]['value'] = $value;
                        $substituted[$counter]['bold'] = $this->isBold($field_id);
                        if($this->hasNewline($field_id))
                        {
                                $substituted[$counter]['newline'] = true;
                        }
                        else
                        {
                                $substituted[$counter]['newline'] = false;
                        }
                        $counter++;
                }
                
                return $substituted ? $substituted : array();
                /*
                $string = $this->getSubstitutionString();
                include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
                foreach(ilAdvancedMDValues::_getValuesByObjId($a_obj_id) as $field_id => $value)
                {
                        if(!in_array($field_id,$this->active_fields))
                        {
                                continue;
                        }
                        
                        if(in_array($field_id,$this->date_fields) and $value)
                        {
                                $value = ilFormat::formatUnixTime((int) $value);
                        }
                        
                        if($value)
                        {
                                // Substitute variables
                                $string = str_replace('[F_'.$field_id.']',$value,$string);
                                // Delete block varaibles
                                $string = preg_replace('/\[\/?IF_F_'.$field_id.'\]/U','',$string);
                        }
                }
                // Replace fixed variables
                $string = str_replace('[OBJ_ID]',$a_obj_id,$string);
                
                // Delete all other blocks
                $string = preg_replace('/\[IF_F_\d+\].*\[\/IF_F_\d+\]/U','',$string);
                return $string;
                */
        }

Here is the call graph for this function:

ilAdvancedMDSubstitution::getSubstitutions (  ) 

get substitution string

public

Parameters:
 

Definition at line 291 of file class.ilAdvancedMDSubstitution.php.

Referenced by getParsedSubstitutions(), and isSubstituted().

        {
                return $this->substitutions ? $this->substitutions : array();
        }

Here is the caller graph for this function:

ilAdvancedMDSubstitution::hasNewline ( a_field_id  ) 

has newline

public

Parameters:
int field_id

Definition at line 329 of file class.ilAdvancedMDSubstitution.php.

Referenced by getParsedSubstitutions(), and update().

        {
                return in_array($a_field_id,$this->newline);
        }

Here is the caller graph for this function:

ilAdvancedMDSubstitution::isActive (  ) 

Is substitution active.

public

Definition at line 108 of file class.ilAdvancedMDSubstitution.php.

        {
                return $this->active;
        }

ilAdvancedMDSubstitution::isBold ( a_field_id  ) 

is bold

public

Parameters:
int field_id

Definition at line 315 of file class.ilAdvancedMDSubstitution.php.

Referenced by getParsedSubstitutions(), and update().

        {
                #var_dump("<pre>",$this->bold,$a_field_id,"</pre>");
                
                return in_array($a_field_id,$this->bold);
        }

Here is the caller graph for this function:

ilAdvancedMDSubstitution::isDescriptionEnabled (  ) 

Is description enabled.

public

Definition at line 119 of file class.ilAdvancedMDSubstitution.php.

Referenced by update().

        {
                return (bool) $this->enabled_desc;
        }

Here is the caller graph for this function:

ilAdvancedMDSubstitution::isSubstituted ( a_field_id  ) 

is substituted

public

Parameters:
int field_id

Definition at line 303 of file class.ilAdvancedMDSubstitution.php.

References getSubstitutions().

        {
                return in_array($a_field_id,$this->getSubstitutions());
        }

Here is the call graph for this function:

ilAdvancedMDSubstitution::read (  )  [private]

Read db entries.

private

Definition at line 369 of file class.ilAdvancedMDSubstitution.php.

References $res, and ilAdvancedMDFieldDefinition::_lookupDateFields().

Referenced by __construct().

        {
                include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
                $this->date_fields = ilAdvancedMDFieldDefinition::_lookupDateFields();
                
                // Check active status
                $query = "SELECT active,field_id,amfd.title FROM adv_md_record AS amr ".
                        "JOIN adv_md_record_objs AS amro ON amr.record_id = amro.record_id ".
                        "JOIN adv_md_field_definition AS amfd ON amr.record_id = amfd.record_id ".
                        "WHERE active = 1 ".
                        "AND obj_type = ".$this->db->quote($this->type)." ";
                $res = $this->db->query($query);
                $this->active = $res->numRows() ? true : false;
                while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        $this->active_fields[$row->field_id] = $row->title;
                }
                        
                $query = "SELECT * FROM adv_md_substitutions ".
                        "WHERE obj_type = ".$this->db->quote($this->type)." ";
                $res = $this->db->query($query);
                $this->substitutions = array();
                $this->bold = array();
                $this->newline = array();
                while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        $tmp_substitutions = unserialize($row->substitution);
                        if(is_array($tmp_substitutions))
                        {
                                foreach($tmp_substitutions as $substitution)
                                {
                                        if($substitution['field_id'])
                                        {
                                                $this->substitutions[] = $substitution['field_id'];
                                        }
                                        if($substitution['bold'])
                                        {
                                                $this->bold[] = $substitution['field_id'];
                                        }
                                        if($substitution['newline'])
                                        {
                                                $this->newline[] = $substitution['field_id'];
                                        }
                                        
                                }
                        }
                        $this->enabled_desc = !$row->hide_description;
                        $this->enabled_field_names = !$row->hide_field_names;
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilAdvancedMDSubstitution::resetSubstitutions (  ) 

set substitutions

public

Parameters:
array array of field definitions

Definition at line 257 of file class.ilAdvancedMDSubstitution.php.

        {
                $this->substitutions = array();
                $this->bold = array();
                $this->newline = array();
        }

ilAdvancedMDSubstitution::sortDefinitions ( a_definitions  ) 

Sort definitions.

public

Parameters:
array int field_id

Definition at line 90 of file class.ilAdvancedMDSubstitution.php.

        {
                $sorted = array();
                foreach($this->substitutions as $field_id)
                {
                        $sorted[] = $field_id;
                        $key = array_search($field_id,$a_definitions);
                        unset($a_definitions[$key]);
                }
                return array_merge($sorted,$a_definitions);
        }

ilAdvancedMDSubstitution::update (  ) 

update

public

Definition at line 339 of file class.ilAdvancedMDSubstitution.php.

References $res, $substitutions, enabledFieldNames(), hasNewline(), isBold(), and isDescriptionEnabled().

        {
                $counter = 0;
                $substitutions = array();
        
                foreach($this->substitutions as $field_id)
                {
                        $substitutions[$counter]['field_id'] = $field_id;
                        $substitutions[$counter]['bold'] = $this->isBold($field_id);
                        $substitutions[$counter]['newline'] = $this->hasNewline($field_id);
                        $counter++;
                }
                
                        
                $query = "REPLACE INTO adv_md_substitutions ".
                        "SET obj_type = ".$this->db->quote($this->type).", ".
                        "substitution = ".$this->db->quote(serialize($substitutions)).", ".
                        "hide_description = ".$this->db->quote(!$this->isDescriptionEnabled()).', '.
                        "hide_field_names = ".$this->db->quote(!$this->enabledFieldNames());
                        
                        
                $res = $this->db->query($query);
        }

Here is the call graph for this function:


Field Documentation

ilAdvancedMDSubstitution::$active = false [protected]

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

ilAdvancedMDSubstitution::$active_fields = array() [protected]

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

ilAdvancedMDSubstitution::$bold = array() [protected]

Definition at line 40 of file class.ilAdvancedMDSubstitution.php.

ilAdvancedMDSubstitution::$date_fields = array() [protected]

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

ilAdvancedMDSubstitution::$db [protected]

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

ilAdvancedMDSubstitution::$enabled_desc = true [protected]

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

ilAdvancedMDSubstitution::$enabled_field_names = true [protected]

Definition at line 44 of file class.ilAdvancedMDSubstitution.php.

ilAdvancedMDSubstitution::$instances = null [static, private]

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

ilAdvancedMDSubstitution::$newline = array() [protected]

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

ilAdvancedMDSubstitution::$substitutions [protected]

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

Referenced by update().

ilAdvancedMDSubstitution::$type [protected]

Definition at line 38 of file class.ilAdvancedMDSubstitution.php.


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