From c76258c370cd12cd1337a8075d3c7c1c5bb26165 Mon Sep 17 00:00:00 2001
From: Philipp Holzer <admin+github@philipp.info>
Date: Thu, 30 May 2019 13:54:17 +0200
Subject: [PATCH] catching nulls for FileTag

---
 include/text.php             | 4 ++--
 mod/item.php                 | 4 ++--
 src/Model/FileTag.php        | 6 +++---
 src/Module/Filer/SaveTag.php | 2 +-
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/include/text.php b/include/text.php
index eb65334fd9..e4227cd7d0 100644
--- a/include/text.php
+++ b/include/text.php
@@ -186,7 +186,7 @@ function get_cats_and_terms($item)
 	$folders = [];
 	$first = true;
 
-	foreach (FileTag::fileToArray($item['file'], 'category') as $savedFolderName) {
+	foreach (FileTag::fileToArray($item['file'] ?? '', 'category') as $savedFolderName) {
 		$categories[] = [
 			'name' => $savedFolderName,
 			'url' => "#",
@@ -202,7 +202,7 @@ function get_cats_and_terms($item)
 	}
 
 	if (local_user() == $item['uid']) {
-		foreach (FileTag::fileToArray($item['file']) as $savedFolderName) {
+		foreach (FileTag::fileToArray($item['file'] ?? '') as $savedFolderName) {
 			$folders[] = [
 				'name' => $savedFolderName,
 				'url' => "#",
diff --git a/mod/item.php b/mod/item.php
index 7af5c712f6..b064bbce8e 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -27,12 +27,12 @@ use Friendica\Core\Protocol;
 use Friendica\Core\System;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
+use Friendica\Model\Attach;
 use Friendica\Model\Contact;
 use Friendica\Model\Conversation;
 use Friendica\Model\FileTag;
 use Friendica\Model\Item;
 use Friendica\Model\Photo;
-use Friendica\Model\Attach;
 use Friendica\Model\Term;
 use Friendica\Protocol\Diaspora;
 use Friendica\Protocol\Email;
@@ -337,7 +337,7 @@ function item_post(App $a) {
 	$categories = FileTag::listToFile(trim(defaults($_REQUEST, 'category', '')), 'category');
 	$categories_new = $categories;
 
-	if (!empty($filedas)) {
+	if (!empty($filedas) && is_array($filedas)) {
 		// append the fileas stuff to the new categories list
 		$categories .= FileTag::arrayToFile($filedas);
 	}
diff --git a/src/Model/FileTag.php b/src/Model/FileTag.php
index c743cb1278..f4d04634fa 100644
--- a/src/Model/FileTag.php
+++ b/src/Model/FileTag.php
@@ -133,7 +133,7 @@ class FileTag
 	 * @return string       A list of file tags.
 	 * @deprecated since 2019.06 use arrayToFile() instead
 	 */
-	public static function listToFile($list, $type = 'file')
+	public static function listToFile(string $list, string $type = 'file')
 	{
 		$list_array = explode(',', $list);
 
@@ -150,7 +150,7 @@ class FileTag
 	 * @return string       Comma delimited list of tag names.
 	 * @deprecated since 2019.06 use fileToArray() instead
 	 */
-	public static function fileToList($file, $type = 'file')
+	public static function fileToList(string $file, $type = 'file')
 	{
 		return implode(',', self::fileToArray($file, $type));
 	}
@@ -166,7 +166,7 @@ class FileTag
 	 * @return boolean          A value indicating success or failure.
 	 * @throws \Exception
 	 */
-	public static function updatePconfig($uid, $file_old, $file_new, $type = 'file')
+	public static function updatePconfig(int $uid, string $file_old, string $file_new, string $type = 'file')
 	{
 		if (!intval($uid)) {
 			return false;
diff --git a/src/Module/Filer/SaveTag.php b/src/Module/Filer/SaveTag.php
index aeafdbeb59..08ff1a32d0 100644
--- a/src/Module/Filer/SaveTag.php
+++ b/src/Module/Filer/SaveTag.php
@@ -40,7 +40,7 @@ class SaveTag extends BaseModule
 		}
 
 		// return filer dialog
-		$filetags = PConfig::get(local_user(), 'system', 'filetags');
+		$filetags = PConfig::get(local_user(), 'system', 'filetags', '');
 		$filetags = Model\FileTag::fileToArray($filetags);
 
 		$tpl = Renderer::getMarkupTemplate("filer_dialog.tpl");