Public Member Functions | Data Fields

ilUserDefinedFields Class Reference

Public Member Functions

 ilUserDefinedFields ()
 Constructor is private -> use getInstance These definition are used e.g in User XML import.
_getInstance ()
 fetchFieldIdFromImportId ($a_import_id)
 fetchFieldIdFromName ($a_name)
 getDefinitions ()
 getDefinition ($a_id)
 getVisibleDefinitions ()
 getSearchableDefinitions ()
 setFieldName ($a_name)
 getFieldName ()
 setFieldType ($a_type)
 getFieldType ()
 setFieldValues ($a_values)
 getFieldValues ()
 enableVisible ($a_visible)
 enabledVisible ()
 enableChangeable ($a_changeable)
 enabledChangeable ()
 enableRequired ($a_required)
 enabledRequired ()
 enableSearchable ($a_searchable)
 enabledSearchable ()
 fieldValuesToSelectArray ($a_values)
 validateValues ()
 nameExists ($a_field_name)
 add ()
 delete ($a_id)
 update ($a_id)
 __read ()
 deleteValue ($a_field_id, $a_value_id)

Data Fields

 $db = null
 $definitions = array()

Detailed Description

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


Member Function Documentation

ilUserDefinedFields::__read (  ) 

Definition at line 322 of file class.ilUserDefinedFields.php.

References $query, $res, and $row.

Referenced by add(), delete(), deleteValue(), ilUserDefinedFields(), and update().

        {
                global $ilSetting;

                $query = "SELECT * FROM user_defined_field_definition ";
                $res = $this->db->query($query);

                $this->definitions = array();
                while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        $this->definitions[$row->field_id]['field_id'] = $row->field_id;
                        $this->definitions[$row->field_id]['field_name'] = $row->field_name;
                        $this->definitions[$row->field_id]['field_type'] = $row->field_type;
                        $this->definitions[$row->field_id]['il_id'] = 'il_'.$ilSetting->get('inst_id',0).'_udf_'.$row->field_id;

                        $tmp = unserialize(stripslashes($row->field_values));
                        sort($tmp);
                        $this->definitions[$row->field_id]['field_values'] = $tmp;

                        $this->definitions[$row->field_id]['visible'] = $row->visible;
                        $this->definitions[$row->field_id]['changeable'] = $row->changeable;
                        $this->definitions[$row->field_id]['required'] = $row->required;
                        $this->definitions[$row->field_id]['searchable'] = $row->searchable;

                }

                return true;
        }

Here is the caller graph for this function:

& ilUserDefinedFields::_getInstance (  ) 
ilUserDefinedFields::add (  ) 

Definition at line 261 of file class.ilUserDefinedFields.php.

References $query, __read(), enabledChangeable(), enabledRequired(), enabledSearchable(), enabledVisible(), and getFieldValues().

        {
                // Add definition entry
                $query = "INSERT INTO user_defined_field_definition ".
                        "SET field_name = '".$this->getFieldName()."', ".
                        "field_type = '".$this->getFieldType()."', ".
                        "field_values = '".addslashes(serialize($this->getFieldValues()))."', ".
                        "visible = '".(int) $this->enabledVisible()."', ".
                        "changeable = '".(int) $this->enabledChangeable()."', ".
                        "required = '".(int) $this->enabledRequired()."', ".
                        "searchable = '".(int) $this->enabledSearchable()."'";

                $this->db->query($query);

                // add table field in usr_defined_data
                $field_id = $this->db->getLastInsertId();

                $query = "ALTER TABLE usr_defined_data ADD `".$field_id."` TEXT NOT NULL";
                $this->db->query($query);

                $this->__read();

                return true;
        }

Here is the call graph for this function:

ilUserDefinedFields::delete ( a_id  ) 

Definition at line 285 of file class.ilUserDefinedFields.php.

References $query, and __read().

        {
                // Delete definitions
                $query = "DELETE FROM user_defined_field_definition ".
                        "WHERE field_id = '".$a_id."'";
                $this->db->query($query);

                // Delete usr_data entries
                $query = "ALTER TABLE usr_defined_data DROP `".$a_id."`";
                $this->db->query($query);

                $this->__read();

                return true;
        }

Here is the call graph for this function:

ilUserDefinedFields::deleteValue ( a_field_id,
a_value_id 
)

Definition at line 351 of file class.ilUserDefinedFields.php.

