54 $this->userLanguage = $DIC->user()->getLanguage();
56 $responseBody = json_decode($responseBody,
true);
59 $this->contentType = $obj->getContentType();
61 $this->isMixedContentType = $obj->isMixedContentType();
64 if (count($responseBody)) {
65 $this->response = current($responseBody);
66 $this->statements = $this->response[
'statements'];
67 $this->maxCount = $this->response[
'maxcount'];
70 $this->statements = array();
75 $this->cmixUsersByIdent[$cmixUser->getUsrIdent()] = $cmixUser;
91 return (
bool) count($this->statements);
98 foreach ($this->statements as
$index => $statement) {
106 'statement' => json_encode($statement, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
115 return $statement[
'timestamp'];
120 if ($this->isMixedContentType) {
121 $ident = str_replace(
'mailto:',
'', $statement[
'actor'][
'mbox']);
123 $ident = $statement[
'actor'][
'account'][
'name'];
126 $ident = $statement[
'actor'][
'account'][
'name'];
128 $ident = str_replace(
'mailto:',
'', $statement[
'actor'][
'mbox']);
130 return $this->cmixUsersByIdent[$ident];
135 return $statement[
'verb'][
'id'];
141 return $statement[
'verb'][
'display'][
'en-US'];
143 return $statement[
'verb'][
'id'];
149 $ret = urldecode($statement[
'object'][
'id']);
150 $lang = self::getLanguageEntry($statement[
'object'][
'definition'][
'name'], $this->userLanguage);
151 $langEntry =
$lang[
'languageEntry'];
152 if ($langEntry !=
'') {
160 return $statement[
'object'][
'definition'][
'description'][
'en-US'];
171 $defaultLanguageEntry =
'';
172 $defaultLanguageExists =
false;
174 $firstLanguageEntry =
'';
175 $firstLanguageExists =
false;
177 $userLanguageEntry =
'';
178 $userLanguageExists =
false;
182 foreach ($obj as $k => $v) {
184 if ($firstLanguage ==
'') {
185 $f =
'/^[a-z]+\-?.*/';
186 if (preg_match(
$f, $k)) {
187 $firstLanguageExists =
true;
189 $firstLanguageEntry = $v;
194 $defaultLanguageExists =
true;
195 $defaultLanguageEntry = $v;
200 if (preg_match($p, $k)) {
201 $userLanguageExists =
true;
203 $userLanguageEntry = $v;
209 if ($userLanguageExists) {
211 $languageEntry = $userLanguageEntry;
212 } elseif ($defaultLanguageExists) {
214 $languageEntry = $userLanguageEntry;
215 } elseif ($firstLanguageExists) {
216 $language = $firstLanguage;
217 $languageEntry = $firstLanguageEntry;
219 return [
'language' => $language,
'languageEntry' => $languageEntry];
static getUsersForObject($objId, $asUsrId=false)
static getLanguageEntry($obj, $userLanguage)
fetchObjectName($statement)
__construct(string $responseBody, $obj)
fetchObjectInfo($statement)
fetchVerbDisplay($statement)