From fd4fe78b17b495874419b987b0a296db70329c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Noack?= <noack@data-quest.de> Date: Wed, 23 Mar 2022 13:00:12 +0000 Subject: [PATCH] Resolve "Courseware: EmbedBlock ignoriert Proxy Einstellungen" --- lib/models/Courseware/BlockTypes/Embed.php | 28 +++++++--------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/lib/models/Courseware/BlockTypes/Embed.php b/lib/models/Courseware/BlockTypes/Embed.php index a6496c66543..2882443a408 100755 --- a/lib/models/Courseware/BlockTypes/Embed.php +++ b/lib/models/Courseware/BlockTypes/Embed.php @@ -53,19 +53,19 @@ class Embed extends BlockType $oembedRequest = $this->buildOembedRequest($payload['source'], $payload['url']); $payload['oembed_request'] = $oembedRequest; - $request = $this->curlGet($oembedRequest); $payload['oembed-unauthorized'] = false; $payload['oembed-not-found'] = false; - - if ('Unauthorized' == $request) { + $payload['oembed'] = ''; + $payload['request'] = ''; + $request = \FileManager::fetchURLMetadata($oembedRequest); + if ($request['response_code'] === 200) { + $payload['request'] = file_get_contents($oembedRequest, false, get_default_http_stream_context($oembedRequest)); + $payload['oembed'] = json_decode($payload['request']); + } elseif ($request['response_code'] === 401) { $payload['oembed_unauthorized'] = true; - } - if ('Not Found' == $request) { + } else { $payload['oembed_not_found'] = true; } - $payload['oembed'] = json_decode($request); - $payload['request'] = $request; - return $payload; } @@ -95,18 +95,6 @@ class Embed extends BlockType return $endPoints[$source].'?url='.rawurlencode($url).'&format=json'; } - private function curlGet($url) - { - $curl = curl_init($url); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($curl, CURLOPT_TIMEOUT, 30); - curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); - $return = curl_exec($curl); - curl_close($curl); - - return $return; - } - public static function getCategories(): array { return ['external']; -- GitLab