Public Member Functions | Static Public Member Functions | Data Fields

ilObjChat Class Reference

Class ilObjTest. More...

Inheritance diagram for ilObjChat:
Collaboration diagram for ilObjChat:

Public Member Functions

 ilObjChat ($a_id=0, $a_call_by_reference=true)
 Constructor public.
 cloneObject ($a_target_id, $a_copy_id=0)
 Clone Object.
 cloneAutoGeneratedRoles ($new_obj)
 Clone forum moderator role.
 read ()
 initDefaultRoles ()
 init default roles settings public
 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 ()

Static Public Member Functions

static _lookupModeratorRole ($a_ref_id)
 Lookup moderator role.

Data Fields

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

Detailed Description

Class ilObjTest.

Author:
Stefan Meyer
Version:
Id:
class.ilObjChat.php 14932 2007-10-08 17:34:08Z jconze

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


Member Function Documentation

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

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

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

Referenced by sendMessage().

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

                $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->getTitle();
                if ($room_title != '')
                {
                        $body .= ', '.$room_title;
                }
                $body .= "\n\n";
                $body .= $lang->txt('chat_to_chat_body');
                $body .= ': '.ILIAS_HTTP_PATH."/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 254 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 263 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 292 of file class.ilObjChat.php.

References ilObject::getId().

        {
                if(!is_object($this->chat_recording))
                {
                        include_once 'Modules/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 305 of file class.ilObjChat.php.

Referenced by ilUsersOnlineBlockGUI::__showChatInvitation(), and ilChatRoom::getAllRooms().

        {
                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:

static ilObjChat::_lookupModeratorRole ( a_ref_id  )  [static]

Lookup moderator role.

public

Parameters:
int ref_id of forum

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

References $res.

Referenced by cloneAutoGeneratedRoles().

        {
                global $ilDB;
                
                $mod_title = 'il_chat_moderator_'.$a_ref_id;
                $query = "SELECT * FROM object_data WHERE title = ".$ilDB->quote($mod_title);
                $res = $ilDB->query($query);
                while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
                {
                        return $row->obj_id;
                }
                return 0;
        }

Here is the caller graph for this function:

ilObjChat::cloneAutoGeneratedRoles ( new_obj  ) 

Clone forum moderator role.

public

Parameters:
object forum object

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

References $ilLog, _lookupModeratorRole(), and ilObject::getRefId().

Referenced by cloneObject().

        {
                global $ilLog,$rbacadmin,$rbacreview;
                
                $moderator = ilObjChat::_lookupModeratorRole($this->getRefId());
                $new_moderator = ilObjChat::_lookupModeratorRole($new_obj->getRefId());
                $source_rolf = $rbacreview->getRoleFolderIdOfObject($this->getRefId());
                $target_rolf = $rbacreview->getRoleFolderIdOfObject($new_obj->getRefId());
                
                if(!$moderator || !$new_moderator || !$source_rolf || !$target_rolf)
                {
                        $ilLog->write(__METHOD__.' : Error cloning auto generated role: il_chat_moderator');
                }
                $rbacadmin->copyRolePermissions($moderator,$source_rolf,$target_rolf,$new_moderator,true);
                $ilLog->write(__METHOD__.' : Finished copying of role il_chat_moderator.');
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjChat::cloneObject ( a_target_id,
a_copy_id = 0 
)

Clone Object.

public

Parameters:
int source_id int copy id

Reimplemented from ilObject.

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

References cloneAutoGeneratedRoles().

        {
                global $ilDB,$ilUser;
                
                $new_obj = parent::cloneObject($a_target_id,$a_copy_id);
                $this->cloneAutoGeneratedRoles($new_obj);
        }

Here is the call 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 167 of file class.ilObjChat.php.

References $data, $res, ilObject::getId(), and ilObject::getRefId().

        {
                global $ilDB;
                                
                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 = ".$ilDB->quote($this->getRefId())."";

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

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

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

                // AND ALL RECORDINGS
                $query = "SELECT record_id FROM chat_records WHERE 
                                        chat_id = ".$ilDB->quote($this->getId())."";
                $res = $this->ilias->db->query($query);
                if (DB::isError($res)) die("ilObjChat::delete(): " . $res->getMessage() . "<br>SQL-Statement: ".$query);
                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 = ".$ilDB->quote($data["record_id"])."");
                        }
                        
                }
                $query = "DELETE FROM chat_records WHERE 
                                        chat_id = ".$ilDB->quote($this->getId())."";
                $res = $this->ilias->db->query($query);

                return true;
        }

Here is the call graph for this function:

ilObjChat::getHTMLDirectory (  ) 

Reimplemented from ilObject.

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

References 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::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 54 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 146 of file class.ilObjChat.php.

References 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 130 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 214 of file class.ilObjChat.php.

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

        {
                include_once "Services/Mail/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 46 of file class.ilObjChat.php.

ilObjChat::$chat_room

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

ilObjChat::$chat_user

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

ilObjChat::$server_comm

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

ilObjChat::$server_conf

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


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