*/
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`