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
00035 class ilUserDefinedData
00036 {
00037 var $db = null;
00038 var $user_data = array();
00039 var $usr_id = null;
00040
00041 function ilUserDefinedData($a_usr_id)
00042 {
00043 global $ilDB;
00044
00045 $this->db =& $ilDB;
00046 $this->usr_id = $a_usr_id;
00047
00048 $this->__read();
00049 }
00050
00051 function getUserId()
00052 {
00053 return $this->usr_id;
00054 }
00055
00056 function set($a_field,$a_value)
00057 {
00058 $this->user_data[$a_field] = $a_value;
00059 }
00060 function get($a_field)
00061 {
00062 return isset($this->user_data[$a_field]) ? $this->user_data[$a_field] : '';
00063 }
00064
00065 function update()
00066 {
00067 include_once 'classes/class.ilUserDefinedFields.php';
00068 $udf_obj =& ilUserDefinedFields::_getInstance();
00069
00070 $sql = '';
00071
00072 foreach($udf_obj->getDefinitions() as $definition)
00073 {
00074 $sql .= ("`".$definition['field_id']."` = '".$this->get($definition['field_id'])."', ");
00075 }
00076
00077 $query = "REPLACE INTO usr_defined_data ".
00078 "SET ".$sql." ".
00079 "usr_id = '".$this->getUserId()."'";
00080 $this->db->query($query);
00081 return true;
00082 }
00083
00084 function toXML()
00085 {
00086 include_once 'classes/class.ilXmlWriter.php';
00087 $xml_writer = new ilXmlWriter();
00088
00089 $this->addToXML ($xml_writer);
00090
00091 return $xml_writer->xmlDumpMem(false);
00092 }
00093
00098 function addToXML($xml_writer)
00099 {
00100 include_once 'classes/class.ilUserDefinedFields.php';
00101 $udf_obj =& ilUserDefinedFields::_getInstance();
00102
00103 foreach($udf_obj->getDefinitions() as $definition)
00104 {
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->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 ?>