References $counter, $query, __read(), and getDefinition().

        {
                $definition = $this->getDefinition($a_field_id);

                $counter = 0;
                $new_values = array();
                foreach($definition['field_values'] as $value)
                {
                        if($counter++ != $a_value_id)
                        {
                                $new_values[] = $value;
                        }
                        else
                        {
                                $old_value = $value;
                        }
                }
                $query = "UPDATE user_defined_field_definition ".
                        "SET field_values = '".addslashes(serialize($new_values))."' ".
                        "WHERE field_id = '".$a_field_id."'";

                $this->db->query($query);

                // Update usr_data
                $query = "UPDATE usr_defined_data ".
                        "SET `".$a_field_id."` = '' ".
                        "WHERE `".$a_field_id."` = '".$old_value."'";
                $this->db->query($query);

                // fianally read data
                $this->__read();

                return true;
        }

Here is the call graph for this function:

ilUserDefinedFields::enableChangeable ( a_changeable  ) 

Definition at line 191 of file class.ilUserDefinedFields.php.

        {
                $this->field_changeable = $a_changeable;
        }

ilUserDefinedFields::enabledChangeable (  ) 

Definition at line 195 of file class.ilUserDefinedFields.php.

Referenced by add(), and update().

        {
                return $this->field_changeable;
        }

Here is the caller graph for this function:

ilUserDefinedFields::enabledRequired (  ) 

Definition at line 203 of file class.ilUserDefinedFields.php.

Referenced by add(), and update().

        {
                return $this->field_required;
        }

Here is the caller graph for this function:

ilUserDefinedFields::enabledSearchable (  ) 

Definition at line 211 of file class.ilUserDefinedFields.php.

Referenced by add(), and update().

        {
                return $this->field_searchable;
        }

Here is the caller graph for this function:

ilUserDefinedFields::enabledVisible (  ) 

Definition at line 187 of file class.ilUserDefinedFields.php.

Referenced by add(), and update().

        {
                return $this->field_visible;
        }

Here is the caller graph for this function:

ilUserDefinedFields::enableRequired ( a_required  ) 

Definition at line 199 of file class.ilUserDefinedFields.php.

        {
                $this->field_required = $a_required;
        }

ilUserDefinedFields::enableSearchable ( a_searchable  ) 

Definition at line 207 of file class.ilUserDefinedFields.php.

        {
                $this->field_searchable = $a_searchable;
        }

ilUserDefinedFields::enableVisible ( a_visible  ) 

Definition at line 183 of file class.ilUserDefinedFields.php.

        {
                $this->field_visible = $a_visible;
        }

ilUserDefinedFields::fetchFieldIdFromImportId ( a_import_id  ) 

Definition at line 72 of file class.ilUserDefinedFields.php.

        {
                global $ilSetting;

                if(!strlen($a_import_id))
                {
                        return 0;
                }
                $parts = explode('_',$a_import_id);

                if($parts[0] != 'il')
                {
                        return 0;
                }
                if($parts[1] != $ilSetting->get('inst_id',0))
                {
                        return 0;
                }
                if($parts[2] != 'udf')
                {
                        return 0;
                }
                if($parts[3])
                {
                        // Check if field exists
                        if(is_array($this->definitions["$parts[3]"]))
                        {
                                return $parts[3];
                        }
                }
                return 0;
        }

ilUserDefinedFields::fetchFieldIdFromName ( a_name  ) 

Definition at line 104 of file class.ilUserDefinedFields.php.

        {
                foreach($this->definitions as $definition)
                {
                        if($definition['field_name'] == $a_name)
                        {
                                return $definition['field_id'];
                        }
                }
                return 0;
        }

ilUserDefinedFields::fieldValuesToSelectArray ( a_values  ) 

Definition at line 217 of file class.ilUserDefinedFields.php.

        {
                foreach($a_values as $value)
                {
                        $values[$value] = $value;
                }
                return $values ? $values : array();
        }

ilUserDefinedFields::getDefinition ( a_id  ) 

Definition at line 121 of file class.ilUserDefinedFields.php.

Referenced by deleteValue().

        {
                return is_array($this->definitions[$a_id]) ? $this->definitions[$a_id] : array();
        }

Here is the caller graph for this function:

ilUserDefinedFields::getDefinitions (  ) 

Definition at line 116 of file class.ilUserDefinedFields.php.

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

