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;
}
Here is the caller graph for this function:| & 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;
}
Here is the call graph for this function:
Here is the caller graph for this function:| 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.
| 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();
}
Here is the call graph for this function:
Here is the caller graph for this function:| 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;
}
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:| ilUserDefinedFields::$db = null |
Definition at line 41 of file class.ilUserDefinedFields.php.
| ilUserDefinedFields::$definitions = array() |
Definition at line 42 of file class.ilUserDefinedFields.php.
1.7.1