ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilUsersOnlineBlockGUI Class Reference

BlockGUI class for Personal Desktop Users Online block. More...

+ Inheritance diagram for ilUsersOnlineBlockGUI:
+ Collaboration diagram for ilUsersOnlineBlockGUI:

Public Member Functions

 ilUsersOnlineBlockGUI ()
 Constructor.
executeCommand ()
 execute command
 getHTML ()
 Get HTML.
 getUsers ()
 Get online users.
 fillDataSection ()
 Fill data section.
 getListRowData ()
 Get list data.
 fillRow ($a_set)
 get flat bookmark list for personal desktop
 getOverview ()
 Get overview.
 showUserProfile ()
 show profile of other user
- Public Member Functions inherited from ilBlockGUI
 ilBlockGUI ()
 Constructor.
 addHeaderLink ($a_href, $a_text, $status=true)
 getHeaderLinks ()
 setData ($a_data)
 Set Data.
 getData ()
 Get Data.
 setBigMode ($a_bigmode)
 Set Big Mode.
 getBigMode ()
 Get Big Mode.
 setBlockId ($a_block_id=0)
 Set Block Id.
 getBlockId ()
 Get Block Id.
 setAvailableDetailLevels ($a_max, $a_min=0)
 Set Available Detail Levels.
 setCurrentDetailLevel ($a_currentdetaillevel)
 Set Current Detail Level.
 setGuiObject (&$a_gui_object)
 Set GuiObject.
 getGuiObject ()
 Get GuiObject.
 getCurrentDetailLevel ()
 Get Current Detail Level.
 setTitle ($a_title)
 Set Title.
 getTitle ()
 Get Title.
 setImage ($a_image)
 Set Image.
 getImage ()
 Get Image.
 setOffset ($a_offset)
 Set Offset.
 getOffset ()
 Get Offset.
 correctOffset ()
 setLimit ($a_limit)
 Set Limit.
 getLimit ()
 Get Limit.
 setEnableEdit ($a_enableedit)
 Set EnableEdit.
 getEnableEdit ()
 Get EnableEdit.
 setRepositoryMode ($a_repositorymode)
 Set RepositoryMode.
 getRepositoryMode ()
 Get RepositoryMode.
 setFooterInfo ($a_footerinfo, $a_hide_and_icon=false)
 Set Footer Info.
 getFooterInfo ($a_hide_and_icon=false)
 Get Footer Info.
 setSubtitle ($a_subtitle)
 Set Subtitle.
 getSubtitle ()
 Get Subtitle.
 setRefId ($a_refid)
 Set Ref Id (only used if isRepositoryObject() is true).
 getRefId ()
 Get Ref Id (only used if isRepositoryObject() is true).
 setAdminCommands ($a_admincommands)
 Set Administration Commmands.
 getAdminCommands ()
 Get Administration Commmands.
 setColSpan ($a_colspan)
 Set Columns Span.
 getColSpan ()
 Get Columns Span.
 setEnableDetailRow ($a_enabledetailrow)
 Set EnableDetailRow.
 getEnableDetailRow ()
 Get EnableDetailRow.
 setEnableNumInfo ($a_enablenuminfo)
 Set Enable Item Number Info.
 getEnableNumInfo ()
 Get Enable Item Number Info.
 setProperties ($a_properties)
 This function is supposed to be used for block type specific properties, that should be inherited through ilColumnGUI->setBlockProperties.
 getProperty ($a_property)
 setProperty ($a_property, $a_value)
 setRowTemplate ($a_rowtemplatename, $a_rowtemplatedir="")
 Set Row Template Name.
 getNavParameter ()
 getDetailParameter ()
 getConfigParameter ()
 getMoveParameter ()
 getRowTemplateName ()
 Get Row Template Name.
 getRowTemplateDir ()
 Get Row Template Directory.
 addBlockCommand ($a_href, $a_text, $a_target="", $a_img="", $a_right_aligned=false)
 Add Block Command.
 getBlockCommands ()
 Get Block commands.
 addHeaderCommand ($a_href, $a_text, $a_as_close=false)
 Add Header Block Command.
 getHeaderCommands ()
 Get Header Block commands.
 addFooterLink ($a_text, $a_href="", $a_onclick="", $a_block_id="", $a_top=false, $a_omit_separator=false)
 Add a footer text/link.
 getFooterLinks ()
 Get footer links.
 clearFooterLinks ()
 Clear footer links.
 handleDetailLevel ()
 Handle read/write current detail level.
 setConfigMode ($a_configmode)
 Handle config status.
 getConfigMode ()
 Get Config Mode (move blocks).
 fillHeaderCommands ()
 Fill header commands block.
 fillHeaderTitleBlock ()
 Fill header title block (title and.
 setDataSection ($a_content)
 Call this from overwritten fillDataSection(), if standard row based data is not used.
 fillFooter ()
 fillPreviousNext ()
 Fill previous/next row.
 setPreviousNextLinks ()
 Get previous/next linkbar.
 fillFooterLinks ($a_top=false, $a_numinfo="")
 Fill footer links.
 fillDetailRow ()
 Fill Detail Setting Row.
 fillMoveRow ()
 Fill row for Moving.
 getAllowMove ($a_direction)
 setAllowMove ($a_direction, $a_allow=true)
 fillMoveLink ($a_value, $a_img, $a_txt)

Static Public Member Functions

static getBlockType ()
 Get block type.
static isRepositoryObject ()
 Is block used in repository object?
static getScreenMode ()
 Get Screen Mode for current command.

Static Public Attributes

static $block_type = "pdusers"

Additional Inherited Members

- Protected Member Functions inherited from ilBlockGUI
 fillRowColor ($a_placeholder="CSS_ROW")
- Protected Attributes inherited from ilBlockGUI
 $data = array()
 $colspan = 1
 $enablenuminfo = true
 $detail_min = 0
 $detail_max = 0
 $bigmode = false
 $footer_links = array()
 $block_id = 0
 $header_commands = array()
 $allow_moving = true
 $move = array("left" => false, "right" => false, "up" => false, "down" => false)
 $enabledetailrow = true
 $header_links = array()
 $footerinfo = false
 $footerinfo_icon = false
 $block_commands = array()
 $max_count = false
 $close_command = false
 $image = false
 $property = false
 $nav_value = ""
 $css_row = ""

Detailed Description

BlockGUI class for Personal Desktop Users Online block.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

ilUsersOnlineBlockGUI: ilColumnGUI ilUsersOnlineBlockGUI: ilPublicUserProfileGUI

Definition at line 16 of file class.ilUsersOnlineBlockGUI.php.

Member Function Documentation

& ilUsersOnlineBlockGUI::executeCommand ( )

execute command

Definition at line 85 of file class.ilUsersOnlineBlockGUI.php.

References $_GET, $cmd, $ilCtrl, and $tpl.

{
global $ilCtrl, $tpl;
$next_class = $ilCtrl->getNextClass();
$cmd = $ilCtrl->getCmd("getHTML");
switch($next_class)
{
// profile
case "ilpublicuserprofilegui":
include_once('./Services/User/classes/class.ilPublicUserProfileGUI.php');
$profile_gui = new ilPublicUserProfileGUI($_GET["user"]);
return $ilCtrl->forwardCommand($profile_gui);
break;
default:
return $this->$cmd();
}
}
ilUsersOnlineBlockGUI::fillDataSection ( )

Fill data section.

Reimplemented from ilBlockGUI.

Definition at line 175 of file class.ilUsersOnlineBlockGUI.php.

References $ilCtrl, $ilSetting, ilBlockGUI\getCurrentDetailLevel(), getListRowData(), getOverview(), ilBlockGUI\setColSpan(), ilBlockGUI\setDataSection(), ilBlockGUI\setEnableNumInfo(), and ilBlockGUI\setRowTemplate().

{
global $ilUser, $ilSetting, $ilCtrl;
$pd_set = new ilSetting("pd");
include_once("Services/Notes/classes/class.ilNote.php");
if ($this->getCurrentDetailLevel() > 1 && $this->num_users > 0)
{
$this->setRowTemplate("tpl.users_online_row.html", "Services/PersonalDesktop");
$this->getListRowData();
if ($this->getCurrentDetailLevel() > 2)
{
$this->setColSpan(2);
}
}
else
{
$this->setEnableNumInfo(false);
$this->setDataSection($this->getOverview());
}
}

+ Here is the call graph for this function:

ilUsersOnlineBlockGUI::fillRow (   $a_set)

get flat bookmark list for personal desktop

Reimplemented from ilBlockGUI.

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

References $ilCtrl, $ilSetting, $lng, ilMailFormCall\_getLinkTarget(), ilObjUser\_getPersonalPicturePath(), ilObjUser\_lookupIm(), ilObjUser\_lookupPref(), ilBlockGUI\getCurrentDetailLevel(), and ilUtil\getImagePath().

{
global $ilUser, $ilCtrl, $lng, $ilSetting, $rbacsetting, $rbacsystem;
// mail link
$a_set["mail_to"] = "";
if($this->mail_allowed &&
$rbacsystem->checkAccessOfUser($a_set["id"],'mail_visible',$this->mail_settings_id))
{
// $a_set["mail_to"] = ilMail::_getUserInternalMailboxAddress(
// $a_set["id"], $a_set['login'], $a_set['firstname'], $a_set['lastname']
// );
#$mail_to = urlencode($mail_to);
$a_set['mail_url'] = ilMailFormCall::_getLinkTarget($this->topGuiObj, '', array(), array('type' => 'new', 'rcp_to' => urlencode($a_set['login'])));
}
// check for profile
$a_set["profile"] = in_array(
ilObjUser::_lookupPref($a_set["id"], "public_profile"),
array("y", "g"));
// user image
if ($this->getCurrentDetailLevel() > 2)
{
if ($a_set["mail_url"] != "")
{
$this->tpl->setCurrentBlock("mailto_link");
$this->tpl->setVariable("TXT_MAIL", $lng->txt("mail"));
$this->tpl->setVariable("MAIL_URL", $a_set["mail_url"]);
$this->tpl->parseCurrentBlock();
}
// user image
$this->tpl->setCurrentBlock("usr_image");
$this->tpl->setVariable("USR_IMAGE",
ilObjUser::_getPersonalPicturePath($a_set["id"],"xxsmall"));
$this->tpl->setVariable("USR_ALT", $lng->txt("personal_picture"));
$this->tpl->parseCurrentBlock();
$pd_set = new ilSetting("pd");
$osi_server = $pd_set->get("osi_host");
// if (trim($osi_server) != "")
// {
// instant messengers
// 1 indicates to use online status check
$im_arr = array("icq" => 0,
"yahoo" => 1,
"msn" => 0,
"aim" => 0,
"skype" => 1,
"jabber" => 0,
"voip" => 0);
// use onlinestatus.org
// when enabled all instant messengers are checked online and ignores settings above
if (trim($osi_server) != "")
{
$osi_enable = true;
}
foreach ($im_arr as $im_name => $im_check)
{
if ($im_id = ilObjUser::_lookupIm($a_set["id"], $im_name))
{
$im_url = "#";
switch ($im_name)
{
case "icq":
//$im_url = "http://people.icq.com/people/webmsg.php?to=".$im_id;
$im_url = "http://people.icq.com/people/about_me.php?uin=".$im_id;
//$im_img = "http://status.icq.com/online.gif?icq=".$im_id."&img=5";
$im_img = "http://wwp.icq.com/scripts/online.dll?icq=".$im_id."&img=5";
break;
case "yahoo":
$im_url = "http://edit.yahoo.com/config/send_webmesg?.target=".$im_id."&.src=pg";
$im_img = "http://opi.yahoo.com/online?u=".$im_id."&m=g&t=5";
break;
case "msn":
$im_url = "http://messenger.live.com";
$im_img = ilUtil::getImagePath($im_name.'offline.gif'); // online check not possible
break;
case "aim":
//$im_url = "aim:GoIM?screenname=".$im_id;
$im_url = "http://aimexpress.aim.com";
//$im_img = "http://api.oscar.aol.com/SOA/key=<put_your_key_here>/presence/".$im_id; // doesn't work. you need a key
$im_img = ilUtil::getImagePath($im_name.'offline.gif'); // online check not possible
break;
case "skype":
$im_url = "skype:".$im_id."?call";
/* the link above needs this piece of js to work
<script type="text/javascript"
src="http://download.skype.com/share/skypebuttons/js/skypeCheck.js">
</script>
*/
//$im_url = "http://www.skype.com/go/download";
$im_img = "http://mystatus.skype.com/smallicon/".$im_id;
break;
}
$this->tpl->setCurrentBlock("instant_messengers");
if ($osi_enable)
{
$this->tpl->setVariable("URL_IM",$osi_server."/message/".$im_name."/".$im_id);
$this->tpl->setVariable("IMG_IM_ICON",$osi_server."/".$im_name."/".$im_id);
}
else
{
$this->tpl->setVariable("URL_IM",$im_url);
$this->tpl->setVariable("IMG_IM_ICON", $im_check ? $im_img : ilUtil::getImagePath($im_name.'offline.gif'));
}
$this->tpl->setVariable("TXT_IM_ICON", $lng->txt("im_".$im_name));
$this->tpl->parseCurrentBlock();
}
}
// }
}
// username
if ($this->getCurrentDetailLevel() > 2)
{
$this->tpl->setVariable("USR_LOGIN", "<br />".$a_set["login"]);
}
else
{
$this->tpl->setVariable("USR_LOGIN", " [".$a_set["login"]."]");
}
// profile link
if ($a_set["profile"])
{
$this->tpl->setCurrentBlock("profile_link");
$this->tpl->setVariable("TXT_VIEW", $lng->txt("profile"));
$ilCtrl->setParameter($this, "user", $a_set["id"]);
$this->tpl->setVariable("LINK_PROFILE",
$ilCtrl->getLinkTarget($this, "showUserProfile"));
$this->tpl->setVariable("USR_ID", $a_set["id"]);
$this->tpl->setVariable("LINK_FULLNAME", ilObjUser::_lookupFullName($a_set["id"]));
$this->tpl->parseCurrentBlock();
}
else
{
$this->tpl->setVariable("USR_FULLNAME", ilObjUser::_lookupFullName($a_set["id"]));
}
}

+ Here is the call graph for this function:

static ilUsersOnlineBlockGUI::getBlockType ( )
static

Get block type.

Returns
string Block type.

Reimplemented from ilBlockGUI.

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

References $block_type.

{
}
ilUsersOnlineBlockGUI::getHTML ( )

Get HTML.

Reimplemented from ilBlockGUI.

Definition at line 106 of file class.ilUsersOnlineBlockGUI.php.

References ilBlockGUI\getCurrentDetailLevel(), and getUsers().

{
global $ilUser;
$this->users_online_pref = $ilUser->getPref("show_users_online");
if ($this->users_online_pref != "y" && $this->users_online_pref != "associated")
{
return "";
}
$this->getUsers();
if ($this->getCurrentDetailLevel() == 0)
{
return "";
}
else
{
return parent::getHTML();
}
}

+ Here is the call graph for this function:

ilUsersOnlineBlockGUI::getListRowData ( )

Get list data.

Definition at line 204 of file class.ilUsersOnlineBlockGUI.php.

References $_SESSION, ilBlockGUI\$data, $ilCtrl, $ilDB, $lng, ilMail\getMailObjectReferenceId(), getOverview(), ilBlockGUI\setCurrentDetailLevel(), ilBlockGUI\setData(), ilBlockGUI\setDataSection(), and ilBlockGUI\setEnableNumInfo().

Referenced by fillDataSection().

{
global $ilUser, $lng, $ilCtrl, $ilDB, $rbacsystem;
$data = array();
$mail = new ilMail($ilUser->getId());
$this->mail_settings_id = $mail->getMailObjectReferenceId();
$this->mail_allowed = ($_SESSION["AccountId"] != ANONYMOUS_USER_ID
&& $rbacsystem->checkAccess('mail_visible',$this->mail_settings_id));
foreach ($this->users as $user_id => $user)
{
$data[] = array(
"id" => $user_id,
"login" => $user["login"]
);
}
$this->setData($data);
// we do not have at least one (non hidden) active user
if (count($data) == 0)
{
$this->setEnableNumInfo(false);
$this->enabledetailrow = false;
$this->setDataSection($this->getOverview());
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilUsersOnlineBlockGUI::getOverview ( )

Get overview.

Definition at line 393 of file class.ilUsersOnlineBlockGUI.php.

References $ilCtrl, and $lng.

Referenced by fillDataSection(), and getListRowData().

{
global $ilUser, $lng, $ilCtrl;
// parse visitors text
if (empty($this->visitors) || $this->users_online_pref == "associated")
{
$visitor_text = "";
}
elseif ($this->visitors == "1")
{
$visitor_text = "1 ".$lng->txt("visitor");
}
else
{
$visitor_text = $visitors." ".$lng->txt("visitors");
}
// parse registered users text
if ($this->num_users > 0)
{
$user_kind = ($this->users_online_pref == "associated") ? "associated_user" : "registered_user";
if ($this->num_users == 1)
{
$user_list = $this->num_users." ".$lng->txt($user_kind);
}
else
{
$user_list = $this->num_users." ".$lng->txt($user_kind."s");
}
if (!empty($visitor_text))
{
$user_list .= " ".$lng->txt("and")." ".$visitor_text;
}
}
else
{
$user_list = $visitor_text;
}
return '<div class="small">'.$user_list."</div>";
}

+ Here is the caller graph for this function:

static ilUsersOnlineBlockGUI::getScreenMode ( )
static

Get Screen Mode for current command.

Reimplemented from ilBlockGUI.

Definition at line 61 of file class.ilUsersOnlineBlockGUI.php.

References $ilCtrl, IL_SCREEN_FULL, and IL_SCREEN_SIDE.

{
global $ilCtrl;
if ($ilCtrl->getCmdClass() == "ilpublicuserprofilegui")
{
}
switch($ilCtrl->getCmd())
{
case "showUserProfile":
break;
default:
break;
}
}
ilUsersOnlineBlockGUI::getUsers ( )

Get online users.

Definition at line 132 of file class.ilUsersOnlineBlockGUI.php.

References ilObjUser\_getUsersOnline(), ilObjUser\_lookupPref(), and ilUtil\getAssociatedUsersOnline().

Referenced by getHTML().

{
global $ilUser;
if ($this->users_online_pref == "associated")
{
$this->users = ilUtil::getAssociatedUsersOnline($ilUser->getId(), true);
}
else
{
$this->users = ilObjUser::_getUsersOnline(0, true);
}
$this->num_users = 0;
// add current user always to list
if ($ilUser->getId() != ANONYMOUS_USER_ID &&
ilObjUser::_lookupPref($ilUser->getId(), "hide_own_online_status") != "y")
{
$this->users[$ilUser->getId()] =
array("user_id" => $ilUser->getId(),
"firstname" => $ilUser->getFirstname(),
"lastname" => $ilUser->getLastname(),
"title" => $ilUser->getUTitle(),
"login" => $ilUser->getLogin());
}
foreach ($this->users as $user_id => $user)
{
if ($user_id != ANONYMOUS_USER_ID)
{
$this->num_users++;
}
else
{
$this->visitors = $user["num"];
}
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilUsersOnlineBlockGUI::ilUsersOnlineBlockGUI ( )

Constructor.

Definition at line 23 of file class.ilUsersOnlineBlockGUI.php.

References $ilCtrl, $lng, ilUtil\getImagePath(), ilBlockGUI\ilBlockGUI(), ilBlockGUI\setAvailableDetailLevels(), ilBlockGUI\setImage(), ilBlockGUI\setLimit(), and ilBlockGUI\setTitle().

{
global $ilCtrl, $lng, $ilUser;
$this->setLimit(10);
$this->setImage(ilUtil::getImagePath("icon_grp_s.gif"));
$this->setTitle($lng->txt("users_online"));
// mjansen: Used for mail referer link (@see fillRow). I don't want to create a new instance in each fillRow call.
$this->topGuiObj = new ilPersonalDesktopGUI();
}

+ Here is the call graph for this function:

static ilUsersOnlineBlockGUI::isRepositoryObject ( )
static

Is block used in repository object?

Returns
string Block type.

Reimplemented from ilBlockGUI.

Definition at line 53 of file class.ilUsersOnlineBlockGUI.php.

{
return false;
}
ilUsersOnlineBlockGUI::showUserProfile ( )

show profile of other user

Definition at line 441 of file class.ilUsersOnlineBlockGUI.php.

References $_GET, $ilCtrl, and $lng.

{
global $lng, $ilCtrl;
// include_once("./Services/PersonalDesktop/classes/class.ilPDContentBlockGUI.php");
// $content_block = new ilPDContentBlockGUI("ilpersonaldesktopgui", "show");
include_once('./Services/User/classes/class.ilPublicUserProfileGUI.php');
$profile_gui = new ilPublicUserProfileGUI($_GET["user"]);
//$profile_gui->setAsRows(true);
$profile_gui->setBackUrl($ilCtrl->getParentReturn($this));
// $content_block->setContent($ilCtrl->getHTML($profile_gui));
// $content_block->setTitle($lng->txt("profile_of")." ".
// ilObjUser::_lookupLogin($_GET["user"]));
// $content_block->setColSpan(2);
// $content_block->setImage(ilUtil::getImagePath("icon_usr.gif"));
// $content_block->addHeaderCommand($ilCtrl->getParentReturn($this),
// $lng->txt("selected_items_back"));
// return $content_block->getHTML();
return $ilCtrl->getHTML($profile_gui);
}

Field Documentation

ilUsersOnlineBlockGUI::$block_type = "pdusers"
static

Definition at line 18 of file class.ilUsersOnlineBlockGUI.php.

Referenced by getBlockType().


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