19 declare(strict_types=1);
54 $this->userLanguage = $DIC->user()->getLanguage();
56 $responseBody = json_decode($responseBody,
true);
66 if (is_array($responseBody) && count($responseBody) > 0) {
67 $this->response = current($responseBody);
68 $this->statements = $this->response[
'statements'];
69 $this->maxCount = $this->response[
'maxcount'];
71 $this->response = array();
72 $this->statements = array();
77 $this->cmixUsersByIdent[$cmixUser->getUsrIdent()] = $cmixUser;
96 return (
bool) count($this->statements);
106 foreach ($this->statements as $statement) {
114 'statement' => json_encode($statement, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
126 return $statement[
'timestamp'];
131 if ($this->isMixedContentType) {
132 $ident = str_replace(
'mailto:',
'', $statement[
'actor'][
'mbox']);
134 $ident = $statement[
'actor'][
'account'][
'name'];
137 $ident = $statement[
'actor'][
'account'][
'name'];
139 $ident = str_replace(
'mailto:',
'', $statement[
'actor'][
'mbox']);
141 return $this->cmixUsersByIdent[$ident];
146 return $statement[
'verb'][
'id'];
152 return $statement[
'verb'][
'display'][
'en-US'];
154 return $statement[
'verb'][
'id'];
161 $ret = urldecode($statement[
'object'][
'id']);
162 if (array_key_exists(
'definition', $statement[
'object'])) {
163 if (array_key_exists(
'name', $statement[
'object'][
'definition'])) {
164 $lang = self::getLanguageEntry($statement[
'object'][
'definition'][
'name'], $this->userLanguage);
165 if (array_key_exists(
'languageEntry',
$lang)) {
166 $langEntry =
$lang[
'languageEntry'];
167 if ($langEntry !=
'') {
183 return $statement[
'object'][
'definition'][
'description'][
'en-US'];
197 $defaultLanguageEntry =
'';
198 $defaultLanguageExists =
false;
200 $firstLanguageEntry =
'';
201 $firstLanguageExists =
false;
203 $userLanguageEntry =
'';
204 $userLanguageExists =
false;
208 foreach ($obj as $k => $v) {
210 if ($firstLanguage ==
'') {
211 $f =
'/^[a-z]+-?.*/';
212 if (preg_match(
$f, $k)) {
213 $firstLanguageExists =
true;
215 $firstLanguageEntry = $v;
220 $defaultLanguageExists =
true;
221 $defaultLanguageEntry = $v;
224 $p =
'/^' . $userLanguage .
'-?./';
226 if (preg_match($p, $k)) {
227 $userLanguageExists =
true;
229 $userLanguageEntry = $v;
235 if ($userLanguageExists) {
237 $languageEntry = $userLanguageEntry;
238 } elseif ($defaultLanguageExists) {
240 $languageEntry = $userLanguageEntry;
241 } elseif ($firstLanguageExists) {
242 $language = $firstLanguage;
243 $languageEntry = $firstLanguageEntry;
245 return [
'language' => $language,
'languageEntry' => $languageEntry];
__construct(string $responseBody, int $objId)
fetchDate(array $statement)
fetchVerbDisplay(array $statement)
static getInstance(int $a_id=0, bool $a_reference=true)
static getInstance(int $a_id=0, bool $a_reference=true)
fetchObjectInfo(array $statement)
static getLanguageEntry(array $obj, string $userLanguage)
with multiple language keys like [de-DE] [en-US]
fetchActor(array $statement)
fetchVerbId(array $statement)
fetchObjectName(array $statement)
static _lookupType(int $id, bool $reference=false)
static getUsersForObject(int $objId, bool $asUsrId=false)