aboutsummaryrefslogtreecommitdiffhomepage
path: root/application
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2020-12-16 14:04:32 +0100
committerArthurHoaro <arthur@hoa.ro>2020-12-16 14:04:32 +0100
commit6a3a78d023aa320138bb88505b58347db268264a (patch)
tree127cbde2d900fb1cf9d2f5999941dfe3d79affbd /application
parente4b8330e459b598328bf250208386c06ec257b08 (diff)
downloadShaarli-6a3a78d023aa320138bb88505b58347db268264a.tar.gz
Shaarli-6a3a78d023aa320138bb88505b58347db268264a.tar.zst
Shaarli-6a3a78d023aa320138bb88505b58347db268264a.zip
Fix: synchronous metadata retrieval is failing in strict mode
Metadata can now only be string or null. Fixes #1653
Diffstat (limited to 'application')
-rw-r--r--application/front/controller/admin/ShaarePublishController.php2
-rw-r--r--application/http/MetadataRetriever.php9
2 files changed, 8 insertions, 3 deletions
diff --git a/application/front/controller/admin/ShaarePublishController.php b/application/front/controller/admin/ShaarePublishController.php
index 4cbfcdc5..fb9cacc2 100644
--- a/application/front/controller/admin/ShaarePublishController.php
+++ b/application/front/controller/admin/ShaarePublishController.php
@@ -227,7 +227,7 @@ class ShaarePublishController extends ShaarliAdminController
227 227
228 protected function buildFormData(array $link, bool $isNew, Request $request): array 228 protected function buildFormData(array $link, bool $isNew, Request $request): array
229 { 229 {
230 $link['tags'] = strlen($link['tags']) > 0 230 $link['tags'] = $link['tags'] !== null && strlen($link['tags']) > 0
231 ? $link['tags'] . $this->container->conf->get('general.tags_separator', ' ') 231 ? $link['tags'] . $this->container->conf->get('general.tags_separator', ' ')
232 : $link['tags'] 232 : $link['tags']
233 ; 233 ;
diff --git a/application/http/MetadataRetriever.php b/application/http/MetadataRetriever.php
index 2e1401ec..cfc72583 100644
--- a/application/http/MetadataRetriever.php
+++ b/application/http/MetadataRetriever.php
@@ -60,10 +60,15 @@ class MetadataRetriever
60 $title = mb_convert_encoding($title, 'utf-8', $charset); 60 $title = mb_convert_encoding($title, 'utf-8', $charset);
61 } 61 }
62 62
63 return [ 63 return array_map([$this, 'cleanMetadata'], [
64 'title' => $title, 64 'title' => $title,
65 'description' => $description, 65 'description' => $description,
66 'tags' => $tags, 66 'tags' => $tags,
67 ]; 67 ]);
68 }
69
70 protected function cleanMetadata($data): ?string
71 {
72 return !is_string($data) || empty(trim($data)) ? null : trim($data);
68 } 73 }
69} 74}