• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

classes/class.ilObjMailGUI.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2001 ILIAS open source, University of Cologne            |
00007         |                                                                             |
00008         | This program is free software; you can redistribute it and/or               |
00009         | modify it under the terms of the GNU General Public License                 |
00010         | as published by the Free Software Foundation; either version 2              |
00011         | of the License, or (at your option) any later version.                      |
00012         |                                                                             |
00013         | This program is distributed in the hope that it will be useful,             |
00014         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00015         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00016         | GNU General Public License for more details.                                |
00017         |                                                                             |
00018         | You should have received a copy of the GNU General Public License           |
00019         | along with this program; if not, write to the Free Software                 |
00020         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
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"]))  // formular sent
00062                 {
00063                         //init checking var
00064                         $form_valid = true;
00065                         
00066                         // put any checks here!!!
00067 
00068                         if (!$form_valid)       //required fields not satisfied. Set formular to already fill in values
00069                         {
00070                                 // mail server
00071                                 $settings["mail_server"] = $_POST["mail_server"];
00072                                 $settings["mail_port"] = $_POST["mail_port"];
00073 
00074                                 // internal mail
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 // all required fields ok
00083                         {
00084 
00086                 // write new settings
00087 
00088                                 // mail server
00089                                 $this->ilias->setSetting("mail_server",$_POST["mail_server"]);
00090                                 $this->ilias->setSetting("mail_port",$_POST["mail_port"]);
00091 
00092                                 // internal mail
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                                 // feedback
00103                                 sendInfo($this->lng->txt("saved_successfully"));
00104                         }
00105                 }
00106 
00108                 // setting language vars
00109 
00110                 // common
00111                 $this->tpl->setVariable("TXT_DAYS",$this->lng->txt("days"));
00112                 $this->tpl->setVariable("TXT_KB",$this->lng->txt("kb"));
00113 
00114                 // mail server
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                 // internal mail
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                 // display formula data
00131 
00132                 // mail server
00133                 $this->tpl->setVariable("MAIL_SERVER",$settings["mail_server"]);
00134                 $this->tpl->setVariable("MAIL_PORT",$settings["mail_port"]);
00135 
00136                 // internal mail
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                 // GET ALREADY CREATED UPLOADED XML FILE
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"]))  // STEP 1 save file in ...import/mail
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");                                        // STEP 2 unzip uplaoded file
00218                         $this->file_obj->unlinkLast();
00219                 }
00220                 else if(!$this->file_obj->findXMLFile())                                                // STEP 3 getXMLFile
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");                             // STEP 4 init sax parser
00228                 }
00229                 else if(!$this->parser_obj->startParsing())
00230                 {
00231                         $this->message = $lng->txt("users_not_imported").":<br/>"; // STEP 5 start parsing
00232                         $this->message .= $this->parser_obj->getNotAssignableUsers();
00233                 }
00234                 // FINALLY CHECK ERROR
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         // PRIVATE
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 } // END class.ilObjMailGUI
00269 ?>

Generated on Fri Dec 13 2013 09:06:34 for ILIAS Release_3_4_x_branch .rev 46804 by  doxygen 1.7.1