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

Modules/Chat/classes/class.ilObjChatServerGUI.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 "classes/class.ilObjectGUI.php";
00037 
00038 class ilObjChatServerGUI extends ilObjectGUI
00039 {
00044         function ilObjChatServerGUI($a_data,$a_id,$a_call_by_reference = true, $a_prepare_output = true)
00045         {
00046 
00047                 #define("ILIAS_MODULE","chat");
00048                 $this->type = "chac";
00049                 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference, $a_prepare_output);
00050 
00051                 $this->lng->loadLanguageModule("chat");
00052         }
00053 
00054         function &executeCommand()
00055         {
00056                 $next_class = $this->ctrl->getNextClass($this);
00057                 $cmd = $this->ctrl->getCmd();
00058                 $this->prepareOutput();
00059 
00060                 switch($next_class)
00061                 {
00062                         case 'ilpermissiongui':
00063                                 include_once("./classes/class.ilPermissionGUI.php");
00064                                 $perm_gui =& new ilPermissionGUI($this);
00065                                 $ret =& $this->ctrl->forwardCommand($perm_gui);
00066                                 break;
00067 
00068                         default:
00069                                 if(!$cmd)
00070                                 {
00071                                         $cmd = "view";
00072                                 }
00073                                 $cmd .= "Object";
00074                                 $this->$cmd();
00075 
00076                                 break;
00077                 }
00078                 return true;
00079         }
00080 
00081         function editObject()
00082         {
00083                 global $rbacsystem;
00084         
00085                 $this->tabs_gui->setTabActive('edit_properties');
00086 
00087                 if(!$rbacsystem->checkAccess('read', $this->ref_id))
00088                 {
00089                         $this->ilias->raiseError($this->lng->txt('msg_no_perm_read'),$this->ilias->error_obj->MESSAGE);
00090                 }
00091                 
00092                 $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.chac_edit.html','Modules/Chat');
00093 
00094         $internal_ip = $this->object->server_conf->getInternalIp();
00095         $external_ip = $this->object->server_conf->getExternalIp();
00096                 $port = $this->object->server_conf->getPort();          
00097                 $ssl_status = $this->object->server_conf->getSSLStatus();       
00098                 $ssl_port = $this->object->server_conf->getSSLPort();
00099                 $moderator = $this->object->server_conf->getModeratorPassword();
00100                 $logfile = $this->object->server_conf->getLogfile();
00101                 $loglevel = $this->object->server_conf->getLogLevel();
00102         $allowed = $this->object->server_conf->getAllowedHosts();
00103                 $active = $this->object->server_conf->getActiveStatus();
00104 
00105                 if($this->object->server_conf->isAlive() or $this->object->server_conf->getActiveStatus())
00106                 {
00107                         $this->tpl->setCurrentBlock('chat_active');
00108                         $this->tpl->setVariable('TXT_ACT_CHAT', $this->lng->txt('chat_ilias'));
00109                         $this->tpl->setVariable('TXT_ACT_STATUS', $this->lng->txt('chat_status'));
00110                         $this->tpl->setVariable('TXT_ACT_SUBMIT', $this->lng->txt('change'));
00111                         $this->tpl->setVariable('SELECT_ACT_STATUS', $this->__getStatusSelect($active));
00112                         $this->tpl->parseCurrentBlock();
00113                 }
00114                 else if(!$this->object->server_conf->isAlive() && $this->ctrl->getCmd() != 'update')
00115                 {
00116                         ilUtil::sendInfo($this->lng->txt('chat_cannot_connect_to_server'));
00117                 }
00118 
00119                 // SET TEXT VARIABLES
00120                 $this->tpl->setVariable('FORMACTION', $this->ctrl->getFormAction($this, 'update'));
00121                 $this->tpl->setVariable('TXT_CHAT_SERVER_SETTINGS', $this->lng->txt('chat_server_settings'));
00122         $this->tpl->setVariable('TXT_CHAT_SERVER_INTERNAL_IP', $this->lng->txt('chat_server_internal_ip'));
00123         $this->tpl->setVariable('TXT_CHAT_SERVER_EXTERNAL_IP', $this->lng->txt('chat_server_external_ip'));
00124                 $this->tpl->setVariable('TXT_CHAT_SERVER_MODERATOR', $this->lng->txt('chat_moderator_password'));
00125                 $this->tpl->setVariable('TXT_CHAT_SERVER_PORT', $this->lng->txt('chat_server_port'));
00126                 $this->tpl->setVariable('TXT_CHAT_SERVER_SSL_SETTINGS', $this->lng->txt('chat_server_ssl_settings'));
00127                 $this->tpl->setVariable('TXT_CHAT_SERVER_SSL_ACTIVE', $this->lng->txt('chat_server_ssl_active'));
00128                 $this->tpl->setVariable('TXT_CHAT_SERVER_SSL_PORT', $this->lng->txt('chat_server_ssl_port'));
00129                 $this->tpl->setVariable('TXT_CHAT_SERVER_LOGFILE', $this->lng->txt('chat_server_logfile'));
00130                 $this->tpl->setVariable('TXT_CHAT_SERVER_LEVEL', $this->lng->txt('chat_server_loglevel'));
00131                 $this->tpl->setVariable('TXT_CHAT_SERVER_ALLOWED', $this->lng->txt('chat_server_allowed'));
00132                 $this->tpl->setVariable('TXT_CHAT_SERVER_ALLOWED_B', $this->lng->txt('chat_server_allowed_b'));
00133                 $this->tpl->setVariable('TXT_REQUIRED_FLD', $this->lng->txt('required_field'));
00134                 $this->tpl->setVariable('TXT_CANCEL', $this->lng->txt('cancel'));
00135                 $this->tpl->setVariable('TXT_SUBMIT', $this->lng->txt('save'));
00136 
00137                 // SET SETTING VARS
00138         $this->tpl->setVariable('CHAT_SERVER_INTERNAL', ilUtil::prepareFormOutput($internal_ip));
00139         $this->tpl->setVariable('CHAT_SERVER_EXTERNAL', ilUtil::prepareFormOutput($external_ip));
00140                 $this->tpl->setVariable('CHAT_PORT', ilUtil::prepareFormOutput($port));
00141                 if ($ssl_status) $this->tpl->setVariable('CHAT_SSL_STATUS_CHECKED', 'checked="checked"');
00142                 $this->tpl->setVariable('CHAT_SSL_PORT', ilUtil::prepareFormOutput($ssl_port));
00143                 $this->tpl->setVariable('CHAT_MODERATOR', ilUtil::prepareFormOutput($moderator));
00144                 $this->tpl->setVariable('CHAT_LOGFILE', ilUtil::prepareFormOutput($logfile));
00145                 $this->tpl->setVariable('CHAT_ALLOWED', ilUtil::prepareFormOutput($allowed));
00146                 $this->tpl->setVariable('SELECT_LEVEL', $this->__getLogLevelSelect($loglevel));
00147                 
00148                 return true;
00149         }
00150 
00151         function updateObject()
00152         {
00153                 global $rbacsystem;
00154 
00155                 if(!$rbacsystem->checkAccess("write", $this->ref_id))
00156                 {
00157                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
00158                 }
00159                 
00160         $this->object->server_conf->setInternalIp(ilUtil::stripSlashes($_POST['chat_internal_ip']));
00161         $this->object->server_conf->setExternalIp(ilUtil::stripSlashes($_POST['chat_external_ip']));
00162                 $this->object->server_conf->setPort(ilUtil::stripSlashes($_POST['chat_port']));
00163                 $this->object->server_conf->setSSLStatus((int)$_POST['chat_ssl_status'] ? 1 : 0);
00164                 $this->object->server_conf->setSSLPort(ilUtil::stripSlashes($_POST['chat_ssl_port']));
00165                 $this->object->server_conf->setModeratorPassword(ilUtil::stripSlashes($_POST['chat_moderator']));
00166                 $this->object->server_conf->setLogfile(ilUtil::stripSlashes($_POST['chat_logfile']));
00167                 $this->object->server_conf->setLogLevel(ilUtil::stripSlashes($_POST['chat_loglevel']));
00168                 $this->object->server_conf->setAllowedHosts(ilUtil::stripSlashes($_POST['chat_allowed']));
00169 
00170                 if(!$this->object->server_conf->validate())
00171                 {
00172                         ilUtil::sendInfo($this->object->server_conf->getErrorMessage());
00173                         return $this->editObject();
00174                 }
00175                 else
00176                 {
00177                         if(!$this->object->server_conf->update())
00178                         {
00179                                 ilUtil::sendInfo($this->object->server_conf->getErrorMessage());
00180                                 return $this->editObject();
00181                         }
00182                 }
00183                 
00184                 ilUtil::sendInfo($this->lng->txt("chat_settings_saved"),true);
00185                 return $this->editObject();
00186         }
00187 
00188         function activateObject()
00189         {
00190                 $this->object->server_conf->setActiveStatus((bool) $_POST["chat_active"]);
00191                 $this->object->server_conf->updateStatus();
00192 
00193                 ilUtil::sendInfo($this->lng->txt("chat_status_saved"));
00194                 $this->editObject();
00195         }
00196 
00197         // PRIVATE
00198         function __getLogLevelSelect($a_level)
00199         {
00200                 $levels = array(1 => $this->lng->txt("chat_level_fatal"),
00201                                                 2 => $this->lng->txt("chat_level_error"),
00202                                                 3 => $this->lng->txt("chat_level_info"),
00203                                                 5 => $this->lng->txt("chat_level_debug"),
00204                                                 6 => $this->lng->txt("chat_level_all"));
00205 
00206                 return ilUtil::formSelect($a_level,"chat_loglevel",$levels,false,true);
00207         }
00208         function __getStatusSelect($a_status)
00209         {
00210                 $stati = array(1 => $this->lng->txt("chat_active"),
00211                                            0 => $this->lng->txt("chat_inactive"));
00212 
00213                 return ilUtil::formSelect($a_status,"chat_active",$stati,false,true);
00214         }
00215 
00221         function getAdminTabs(&$tabs_gui)
00222         {
00223                 global $rbacsystem,$rbacreview;
00224 
00225                 $this->ctrl->setParameter($this,"ref_id",$this->object->getRefId());
00226 
00227                 if($rbacsystem->checkAccess('read',$this->object->getRefId()))
00228                 {
00229                         $force_active = ($_GET["cmd"] == "" || $_GET["cmd"] == "view")
00230                                 ? true
00231                                 : false;
00232                         $tabs_gui->addTarget("chat_rooms",
00233                                 $this->ctrl->getLinkTarget($this, "view"), array("view", ""), get_class($this),
00234                                 "", $force_active);
00235                 }
00236                 if($rbacsystem->checkAccess('write',$this->object->getRefId()))
00237                 {
00238                         $force_active = ($_GET["cmd"] == "edit")
00239                                 ? true
00240                                 : false;
00241                         $tabs_gui->addTarget("edit_properties",
00242                                 $this->ctrl->getLinkTarget($this, "edit"), "edit", get_class($this),
00243                                 "", $force_active);
00244                 }
00245                 if($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()))
00246                 {
00247                         $tabs_gui->addTarget("perm_settings",
00248                                 $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"), array("perm","info","owner"), 'ilpermissiongui');
00249                 }
00250         }
00251 
00252 
00253         
00254 
00255 
00256 } // END class.ilObjChatServerGUI
00257 
00258 ?>

Generated on Fri Dec 13 2013 17:56:49 for ILIAS Release_3_9_x_branch .rev 46835 by  doxygen 1.7.1