From b7c14803b228505e277b1a313f720969f1740718 Mon Sep 17 00:00:00 2001
From: Michael Vogel <icarus@dabo.de>
Date: Fri, 6 May 2016 18:27:19 +0200
Subject: [PATCH] The feed header is now displayed even with "hidewall"
 activated

---
 include/dfrn.php | 46 +++++++++++++++++++++++++++-------------------
 1 file changed, 27 insertions(+), 19 deletions(-)

diff --git a/include/dfrn.php b/include/dfrn.php
index 5778d4ba5f..21756b87df 100644
--- a/include/dfrn.php
+++ b/include/dfrn.php
@@ -462,45 +462,53 @@ class dfrn {
 	 */
 	private function add_author($doc, $owner, $authorelement, $public) {
 
+		// Is the profile hidden or shouldn't be published in the net? Then add the "hide" element
+		$r = q("SELECT `id` FROM `profile` INNER JOIN `user` ON `user`.`uid` = `profile`.`uid`
+				WHERE (`hidewall` OR NOT `net-publish`) AND `user`.`uid` = %d",
+			intval($owner['uid']));
+		if ($r)
+			$hidewall = true;
+		else
+			$hidewall = false;
+
 		$author = $doc->createElement($authorelement);
 
-		$namdate = datetime_convert('UTC', 'UTC', $owner['name-date'].'+00:00' , ATOM_TIME);
+		$namdate = datetime_convert('UTC', 'UTC', $owner['name-date'].'+00:00', ATOM_TIME);
 		$uridate = datetime_convert('UTC', 'UTC', $owner['uri-date'].'+00:00', ATOM_TIME);
 		$picdate = datetime_convert('UTC', 'UTC', $owner['avatar-date'].'+00:00', ATOM_TIME);
 
-		$attributes = array("dfrn:updated" => $namdate);
-		xml::add_element($doc, $author, "name", $owner["name"], $attributes);
+		if (!$public OR !$hidewall)
+			$attributes = array("dfrn:updated" => $namdate);
+		else
+			$attributes = array();
 
-		$attributes = array("dfrn:updated" => $namdate);
+		xml::add_element($doc, $author, "name", $owner["name"], $attributes);
 		xml::add_element($doc, $author, "uri", app::get_baseurl().'/profile/'.$owner["nickname"], $attributes);
-
-		$attributes = array("dfrn:updated" => $namdate);
 		xml::add_element($doc, $author, "dfrn:handle", $owner["addr"], $attributes);
 
-		$attributes = array("rel" => "photo", "type" => "image/jpeg", "dfrn:updated" => $picdate,
+		$attributes = array("rel" => "photo", "type" => "image/jpeg",
 					"media:width" => 175, "media:height" => 175, "href" => $owner['photo']);
-		xml::add_element($doc, $author, "link", "", $attributes);
 
-		$attributes = array("rel" => "avatar", "type" => "image/jpeg", "dfrn:updated" => $picdate,
-					"media:width" => 175, "media:height" => 175, "href" => $owner['photo']);
-		xml::add_element($doc, $author, "link", "", $attributes);
+		if (!$public OR !$hidewall)
+			$attributes["dfrn:updated"] = $picdate;
 
-		$birthday = feed_birthday($owner['uid'], $owner['timezone']);
+		xml::add_element($doc, $author, "link", "", $attributes);
 
-		if ($birthday)
-			xml::add_element($doc, $author, "dfrn:birthday", $birthday);
+		$attributes["rel"] = "avatar";
+		xml::add_element($doc, $author, "link", "", $attributes);
 
-		// Is the profile hidden or shouldn't be published in the net? Then add the "hide" element
-		$r = q("SELECT `id` FROM `profile` INNER JOIN `user` ON `user`.`uid` = `profile`.`uid`
-				WHERE (`hidewall` OR NOT `net-publish`) AND `user`.`uid` = %d",
-			intval($owner['uid']));
-		if ($r)
+		if ($hidewall)
 			xml::add_element($doc, $author, "dfrn:hide", "true");
 
 		// The following fields will only be generated if the data isn't meant for a public feed
 		if ($public)
 			return $author;
 
+		$birthday = feed_birthday($owner['uid'], $owner['timezone']);
+
+		if ($birthday)
+			xml::add_element($doc, $author, "dfrn:birthday", $birthday);
+
 		// Only show contact details when we are allowed to
 		$r = q("SELECT `profile`.`about`, `profile`.`name`, `profile`.`homepage`, `user`.`nickname`, `user`.`timezone`,
 				`profile`.`locality`, `profile`.`region`, `profile`.`country-name`, `profile`.`pub_keywords`, `profile`.`dob`
-- 
2.39.5