ILIAS  Release_4_1_x_branch Revision 61804
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilObjChat Class Reference

Class ilObjTest. More...

+ Inheritance diagram for ilObjChat:
+ Collaboration diagram for ilObjChat:

Public Member Functions

 __construct ($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)
 sendMessageForRoom ($a_id, $room)
 getHTMLDirectory ()
 __initChatRecording ()
- Public Member Functions inherited from ilObject
 ilObject ($a_id=0, $a_reference=true)
 Constructor public.
 withReferences ()
 determines wehter objects are referenced or not (got ref ids or not)
 read ($a_force_db=false)
 read object data from db into object
 getId ()
 get object id public
 setId ($a_id)
 set object id public
 setRefId ($a_id)
 set reference id public
 getRefId ()
 get reference id public
 getType ()
 get object type public
 setType ($a_type)
 set object type public
 getPresentationTitle ()
 get presentation title Normally same as title Overwritten for sessions
 getTitle ()
 get object title public
 getUntranslatedTitle ()
 get untranslated object title public
 setTitle ($a_title)
 set object title
 getDescription ()
 get object description
 setDescription ($a_desc)
 set object description
 getLongDescription ()
 get object long description (stored in object_description)
 getImportId ()
 get import id
 setImportId ($a_import_id)
 set import id
 _lookupObjIdByImportId ($a_import_id)
 getOwner ()
 get object owner
 getOwnerName ()
 _lookupOwnerName ($a_owner_id)
 lookup owner name for owner id
 setOwner ($a_owner)
 set object owner
 getCreateDate ()
 get create date public
 getLastUpdateDate ()
 get last update date public
 getDiskUsage ()
 Gets the disk usage of the object in bytes.
 setObjDataRecord ($a_record)
 set object_data record (note: this method should only be called from the ilObjectFactory class)
 create ()
 create
 update ()
 update object in db
 MDUpdateListener ($a_element)
 Meta data update listener.
 createMetaData ()
 create meta data entry
 updateMetaData ()
 update meta data entry
 deleteMetaData ()
 delete meta data entry
 updateOwner ()
 update owner of object in db
 _getIdForImportId ($a_import_id)
 get current object id for import id (static)
 _lookupOwner ($a_id)
 lookup object owner
 _lookupDescription ($a_id)
 lookup object description
 _lookupLastUpdate ($a_id, $a_as_string=false)
 lookup last update
 _getLastUpdateOfObjects ($a_objs)
 Get last update for a set of media objects.
 _setDeletedDate ($a_ref_id)
 only called in ilTree::saveSubTree
 _resetDeletedDate ($a_ref_id)
 only called in ilObjectGUI::insertSavedNodes
 _lookupDeletedDate ($a_ref_id)
 only called in ilObjectGUI::insertSavedNodes
 _writeTitle ($a_obj_id, $a_title)
 write title to db (static)
 _writeDescription ($a_obj_id, $a_desc)
 write description to db (static)
 _writeImportId ($a_obj_id, $a_import_id)
 write import id to db (static)
 _isInTrash ($a_ref_id)
 checks wether object is in trash
 _hasUntrashedReference ($a_obj_id)
 checks wether an object has at least one reference that is not in trash
 _lookupObjectId ($a_ref_id)
 lookup object id
 _getObjectsDataForType ($a_type, $a_omit_trash=false)
 get all objects of a certain type
 putInTree ($a_parent_ref)
 maybe this method should be in tree object!?
 setPermissions ($a_parent_ref)
 set permissions of object
 createReference ()
 creates reference for object
 countReferences ()
 count references of object
 createRoleFolder ()
 creates a local role folder
 notify ($a_event, $a_ref_id, $a_parent_non_rbac_id, $a_node_id, $a_params=0)
 notifys an object about an event occured Based on the event passed, each object may decide how it reacts.
 setRegisterMode ($a_bool)
 isUserRegistered ($a_user_id=0)
 requireRegistration ()
 getXMLZip ()
 appendCopyInfo ($a_target_id, $a_copy_id)
 Prepend Copy info if object with same name exists in that container.
 cloneDependencies ($a_target_id, $a_copy_id)
 Clone object dependencies.
 cloneMetaData ($target_obj)
 Copy meta data.

Static Public Member Functions

static _lookupModeratorRole ($a_ref_id)
 Lookup moderator role.
static _getPublicChatRefId ()
- Static Public Member Functions inherited from ilObject
static _getAllReferences ($a_id)
 get all reference ids of object
static _lookupTitle ($a_id)
 lookup object title
static _getIdsForTitle ($title, $type= '', $partialmatch=false)
static _lookupObjId ($a_id)
static _lookupType ($a_id, $a_reference=false)
 lookup object type
 _exists ($a_id, $a_reference=false)
 checks if an object exists in object_data
static _getObjectsByType ($a_obj_type="", $a_owner="")
 Get objects by type.
static _prepareCloneSelection ($a_ref_ids, $new_type)
 Prepare copy wizard object selection.
