<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
*/
public static function documentLoader($url)
{
+ switch ($url) {
+ case 'https://w3id.org/security/v1':
+ $url = DI::baseUrl() . '/static/security-v1.jsonld';
+ break;
+ case 'https://w3id.org/identity/v1':
+ $url = DI::baseUrl() . '/static/identity-v1.jsonld';
+ break;
+ case 'https://www.w3.org/ns/activitystreams':
+ $url = DI::baseUrl() . '/static/activitystreams.jsonld';
+ break;
+ default:
+ Logger::info('Got url', ['url' =>$url]);
+ break;
+ }
+
$recursion = 0;
$x = debug_backtrace();
}
catch (Exception $e) {
$compacted = false;
- Logger::error('compacting error');
- // Sooner or later we should log some details as well - but currently this leads to memory issues
- // Logger::log('compacting error:' . substr(print_r($e, true), 0, 10000), Logger::DEBUG);
+ Logger::notice('compacting error', ['line' => $e->getLine(), 'exception' => $e]);
}
$json = json_decode(json_encode($compacted, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), true);
*
* @return array fetched element
*/
- public static function fetchElementArray($array, $element, $key = '@id')
+ public static function fetchElementArray($array, $element, $key = null, $type = null, $type_value = null)
{
- if (empty($array)) {
- return null;
- }
-
if (!isset($array[$element])) {
return null;
}
// If it isn't an array yet, make it to one
- if (!is_int(key($array[$element]))) {
+ if (!is_array($array[$element]) || !is_int(key($array[$element]))) {
$array[$element] = [$array[$element]];
}
$elements = [];
foreach ($array[$element] as $entry) {
- if (!is_array($entry)) {
- $elements[] = $entry;
+ if (!is_array($entry) || is_null($key)) {
+ $item = $entry;
} elseif (isset($entry[$key])) {
- $elements[] = $entry[$key];
- } elseif (!empty($entry) || !is_array($entry)) {
- $elements[] = $entry;
+ $item = $entry[$key];
+ }
+
+ if (isset($item) && (is_null($type) || is_null($type_value) || isset($item[$type]) && $item[$type] == $type_value)) {
+ $elements[] = $item;
}
}