ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilBuddySystemLinkButton.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2015 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'Services/JSON/classes/class.ilJsonUtil.php';
5require_once 'Services/Contact/BuddySystem/classes/class.ilBuddyList.php';
6require_once 'Services/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php';
7require_once 'Services/Contact/BuddySystem/classes/states/class.ilBuddySystemRelationStateFactory.php';
8require_once 'Services/Contact/BuddySystem/interfaces/interface.ilBuddySystemLinkButtonType.php';
9
15{
19 protected $usr_id;
20
24 protected $buddylist;
25
29 protected function __construct($usr_id)
30 {
31 $this->usr_id = $usr_id;
32 $this->buddylist = ilBuddyList::getInstanceByGlobalUser();
33 }
34
39 public static function getInstanceByUserId($usr_id)
40 {
41 return new self($usr_id);
42 }
43
47 public function getUsrId()
48 {
49 return $this->usr_id;
50 }
51
55 public function setUsrId($usr_id)
56 {
57 $this->usr_id = $usr_id;
58 }
59
63 public function getBuddyList()
64 {
65 return $this->buddylist;
66 }
67
71 public function getHtml()
72 {
77 global $lng, $ilUser;
78
79 $lng->loadLanguageModule('buddysystem');
80
81 ilBuddySystemGUI::initializeFrontend();
82
83 require_once 'Services/Contact/BuddySystem/classes/class.ilBuddySystem.php';
84 if(!ilBuddySystem::getInstance()->isEnabled())
85 {
86 return '';
87 }
88
89 $relation = $this->buddylist->getRelationByUserId($this->getUsrId());
90
91 // The ILIAS JF decided to add a new personal setting
92 if($relation->isUnlinked() && !ilUtil::yn2tf(ilObjUser::_lookupPref($this->getUsrId(), 'bs_allow_to_contact_me')))
93 {
94 return '';
95 }
96
97 $button_tpl = new ilTemplate('tpl.buddy_system_link_button.html', true, true, 'Services/Contact/BuddySystem');
98 $button_tpl->setVariable('BUTTON_HTML', ilBuddySystemRelationStateFactory::getInstance()->getRendererByOwnerAndRelation($ilUser->getId(), $relation)->getHtml());
99 $button_tpl->setVariable('BUTTON_BUDDY_ID', $this->getUsrId());
100 $button_tpl->setVariable('BUTTON_CSS_CLASS', 'ilBuddySystemLinkWidget');
101 $button_tpl->setVariable('BUTTON_CURRENT_STATE', get_class($relation->getState()));
102 return $button_tpl->get();
103 }
104}
Class ilBuddySystemLinkButton.
_lookupPref($a_usr_id, $a_keyword)
special template class to simplify handling of ITX/PEAR
static yn2tf($a_yn)
convert "y"/"n" to true/false
global $lng
Definition: privfeed.php:40
global $ilUser
Definition: imgupload.php:15