ILIAS  trunk Revision v11.0_alpha-1866-gfa368f7776e
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilCmiXapiHighscoreReportLinkBuilder Class Reference
+ Inheritance diagram for ilCmiXapiHighscoreReportLinkBuilder:
+ Collaboration diagram for ilCmiXapiHighscoreReportLinkBuilder:

Public Member Functions

 getPipelineDebug ()
 
- Public Member Functions inherited from ilCmiXapiAbstractReportLinkBuilder
 __construct (int $objId, string $aggregateEndPoint, ilCmiXapiStatementsReportFilter $filter)
 ilCmiXapiAbstractReportLinkBuilder constructor. More...
 
 getUrl ()
 
 getObjId ()
 
 getAggregateEndPoint ()
 
 getObj ()
 

Protected Member Functions

 buildPipeline ()
 
 buildFilterStage ()
 
 buildOrderStage ()
 
 getUsersStack ()
 
- Protected Member Functions inherited from ilCmiXapiAbstractReportLinkBuilder
 appendRequestParameters (string $url)
 
 buildPipelineParameter ()
 
 buildPipeline ()
 

Additional Inherited Members

- Protected Attributes inherited from ilCmiXapiAbstractReportLinkBuilder
int $objId
 
string $aggregateEndPoint
 
ilCmiXapiStatementsReportFilter $filter
 

Detailed Description

Member Function Documentation

◆ buildFilterStage()

ilCmiXapiHighscoreReportLinkBuilder::buildFilterStage ( )
protected
Returns
mixed[][]

Definition at line 67 of file class.ilCmiXapiHighscoreReportLinkBuilder.php.

References ilObject\_lookupType(), ilObjCmiXapi\CONT_TYPE_GENERIC, ILIAS\Repository\filter(), ilCmiXapiAbstractReportLinkBuilder\getObj(), ilCmiXapiAbstractReportLinkBuilder\getObjId(), and getUsersStack().

Referenced by buildPipeline().

67  : array
68  {
69  $stage = array();
70 
71  $stage['statement.object.objectType'] = 'Activity';
72  $stage['statement.actor.objectType'] = 'Agent';
73 
74  $stage['statement.object.id'] = $this->filter->getActivityId();
75 
76  $stage['statement.result.score.scaled'] = [
77  '$exists' => 1
78  ];
79 
80  $obj = $this->getObj();
81  if ((ilObject::_lookupType($this->getObjId()) == 'cmix' && $obj->getContentType() == ilObjCmiXapi::CONT_TYPE_GENERIC) || $obj->isMixedContentType()) {
82  $stage['$or'] = $this->getUsersStack();
83  }
84 
85  return [
86  '$match' => $stage
87  ];
88  }
filter(string $filter_id, $class_path, string $cmd, bool $activated=true, bool $expanded=true)
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildOrderStage()

ilCmiXapiHighscoreReportLinkBuilder::buildOrderStage ( )
protected
Returns
array<string, array<string, int>>

Definition at line 93 of file class.ilCmiXapiHighscoreReportLinkBuilder.php.

Referenced by buildPipeline().

93  : array
94  {
95  return [ '$sort' => [
96  'statement.timestamp' => 1
97  ]];
98  }
+ Here is the caller graph for this function:

◆ buildPipeline()

ilCmiXapiHighscoreReportLinkBuilder::buildPipeline ( )
protected
Returns
array<int, array<mixed[]>>

Definition at line 35 of file class.ilCmiXapiHighscoreReportLinkBuilder.php.

References $id, ilObject\_lookupType(), buildFilterStage(), buildOrderStage(), ilObjCmiXapi\CONT_TYPE_CMI5, ilObjCmiXapi\CONT_TYPE_GENERIC, ilCmiXapiAbstractReportLinkBuilder\getObj(), ilCmiXapiAbstractReportLinkBuilder\getObjId(), and null.

Referenced by getPipelineDebug().

35  : array
36  {
37  $pipeline = [];
38 
39  $pipeline[] = $this->buildFilterStage();
40  $pipeline[] = $this->buildOrderStage();
41 
42 
43  $obj = $this->getObj();
44  $id = null;
45  $cmix = ilObject::_lookupType($this->getObjId()) == 'cmix';
46  if ($cmix && $obj->getContentType() == ilObjCmiXapi::CONT_TYPE_GENERIC) {
47  $id = '$statement.actor.mbox';
48  }
49  if ($cmix && $obj->getContentType() == ilObjCmiXapi::CONT_TYPE_CMI5 && !$obj->isMixedContentType()) {
50  $id = '$statement.actor.account.name';
51  }
52  $pipeline[] = ['$group' => [
53  '_id' => $id,
54  'mbox' => [ '$last' => '$statement.actor.mbox' ],
55  'account' => [ '$last' => '$statement.actor.account.name'],
56  'username' => [ '$last' => '$statement.actor.name' ],
57  'timestamp' => [ '$last' => '$statement.timestamp' ],
58  'duration' => [ '$push' => '$statement.result.duration' ],
59  'score' => [ '$last' => '$statement.result.score' ]
60  ]];
61  return $pipeline;
62  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getPipelineDebug()

ilCmiXapiHighscoreReportLinkBuilder::getPipelineDebug ( )

Definition at line 123 of file class.ilCmiXapiHighscoreReportLinkBuilder.php.

References buildPipeline().

123  : string
124  {
125  return '<pre>' . json_encode($this->buildPipeline(), JSON_PRETTY_PRINT) . '</pre>';
126  }
+ Here is the call graph for this function:

◆ getUsersStack()

ilCmiXapiHighscoreReportLinkBuilder::getUsersStack ( )
protected
Returns
array<string, string>[]

Definition at line 104 of file class.ilCmiXapiHighscoreReportLinkBuilder.php.

References ilCmiXapiAbstractReportLinkBuilder\getObj(), ilCmiXapiAbstractReportLinkBuilder\getObjId(), and ilCmiXapiUser\getUsersForObject().

Referenced by buildFilterStage().

104  : array
105  {
106  $users = [];
107  $obj = $this->getObj();
108  if ($obj->isMixedContentType()) {
109  foreach (ilCmiXapiUser::getUsersForObject($this->getObjId()) as $cmixUser) {
110  $users[] = ['statement.actor.mbox' => "mailto:{$cmixUser->getUsrIdent()}"];
111  $users[] = ['statement.actor.account.name' => "{$cmixUser->getUsrIdent()}"];
112  }
113  } else {
114  foreach (ilCmiXapiUser::getUsersForObject($this->getObjId()) as $cmixUser) {
115  $users[] = [
116  'statement.actor.mbox' => "mailto:{$cmixUser->getUsrIdent()}"
117  ];
118  }
119  }
120  return $users;
121  }
static getUsersForObject(int $objId, bool $asUsrId=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

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