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
00035 require_once "classes/class.ilObjectGUI.php";
00036
00037 class ilObjChatServerGUI extends ilObjectGUI
00038 {
00043 function ilObjChatServerGUI($a_data,$a_id,$a_call_by_reference = true, $a_prepare_output = true)
00044 {
00045 define("ILIAS_MODULE","chat");
00046
00047 $this->type = "chac";
00048 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference, $a_prepare_output);
00049
00050 $this->lng->loadLanguageModule("chat");
00051 }
00052
00053 function editObject()
00054 {
00055 global $rbacsystem;
00056
00057 if (!$rbacsystem->checkAccess("read", $this->ref_id))
00058 {
00059 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00060 }
00061 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.chac_edit.html",true);
00062
00063 $internal_ip = $_SESSION["error_post_vars"]["chat_internal_ip"] ?
00064 $_SESSION["error_post_vars"]["chat_internal_ip"] :
00065 $this->object->server_conf->getInternalIp();
00066
00067 $port = $_SESSION["error_post_vars"]["chat_port"] ?
00068 $_SESSION["error_post_vars"]["chat_port"] :
00069 $this->object->server_conf->getPort();
00070
00071 $moderator = $_SESSION["error_post_vars"]["chat_moderator"] ?
00072 $_SESSION["error_post_vars"]["chat_moderator"] :
00073 $this->object->server_conf->getModeratorPassword();
00074
00075 $logfile = $_SESSION["error_post_vars"]["chat_logfile"] ?
00076 $_SESSION["error_post_vars"]["chat_logfile"] :
00077 $this->object->server_conf->getLogfile();
00078
00079 $loglevel = $_SESSION["error_post_vars"]["chat_loglevel"] ?
00080 $_SESSION["error_post_vars"]["chat_loglevel"] :
00081 $this->object->server_conf->getLogLevel();
00082
00083 $allowed = $_SESSION["error_post_vars"]["chat_allowed"] ?
00084 $_SESSION["error_post_vars"]["chat_internal_ip"] :
00085 $this->object->server_conf->getAllowedHosts();
00086
00087 $active = $_SESSION["error_post_vars"]["chat_active"] ?
00088 $_SESSION["error_post_vars"]["chat_active"] :
00089 $this->object->server_conf->getActiveStatus();
00090
00091
00092 if($this->object->server_conf->isAlive() or $this->object->server_conf->getActiveStatus())
00093 {
00094 $this->tpl->setCurrentBlock("chat_active");
00095 $this->tpl->setVariable("TXT_ACT_CHAT",$this->lng->txt("chat_ilias"));
00096 $this->tpl->setVariable("TXT_ACT_STATUS",$this->lng->txt("chat_status"));
00097 $this->tpl->setVariable("TXT_ACT_SUBMIT",$this->lng->txt("change"));
00098 $this->tpl->setVariable("SELECT_ACT_STATUS",$this->__getStatusSelect($active));
00099 }
00100
00101
00102
00103
00104 $this->tpl->setVariable("FORMACTION",
00105 $this->getFormAction("gateway","adm_object.php?ref_id=".$this->ref_id."&cmd=gateway"));
00106 $this->tpl->setVariable("TXT_CHAT_SERVER_SETTINGS",$this->lng->txt("chat_server_settings"));
00107 $this->tpl->setVariable("TXT_CHAT_SERVER_INTERNAL_IP",$this->lng->txt("chat_server_internal_ip"));
00108 $this->tpl->setVariable("TXT_CHAT_SERVER_EXTERNAL_IP",$this->lng->txt("chat_server_external_ip"));
00109 $this->tpl->setVariable("TXT_CHAT_SERVER_MODERATOR",$this->lng->txt("chat_moderator_password"));
00110 $this->tpl->setVariable("TXT_CHAT_SERVER_PORT",$this->lng->txt("chat_server_port"));
00111 $this->tpl->setVariable("TXT_CHAT_SERVER_LOGFILE",$this->lng->txt("chat_server_logfile"));
00112 $this->tpl->setVariable("TXT_CHAT_SERVER_LEVEL",$this->lng->txt("chat_server_loglevel"));
00113 $this->tpl->setVariable("TXT_CHAT_SERVER_ALLOWED",$this->lng->txt("chat_server_allowed"));
00114 $this->tpl->setVariable("TXT_CHAT_SERVER_ALLOWED_B",$this->lng->txt("chat_server_allowed_b"));
00115 $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));
00116 $this->tpl->setVariable("TXT_CANCEL",$this->lng->txt("cancel"));
00117 $this->tpl->setVariable("TXT_SUBMIT",$this->lng->txt("save"));
00118
00119
00120 $this->tpl->setVariable("CHAT_SERVER_INTERNAL",$internal_ip);
00121 $this->tpl->setVariable("CHAT_SERVER_EXTERNAL",$external_ip);
00122 $this->tpl->setVariable("CHAT_PORT",$port);
00123 $this->tpl->setVariable("CHAT_MODERATOR",$moderator);
00124 $this->tpl->setVariable("CHAT_LOGFILE",$logfile);
00125 $this->tpl->setVariable("CHAT_ALLOWED",$allowed);
00126 $this->tpl->setVariable("SELECT_LEVEL",$this->__getLogLevelSelect($loglevel));
00127 $this->tpl->parseCurrentBlock();
00128
00129 return true;
00130 }
00131
00132 function updateObject()
00133 {
00134 $this->object->server_conf->setInternalIp($_POST["chat_internal_ip"]);
00135 $this->object->server_conf->setExternalIp($_POST["chat_external_ip"]);
00136 $this->object->server_conf->setPort($_POST["chat_port"]);
00137 $this->object->server_conf->setModeratorPassword($_POST["chat_moderator"]);
00138 $this->object->server_conf->setLogfile($_POST["chat_logfile"]);
00139 $this->object->server_conf->setLogLevel($_POST["chat_loglevel"]);
00140 $this->object->server_conf->setAllowedHosts($_POST["chat_allowed"]);
00141
00142 if(!$this->object->server_conf->validate())
00143 {
00144 $this->ilias->raiseError($this->object->server_conf->getErrorMessage(),$this->ilias->error_obj->MESSAGE);
00145 }
00146 else
00147 {
00148 if(!$this->object->server_conf->update())
00149 {
00150 $this->ilias->raiseError($this->object->server_conf->getErrorMessage(),$this->ilias->error_obj->MESSAGE);
00151 }
00152 }
00153 sendInfo($this->lng->txt("chat_settings_saved"),true);
00154 header("location: ".$this->getReturnLocation("update","adm_object.php?ref_id=$_GET[ref_id]"));
00155 exit;
00156 }
00157
00158 function activateObject()
00159 {
00160 $this->object->server_conf->setActiveStatus((bool) $_POST["chat_active"]);
00161 $this->object->server_conf->updateStatus();
00162
00163 sendInfo($this->lng->txt("chat_status_saved"),true);
00164 header("location: ".$this->getReturnLocation("update","adm_object.php?ref_id=$_GET[ref_id]"));
00165 exit;
00166 }
00167
00168
00169 function __getLogLevelSelect($a_level)
00170 {
00171 $levels = array(1 => $this->lng->txt("chat_level_fatal"),
00172 2 => $this->lng->txt("chat_level_error"),
00173 3 => $this->lng->txt("chat_level_info"),
00174 5 => $this->lng->txt("chat_level_debug"),
00175 6 => $this->lng->txt("chat_level_all"));
00176
00177 return ilUtil::formSelect($a_level,"chat_loglevel",$levels,false,true);
00178 }
00179 function __getStatusSelect($a_status)
00180 {
00181 $stati = array(1 => $this->lng->txt("chat_active"),
00182 0 => $this->lng->txt("chat_inactive"));
00183
00184 return ilUtil::formSelect($a_status,"chat_active",$stati,false,true);
00185 }
00186
00187 }
00188
00189 ?>