ilUserDefinedFields::getFieldName (  ) 

Definition at line 155 of file class.ilUserDefinedFields.php.

        {
                return $this->field_name;
        }

ilUserDefinedFields::getFieldType (  ) 

Definition at line 163 of file class.ilUserDefinedFields.php.

        {
                return $this->field_type;
        }

ilUserDefinedFields::getFieldValues (  ) 

Definition at line 178 of file class.ilUserDefinedFields.php.

Referenced by add(), update(), and validateValues().

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

Here is the caller graph for this function:

ilUserDefinedFields::getSearchableDefinitions (  ) 

Definition at line 138 of file class.ilUserDefinedFields.php.

References $id.

        {
                foreach($this->definitions as $id => $definition)
                {
                        if($definition['searchable'])
                        {
                                $searchable_definition[$id] = $definition;
                        }
                }
                return $searchable_definition ? $searchable_definition : array();
        }

ilUserDefinedFields::getVisibleDefinitions (  ) 

Definition at line 126 of file class.ilUserDefinedFields.php.

References $id.

        {
                foreach($this->definitions as $id => $definition)
                {
                        if($definition['visible'])
                        {
                                $visible_definition[$id] = $definition;
                        }
                }
                return $visible_definition ? $visible_definition : array();
        }

ilUserDefinedFields::ilUserDefinedFields (  ) 

Constructor is private -> use getInstance These definition are used e.g in User XML import.

To avoid instances of this class for every user object during import, it caches this object in a singleton.

Definition at line 52 of file class.ilUserDefinedFields.php.

References __read().

Referenced by _getInstance().

        {
                global $ilDB;

                $this->db =& $ilDB;

                $this->__read();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilUserDefinedFields::nameExists ( a_field_name  ) 

Definition at line 251 of file class.ilUserDefinedFields.php.

References $query, and $res.

        {
                $query = "SELECT * FROM user_defined_field_definition ".
                        "WHERE field_name = '".$a_field_name."'";

                $res = $this->db->query($query);
                
                return (bool) $res->numRows();
        }

ilUserDefinedFields::setFieldName ( a_name  ) 

Definition at line 151 of file class.ilUserDefinedFields.php.

        {
                $this->field_name = $a_name;
        }

ilUserDefinedFields::setFieldType ( a_type  ) 

Definition at line 159 of file class.ilUserDefinedFields.php.

        {
                $this->field_type = $a_type;
        }

ilUserDefinedFields::setFieldValues ( a_values  ) 

Definition at line 167 of file class.ilUserDefinedFields.php.

        {
                $this->field_values = array();
                foreach($a_values as $value)
                {
                        if(strlen($value))
                        {
                                $this->field_values[] = $value;
                        }
                }
        }

ilUserDefinedFields::update ( a_id  ) 

Definition at line 301 of file class.ilUserDefinedFields.php.

References $query, __read(), enabledChangeable(), enabledRequired(), enabledSearchable(), enabledVisible(), and getFieldValues().

        {
                $query = "UPDATE user_defined_field_definition ".
                        "SET field_name = '".$this->getFieldName()."', ".
                        "field_type = '".$this->getFieldType()."', ".
                        "field_values = '".addslashes(serialize($this->getFieldValues()))."', ".
                        "visible = '".(int) $this->enabledVisible()."', ".
                        "changeable = '".(int) $this->enabledChangeable()."', ".
                        "required = '".(int) $this->enabledRequired()."', ".
                        "searchable = '".(int) $this->enabledSearchable()."' ".
                        "WHERE field_id = '".$a_id."'";

                $this->db->query($query);
                $this->__read();

                return true;
        }

Here is the call graph for this function:

ilUserDefinedFields::validateValues (  ) 

Definition at line 226 of file class.ilUserDefinedFields.php.

References getFieldValues().

        {
                $number = 0;
                $unique = array();
                foreach($this->getFieldValues() as $value)
                {
                        if(!strlen($value))
                        {
                                continue;
                        }
                        $number++;
                        $unique[$value] = $value;
                }

                if(!count($unique))
                {
                        return UDF_NO_VALUES;
                }
                if($number != count($unique))
                {
                        return UDF_DUPLICATE_VALUES;
                }
                return 0;
        }

Here is the call graph for this function:


Field Documentation

ilUserDefinedFields::$db = null

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

ilUserDefinedFields::$definitions = array()

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


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