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
4require_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}
A class that provides a collection of features for the awareness tool.
collectFeaturesForTargetUser($a_target_user)
Collect features for a target user.
Awareness tool feature (presented in user drop downs) (data object)
static _isAnonymous($usr_id)
static convertUpperCamelCaseToUnderscoreCase($value)
Convert a value given in camel case conversion to underscore case conversion (e.g.
global $ilUser
Definition: imgupload.php:15