ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilAwarenessContactsFeatureProvider.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/Awareness/classes/class.ilAwarenessFeatureProvider.php';
5 
12 {
16  private static $state_to_perm_link_map = array(
17  'ilBuddySystemLinkedRelationState' => '_contact_approved',
18  'ilBuddySystemIgnoredRequestRelationState' => '_contact_ignored'
19  );
20 
24  public function collectFeaturesForTargetUser($a_target_user)
25  {
29  global $ilUser;
30 
31  require_once 'Services/Awareness/classes/class.ilAwarenessFeature.php';
33 
34  require_once 'Services/Contact/BuddySystem/classes/class.ilBuddySystem.php';
35  if(!ilBuddySystem::getInstance()->isEnabled())
36  {
37  return $coll;
38  }
39 
40  if(ilObjUser::_isAnonymous($this->getUserId()) || $ilUser->isAnonymous())
41  {
42  return $coll;
43  }
44 
45  require_once 'Services/Contact/BuddySystem/classes/class.ilBuddyList.php';
46  $buddylist = ilBuddyList::getInstanceByGlobalUser();
47  $requested_contacts = $buddylist->getRequestRelationsForOwner()->getKeys();
48 
49  if(in_array($a_target_user, $requested_contacts))
50  {
51  require_once 'Services/Utilities/classes/class.ilStr.php';
52  require_once 'Services/Link/classes/class.ilLink.php';
53 
54  $this->lng->loadLanguageModule('buddysystem');
55 
56  $relation = $buddylist->getRelationByUserId($a_target_user);
57  foreach($relation->getCurrentPossibleTargetStates() as $target_state)
58  {
59  $f = new ilAwarenessFeature();
60  $f->setText($this->lng->txt('buddy_bs_act_btn_txt_requested_to_' . ilStr::convertUpperCamelCaseToUnderscoreCase($target_state->getName())));
61  $f->setHref(ilLink::_getStaticLink($a_target_user, 'usr', true, self::$state_to_perm_link_map[get_class($target_state)]));
62  $f->setData(array(
63  'current-state' => get_class($relation->getState()),
64  'target-state' => get_class($target_state),
65  'buddy-id' => $a_target_user,
66  'action' => $target_state->getAction())
67  );
68  $coll->addFeature($f);
69  }
70  }
71 
72  return $coll;
73  }
74 }
static convertUpperCamelCaseToUnderscoreCase($value)
Convert a value given in camel case conversion to underscore case conversion (e.g.
A class that provides a collection of features for the awareness tool.
static _isAnonymous($usr_id)
global $ilUser
Definition: imgupload.php:15
Awareness tool feature (presented in user drop downs) (data object)
collectFeaturesForTargetUser($a_target_user)
Collect features for a target user.