static _getIcon ($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
 Get icon for repository item.
static collectDeletionDependencies (&$deps, $a_ref_id, $a_obj_id, $a_type, $a_depth=0)
 Collect deletion dependencies.
static getDeletionDependencies ($a_obj_id)
 Get deletion dependencies.

Data Fields

 $server_conf
 $server_comm
 $chat_room
 $chat_user
 $chat_recording = null
- Data Fields inherited from ilObject
const TITLE_LENGTH = 128
 max length of object title
 $ilias
 $lng
 $id
 $ref_id
 $type
 $title
 $untranslatedTitle
 $desc
 $long_desc
 $owner
 $create_date
 $last_update
 $import_id
 $register = false
 $referenced
 $objectList
 $max_title
 $max_desc
 $add_dots
 $obj_data_record
 object_data record

Private Member Functions

 formatRecipient (&$user)
 formatSubject (&$lang)
 formatBody (&$user, &$lang)
 formatBodyForRoom (&$user, &$lang, $room)

Detailed Description

Class ilObjTest.

Author
Stefan Meyer
Version
Id:
class.ilObjChat.php 19587 2009-04-09 15:08:42Z jposselt

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

Constructor & Destructor Documentation

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

Constructor public.

Parameters
integerreference_id or object_id
booleantreat 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:

Member Function Documentation

ilObjChat::__initChatRecording ( )

Definition at line 346 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:

static ilObjChat::_getPublicChatRefId ( )
static

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

Referenced by ilUsersOnlineBlockGUI\__showChatInvitation(), ilUsersOnlineBlockGUI\fillRow(), ilChatRoom\getAllRooms(), and ilObjChatGUI\getUpdateAsyncObject().

{
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
intref_id of forum

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

References $ilDB, $res, $row, and DB_FETCHMODE_OBJECT.

Referenced by cloneAutoGeneratedRoles(), and ilObjChatGUI\saveObject().

{
global $ilDB;
$mod_title = 'il_chat_moderator_'.$a_ref_id;
$res = $ilDB->queryf('SELECT * FROM object_data WHERE title = %s',
array('text'), array($mod_title));
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
objectforum object

Definition at line 114 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
intsource_id int copy id

Reimplemented from ilObject.

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

References $ilDB, and 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 169 of file class.ilObjChat.php.

References $ilDB, $res, DB_FETCHMODE_ASSOC, ilObject\getId(), ilObject\getRefId(), and ilDB\isDbError().

{
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
$res = $ilDB->manipulateF('
DELETE FROM chat_room_messages WHERE chat_id = %s',
array('integer'),array($this->getRefId()));
// AND ALL USERS
$res = $ilDB->manipulateF('
DELETE FROM chat_user WHERE chat_id = %s',
array('integer'), array($this->getRefId()));
// AND ALL RECORDINGS
$res = $ilDB->queryf('
SELECT record_id FROM chat_records
WHERE chat_id = %s',
array('integer'), array($this->getId()));
if (ilDB::isDbError($res)) die("ilObjChat::delete(): " . $res->getMessage() . "<br>SQL-Statement: ".$res);
//if (($num = $ilDB->numRows($res)) > 0)
if (($num = $res->numRows()) > 0)
{
for ($i = 0; $i < $num; $i++)
{
$rec_data = $res->fetchRow(DB_FETCHMODE_ASSOC);
$res = $ilDB->manipulateF('
DELETE FROM chat_record_data WHERE record_id = %s',
array('integer'), array($rec_data['record_id']));
}
}
$res = $ilDB->manipulateF('
DELETE FROM chat_records WHERE chat_id = %s',
array('integer'), array($this->getId()));
return true;
}

+ Here is the call graph for this function:

ilObjChat::formatBody ( $user,
$lang 
)
private

Definition at line 298 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."/ilias.php?baseClass=ilChatPresentationGUI&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::formatBodyForRoom ( $user,
$lang,
  $room 
)
private

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

References ilObject\$ilias, $lang, ilObject\$lng, and ilObject\getTitle().

Referenced by sendMessageForRoom().

{
global $ilClientIniFile, $lng, $ilias;
$room_id = $room->getRoomId();
$room_title = $room->getTitle();
$body = sprintf($lng->txt("chat_notification_intro"), $ilClientIniFile->readVariable("client","name"), ILIAS_HTTP_PATH)."\n\n";
$body .= $lang->txt("chat_invitation_body")." ";
$body .= $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."/ilias.php?baseClass=ilChatPresentationGUI&room_id=".$room_id."&ref_id=".$room->getObjId();
return $body;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjChat::formatRecipient ( $user)
private

Definition at line 284 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)
private

Definition at line 293 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::getHTMLDirectory ( )

Reimplemented from ilObject.

Definition at line 268 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::initDefaultRoles ( )

init default roles settings public

Returns
array object IDs of created local roles.

Reimplemented from ilObject.

Definition at line 148 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 132 of file class.ilObjChat.php.

References ilObject\getId().

{
// USED ilObjectFactory::getInstance...
$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 222 of file class.ilObjChat.php.

References $_SESSION, formatBody(), formatRecipient(), formatSubject(), ilObjectFactory\getInstanceByObjId(), and ilLanguage\loadLanguageModule().

{
include_once "Services/Mail/classes/class.ilMail.php";
$tmp_mail_obj = new ilMail($_SESSION["AccountId"]);
// GET USER OBJECT
// 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:

ilObjChat::sendMessageForRoom (   $a_id,
  $room 
)

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

References $_SESSION, formatBodyForRoom(), ilObjectFactory\getInstanceByObjId(), and ilLanguage\loadLanguageModule().

{
include_once "Services/Mail/classes/class.ilMail.php";
$tmp_mail_obj = new ilMail($_SESSION["AccountId"]);
// GET USER OBJECT
// GET USERS LANGUAGE
$tmp_lang =& new ilLanguage($tmp_user->getLanguage());
$tmp_lang->loadLanguageModule("chat");
$message = $tmp_mail_obj->sendMail(self::formatRecipient($tmp_user),"","",self::formatSubject($tmp_lang),
$this->formatBodyForRoom($tmp_user,$tmp_lang, $room),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: