Public Member Functions | |
| _getInstance () | |
| fetchFieldIdFromImportId ($a_import_id) | |
| fetchFieldIdFromName ($a_name) | |
| getDefinitions () | |
| getDefinition ($a_id) | |
| getVisibleDefinitions () | |
| getSearchableDefinitions () | |
| getCourseExportableFields () | |
| get | |
| 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 () | |
| enableExport ($a_export) | |
| enabledExport () | |
| enableCourseExport ($a_course_export) | |
| enabledCourseExport () | |
| fieldValuesToSelectArray ($a_values) | |
| validateValues () | |
| nameExists ($a_field_name) | |
| add () | |
| delete ($a_id) | |
| update ($a_id) | |
| __read () | |
| deleteValue ($a_field_id, $a_value_id) | |
| toXML () | |
| addToXML ($xml_writer) | |
| add user defined field data to xml (using usr dtd) | |
Data Fields | |
| $db = null | |
| $definitions = array() | |
Private Member Functions | |
| __construct () | |
| Constructor is private -> use getInstance These definition are used e.g in User XML import. | |
Definition at line 38 of file class.ilUserDefinedFields.php.
| ilUserDefinedFields::__construct | ( | ) | [private] |
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 51 of file class.ilUserDefinedFields.php.
References __read().
{
global $ilDB;
$this->db =& $ilDB;
$this->__read();
}
Here is the call graph for this function:| ilUserDefinedFields::__read | ( | ) |
Definition at line 360 of file class.ilUserDefinedFields.php.
References $ilSetting, and $res.
Referenced by __construct(), add(), delete(), deleteValue(), 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;
$this->definitions[$row->field_id]['export'] = $row->export;
$this->definitions[$row->field_id]['course_export'] = $row->course_export;
}
return true;
}
Here is the caller graph for this function:| ilUserDefinedFields::_getInstance | ( | ) |
Definition at line 60 of file class.ilUserDefinedFields.php.
Referenced by ilUserSearchOptions::__appendUserDefinedFields(), ilObjUserGUI::__checkUserDefinedRequiredFields(), ilObjUserGUI::__showUserDefinedFields(), ilUserDefinedData::addToXML(), ilObjUserFolderGUI::askDeleteFieldObject(), ilRegistrationGUI::checkUserDefinedRequiredFields(), ilMemberExport::createCSV(), ilObjUserFolderGUI::deleteFieldObject(), ilObjUserFolderGUI::deleteValueObject(), ilObjUserFolderGUI::editSelectFieldObject(), ilObjUserFolderGUI::editTextFieldObject(), ilExportUserSettings::getOrderedExportableFields(), ilPersonalProfileGUI::ilPersonalProfileGUI(), ilUserImportParser::importEndTag(), ilLDAPSettingsGUI::initUserDefinedFields(), ilLDAPAttributeToUser::initUserDefinedFields(), ilObjUserFolderGUI::listUserDefinedFieldsObject(), ilObjUserFolderGUI::saveFieldObject(), ilMemberExportGUI::show(), ilRegistrationGUI::showUserDefinedFields(), ilUserXMLWriter::start(), 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 caller graph for this function:| ilUserDefinedFields::add | ( | ) |
Definition at line 295 of file class.ilUserDefinedFields.php.
References __read(), enabledChangeable(), enabledCourseExport(), enabledExport(), enabledRequired(), enabledSearchable(), enabledVisible(), getFieldName(), getFieldType(), and getFieldValues().
{
// Add definition entry
$query = "INSERT INTO user_defined_field_definition ".
"SET field_name = ".$this->db->quote($this->getFieldName()).", ".
"field_type = ".$this->db->quote($this->getFieldType()).", ".
"field_values = '".addslashes(serialize($this->getFieldValues()))."', ".
"visible = '".(int) $this->enabledVisible()."', ".
"changeable = '".(int) $this->enabledChangeable()."', ".
"required = '".(int) $this->enabledRequired()."', ".
"searchable = '".(int) $this->enabledSearchable()."', ".
"export = '".(int) $this->enabledExport()."', ".
"course_export = '".(int) $this->enabledCourseExport()."'";
$this->db->query($query);
// add table field in usr_defined_data
$field_id = $this->db->getLastInsertId();
$query = "ALTER TABLE usr_defined_data ADD `".(int) $field_id."` TEXT NOT NULL";
$this->db->query($query);
$this->__read();
return true;
}
Here is the call graph for this function:| ilUserDefinedFields::addToXML | ( | $ | xml_writer | ) |
add user defined field data to xml (using usr dtd)
| $xml_writer |
Definition at line 440 of file class.ilUserDefinedFields.php.
References getDefinitions().
Referenced by toXML().
{
$xml_writer->xmlStartTag ("UDFDefinitions");
foreach($this->getDefinitions() as $definition)
{
$attributes = array(
"Id" => $definition ["il_id"],
"Type" => $definition["field_type"] == UDF_TYPE_SELECT? "SELECT" : "TEXT",
"Visible" => $definition["visible"]? "TRUE" : "FALSE",
"Changeable" => $definition["changeable"]? "TRUE" : "FALSE",
"Required" => $definition["required"]? "TRUE" : "FALSE",
"Searchable" => $definition["searchable"]? "TRUE" : "FALSE",
"CourseExport" => $definition["course_export"]? "TRUE" : "FALSE",
"Export" => $definition["export"]? "TRUE" : "FALSE",
);
$xml_writer->xmlStartTag ("UDFDefinition", $attributes);
$xml_writer->xmlElement('UDFName', null, $definition['field_name']);
if ($definition["field_type"] == UDF_TYPE_SELECT ) {
$field_values = $definition["field_values"];
foreach ($field_values as $field_value)
{
$xml_writer->xmlElement('UDFValue', null, $field_value);
}
}
$xml_writer->xmlEndTag ("UDFDefinition");
}
$xml_writer->xmlEndTag ("UDFDefinitions");
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilUserDefinedFields::delete | ( | $ | a_id | ) |
Definition at line 321 of file class.ilUserDefinedFields.php.
References __read().
{
// Delete definitions
$query = "DELETE FROM user_defined_field_definition ".
"WHERE field_id = ".$this->db->quote($a_id)." ";
$this->db->query($query);
// Delete usr_data entries
$query = "ALTER TABLE usr_defined_data DROP `".(int) $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 391 of file class.ilUserDefinedFields.php.
References __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 = ".$this->db->quote($a_field_id)."";
$this->db->query($query);
// Update usr_data
$query = "UPDATE usr_defined_data ".
"SET `".$this->db->quote($a_field_id)."` = '' ".
"WHERE `".$this->db->quote($a_field_id)."` = ".$this->db->quote($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 209 of file class.ilUserDefinedFields.php.
{
$this->field_changeable = $a_changeable;
}
| ilUserDefinedFields::enableCourseExport | ( | $ | a_course_export | ) |
Definition at line 241 of file class.ilUserDefinedFields.php.
{
$this->field_course_export = $a_course_export;
}
| ilUserDefinedFields::enabledChangeable | ( | ) |
Definition at line 213 of file class.ilUserDefinedFields.php.
Referenced by add(), and update().
{
return $this->field_changeable;
}
Here is the caller graph for this function:| ilUserDefinedFields::enabledCourseExport | ( | ) |
Definition at line 245 of file class.ilUserDefinedFields.php.
Referenced by add(), and update().
{
return $this->field_course_export;
}
Here is the caller graph for this function:| ilUserDefinedFields::enabledExport | ( | ) |
Definition at line 237 of file class.ilUserDefinedFields.php.
Referenced by add(), and update().
{
return $this->field_export;
}
Here is the caller graph for this function:| ilUserDefinedFields::enabledRequired | ( | ) |
Definition at line 221 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 229 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 205 of file class.ilUserDefinedFields.php.
Referenced by add(), and update().
{
return $this->field_visible;
}
Here is the caller graph for this function:| ilUserDefinedFields::enableExport | ( | $ | a_export | ) |
Definition at line 233 of file class.ilUserDefinedFields.php.
{
$this->field_export = $a_export;
}
| ilUserDefinedFields::enableRequired | ( | $ | a_required | ) |
Definition at line 217 of file class.ilUserDefinedFields.php.
{
$this->field_required = $a_required;
}
| ilUserDefinedFields::enableSearchable | ( | $ | a_searchable | ) |
Definition at line 225 of file class.ilUserDefinedFields.php.
{
$this->field_searchable = $a_searchable;
}
| ilUserDefinedFields::enableVisible | ( | $ | a_visible | ) |
Definition at line 201 of file class.ilUserDefinedFields.php.
{
$this->field_visible = $a_visible;
}
| ilUserDefinedFields::fetchFieldIdFromImportId | ( | $ | a_import_id | ) |
Definition at line 71 of file class.ilUserDefinedFields.php.
References $ilSetting.
{
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 103 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 251 of file class.ilUserDefinedFields.php.
{
foreach($a_values as $value)
{
$values[$value] = $value;
}
return $values ? $values : array();
}
| ilUserDefinedFields::getCourseExportableFields | ( | ) |
get
public
Definition at line 156 of file class.ilUserDefinedFields.php.
{
foreach($this->definitions as $id => $definition)
{
if($definition['course_export'])
{
$cexp_definition[$id] = $definition;
}
}
return $cexp_definition ? $cexp_definition : array();
}
| ilUserDefinedFields::getDefinition | ( | $ | a_id | ) |
Definition at line 120 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 115 of file class.ilUserDefinedFields.php.
Referenced by addToXML().
{
return $this->definitions ? $this->definitions : array();
}
Here is the caller graph for this function:| ilUserDefinedFields::getFieldName | ( | ) |
Definition at line 173 of file class.ilUserDefinedFields.php.
Referenced by add(), and update().
{
return $this->field_name;
}
Here is the caller graph for this function:| ilUserDefinedFields::getFieldType | ( | ) |
Definition at line 181 of file class.ilUserDefinedFields.php.
Referenced by add(), and update().
{
return $this->field_type;
}
Here is the caller graph for this function:| ilUserDefinedFields::getFieldValues | ( | ) |
Definition at line 196 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 137 of file class.ilUserDefinedFields.php.
{
foreach($this->definitions as $id => $definition)
{
if($definition['searchable'])
{
$searchable_definition[$id] = $definition;
}
}
return $searchable_definition ? $searchable_definition : array();
}
| ilUserDefinedFields::getVisibleDefinitions | ( | ) |
Definition at line 125 of file class.ilUserDefinedFields.php.
{
foreach($this->definitions as $id => $definition)
{
if($definition['visible'])
{
$visible_definition[$id] = $definition;
}
}
return $visible_definition ? $visible_definition : array();
}
| ilUserDefinedFields::nameExists | ( | $ | a_field_name | ) |
Definition at line 285 of file class.ilUserDefinedFields.php.
References $res.
| ilUserDefinedFields::setFieldName | ( | $ | a_name | ) |
Definition at line 169 of file class.ilUserDefinedFields.php.
{
$this->field_name = $a_name;
}
| ilUserDefinedFields::setFieldType | ( | $ | a_type | ) |
Definition at line 177 of file class.ilUserDefinedFields.php.
{
$this->field_type = $a_type;
}
| ilUserDefinedFields::setFieldValues | ( | $ | a_values | ) |
Definition at line 185 of file class.ilUserDefinedFields.php.
{
$this->field_values = array();
foreach($a_values as $value)
{
if(strlen($value))
{
$this->field_values[] = $value;
}
}
}
| ilUserDefinedFields::toXML | ( | ) |
Definition at line 426 of file class.ilUserDefinedFields.php.
References addToXML().
{
include_once 'classes/class.ilXmlWriter.php';
$xml_writer = new ilXmlWriter();
$this->addToXML ($xml_writer);
return $xml_writer->xmlDumpMem(false);
}
Here is the call graph for this function:| ilUserDefinedFields::update | ( | $ | a_id | ) |
Definition at line 337 of file class.ilUserDefinedFields.php.
References __read(), enabledChangeable(), enabledCourseExport(), enabledExport(), enabledRequired(), enabledSearchable(), enabledVisible(), getFieldName(), getFieldType(), and getFieldValues().
{
$query = "UPDATE user_defined_field_definition ".
"SET field_name = ".$this->db->quote($this->getFieldName()).", ".
"field_type = ".$this->db->quote($this->getFieldType()).", ".
"field_values = '".addslashes(serialize($this->getFieldValues()))."', ".
"visible = '".(int) $this->enabledVisible()."', ".
"changeable = '".(int) $this->enabledChangeable()."', ".
"required = '".(int) $this->enabledRequired()."', ".
"searchable = '".(int) $this->enabledSearchable()."', ".
"export = '".(int) $this->enabledExport()."', ".
"course_export = '".(int) $this->enabledCourseExport()."' ".
"WHERE field_id = ".$this->db->quote($a_id)." ";
$this->db->query($query);
$this->__read();
return true;
}
Here is the call graph for this function:| ilUserDefinedFields::validateValues | ( | ) |
Definition at line 260 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 40 of file class.ilUserDefinedFields.php.
| ilUserDefinedFields::$definitions = array() |
Definition at line 41 of file class.ilUserDefinedFields.php.
1.7.1