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 
4 require_once 'Services/JSON/classes/class.ilJsonUtil.php';
5 require_once 'Services/Contact/BuddySystem/classes/class.ilBuddyList.php';
6 require_once 'Services/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php';
7 require_once 'Services/Contact/BuddySystem/classes/states/class.ilBuddySystemRelationStateFactory.php';
8 require_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 }
_lookupPref($a_usr_id, $a_keyword)
special template class to simplify handling of ITX/PEAR
Class ilBuddySystemLinkButtonType.
global $ilUser
Definition: imgupload.php:15
global $lng
Definition: privfeed.php:40
Class ilBuddySystemLinkButton.
static yn2tf($a_yn)
convert "y"/"n" to true/false