Public Member Functions

ilObjMailGUI Class Reference

Class ilObjMailGUI for admin panel. More...

Inheritance diagram for ilObjMailGUI:
Collaboration diagram for ilObjMailGUI:

Public Member Functions

 ilObjMailGUI ($a_data, $a_id, $a_call_by_reference)
 Constructor public.
 viewObject ()
 list childs of current object
 importObject ()
 import new object form
 performImportObject ()
 uploadObject ()
 __initFileObject ()
 __initParserObject ($a_xml, $a_mode)
executeCommand ()
 execute command
 getAdminTabs (&$tabs_gui)
 administration tabs show only permissions and trash folder
 getTabs (&$tabs_gui)
 get tabs public

Detailed Description

Class ilObjMailGUI for admin panel.

Author:
Stefan Meyer <smeyer@databay.de>
Id:
class.ilObjMailGUI.php 16856 2008-06-23 10:07:33Z mjansen

ilObjMailGUI: ilPermissionGUI

Definition at line 39 of file class.ilObjMailGUI.php.


Member Function Documentation

ilObjMailGUI::__initFileObject (  ) 

Definition at line 315 of file class.ilObjMailGUI.php.

Referenced by importObject(), performImportObject(), and uploadObject().

        {
                include_once "./classes/class.ilFileDataImportMail.php";

                $this->file_obj =& new ilFileDataImportMail();

                return true;
        }

Here is the caller graph for this function:

ilObjMailGUI::__initParserObject ( a_xml,
a_mode 
)

Definition at line 323 of file class.ilObjMailGUI.php.

Referenced by performImportObject(), and uploadObject().

        {
                include_once "Services/Mail/classes/class.ilMailImportParser.php";

                if(!$a_xml)
                {
                        return false;
                }

                $this->parser_obj =& new ilMailImportParser($a_xml,$a_mode);
                
                return true;
        }

Here is the caller graph for this function:

& ilObjMailGUI::executeCommand (  ) 

execute command

Reimplemented from ilObjectGUI.

Definition at line 337 of file class.ilObjMailGUI.php.

References $cmd, $ret, and ilObjectGUI::prepareOutput().

        {
                $next_class = $this->ctrl->getNextClass($this);
                $cmd = $this->ctrl->getCmd();
                $this->prepareOutput();

                switch($next_class)
                {
                        case 'ilpermissiongui':
                                include_once("./classes/class.ilPermissionGUI.php");
                                $perm_gui =& new ilPermissionGUI($this);
                                $ret =& $this->ctrl->forwardCommand($perm_gui);
                                break;

                        default:
                                if(!$cmd)
                                {
                                        $cmd = "view";
                                }
                                $cmd .= "Object";
                                $this->$cmd();

                                break;
                }
                return true;
        }

Here is the call graph for this function:

ilObjMailGUI::getAdminTabs ( &$  tabs_gui  ) 

administration tabs show only permissions and trash folder

Reimplemented from ilObjectGUI.

Definition at line 364 of file class.ilObjMailGUI.php.

References getTabs().

        {
                $this->getTabs($tabs_gui);
        }

Here is the call graph for this function:

ilObjMailGUI::getTabs ( &$  tabs_gui  ) 

get tabs public

Parameters:
object tabs gui object

Reimplemented from ilObjectGUI.

Definition at line 374 of file class.ilObjMailGUI.php.

Referenced by getAdminTabs().

        {
                global $rbacsystem;

                if ($rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
                {
                        $tabs_gui->addTarget("settings",
                                $this->ctrl->getLinkTarget($this, "view"), array("view",""), "", "");
                }

                if ($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()))
                {
                        $tabs_gui->addTarget("perm_settings",
                                $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"), array("perm","info","owner"), 'ilpermissiongui');
                }
                
                if ($rbacsystem->checkAccess('write',$this->object->getRefId()))
                {
                        $tabs_gui->addTarget("import",
                                $this->ctrl->getLinkTarget($this, "import"), "import", "", "");
                }
        }

Here is the caller graph for this function:

ilObjMailGUI::ilObjMailGUI ( a_data,
a_id,
a_call_by_reference 
)

Constructor public.

Definition at line 45 of file class.ilObjMailGUI.php.

References ilObjectGUI::ilObjectGUI().

        {
                $this->type = "mail";
                $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference, false);
        }

Here is the call graph for this function:

ilObjMailGUI::importObject (  ) 

import new object form

public

Reimplemented from ilObjectGUI.

Definition at line 219 of file class.ilObjMailGUI.php.

References ilObjectGUI::$lng, and __initFileObject().

        {
                global $rbacsystem,$lng;

                if (!$rbacsystem->checkAccess('write',$this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->WARNING);
                }
                #$this->getTemplateFile("import");
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.mail_import.html", "Services/Mail");

                // GET ALREADY CREATED UPLOADED XML FILE
                $this->__initFileObject();
                if($this->file_obj->findXMLFile())
                {
                        $this->tpl->setVariable("TXT_IMPORTED_FILE",$lng->txt("checked_files"));
                        $this->tpl->setVariable("XML_FILE",basename($this->file_obj->getXMLFile()));

                        $this->tpl->setVariable("BTN_IMPORT",$this->lng->txt("import"));
                }

                $this->tpl->setVariable("FORMACTION",
                        $this->ctrl->getFormAction($this));
                $this->tpl->setVariable("TXT_IMPORT_MAIL",$this->lng->txt("table_mail_import"));
                $this->tpl->setVariable("TXT_IMPORT_FILE",$this->lng->txt("mail_import_file"));
                $this->tpl->setVariable("BTN_CANCEL",$this->lng->txt("cancel"));
                $this->tpl->setVariable("BTN_UPLOAD",$this->lng->txt("upload"));

                return true;
        }

Here is the call graph for this function:

ilObjMailGUI::performImportObject (  ) 

Definition at line 250 of file class.ilObjMailGUI.php.

References ilObjectGUI::$lng, __initFileObject(), __initParserObject(), and ilUtil::sendInfo().

        {
                global $rbacsystem,$lng;

                if (!$rbacsystem->checkAccess('write',$this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->WARNING);
                }
                $this->__initFileObject();
                $this->file_obj->findXMLFile();
                $this->__initParserObject($this->file_obj->getXMLFile(),"import");
                $this->parser_obj->startParsing();
                $number = $this->parser_obj->getCountImported();
                ilUtil::sendInfo($lng->txt("import_finished")." ".$number,true);
                
                $this->ctrl->redirect($this, "import");
        }

Here is the call graph for this function:

ilObjMailGUI::uploadObject (  ) 

Definition at line 270 of file class.ilObjMailGUI.php.

References ilObjectGUI::$lng, __initFileObject(), __initParserObject(), and ilUtil::sendInfo().

        {
                global $rbacsystem,$lng;

                if (!$rbacsystem->checkAccess('write',$this->object->getRefId()))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->WARNING);
                }
                
                $this->__initFileObject();
                if(!$this->file_obj->storeUploadedFile($_FILES["importFile"]))  // STEP 1 save file in ...import/mail
                {
                        $this->message = $lng->txt("import_file_not_valid"); 
                        $this->file_obj->unlinkLast();
                }
                else if(!$this->file_obj->unzip())
                {
                        $this->message = $lng->txt("cannot_unzip_file");                                        // STEP 2 unzip uplaoded file
                        $this->file_obj->unlinkLast();
                }
                else if(!$this->file_obj->findXMLFile())                                                // STEP 3 getXMLFile
                {
                        $this->message = $lng->txt("cannot_find_xml");
                        $this->file_obj->unlinkLast();
                }
                else if(!$this->__initParserObject($this->file_obj->getXMLFile(),"check"))
                {
                        $this->message = $lng->txt("error_parser");                             // STEP 4 init sax parser
                }
                else if(!$this->parser_obj->startParsing())
                {
                        $this->message = $lng->txt("users_not_imported").":<br/>"; // STEP 5 start parsing
                        $this->message .= $this->parser_obj->getNotAssignableUsers();
                }
                // FINALLY CHECK ERROR
                if(!$this->message)
                {
                        $this->message = $lng->txt("uploaded_and_checked");
                }
                ilUtil::sendInfo($this->message,true);
                
                $this->ctrl->redirect($this, "import");
        }

Here is the call graph for this function:

ilObjMailGUI::viewObject (  ) 

list childs of current object

public

Reimplemented from ilObjectGUI.

Definition at line 51 of file class.ilObjMailGUI.php.

References ilUtil::sendInfo(), and ilUtil::stripSlashes().

        {
#               parent::editObject();
                
                $this->lng->loadLanguageModule("mail");

                $this->tpl->addBlockFile("SYSTEMSETTINGS", "systemsettings", "tpl.mail_basicdata.html", "Services/Mail");
                $this->tpl->setCurrentBlock("systemsettings");

                $settings = $this->ilias->getAllSettings();

                if (isset($_POST["save_settings"]))  // formular sent
                {
                        //init checking var
                        $form_valid = true;
                        
                        // put any checks here!!!

                        if (!$form_valid)       //required fields not satisfied. Set formular to already fill in values
                        {
                                // mail server
                                $settings["mail_server"] = $_POST["mail_server"];
                                $settings["mail_port"] = $_POST["mail_port"];

                                // internal mail
#                               $settings["mail_intern_enable"] = $_POST["mail_intern_enable"];
                                $settings["mail_maxsize_mail"] = $_POST["mail_maxsize_mail"];
                                $settings["mail_maxsize_attach"] = $_POST["mail_maxsize_attach"];
                                $settings["mail_maxsize_box"] = $_POST["mail_maxsize_box"];
                                $settings["mail_maxtime_mail"] = $_POST["mail_maxtime_mail"];
                                $settings["mail_maxtime_attach"] = $_POST["mail_maxtime_attach"];
                                $settings['mail_external_sender_noreply'] = ilUtil::stripSlashes($_POST['mail_external_sender_noreply']);
                                
                                
                        }
                        else // all required fields ok
                        {

                // write new settings

                                // mail server
                                $this->ilias->setSetting("mail_server",$_POST["mail_server"]);
                                $this->ilias->setSetting("mail_port",$_POST["mail_port"]);

                                // internal mail
                                $this->ilias->setSetting("mail_incoming_mail",$_POST["mail_incoming_mail"]);

#                               $this->ilias->setSetting("mail_intern_enable",$_POST["mail_intern_enable"]);
                                $this->ilias->setSetting("mail_maxsize_mail",$_POST["mail_maxsize_mail"]);
                                $this->ilias->setSetting("mail_maxsize_attach",$_POST["mail_maxsize_attach"]);
                                $this->ilias->setSetting("mail_maxsize_box",$_POST["mail_maxsize_box"]);
                                $this->ilias->setSetting("mail_maxtime_mail",$_POST["mail_maxtime_mail"]);
                                $this->ilias->setSetting("mail_maxtime_attach",$_POST["mail_maxtime_attach"]);
                                $this->ilias->setSetting("pear_mail_enable",$_POST["pear_mail_enable"]);
                                $this->ilias->setSetting('mail_external_sender_noreply', ilUtil::stripSlashes($_POST['mail_external_sender_noreply']));

                                $settings = $this->ilias->getAllSettings();

                                // feedback
                                ilUtil::sendInfo($this->lng->txt("saved_successfully"));
                        }
                }

                // setting language vars

                // common
                $this->tpl->setVariable("TXT_DAYS",$this->lng->txt("days"));
                $this->tpl->setVariable("TXT_KB",$this->lng->txt("kb"));

                // mail server
                $this->tpl->setVariable("TXT_MAIL_SMTP", $this->lng->txt("mail")." (".$this->lng->txt("smtp").")");
                $this->tpl->setVariable("TXT_MAIL_SERVER", $this->lng->txt("server"));
                $this->tpl->setVariable("TXT_MAIL_PORT", $this->lng->txt("port"));

                // Pear Mail extension
                // Note: We use the include statement to determine whether PEAR MAIL is
                //      installed. We use the @ operator to prevent PHP from issuing a
                //      warning while we test for PEAR MAIL.
                $is_pear_mail_installed = @include_once 'Mail/RFC822.php';
                $this->tpl->setVariable("TXT_PEAR_MAIL", $this->lng->txt("mail_use_pear_mail"));
                if ($settings['pear_mail_enable'] && $is_pear_mail_installed) 
                {
                        $this->tpl->setVariable("PEAR_MAIL_CHECKED", 'checked="checked"');
                }
                if ($is_pear_mail_installed)
                {
                        $this->tpl->setVariable("TXT_PEAR_MAIL_INFO", 
                                $this->lng->txt("mail_use_pear_mail_info")
                        );
                }
                else
                {
                        $this->tpl->setVariable("TXT_PEAR_MAIL_INFO", 
                                $this->lng->txt("mail_use_pear_mail_info").'<br>'.
                                $this->lng->txt("mail_pear_mail_needed")
                        );
                        $this->tpl->setVariable("PEAR_MAIL_DISABLED", 'disabled="disabled"');
                }

                // internal mail
                include_once "Services/Mail/classes/class.ilMailOptions.php";
                $this->tpl->setVariable("TXT_GENERAL_SETTINGS", $this->lng->txt("general_settings"));
                $this->tpl->setVariable("TXT_MAIL_INCOMING", $this->lng->txt("mail_incoming"));
                $types = array(
                        array(
                                "name" => $this->lng->txt("mail_incoming_local"),
                                "value" => IL_MAIL_LOCAL
                        ),
                        array(
                                "name" => $this->lng->txt("mail_incoming_smtp"),
                                "value" => IL_MAIL_EMAIL
                        ),
                        array(
                                "name" => $this->lng->txt("mail_incoming_both"),
                                "value" => IL_MAIL_BOTH
                        )
                );
                for ($i = 0; $i < count($types); $i++)
                {
                        $this->tpl->setCurrentBlock("loop_incoming_mail");
                        $this->tpl->setVariable("LOOP_INCOMING_MAIL_VALUE", $types[$i]["value"]);
                        $this->tpl->setVariable("LOOP_INCOMING_MAIL_NAME", $types[$i]["name"]);
                        if ($settings["mail_incoming_mail"] == $types[$i]["value"])
                        {
                                $this->tpl->setVariable("LOOP_INCOMING_MAIL_SELECTED", "selected");
                        }
                        $this->tpl->parseCurrentBlock("loop_incoming_mail");
                }

#               $this->tpl->setVariable("TXT_MAIL_INTERN", $this->lng->txt("mail")." (".$this->lng->txt("internal_system").")");
                $this->tpl->setVariable("TXT_MAIL_INTERN", $this->lng->txt("internal_system"));
#               $this->tpl->setVariable("TXT_MAIL_INTERN_ENABLE", $this->lng->txt("mail_intern_enable"));
                $this->tpl->setVariable("TXT_MAIL_MAXSIZE_MAIL", $this->lng->txt("mail_maxsize_mail"));
                $this->tpl->setVariable("TXT_MAIL_MAXSIZE_ATTACH", $this->lng->txt("mail_maxsize_attach"));
                $this->tpl->setVariable("TXT_MAIL_MAXSIZE_BOX", $this->lng->txt("mail_maxsize_box"));
                $this->tpl->setVariable("TXT_MAIL_MAXTIME_MAIL", $this->lng->txt("mail_maxtime_mail"));
                $this->tpl->setVariable("TXT_MAIL_MAXTIME_ATTACH", $this->lng->txt("mail_maxtime_attach"));
                $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));

                // display formula data

                // mail server
                $this->tpl->setVariable("MAIL_SERVER",$settings["mail_server"]);
                $this->tpl->setVariable("MAIL_PORT",$settings["mail_port"]);

                // internal mail
#               if ($settings["mail_intern_enable"] == "y")
#               {
#                       $this->tpl->setVariable("MAIL_INTERN_ENABLE","checked=\"checked\"");
#               }

                $this->tpl->setVariable("MAIL_MAXSIZE_MAIL", $settings["mail_maxsize_mail"]);
                $this->tpl->setVariable("MAIL_MAXSIZE_ATTACH", $settings["mail_maxsize_attach"]);
                $this->tpl->setVariable("MAIL_MAXSIZE_BOX", $settings["mail_maxsize_box"]);
                $this->tpl->setVariable("MAIL_MAXTIME_MAIL", $settings["mail_maxtime_mail"]);
                $this->tpl->setVariable("MAIL_MAXTIME_ATTACH", $settings["mail_maxtime_attach"]);
                
                // noreply
                $this->tpl->setVariable('TXT_MAIL_EXTERNAL_SENDER_NOREPLY', $this->lng->txt('mail_external_sender_noreply'));
                $this->tpl->setVariable('MAIL_EXTERNAL_SENDER_NOREPLY', $settings['mail_external_sender_noreply']);
                $this->tpl->setVariable('INFO_MAIL_EXTERNAL_SENDER_NOREPLY', $this->lng->txt('info_mail_external_sender_noreply'));             

                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:


The documentation for this class was generated from the following file: