]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/JsonLD.php
Resture previous state
[friendica.git] / src / Util / JsonLD.php
index 25ce74fcc7c1c044cebc7843f953e361e0a4baac..427205958f846d5bfa7ac101d751a88fba0d39bf 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -44,26 +44,38 @@ class JsonLD
        {
                switch ($url) {
                        case 'https://w3id.org/security/v1':
-                               $url = DI::baseUrl() . '/static/security-v1.jsonld';
+                               $url = DI::basePath() . '/static/security-v1.jsonld';
+                               break;
+                       case 'https://w3id.org/security/data-integrity/v1':
+                               $url = DI::basePath() . '/static/security-data-integrity-v1.jsonld';
+                               break;
+                       case 'https://w3id.org/security/multikey/v1':
+                               $url = DI::basePath() . '/static/security-multikey-v1.jsonld';
                                break;
                        case 'https://w3id.org/identity/v1':
-                               $url = DI::baseUrl() . '/static/identity-v1.jsonld';
+                               $url = DI::basePath() . '/static/identity-v1.jsonld';
                                break;
                        case 'https://www.w3.org/ns/activitystreams':
-                               $url = DI::baseUrl() . '/static/activitystreams.jsonld';
+                               $url = DI::basePath() . '/static/activitystreams.jsonld';
                                break;
                        case 'https://funkwhale.audio/ns':
-                               $url = DI::baseUrl() . '/static/funkwhale.audio.jsonld';
+                               $url = DI::basePath() . '/static/funkwhale.audio.jsonld';
+                               break;
+                       case 'http://schema.org':
+                               $url = DI::basePath() . '/static/schema.jsonld';
+                               break;
+                       case 'http://joinmastodon.org/ns':
+                               $url = DI::basePath() . '/static/joinmastodon.jsonld';
                                break;
                        default:
                                switch (parse_url($url, PHP_URL_PATH)) {
                                        case '/schemas/litepub-0.1.jsonld';
-                                               $url = DI::baseUrl() . '/static/litepub-0.1.jsonld';
+                                               $url = DI::basePath() . '/static/litepub-0.1.jsonld';
                                                break;
                                        case '/apschema/v1.2':
                                        case '/apschema/v1.9':
                                        case '/apschema/v1.10':
-                                                       $url = DI::baseUrl() . '/static/apschema.jsonld';
+                                               $url = DI::basePath() . '/static/apschema.jsonld';
                                                break;
                                        default:
                                                Logger::info('Got url', ['url' =>$url]);
@@ -140,7 +152,7 @@ class JsonLD
         * @return array Compacted JSON array
         * @throws Exception
         */
-       public static function compact($json, bool $logfailed = true)
+       public static function compact($json, bool $logfailed = true): array
        {
                jsonld_set_document_loader('Friendica\Util\JsonLD::documentLoader');
 
@@ -203,6 +215,11 @@ class JsonLD
 
                $json = json_decode(json_encode($compacted, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), true);
 
+               if ($json === false) {
+                       Logger::notice('JSON encode->decode failed', ['orig_json' => $orig_json, 'compacted' => $compacted]);
+                       $json = [];
+               }
+
                return $json;
        }