00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00036 require_once "class.ilObjectGUI.php";
00037
00038 class ilObjMailGUI extends ilObjectGUI
00039 {
00044 function ilObjMailGUI($a_data,$a_id,$a_call_by_reference)
00045 {
00046 $this->type = "mail";
00047 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference);
00048 }
00049
00050 function viewObject()
00051 {
00052 # parent::editObject();
00053
00054 $this->lng->loadLanguageModule("mail");
00055
00056 $this->tpl->addBlockFile("SYSTEMSETTINGS", "systemsettings", "tpl.mail_basicdata.html");
00057 $this->tpl->setCurrentBlock("systemsettings");
00058
00059 $settings = $this->ilias->getAllSettings();
00060
00061 if (isset($_POST["save_settings"]))
00062 {
00063
00064 $form_valid = true;
00065
00066
00067
00068 if (!$form_valid)
00069 {
00070
00071 $settings["mail_server"] = $_POST["mail_server"];
00072 $settings["mail_port"] = $_POST["mail_port"];
00073
00074
00075 # $settings["mail_intern_enable"] = $_POST["mail_intern_enable"];
00076 $settings["mail_maxsize_mail"] = $_POST["mail_maxsize_mail"];
00077 $settings["mail_maxsize_attach"] = $_POST["mail_maxsize_attach"];
00078 $settings["mail_maxsize_box"] = $_POST["mail_maxsize_box"];
00079 $settings["mail_maxtime_mail"] = $_POST["mail_maxtime_mail"];
00080 $settings["mail_maxtime_attach"] = $_POST["mail_maxtime_attach"];
00081 }
00082 else
00083 {
00084
00086
00087
00088
00089 $this->ilias->setSetting("mail_server",$_POST["mail_server"]);
00090 $this->ilias->setSetting("mail_port",$_POST["mail_port"]);
00091
00092
00093 # $this->ilias->setSetting("mail_intern_enable",$_POST["mail_intern_enable"]);
00094 $this->ilias->setSetting("mail_maxsize_mail",$_POST["mail_maxsize_mail"]);
00095 $this->ilias->setSetting("mail_maxsize_attach",$_POST["mail_maxsize_attach"]);
00096 $this->ilias->setSetting("mail_maxsize_box",$_POST["mail_maxsize_box"]);
00097 $this->ilias->setSetting("mail_maxtime_mail",$_POST["mail_maxtime_mail"]);
00098 $this->ilias->setSetting("mail_maxtime_attach",$_POST["mail_maxtime_attach"]);
00099
00100 $settings = $this->ilias->getAllSettings();
00101
00102
00103 sendInfo($this->lng->txt("saved_successfully"));
00104 }
00105 }
00106
00108
00109
00110
00111 $this->tpl->setVariable("TXT_DAYS",$this->lng->txt("days"));
00112 $this->tpl->setVariable("TXT_KB",$this->lng->txt("kb"));
00113
00114
00115 $this->tpl->setVariable("TXT_MAIL_SMTP", $this->lng->txt("mail")." (".$this->lng->txt("smtp").")");
00116 $this->tpl->setVariable("TXT_MAIL_SERVER", $this->lng->txt("server"));
00117 $this->tpl->setVariable("TXT_MAIL_PORT", $this->lng->txt("port"));
00118
00119
00120 $this->tpl->setVariable("TXT_MAIL_INTERN", $this->lng->txt("mail")." (".$this->lng->txt("internal_system").")");
00121 # $this->tpl->setVariable("TXT_MAIL_INTERN_ENABLE", $this->lng->txt("mail_intern_enable"));
00122 $this->tpl->setVariable("TXT_MAIL_MAXSIZE_MAIL", $this->lng->txt("mail_maxsize_mail"));
00123 $this->tpl->setVariable("TXT_MAIL_MAXSIZE_ATTACH", $this->lng->txt("mail_maxsize_attach"));
00124 $this->tpl->setVariable("TXT_MAIL_MAXSIZE_BOX", $this->lng->txt("mail_maxsize_box"));
00125 $this->tpl->setVariable("TXT_MAIL_MAXTIME_MAIL", $this->lng->txt("mail_maxtime_mail"));
00126 $this->tpl->setVariable("TXT_MAIL_MAXTIME_ATTACH", $this->lng->txt("mail_maxtime_attach"));
00127 $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));
00128
00130
00131
00132
00133 $this->tpl->setVariable("MAIL_SERVER",$settings["mail_server"]);
00134 $this->tpl->setVariable("MAIL_PORT",$settings["mail_port"]);
00135
00136
00137 # if ($settings["mail_intern_enable"] == "y")
00138 # {
00139 # $this->tpl->setVariable("MAIL_INTERN_ENABLE","checked=\"checked\"");
00140 # }
00141
00142 $this->tpl->setVariable("MAIL_MAXSIZE_MAIL", $settings["mail_maxsize_mail"]);
00143 $this->tpl->setVariable("MAIL_MAXSIZE_ATTACH", $settings["mail_maxsize_attach"]);
00144 $this->tpl->setVariable("MAIL_MAXSIZE_BOX", $settings["mail_maxsize_box"]);
00145 $this->tpl->setVariable("MAIL_MAXTIME_MAIL", $settings["mail_maxtime_mail"]);
00146 $this->tpl->setVariable("MAIL_MAXTIME_ATTACH", $settings["mail_maxtime_attach"]);
00147
00148 $this->tpl->parseCurrentBlock();
00149 }
00150
00151 function importObject()
00152 {
00153 global $rbacsystem,$lng;
00154
00155 if (!$rbacsystem->checkAccess('write',$this->object->getRefId()))
00156 {
00157 $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->WARNING);
00158 }
00159 $this->getTemplateFile("import");
00160
00161
00162 $this->__initFileObject();
00163 if($this->file_obj->findXMLFile())
00164 {
00165 $this->tpl->setVariable("TXT_IMPORTED_FILE",$lng->txt("checked_files"));
00166 $this->tpl->setVariable("XML_FILE",basename($this->file_obj->getXMLFile()));
00167
00168 $this->tpl->setVariable("BTN_IMPORT",$this->lng->txt("import"));
00169 }
00170
00171 $this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=gateway");
00172 $this->tpl->setVariable("TXT_IMPORT_MAIL",$this->lng->txt("table_mail_import"));
00173 $this->tpl->setVariable("TXT_IMPORT_FILE",$this->lng->txt("mail_import_file"));
00174 $this->tpl->setVariable("BTN_CANCEL",$this->lng->txt("cancel"));
00175 $this->tpl->setVariable("BTN_UPLOAD",$this->lng->txt("upload"));
00176
00177 return true;
00178 }
00179
00180 function performImportObject()
00181 {
00182 global $rbacsystem,$lng;
00183
00184 if (!$rbacsystem->checkAccess('write',$this->object->getRefId()))
00185 {
00186 $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->WARNING);
00187 }
00188 $this->__initFileObject();
00189 $this->file_obj->findXMLFile();
00190 $this->__initParserObject($this->file_obj->getXMLFile(),"import");
00191 $this->parser_obj->startParsing();
00192 $number = $this->parser_obj->getCountImported();
00193 sendInfo($lng->txt("import_finished")." ".$number,true);
00194
00195 ilUtil::redirect("adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=import");
00196 }
00197
00198
00199
00200 function uploadObject()
00201 {
00202 global $rbacsystem,$lng;
00203
00204 if (!$rbacsystem->checkAccess('write',$this->object->getRefId()))
00205 {
00206 $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->WARNING);
00207 }
00208
00209 $this->__initFileObject();
00210 if(!$this->file_obj->storeUploadedFile($_FILES["importFile"]))
00211 {
00212 $this->message = $lng->txt("import_file_not_valid");
00213 $this->file_obj->unlinkLast();
00214 }
00215 else if(!$this->file_obj->unzip())
00216 {
00217 $this->message = $lng->txt("cannot_unzip_file");
00218 $this->file_obj->unlinkLast();
00219 }
00220 else if(!$this->file_obj->findXMLFile())
00221 {
00222 $this->message = $lng->txt("cannot_find_xml");
00223 $this->file_obj->unlinkLast();
00224 }
00225 else if(!$this->__initParserObject($this->file_obj->getXMLFile(),"check"))
00226 {
00227 $this->message = $lng->txt("error_parser");
00228 }
00229 else if(!$this->parser_obj->startParsing())
00230 {
00231 $this->message = $lng->txt("users_not_imported").":<br/>";
00232 $this->message .= $this->parser_obj->getNotAssignableUsers();
00233 }
00234
00235 if(!$this->message)
00236 {
00237 $this->message = $lng->txt("uploaded_and_checked");
00238 }
00239 sendInfo($this->message,true);
00240
00241
00242 ilUtil::redirect("adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=import");
00243 }
00244
00245
00246 function __initFileObject()
00247 {
00248 include_once "./classes/class.ilFileDataImportMail.php";
00249
00250 $this->file_obj =& new ilFileDataImportMail();
00251
00252 return true;
00253 }
00254 function __initParserObject($a_xml,$a_mode)
00255 {
00256 include_once "./classes/class.ilMailImportParser.php";
00257
00258 if(!$a_xml)
00259 {
00260 return false;
00261 }
00262
00263 $this->parser_obj =& new ilMailImportParser($a_xml,$a_mode);
00264
00265 return true;
00266 }
00267
00268 }
00269 ?>