ILIAS  release_7 Revision v7.30-3-g800a261c036
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.

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)
global $DIC
Definition: goto.php:24

References $DIC, and ilCmiXapiUser\getUsersForObject().

+ 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.

119 {
120 if ($this->isMixedContentType) {
121 $ident = str_replace('mailto:', '', $statement['actor']['mbox']);
122 if (empty($ident)) {
123 $ident = $statement['actor']['account']['name'];
124 }
125 } elseif ($this->contentType == ilObjCmiXapi::CONT_TYPE_CMI5) {
126 $ident = $statement['actor']['account']['name'];
127 } else {
128 $ident = str_replace('mailto:', '', $statement['actor']['mbox']);
129 }
130 return $this->cmixUsersByIdent[$ident];
131 }

References ilObjCmiXapi\CONT_TYPE_CMI5.

Referenced by getTableData().

+ Here is the caller graph for this function:

◆ fetchDate()

ilCmiXapiStatementsReport::fetchDate (   $statement)
protected

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

114 {
115 return $statement['timestamp'];
116 }

Referenced by getTableData().

+ Here is the caller graph for this function:

◆ fetchObjectInfo()

ilCmiXapiStatementsReport::fetchObjectInfo (   $statement)
protected

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

159 {
160 return $statement['object']['definition']['description']['en-US'];
161 }

Referenced by getTableData().

+ Here is the caller graph for this function:

◆ fetchObjectName()

ilCmiXapiStatementsReport::fetchObjectName (   $statement)
protected

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

148 {
149 $ret = urldecode($statement['object']['id']);
150 $lang = self::getLanguageEntry($statement['object']['definition']['name'], $this->userLanguage);
151 $langEntry = $lang['languageEntry'];
152 if ($langEntry != '') {
153 $ret = $langEntry;
154 }
155 return $ret;
156 }
static getLanguageEntry($obj, $userLanguage)
$ret
Definition: parser.php:6
$lang
Definition: xapiexit.php:8

References $lang, $ret, and getLanguageEntry().

Referenced by getTableData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fetchVerbDisplay()

ilCmiXapiStatementsReport::fetchVerbDisplay (   $statement)
protected

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

139 {
140 try {
141 return $statement['verb']['display']['en-US'];
142 } catch (Exception $e) {
143 return $statement['verb']['id'];
144 }
145 }

References Vendor\Package\$e.

Referenced by getTableData().

+ Here is the caller graph for this function:

◆ fetchVerbId()

ilCmiXapiStatementsReport::fetchVerbId (   $statement)
protected

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

134 {
135 return $statement['verb']['id'];
136 }

Referenced by getTableData().

+ Here is the caller graph for this function:

◆ getLanguageEntry()

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

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

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

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

Referenced by fetchObjectName().

+ Here is the caller graph for this function:

◆ getMaxCount()

ilCmiXapiStatementsReport::getMaxCount ( )

◆ 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.

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 }
$index
Definition: metadata.php:128
$data
Definition: storeScorm.php:23

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

+ 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: