5include_once 
"./Services/Xml/classes/class.ilXmlWriter.php";
 
    6include_once 
'./Services/User/classes/class.ilObjUserFolder.php';
 
   48        parent::__construct();
 
   51        $this->user_id = 
$ilUser->getId();
 
   52        $this->attachRoles = 
false;
 
   64        $this->attachRoles = $value == 1? true : 
false;
 
   75        if (!is_array($this->users)) {
 
   82        include_once(
"./Services/User/classes/class.ilUserDefinedFields.php");
 
   84        $udf_data->addToXML($this);
 
   86        foreach ($this->users as $user) {
 
  103        $this->
xmlSetDtdDef(
"<!DOCTYPE Users PUBLIC \"-//ILIAS//DTD UserImport//EN\" \"" . ILIAS_HTTP_PATH . 
"/xml/ilias_user_5_1.dtd\">");
 
  121            include_once(
'./Services/User/classes/class.ilObjUserFolder.php');
 
  127        if (strlen(
$row[
"language"]) == 0) {
 
  128            $row[
"language"] = 
$lng->getDefaultLanguage();
 
  132            'Id' => 
"il_" . IL_INST_ID . 
"_usr_" . 
$row[
"usr_id"],
 
  133            'Language' => 
$row[
"language"],
 
  139        $this->
xmlElement(
"Login", 
null, $row[
"login"]);
 
  141        if ($this->attachRoles == 
true) {
 
  142            include_once 
'./Services/AccessControl/classes/class.ilObjRole.php';
 
  145                "SELECT object_data.title, object_data.description,  rbac_fa.* " .
 
  146                            "FROM object_data, rbac_ua, rbac_fa WHERE rbac_ua.usr_id = %s " .
 
  147                            "AND rbac_ua.rol_id = rbac_fa.rol_id AND object_data.obj_id = rbac_fa.rol_id",
 
  153                if ($rbacrow[
"assign"] != 
"y") {
 
  159                if ($rbacrow[
"parent"] == ROLE_FOLDER_ID) {
 
  168                                "il_" . IL_INST_ID . 
"_role_" . $rbacrow[
"rol_id"], 
"Type" => 
$type),
 
  179        if ($this->
canExport(
"PersonalPicture", 
"upload")) {
 
  182                $value = array_shift($imageData); 
 
  183                $this->
__addElement(
"PersonalPicture", $value, $imageData, 
"upload");
 
  190        $this->
__addElement(
"SecondEmail", $row[
"second_email"], 
null, 
"second_email");
 
  192        $this->
__addElement(
"Institution", $row[
"institution"]);
 
  195        $this->
__addElement(
"PostalCode", $row[
"zipcode"], 
null, 
"zipcode");
 
  197        $this->
__addElement(
"SelCountry", $row[
"sel_country"], 
null, 
"sel_country");
 
  198        $this->
__addElement(
"PhoneOffice", $row[
"phone_office"], 
null, 
"phone_office");
 
  199        $this->
__addElement(
"PhoneHome", $row[
"phone_home"], 
null, 
"phone_home");
 
  200        $this->
__addElement(
"PhoneMobile", $row[
"phone_mobile"], 
null, 
"phone_mobile");
 
  204        $this->
__addElementMulti(
"GeneralInterest", $row[
"interests_general"], 
null, 
"interests_general");
 
  205        $this->
__addElementMulti(
"OfferingHelp", $row[
"interests_help_offered"], 
null, 
"interests_help_offered");
 
  206        $this->
__addElementMulti(
"LookingForHelp", $row[
"interests_help_looking"], 
null, 
"interests_help_looking");
 
  209        $this->
__addElement(
"Comment", $row[
"referral_comment"], 
null, 
"referral_comment");
 
  210        $this->
__addElement(
"Matriculation", $row[
"matriculation"]);
 
  211        $this->
__addElement(
"Active", $row[
"active"] ? 
"true":
"false");
 
  212        $this->
__addElement(
"ClientIP", $row[
"client_ip"], 
null, 
"client_ip");
 
  213        $this->
__addElement(
"TimeLimitOwner", $row[
"time_limit_owner"], 
null, 
"time_limit_owner");
 
  214        $this->
__addElement(
"TimeLimitUnlimited", $row[
"time_limit_unlimited"], 
null, 
"time_limit_unlimited");
 
  215        $this->
__addElement(
"TimeLimitFrom", $row[
"time_limit_from"], 
null, 
"time_limit_from");
 
  216        $this->
__addElement(
"TimeLimitUntil", $row[
"time_limit_until"], 
null, 
"time_limit_until");
 
  217        $this->
__addElement(
"TimeLimitMessage", $row[
"time_limit_message"], 
null, 
"time_limit_message");
 
  218        $this->
__addElement(
"ApproveDate", $row[
"approve_date"], 
null, 
"approve_date");
 
  219        $this->
__addElement(
"AgreeDate", $row[
"agree_date"], 
null, 
"agree_date");
 
  221        if (strlen(
$row[
"auth_mode"])>0) {
 
  222            $this->
__addElement(
"AuthMode", 
null, array(
"type" => 
$row[
"auth_mode"]), 
"auth_mode", 
true);
 
  225        if (strlen(
$row[
"ext_account"])>0) {
 
  226            $this->
__addElement(
"ExternalAccount", $row[
"ext_account"], 
null, 
"ext_account", 
true);
 
  229        if ($this->
canExport(
"Look", 
"skin_style")) {
 
  231                "Skin"  =>      $prefs[
"skin"], 
"Style" =>      $prefs[
"style"]
 
  232            ), 
"skin_style", 
true);
 
  236        $this->
__addElement(
"LastUpdate", $row[
"last_update"], 
null, 
"last_update");
 
  237        $this->
__addElement(
"LastLogin", $row[
"last_login"], 
null, 
"last_login");
 
  239        include_once(
"./Services/User/classes/class.ilUserDefinedData.php");
 
  241        $udf_data->addToXML($this, $this->
settings);
 
  243        $this->
__addElement(
"AccountInfo", $row[
"ext_account"], array(
"Type" => 
"external"));
 
  246            "longitude" => 
$row[
"longitude"],
 
  247            "latitude" => 
$row[
"latitude"],
 
  248            "zoom" => 
$row[
"loc_zoom"]));
 
  252        if ($this->attachPreferences || $this->
canExport(
"prefs", 
"preferences")) {
 
  263        include_once(
"Services/Mail/classes/class.ilMailOptions.php");
 
  265        $prefs[
"mail_incoming_type"] = $mailOptions->getIncomingType();
 
  266        $prefs[
"mail_address_option"] = $mailOptions->getMailAddressOption();
 
  267        $prefs[
"mail_signature"] = $mailOptions->getSignature();
 
  268        $prefs[
"mail_linebreak"] = $mailOptions->getLinebreak();
 
  271            foreach ($prefs as 
$key => $value) {
 
  280    public function __addElementMulti($tagname, $value, $attrs = 
null, $settingsname = 
null, $requiredTag = 
false)
 
  282        if (is_array($value) && 
sizeof($value)) {
 
  283            foreach ($value as $idx => $item) {
 
  284                $this->
__addElement($tagname, $item, $attrs, $settingsname, $requiredTag);
 
  289    public function __addElement($tagname, $value, $attrs = 
null, $settingsname = 
null, $requiredTag = 
false)
 
  291        if ($this->
canExport($tagname, $settingsname)) {
 
  292            if (strlen($value) > 0 || $requiredTag || (is_array($attrs) && count($attrs) > 0)) {
 
  298    private function canExport($tagname, $settingsname = 
null)
 
  300        return !is_array($this->
settings) ||
 
  301               in_array(strtolower($tagname), $this->
settings) !== 
false ||
 
  302               in_array($settingsname, $this->
settings) !== 
false;
 
  325            "SELECT value FROM usr_pref WHERE usr_id = %s AND keyword = %s",
 
  326            $ilDB->quote($usr_id, 
"integer"),
 
  327            $ilDB->quote(
'profile_image', 
"text")
 
  332            $personal_picture = $personal_picture_data[
"value"];
 
  334            $image_file = $webspace_dir . 
"/usr_images/" . $personal_picture;
 
  335            if (@is_file($image_file)) {
 
  336                $fh = fopen($image_file, 
"rb");
 
  338                    $image_data = fread(
$fh, filesize($image_file));
 
  340                    $base64 = base64_encode($image_data);
 
  341                    $imagetype = 
"image/jpeg";
 
  342                    if (preg_match(
"/.*\.(png|gif)$/", $personal_picture, $matches)) {
 
  343                        $imagetype = 
"image/" . $matches[1];
 
  347                        "encoding" => 
"Base64",
 
  348                        "imagetype" => $imagetype
 
  365        $this->attachPreferences = $attachPrefs;
 
  381                'public_second_email',
 
  384                'public_institution',
 
  385                'public_matriculation',
 
  388                'public_phone_mobile',
 
  389                'public_phone_office',
 
  396                'hide_own_online_status',
 
  397                'bs_allow_to_contact_me',
 
  398                'chat_osc_accept_msg',
 
  401                'mail_incoming_type',
 
  404                'public_interests_general',
 
  405                'public_interests_help_offered',
 
  406                'public_interests_help_looking' 
sprintf('%.4f', $callTime)
An exception for terminatinating execution or to throw for unit testing.
Class ilMailOptions this class handles user mails.
static getExportSettings()
getExport Settings
static _getPreferences($user_id)
get preferences for user
static _getInstance()
Get instance.
setSettings($settings)
write access to settings
static isPrefExportable($key)
returns wether a key from db is exportable or not
__handlePreferences($prefs, $row)
static getExportablePreferences()
return exportable preference keys as found in db
__addElement($tagname, $value, $attrs=null, $settingsname=null, $requiredTag=false)
canExport($tagname, $settingsname=null)
setAttachPreferences($attachPrefs)
if set to true, all preferences of a user will be set
__addElementMulti($tagname, $value, $attrs=null, $settingsname=null, $requiredTag=false)
getPictureValue($usr_id)
return array with baseencoded picture data as key value, encoding type as encoding,...
static getWebspaceDir($mode="filesystem")
get webspace directory
xmlEndTag($tag)
Writes an endtag.
xmlSetGenCmt($genCmt)
Sets generated comment.
xmlDumpMem($format=true)
Returns xml document from memory.
xmlHeader()
Writes xml header @access public.
xmlElement($tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
xmlStartTag($tag, $attrs=null, $empty=false, $encode=true, $escape=true)
Writes a starttag.
xmlSetDtdDef($dtdDef)
Sets dtd definition.
redirection script todo: (a better solution should control the processing via a xml file)