Public Member Functions | Data Fields

ilObjChat Class Reference

Inheritance diagram for ilObjChat:
Collaboration diagram for ilObjChat:

Public Member Functions

 ilObjChat ($a_id=0, $a_call_by_reference=true)
 Constructor public.
 read ()
 initDefaultRoles ()
 init default roles settings public
 ilClone ($a_parent_ref)
 ilClone object into tree basic clone function.
 delete ()
 delete object or referenced object (in the case of a referenced object, object data is only deleted if last reference is deleted) This function removes an object entirely from system!!
 sendMessage ($a_id)
 getHTMLDirectory ()
 __formatRecipient (&$user)
 __formatSubject (&$lang)
 __formatBody (&$user, &$lang)
 __initChatRecording ()
 _getPublicChatRefId ()

Data Fields

 $server_conf
 $server_comm
 $chat_room
 $chat_user
 $chat_recording = null

Detailed Description

Definition at line 41 of file class.ilObjChat.php.


Member Function Documentation

ilObjChat::__formatBody ( &$  user,
&$  lang 
)

Definition at line 208 of file class.ilObjChat.php.

References $lang, and ilObject::getRefId().

Referenced by sendMessage().

        {
                global $ilClientIniFile;
                
                $room_id = $this->chat_room->getRoomId();

                $body = sprintf($this->lng->txt("chat_notification_intro"), $ilClientIniFile->readVariable("client","name"), ILIAS_HTTP_PATH)."\n\n";
                $body .= $lang->txt("chat_invitation_body")." ";
                $body .= $this->ilias->account->getFullname();
                $body .= "\n";
                $body .= $lang->txt("chat_chatroom_body")." ".$this->chat_room->getTitle()."\n\n";
                $body .= $lang->txt('chat_to_chat_body');
                $body .= (': '.ILIAS_HTTP_PATH."/chat/chat.php?room_id=".$room_id."&ref_id=".$this->getRefId());

                return $body;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjChat::__formatRecipient ( &$  user  ) 

Definition at line 194 of file class.ilObjChat.php.

References $user.

Referenced by sendMessage().

        {
                if(is_object($user))
                {
                        return $user->getLogin();
                }
                return false;
        }

Here is the caller graph for this function:

ilObjChat::__formatSubject ( &$  lang  ) 

Definition at line 203 of file class.ilObjChat.php.

References $lang.

Referenced by sendMessage().

        {
                return $lang->txt("chat_invitation_subject");
        }

Here is the caller graph for this function:

ilObjChat::__initChatRecording (  ) 

Definition at line 226 of file class.ilObjChat.php.

References ilObject::getId().

        {
                if(!is_object($this->chat_recording))
                {
                        include_once 'chat/classes/class.ilChatRecording.php';

                        $this->chat_recording = new ilChatRecording($this->getId());

                        return true;
                }
                return false;
        }

Here is the call graph for this function:

ilObjChat::_getPublicChatRefId (  ) 

Definition at line 239 of file class.ilObjChat.php.

References $tree.

Referenced by ilPersonalDesktopGUI::__showChatInvitation().

        {
                static $public_chat_ref_id = 0;

                global $tree;

                if($public_chat_ref_id)
                {
                        return $public_chat_ref_id;
                }
                else
                {
                        foreach($tree->getSubTree($tree->getNodeData(SYSTEM_FOLDER_ID)) as $node)
                        {
                                if($node['type'] == 'chat')
                                {
                                        return $public_chat_ref_id = $node['child'];
                                }
                        }
                }
                return false;
        }

Here is the caller graph for this function:

ilObjChat::delete (  ) 

delete object or referenced object (in the case of a referenced object, object data is only deleted if last reference is deleted) This function removes an object entirely from system!!

public

Returns:
boolean true if object was removed completely; false if only a references was removed

Reimplemented from ilObject.

Definition at line 109 of file class.ilObjChat.php.

References $data, $query, and $res.

        {
                if(!parent::delete())
                {
                        return false;
                }
                $rooms = $this->chat_room->getAllRoomsOfObject();
                foreach($rooms as $room)
                {
                        $this->chat_room->delete($room["room_id"]);
                }

                // FINALLY DELETE MESSAGES IN PUBLIC ROOM
                $query = "DELETE FROM chat_room_messages ".
                        "WHERE chat_id = '".$this->getRefId()."'";

                $res = $this->ilias->db->query($query);

                // AND ALL USERS
                $query = "DELETE FROM chat_user ".
                        "WHERE chat_id = '".$this->getRefId()."'";

                $res = $this->ilias->db->query($query);

                // AND ALL RECORDINGS
                $query = "SELECT record_id FROM chat_records WHERE 
                                        chat_id = '".$this->getId()."'";
                $res = $this->ilias->db->query($query);
                if (DB::isError($res)) die("ilObjChat::delete(): " . $res->getMessage() . "<br>SQL-Statement: ".$q);
                if (($num = $res->numRows()) > 0)
                {
                        for ($i = 0; $i < $num; $i++)
                        {
                                $data = $res->fetchRow(DB_FETCHMODE_ASSOC);
                                $this->ilias->db->query("DELETE FROM chat_record_data WHERE record_id = '" . $data["record_id"] . "'");
                        }
                        
                }
                $query = "DELETE FROM chat_records WHERE 
                                        chat_id = '".$this->getId()."'";
                $res = $this->ilias->db->query($query);

                return true;
        }

ilObjChat::getHTMLDirectory (  ) 

Reimplemented from ilObject.

Definition at line 177 of file class.ilObjChat.php.

References $file_obj, and ilObject::getTitle().

        {
                $tmp_tpl =& new ilTemplate("tpl.chat_export.html",true,true);
                
                $this->chat_room->setRoomId(0);

                $tmp_tpl->setVariable("CHAT_NAME",$this->getTitle());
                $tmp_tpl->setVariable("CHAT_DATE",strftime("%c",time()));
                $tmp_tpl->setVariable("CONTENT",$this->chat_room->getAllMessages());

                $file_obj =& new ilFileDataChat($this);
                
                // return directory name of index.html
                return $file_obj->addFile('index.html',$tmp_tpl->get());
        }

Here is the call graph for this function:

ilObjChat::ilClone ( a_parent_ref  ) 

ilClone object into tree basic clone function.

Register new object in object_data, creates reference and insert reference ID in tree. All object specific data must be copied in the ilClone function of the appropriate object class. Look in ilObjForum::ilClone() for example code

public

Parameters:
integer $a_parent_ref ref id of parent object
Returns:
integer new ref id

Reimplemented from ilObject.

Definition at line 103 of file class.ilObjChat.php.

References ilObjectFactory::getInstanceByRefId().

        {
                $tmp_obj =& ilObjectFactory::getInstanceByRefId(parent::ilClone($a_parent_ref));
        }

Here is the call graph for this function:

ilObjChat::ilObjChat ( a_id = 0,
a_call_by_reference = true 
)

Constructor public.

Parameters:
integer reference_id or object_id
boolean treat the id as reference_id (true) or object_id (false)

Definition at line 55 of file class.ilObjChat.php.

References ilObject::getId(), and ilObject::ilObject().

        {
                $this->type = "chat";
                $this->ilObject($a_id,$a_call_by_reference);

                $this->server_conf =& new ilChatServerConfig();
                $this->server_comm =& new ilChatServerCommunicator($this);
                $this->chat_user =& new ilChatUser();
                $this->chat_room =& new ilChatRoom($this->getId());
        }

Here is the call graph for this function:

ilObjChat::initDefaultRoles (  ) 

init default roles settings public

Returns:
array object IDs of created local roles.

Reimplemented from ilObject.

Definition at line 82 of file class.ilObjChat.php.

References $permissions, $rbacadmin, ilRbacReview::_getOperationIdsByName(), ilObject::createRoleFolder(), ilObject::getId(), and ilObject::getRefId().

        {
                global $rbacadmin;
                
                // create a local role folder
                $rolf_obj =& $this->createRoleFolder();

                // create moderator role and assign role to rolefolder...
                $role_obj = $rolf_obj->createRole("il_chat_moderator_".$this->getRefId(),"Moderator of chat obj_no.".$this->getId());

                // grant permissions: visible,read,write,chat_moderate
                $permissions = ilRbacReview::_getOperationIdsByName(array('visible','read','moderate'));
                $rbacadmin->grantPermission($role_obj->getId(),
                                                                        $permissions,
                                                                        $this->getRefId());

                unset($rolf_obj);

                return array($role_obj->getId());
        }

Here is the call graph for this function:

ilObjChat::read (  ) 

Definition at line 66 of file class.ilObjChat.php.

References ilObject::getId().

        {
                // USED ilObjectFactory::getInstance...
                parent::read();

                $this->server_conf =& new ilChatServerConfig();
                $this->server_comm =& new ilChatServerCommunicator($this);
                $this->chat_user =& new ilChatUser();
                $this->chat_room =& new ilChatRoom($this->getId());
        }

Here is the call graph for this function:

ilObjChat::sendMessage ( a_id  ) 

Definition at line 154 of file class.ilObjChat.php.

References $_SESSION, $tmp_user, __formatBody(), __formatRecipient(), __formatSubject(), and ilObjectFactory::getInstanceByObjId().

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

                $tmp_mail_obj = new ilMail($_SESSION["AccountId"]);

                // GET USER OBJECT
                $tmp_user = ilObjectFactory::getInstanceByObjId($a_id);

                // GET USERS LANGUAGE
                $tmp_lang =& new ilLanguage($tmp_user->getLanguage());
                $tmp_lang->loadLanguageModule("chat");

                $message = $tmp_mail_obj->sendMail($this->__formatRecipient($tmp_user),"","",$this->__formatSubject($tmp_lang),
                                                                                   $this->__formatBody($tmp_user,$tmp_lang),array(),array("normal"));

                unset($tmp_mail_obj);
                unset($tmp_lang);
                unset($tmp_user);

                return true;
        }

Here is the call graph for this function:


Field Documentation

ilObjChat::$chat_recording = null

Definition at line 47 of file class.ilObjChat.php.

ilObjChat::$chat_room

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

ilObjChat::$chat_user

Definition at line 46 of file class.ilObjChat.php.

ilObjChat::$server_comm

Definition at line 44 of file class.ilObjChat.php.

ilObjChat::$server_conf

Definition at line 43 of file class.ilObjChat.php.


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