Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00034 class ilUserDefinedData
00035 {
00036 var $db = null;
00037 var $user_data = array();
00038 var $usr_id = null;
00039
00040 function ilUserDefinedData($a_usr_id)
00041 {
00042 global $ilDB;
00043
00044 $this->db =& $ilDB;
00045 $this->usr_id = $a_usr_id;
00046
00047 $this->__read();
00048 }
00049
00050 function getUserId()
00051 {
00052 return $this->usr_id;
00053 }
00054
00055 function set($a_field,$a_value)
00056 {
00057 $this->user_data[$a_field] = $a_value;
00058 }
00059 function get($a_field)
00060 {
00061 return isset($this->user_data[$a_field]) ? $this->user_data[$a_field] : '';
00062 }
00063
00064 function update()
00065 {
00066 include_once './Services/User/classes/class.ilUserDefinedFields.php';
00067 $udf_obj =& ilUserDefinedFields::_getInstance();
00068
00069 $sql = '';
00070
00071 foreach($udf_obj->getDefinitions() as $definition)
00072 {
00073 $sql .= ("`".(int) $definition['field_id']."` = ".$this->db->quote($this->get($definition['field_id'])).", ");
00074 }
00075
00076 $query = "REPLACE INTO usr_defined_data ".
00077 "SET ".$sql." ".
00078 "usr_id = '".$this->getUserId()."'";
00079 $this->db->query($query);
00080 return true;
00081 }
00082
00083 function toXML()
00084 {
00085 include_once 'classes/class.ilXmlWriter.php';
00086 $xml_writer = new ilXmlWriter();
00087
00088 $this->addToXML ($xml_writer);
00089
00090 return $xml_writer->xmlDumpMem(false);
00091 }
00092
00097 function addToXML($xml_writer)
00098 {
00099 include_once './Services/User/classes/class.ilUserDefinedFields.php';
00100 $udf_obj =& ilUserDefinedFields::_getInstance();
00101
00102 foreach($udf_obj->getDefinitions() as $definition)
00103 {
00104 if ($definition["export"] != FALSE)
00105 $xml_writer->xmlElement('UserDefinedField',
00106 array('Id' => $definition['il_id'],
00107 'Name' => $definition['field_name']),
00108 $this->user_data["$definition[field_id]"]);
00109 }
00110 }
00111
00112
00113 function __read()
00114 {
00115 $this->user_data = array();
00116 $query = "SELECT * FROM usr_defined_data ".
00117 "WHERE usr_id = ".$this->db->quote($this->usr_id)."";
00118 $res = $this->db->query($query);
00119 while($row = $res->fetchRow(DB_FETCHMODE_ASSOC))
00120 {
00121 foreach($row as $field => $data)
00122 {
00123 if($field != 'usr_id')
00124 {
00125 $this->user_data[$field] = $data;
00126 }
00127 }
00128 }
00129 }
00130
00131 }
00132 ?>