ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
ilCmiXapiStatementsReport Class Reference
+ Collaboration diagram for ilCmiXapiStatementsReport:

Public Member Functions

 __construct (string $responseBody, $obj)
 
 getMaxCount ()
 
 getStatements ()
 
 hasStatements ()
 
 getTableData ()
 

Static Public Member Functions

static getLanguageEntry ($obj, $userLanguage)
 

Protected Member Functions

 fetchDate ($statement)
 
 fetchActor ($statement)
 
 fetchVerbId ($statement)
 
 fetchVerbDisplay ($statement)
 
 fetchObjectName ($statement)
 
 fetchObjectInfo ($statement)
 

Protected Attributes

 $response
 
 $statements
 
 $maxCount
 
 $cmixUsersByIdent
 
 $userLanguage
 
 $contentType
 
 $isMixedContentType
 

Detailed Description

Definition at line 15 of file class.ilCmiXapiStatementsReport.php.

Constructor & Destructor Documentation

◆ __construct()

ilCmiXapiStatementsReport::__construct ( string  $responseBody,
  $obj 
)

Definition at line 51 of file class.ilCmiXapiStatementsReport.php.

References $DIC, and ilCmiXapiUser\getUsersForObject().

52  {
53  global $DIC;
54  $this->userLanguage = $DIC->user()->getLanguage();
55 
56  $responseBody = json_decode($responseBody, true);
57 
58  if ($obj instanceof ilObjCmiXapi) {
59  $this->contentType = $obj->getContentType();
60 // $this->contentType = ilObjCmiXapi::getInstance($objId,false)->getContentType();
61  $this->isMixedContentType = $obj->isMixedContentType();
62 // $this->isMixedContentType = ilObjCmiXapi::getInstance($objId,false)->isMixedContentType();
63  }
64  if (count($responseBody)) {
65  $this->response = current($responseBody);
66  $this->statements = $this->response['statements'];
67  $this->maxCount = $this->response['maxcount'];
68  } else {
69  $this->response = '';
70  $this->statements = array();
71  $this->maxCount = 0;
72  }
73 
74  foreach (ilCmiXapiUser::getUsersForObject($obj->getId()) as $cmixUser) {
75  $this->cmixUsersByIdent[$cmixUser->getUsrIdent()] = $cmixUser;
76  }
77  }
static getUsersForObject($objId, $asUsrId=false)
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

Member Function Documentation

◆ fetchActor()

ilCmiXapiStatementsReport::fetchActor (   $statement)
protected

Definition at line 118 of file class.ilCmiXapiStatementsReport.php.

References ilObjCmiXapi\CONT_TYPE_CMI5.

Referenced by getTableData().

119  {
120  if ($this->isMixedContentType)
121  {
122  $ident = str_replace('mailto:', '', $statement['actor']['mbox']);
123  if (empty($ident)) {
124  $ident = $statement['actor']['account']['name'];
125  }
126  }
127  elseif ($this->contentType == ilObjCmiXapi::CONT_TYPE_CMI5)
128  {
129  $ident = $statement['actor']['account']['name'];
130  }
131  else
132  {
133  $ident = str_replace('mailto:', '', $statement['actor']['mbox']);
134  }
135  return $this->cmixUsersByIdent[$ident];
136  }
+ Here is the caller graph for this function:

◆ fetchDate()

ilCmiXapiStatementsReport::fetchDate (   $statement)
protected

Definition at line 113 of file class.ilCmiXapiStatementsReport.php.

Referenced by getTableData().

114  {
115  return $statement['timestamp'];
116  }
+ Here is the caller graph for this function:

◆ fetchObjectInfo()

ilCmiXapiStatementsReport::fetchObjectInfo (   $statement)
protected

Definition at line 160 of file class.ilCmiXapiStatementsReport.php.

Referenced by getTableData().

161  {
162  return $statement['object']['definition']['description']['en-US'];
163  }
+ Here is the caller graph for this function:

◆ fetchObjectName()

ilCmiXapiStatementsReport::fetchObjectName (   $statement)
protected

Definition at line 148 of file class.ilCmiXapiStatementsReport.php.

References $lang, and $ret.

Referenced by getTableData().

149  {
150  $ret = urldecode($statement['object']['id']);
151  $lang = self::getLanguageEntry($statement['object']['definition']['name'],$this->userLanguage);
152  $langEntry = $lang['languageEntry'];
153  if ($langEntry != '')
154  {
155  $ret = $langEntry;
156  }
157  return $ret;
158  }
$lang
Definition: xapiexit.php:8
$ret
Definition: parser.php:6
+ Here is the caller graph for this function:

◆ fetchVerbDisplay()

ilCmiXapiStatementsReport::fetchVerbDisplay (   $statement)
protected

Definition at line 143 of file class.ilCmiXapiStatementsReport.php.

Referenced by getTableData().

144  {
145  return $statement['verb']['display']['en-US'];
146  }
+ Here is the caller graph for this function:

◆ fetchVerbId()

ilCmiXapiStatementsReport::fetchVerbId (   $statement)
protected

Definition at line 138 of file class.ilCmiXapiStatementsReport.php.

Referenced by getTableData().

139  {
140  return $statement['verb']['id'];
141  }
+ Here is the caller graph for this function:

◆ getLanguageEntry()

static ilCmiXapiStatementsReport::getLanguageEntry (   $obj,
  $userLanguage 
)
static

Definition at line 170 of file class.ilCmiXapiStatementsReport.php.

References $defaultLanguage, Vendor\Package\$e, Vendor\Package\$f, and $userLanguage.

171  {
172  $defaultLanguage = 'en-US';
173  $defaultLanguageEntry = '';
174  $defaultLanguageExists = false;
175  $firstLanguage = '';
176  $firstLanguageEntry = '';
177  $firstLanguageExists = false;
178  $userLanguage = '';
179  $userLanguageEntry = '';
180  $userLanguageExists = false;
181  $language = '';
182  $languageEntry = '';
183  try {
184  foreach ($obj as $k => $v)
185  {
186  // save $firstLanguage
187  if ($firstLanguage == '')
188  {
189  $f = '/^[a-z]+\-?.*/';
190  if (preg_match($f,$k))
191  {
192  $firstLanguageExists = true;
193  $firstLanguage = $k;
194  $firstLanguageEntry = $v;
195  }
196  }
197  // check defaultLanguage
198  if ($k == $defaultLanguage)
199  {
200  $defaultLanguageExists = true;
201  $defaultLanguageEntry = $v;
202  }
203  // check userLanguage
204  $p = '/^' . $userLanguage . '\-?./';
205  preg_match($p,$k);
206  if (preg_match($p,$k))
207  {
208  $userLanguageExists = true;
209  $userLanguage = $k;
210  $userLanguageEntry = $v;
211  }
212  }
213  }
214  catch (Exception $e) {};
215 
216  if ($userLanguageExists)
217  {
218  $language = $userLanguage;
219  $languageEntry = $userLanguageEntry;
220  }
221  elseif ($defaultLanguageExists)
222  {
223  $language = $userLanguage;
224  $languageEntry = $userLanguageEntry;
225  }
226  elseif ( $firstLanguageExists)
227  {
228  $language = $firstLanguage;
229  $languageEntry = $firstLanguageEntry;
230  }
231  return ['language' => $language, 'languageEntry' => $languageEntry];
232  }
$defaultLanguage
Definition: xapiexit.php:7

◆ getMaxCount()

ilCmiXapiStatementsReport::getMaxCount ( )

Definition at line 79 of file class.ilCmiXapiStatementsReport.php.

References $maxCount.

◆ getStatements()

ilCmiXapiStatementsReport::getStatements ( )

Definition at line 84 of file class.ilCmiXapiStatementsReport.php.

References $statements.

Referenced by ilXapiStatementEvaluation\evaluateReport().

+ Here is the caller graph for this function:

◆ getTableData()

ilCmiXapiStatementsReport::getTableData ( )

Definition at line 94 of file class.ilCmiXapiStatementsReport.php.

References $data, $index, fetchActor(), fetchDate(), fetchObjectInfo(), fetchObjectName(), fetchVerbDisplay(), and fetchVerbId().

95  {
96  $data = [];
97 
98  foreach ($this->statements as $index => $statement) {
99  $data[] = [
100  'date' => $this->fetchDate($statement),
101  'actor' => $this->fetchActor($statement),
102  'verb_id' => $this->fetchVerbId($statement),
103  'verb_display' => $this->fetchVerbDisplay($statement),
104  'object' => $this->fetchObjectName($statement),
105  'object_info' => $this->fetchObjectInfo($statement),
106  'statement' => json_encode($statement, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
107  ];
108  }
109 
110  return $data;
111  }
$data
Definition: storeScorm.php:23
$index
Definition: metadata.php:128
+ Here is the call graph for this function:

◆ hasStatements()

ilCmiXapiStatementsReport::hasStatements ( )

Definition at line 89 of file class.ilCmiXapiStatementsReport.php.

90  {
91  return (bool) count($this->statements);
92  }

Field Documentation

◆ $cmixUsersByIdent

ilCmiXapiStatementsReport::$cmixUsersByIdent
protected

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

◆ $contentType

ilCmiXapiStatementsReport::$contentType
protected

Definition at line 44 of file class.ilCmiXapiStatementsReport.php.

◆ $isMixedContentType

ilCmiXapiStatementsReport::$isMixedContentType
protected

Definition at line 49 of file class.ilCmiXapiStatementsReport.php.

◆ $maxCount

ilCmiXapiStatementsReport::$maxCount
protected

Definition at line 30 of file class.ilCmiXapiStatementsReport.php.

Referenced by getMaxCount().

◆ $response

ilCmiXapiStatementsReport::$response
protected

Definition at line 20 of file class.ilCmiXapiStatementsReport.php.

◆ $statements

ilCmiXapiStatementsReport::$statements
protected

Definition at line 25 of file class.ilCmiXapiStatementsReport.php.

Referenced by getStatements().

◆ $userLanguage

ilCmiXapiStatementsReport::$userLanguage
protected

Definition at line 40 of file class.ilCmiXapiStatementsReport.php.

Referenced by getLanguageEntry().


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