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() |
Definition at line 39 of file class.ilUserDefinedFields.php.
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; }
& ilUserDefinedFields::_getInstance | ( | ) |
Definition at line 61 of file class.ilUserDefinedFields.php.
References ilUserDefinedFields().
Referenced by ilUserSearchOptions::__appendUserDefinedFields(), ilObjUserGUI::__checkUserDefinedRequiredFields(), ilObjUserGUI::__showUserDefinedFields(), ilUserDefinedData::addToXML(), ilObjUserFolderGUI::askDeleteFieldObject(), ilRegistrationGUI::checkUserDefinedRequiredFields(), ilObjUserFolderGUI::deleteFieldObject(), ilObjUserFolderGUI::deleteValueObject(), ilObjUserFolderGUI::editSelectFieldObject(), ilObjUserFolderGUI::editTextFieldObject(), ilPersonalProfileGUI::ilPersonalProfileGUI(), ilUserImportParser::importEndTag(), ilObjUserFolderGUI::listUserDefinedFieldsObject(), ilObjUserFolderGUI::saveFieldObject(), ilRegistrationGUI::showUserDefinedFields(), ilUserDefinedData::update(), ilObjUserFolderGUI::updateFieldsObject(), ilObjUserFolderGUI::updateSelectFieldObject(), and ilObjUserFolderGUI::updateTextFieldObject().
{ static $udf = null; if(!is_object($udf)) { return $udf = new ilUserDefinedFields(); } return $udf; }
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; }
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; }
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; }
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;
}
ilUserDefinedFields::enabledRequired | ( | ) |
Definition at line 203 of file class.ilUserDefinedFields.php.
Referenced by add(), and update().
{
return $this->field_required;
}
ilUserDefinedFields::enabledSearchable | ( | ) |
Definition at line 211 of file class.ilUserDefinedFields.php.
Referenced by add(), and update().
{
return $this->field_searchable;
}
ilUserDefinedFields::enabledVisible | ( | ) |
Definition at line 187 of file class.ilUserDefinedFields.php.
Referenced by add(), and update().
{
return $this->field_visible;
}
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();
}
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();
}
ilUserDefinedFields::getSearchableDefinitions | ( | ) |
Definition at line 138 of file class.ilUserDefinedFields.php.
References $id.
ilUserDefinedFields::getVisibleDefinitions | ( | ) |
Definition at line 126 of file class.ilUserDefinedFields.php.
References $id.
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(); }
ilUserDefinedFields::nameExists | ( | $ | a_field_name | ) |
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; }
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; }
ilUserDefinedFields::$db = null |
Definition at line 41 of file class.ilUserDefinedFields.php.
ilUserDefinedFields::$definitions = array() |
Definition at line 42 of file class.ilUserDefinedFields.php.