From 2a7de4213f5ce4f2272ae5e4fbb16ffce2852c2c Mon Sep 17 00:00:00 2001
From: Hypolite Petovan <hypolite@mrpetovan.com>
Date: Thu, 13 Feb 2020 20:42:15 -0500
Subject: [PATCH] Correctly initialize post actions button template variable

- Address https://github.com/friendica/friendica/issues/7999#issuecomment-586020764
---
 include/conversation.php |  6 +++++-
 src/Object/Post.php      | 24 +++++++++++-------------
 2 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/include/conversation.php b/include/conversation.php
index 3707962576..7d0ec0b724 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -673,7 +673,11 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ
 				$isstarred = "unstarred";
 
 				$lock = false;
-				$likebuttons = false;
+				$likebuttons = [
+					'like'    => null,
+					'dislike' => null,
+					'share'   => null,
+				];
 
 				$body = Item::prepareBody($item, true, $preview);
 
diff --git a/src/Object/Post.php b/src/Object/Post.php
index 7b8f4b00d6..31cbe7a7e1 100644
--- a/src/Object/Post.php
+++ b/src/Object/Post.php
@@ -151,7 +151,11 @@ class Post
 			];
 		}
 		$sparkle = '';
-		$buttons = '';
+		$buttons = [
+			'like'    => null,
+			'dislike' => null,
+			'share'   => null,
+		];
 		$dropping = false;
 		$pinned = '';
 		$pin = false;
@@ -337,10 +341,8 @@ class Post
 		}
 
 		if ($conv->isWritable()) {
-			$buttons = [
-				'like'    => [DI::l10n()->t("I like this \x28toggle\x29"), DI::l10n()->t("like")],
-				'dislike' => [DI::l10n()->t("I don't like this \x28toggle\x29"), DI::l10n()->t("dislike")],
-			];
+			$buttons['like']    = [DI::l10n()->t("I like this \x28toggle\x29")      , DI::l10n()->t("like")];
+			$buttons['dislike'] = [DI::l10n()->t("I don't like this \x28toggle\x29"), DI::l10n()->t("dislike")];
 			if ($shareable) {
 				$buttons['share'] = [DI::l10n()->t('Share this'), DI::l10n()->t('share')];
 			}
@@ -372,18 +374,14 @@ class Post
 		$owner_name_e = $this->getOwnerName();
 
 		// Disable features that aren't available in several networks
-		if (!in_array($item["network"], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA]) && isset($buttons["dislike"])) {
-			unset($buttons["dislike"]);
+		if ($buttons["dislike"] && !in_array($item["network"], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA])) {
+			$buttons["dislike"] = false;
 			$isevent = false;
 			$tagger = '';
 		}
 
-		if (($item["network"] == Protocol::FEED) && isset($buttons["like"])) {
-			unset($buttons["like"]);
-		}
-
-		if (($item["network"] == Protocol::MAIL) && isset($buttons["like"])) {
-			unset($buttons["like"]);
+		if ($buttons["like"] && in_array($item["network"], [Protocol::FEED, Protocol::MAIL])) {
+			$buttons["like"] = false;
 		}
 
 		$tags = Term::populateTagsFromItem($item);