- fixed E_NOTICE in mod/follow.php
- fixed 2 E_NOTICE in src/Protocol/Diaspora.php
- added more type-hints for `array` type where known

Signed-off-by: Roland Häder <roland@mxchange.org>
This commit is contained in:
Roland Häder 2018-07-19 13:07:14 +02:00 committed by Hypolite Petovan
parent 732da04ced
commit b05b96d04a
2 changed files with 60 additions and 55 deletions

View File

@ -19,7 +19,7 @@ function follow_post(App $a)
// NOTREACHED // NOTREACHED
} }
if ($_REQUEST['cancel']) { if (isset($_REQUEST['cancel'])) {
goaway($_SESSION['return_url']); goaway($_SESSION['return_url']);
} }
@ -166,10 +166,13 @@ function follow_content(App $a)
'$url_label' => L10n::t('Profile URL'), '$url_label' => L10n::t('Profile URL'),
'$myaddr' => $myaddr, '$myaddr' => $myaddr,
'$request' => $request, '$request' => $request,
/*'$location' => Friendica\Content\Text\BBCode::::convert($r[0]['location']), /*
* @TODO commented out?
'$location' => Friendica\Content\Text\BBCode::::convert($r[0]['location']),
'$location_label'=> L10n::t('Location:'), '$location_label'=> L10n::t('Location:'),
'$about' => Friendica\Content\Text\BBCode::::convert($r[0]['about'], false, false), '$about' => Friendica\Content\Text\BBCode::::convert($r[0]['about'], false, false),
'$about_label' => L10n::t('About:'),*/ '$about_label' => L10n::t('About:'),
*/
'$keywords' => $r[0]['keywords'], '$keywords' => $r[0]['keywords'],
'$keywords_label'=> L10n::t('Tags:') '$keywords_label'=> L10n::t('Tags:')
]); ]);

View File

@ -33,6 +33,7 @@ use Friendica\Util\Network;
use Friendica\Util\XML; use Friendica\Util\XML;
use Friendica\Util\Map; use Friendica\Util\Map;
use dba; use dba;
use stdClass;
use SimpleXMLElement; use SimpleXMLElement;
require_once 'include/dba.php'; require_once 'include/dba.php';
@ -54,13 +55,14 @@ class Diaspora
* *
* @return array of relay servers * @return array of relay servers
*/ */
public static function relayList($item_id, $contacts = []) public static function relayList($item_id, array $contacts = [])
{ {
$serverlist = []; $serverlist = [];
// Fetching relay servers // Fetching relay servers
$serverdata = Config::get("system", "relay_server"); $serverdata = Config::get("system", "relay_server");
if ($serverdata != "") {
if (!empty($serverdata)) {
$servers = explode(",", $serverdata); $servers = explode(",", $serverdata);
foreach ($servers as $server) { foreach ($servers as $server) {
$serverlist[$server] = trim($server); $serverlist[$server] = trim($server);
@ -171,7 +173,7 @@ class Diaspora
* @param string $server_url The url of the server * @param string $server_url The url of the server
* @param array $network_fields Optional network specific fields * @param array $network_fields Optional network specific fields
*/ */
public static function setRelayContact($server_url, $network_fields = []) public static function setRelayContact($server_url, array $network_fields = [])
{ {
$fields = ['created' => DateTimeFormat::utcNow(), $fields = ['created' => DateTimeFormat::utcNow(),
'name' => 'relay', 'nick' => 'relay', 'name' => 'relay', 'nick' => 'relay',
@ -204,7 +206,7 @@ class Diaspora
* *
* @return array of relay servers * @return array of relay servers
*/ */
public static function participantsForThread($thread, $contacts) public static function participantsForThread($thread, array $contacts)
{ {
$r = dba::p("SELECT `contact`.`batch`, `contact`.`id`, `contact`.`name`, `contact`.`network`, $r = dba::p("SELECT `contact`.`batch`, `contact`.`id`, `contact`.`name`, `contact`.`network`,
`fcontact`.`batch` AS `fbatch`, `fcontact`.`network` AS `fnetwork` FROM `participation` `fcontact`.`batch` AS `fbatch`, `fcontact`.`network` AS `fnetwork` FROM `participation`
@ -371,7 +373,7 @@ class Diaspora
* 'author' -> author diaspora handle * 'author' -> author diaspora handle
* 'key' -> author public key (converted to pkcs#8) * 'key' -> author public key (converted to pkcs#8)
*/ */
public static function decodeRaw($importer, $raw) public static function decodeRaw(array $importer, $raw)
{ {
$data = json_decode($raw); $data = json_decode($raw);
@ -454,7 +456,7 @@ class Diaspora
* 'author' -> author diaspora handle * 'author' -> author diaspora handle
* 'key' -> author public key (converted to pkcs#8) * 'key' -> author public key (converted to pkcs#8)
*/ */
public static function decode($importer, $xml) public static function decode(array $importer, $xml)
{ {
$public = false; $public = false;
$basedom = XML::parseString($xml); $basedom = XML::parseString($xml);
@ -619,7 +621,7 @@ class Diaspora
* *
* @return int The message id of the generated message, "true" or "false" if there was an error * @return int The message id of the generated message, "true" or "false" if there was an error
*/ */
public static function dispatch($importer, $msg, $fields = null) public static function dispatch(array $importer, $msg, $fields = null)
{ {
// The sender is the handle of the contact that sent the message. // The sender is the handle of the contact that sent the message.
// This will often be different with relayed messages (for example "like" and "comment") // This will often be different with relayed messages (for example "like" and "comment")
@ -1090,7 +1092,7 @@ class Diaspora
* *
* @return bool is the contact allowed to post? * @return bool is the contact allowed to post?
*/ */
private static function postAllow($importer, $contact, $is_comment = false) private static function postAllow(array $importer, array $contact, $is_comment = false)
{ {
/* /*
* Perhaps we were already sharing with this person. Now they're sharing with us. * Perhaps we were already sharing with this person. Now they're sharing with us.
@ -1140,7 +1142,7 @@ class Diaspora
* *
* @return array The contact data * @return array The contact data
*/ */
private static function allowedContactByHandle($importer, $handle, $is_comment = false) private static function allowedContactByHandle(array $importer, $handle, $is_comment = false)
{ {
$contact = self::contactByHandle($importer["uid"], $handle); $contact = self::contactByHandle($importer["uid"], $handle);
if (!$contact) { if (!$contact) {
@ -1185,7 +1187,7 @@ class Diaspora
* @param array $item The item array * @param array $item The item array
* @return void * @return void
*/ */
private static function fetchGuid($item) private static function fetchGuid(array $item)
{ {
$expression = "=diaspora://.*?/post/([0-9A-Za-z\-_@.:]{15,254}[0-9A-Za-z])=ism"; $expression = "=diaspora://.*?/post/([0-9A-Za-z\-_@.:]{15,254}[0-9A-Za-z])=ism";
preg_replace_callback( preg_replace_callback(
@ -1378,7 +1380,7 @@ class Diaspora
* *
* @return array the item record * @return array the item record
*/ */
private static function parentItem($uid, $guid, $author, $contact) private static function parentItem($uid, $guid, $author, array $contact)
{ {
$fields = ['id', 'parent', 'body', 'wall', 'uri', 'guid', 'private', 'origin', $fields = ['id', 'parent', 'body', 'wall', 'uri', 'guid', 'private', 'origin',
'author-name', 'author-link', 'author-avatar', 'author-name', 'author-link', 'author-avatar',
@ -1493,7 +1495,7 @@ class Diaspora
* *
* @return bool Success * @return bool Success
*/ */
private static function receiveAccountMigration($importer, $data) private static function receiveAccountMigration(array $importer, stdClass $data)
{ {
$old_handle = notags(unxmlify($data->author)); $old_handle = notags(unxmlify($data->author));
$new_handle = notags(unxmlify($data->profile->author)); $new_handle = notags(unxmlify($data->profile->author));
@ -1648,7 +1650,7 @@ class Diaspora
* *
* @return int The message id of the generated comment or "false" if there was an error * @return int The message id of the generated comment or "false" if there was an error
*/ */
private static function receiveComment($importer, $sender, $data, $xml) private static function receiveComment(array $importer, $sender, stdClass $data, $xml)
{ {
$author = notags(unxmlify($data->author)); $author = notags(unxmlify($data->author));
$guid = notags(unxmlify($data->guid)); $guid = notags(unxmlify($data->guid));
@ -1766,7 +1768,7 @@ class Diaspora
* *
* @return bool "true" if it was successful * @return bool "true" if it was successful
*/ */
private static function receiveConversationMessage($importer, $contact, $data, $msg, $mesg, $conversation) private static function receiveConversationMessage(array $importer, array $contact, stdClass $data, $msg, $mesg, $conversation)
{ {
$author = notags(unxmlify($data->author)); $author = notags(unxmlify($data->author));
$guid = notags(unxmlify($data->guid)); $guid = notags(unxmlify($data->guid));
@ -1859,7 +1861,7 @@ class Diaspora
* *
* @return bool Success * @return bool Success
*/ */
private static function receiveConversation($importer, $msg, $data) private static function receiveConversation(array $importer, $msg, stdClass $data)
{ {
$author = notags(unxmlify($data->author)); $author = notags(unxmlify($data->author));
$guid = notags(unxmlify($data->guid)); $guid = notags(unxmlify($data->guid));
@ -1933,7 +1935,7 @@ class Diaspora
* *
* @return int The message id of the generated like or "false" if there was an error * @return int The message id of the generated like or "false" if there was an error
*/ */
private static function receiveLike($importer, $sender, $data) private static function receiveLike(array $importer, $sender, stdClass $data)
{ {
$author = notags(unxmlify($data->author)); $author = notags(unxmlify($data->author));
$guid = notags(unxmlify($data->guid)); $guid = notags(unxmlify($data->guid));
@ -2046,7 +2048,7 @@ class Diaspora
* *
* @return bool Success? * @return bool Success?
*/ */
private static function receiveMessage($importer, $data) private static function receiveMessage(array $importer, stdClass $data)
{ {
$author = notags(unxmlify($data->author)); $author = notags(unxmlify($data->author));
$guid = notags(unxmlify($data->guid)); $guid = notags(unxmlify($data->guid));
@ -2130,7 +2132,7 @@ class Diaspora
* *
* @return bool always true * @return bool always true
*/ */
private static function receiveParticipation($importer, $data) private static function receiveParticipation(array $importer, stdClass $data)
{ {
$author = strtolower(notags(unxmlify($data->author))); $author = strtolower(notags(unxmlify($data->author)));
$parent_guid = notags(unxmlify($data->parent_guid)); $parent_guid = notags(unxmlify($data->parent_guid));
@ -2194,7 +2196,7 @@ class Diaspora
* *
* @return bool always true * @return bool always true
*/ */
private static function receivePhoto($importer, $data) private static function receivePhoto(array $importer, stdClass $data)
{ {
// There doesn't seem to be a reason for this function, // There doesn't seem to be a reason for this function,
// since the photo data is transmitted in the status message as well // since the photo data is transmitted in the status message as well
@ -2209,7 +2211,7 @@ class Diaspora
* *
* @return bool always true * @return bool always true
*/ */
private static function receivePollParticipation($importer, $data) private static function receivePollParticipation(array $importer, stdClass $data)
{ {
// We don't support polls by now // We don't support polls by now
return true; return true;
@ -2223,7 +2225,7 @@ class Diaspora
* *
* @return bool Success * @return bool Success
*/ */
private static function receiveProfile($importer, $data) private static function receiveProfile(array $importer, stdClass $data)
{ {
$author = strtolower(notags(unxmlify($data->author))); $author = strtolower(notags(unxmlify($data->author)));
@ -2316,7 +2318,7 @@ class Diaspora
* @param array $contact The contact that send the request * @param array $contact The contact that send the request
* @return void * @return void
*/ */
private static function receiveRequestMakeFriend($importer, $contact) private static function receiveRequestMakeFriend(array $importer, array $contact)
{ {
$a = get_app(); $a = get_app();
@ -2337,7 +2339,7 @@ class Diaspora
* *
* @return bool Success * @return bool Success
*/ */
private static function receiveContactRequest($importer, $data) private static function receiveContactRequest(array $importer, stdClass $data)
{ {
$author = unxmlify($data->author); $author = unxmlify($data->author);
$recipient = unxmlify($data->recipient); $recipient = unxmlify($data->recipient);
@ -2599,7 +2601,7 @@ class Diaspora
* *
* @return int the message id * @return int the message id
*/ */
private static function receiveReshare($importer, $data, $xml) private static function receiveReshare(array $importer, stdClass $data, $xml)
{ {
$author = notags(unxmlify($data->author)); $author = notags(unxmlify($data->author));
$guid = notags(unxmlify($data->guid)); $guid = notags(unxmlify($data->guid));
@ -2691,7 +2693,7 @@ class Diaspora
* *
* @return bool success * @return bool success
*/ */
private static function itemRetraction($importer, $contact, $data) private static function itemRetraction(array $importer, array $contact, stdClass $data)
{ {
$author = notags(unxmlify($data->author)); $author = notags(unxmlify($data->author));
$target_guid = notags(unxmlify($data->target_guid)); $target_guid = notags(unxmlify($data->target_guid));
@ -2755,7 +2757,7 @@ class Diaspora
* *
* @return bool Success * @return bool Success
*/ */
private static function receiveRetraction($importer, $sender, $data) private static function receiveRetraction(array $importer, $sender, stdClass $data)
{ {
$target_type = notags(unxmlify($data->target_type)); $target_type = notags(unxmlify($data->target_type));
@ -2796,7 +2798,7 @@ class Diaspora
* *
* @return int The message id of the newly created item * @return int The message id of the newly created item
*/ */
private static function receiveStatusMessage($importer, $data, $xml) private static function receiveStatusMessage(array $importer, stdClass $data, $xml)
{ {
$author = notags(unxmlify($data->author)); $author = notags(unxmlify($data->author));
$guid = notags(unxmlify($data->guid)); $guid = notags(unxmlify($data->guid));
@ -2916,9 +2918,9 @@ class Diaspora
* *
* @return string the handle in the format user@domain.tld * @return string the handle in the format user@domain.tld
*/ */
private static function myHandle($contact) private static function myHandle(array $contact)
{ {
if ($contact["addr"] != "") { if (!empty($contact["addr"])) {
return $contact["addr"]; return $contact["addr"];
} }
@ -2930,7 +2932,7 @@ class Diaspora
$nick = $contact["nick"]; $nick = $contact["nick"];
} }
return $nick."@".substr(System::baseUrl(), strpos(System::baseUrl(), "://") + 3); return $nick . "@" . substr(System::baseUrl(), strpos(System::baseUrl(), "://") + 3);
} }
@ -2945,7 +2947,7 @@ class Diaspora
* *
* @return string The encrypted data * @return string The encrypted data
*/ */
public static function encodePrivateData($msg, $user, $contact, $prvkey, $pubkey) public static function encodePrivateData($msg, array $user, array $contact, $prvkey, $pubkey)
{ {
logger("Message: ".$msg, LOGGER_DATA); logger("Message: ".$msg, LOGGER_DATA);
@ -2983,7 +2985,7 @@ class Diaspora
* *
* @return string The envelope * @return string The envelope
*/ */
public static function buildMagicEnvelope($msg, $user) public static function buildMagicEnvelope($msg, array $user)
{ {
$b64url_data = base64url_encode($msg); $b64url_data = base64url_encode($msg);
$data = str_replace(["\n", "\r", " ", "\t"], ["", "", "", ""], $b64url_data); $data = str_replace(["\n", "\r", " ", "\t"], ["", "", "", ""], $b64url_data);
@ -3026,7 +3028,7 @@ class Diaspora
* *
* @return string The message that will be transmitted to other servers * @return string The message that will be transmitted to other servers
*/ */
public static function buildMessage($msg, $user, $contact, $prvkey, $pubkey, $public = false) public static function buildMessage($msg, array $user, array $contact, $prvkey, $pubkey, $public = false)
{ {
// The message is put into an envelope with the sender's signature // The message is put into an envelope with the sender's signature
$envelope = self::buildMagicEnvelope($msg, $user); $envelope = self::buildMagicEnvelope($msg, $user);
@ -3070,7 +3072,7 @@ class Diaspora
* *
* @return int Result of the transmission * @return int Result of the transmission
*/ */
public static function transmit($owner, $contact, $envelope, $public_batch, $queue_run = false, $guid = "", $no_queue = false) public static function transmit(array $owner, array $contact, $envelope, $public_batch, $queue_run = false, $guid = "", $no_queue = false)
{ {
$a = get_app(); $a = get_app();
@ -3161,7 +3163,7 @@ class Diaspora
* *
* @return int Result of the transmission * @return int Result of the transmission
*/ */
private static function buildAndTransmit($owner, $contact, $type, $message, $public_batch = false, $guid = "", $spool = false) private static function buildAndTransmit(array $owner, array $contact, $type, $message, $public_batch = false, $guid = "", $spool = false)
{ {
$msg = self::buildPostXml($type, $message); $msg = self::buildPostXml($type, $message);
@ -3169,7 +3171,7 @@ class Diaspora
logger('send guid '.$guid, LOGGER_DEBUG); logger('send guid '.$guid, LOGGER_DEBUG);
// Fallback if the private key wasn't transmitted in the expected field // Fallback if the private key wasn't transmitted in the expected field
if ($owner['uprvkey'] == "") { if (empty($owner['uprvkey'])) {
$owner['uprvkey'] = $owner['prvkey']; $owner['uprvkey'] = $owner['prvkey'];
} }
@ -3195,7 +3197,7 @@ class Diaspora
* *
* @return int The result of the transmission * @return int The result of the transmission
*/ */
private static function sendParticipation($contact, $item) private static function sendParticipation(array $contact, array $item)
{ {
// Don't send notifications for private postings // Don't send notifications for private postings
if ($item['private']) { if ($item['private']) {
@ -3244,7 +3246,7 @@ class Diaspora
* *
* @return int The result of the transmission * @return int The result of the transmission
*/ */
public static function sendAccountMigration($owner, $contact, $uid) public static function sendAccountMigration(array $owner, array $contact, $uid)
{ {
$old_handle = PConfig::get($uid, 'system', 'previous_addr'); $old_handle = PConfig::get($uid, 'system', 'previous_addr');
$profile = self::createProfileData($uid); $profile = self::createProfileData($uid);
@ -3269,7 +3271,7 @@ class Diaspora
* *
* @return int The result of the transmission * @return int The result of the transmission
*/ */
public static function sendShare($owner, $contact) public static function sendShare(array $owner, array $contact)
{ {
/** /**
* @todo support the different possible combinations of "following" and "sharing" * @todo support the different possible combinations of "following" and "sharing"
@ -3310,7 +3312,7 @@ class Diaspora
* *
* @return int The result of the transmission * @return int The result of the transmission
*/ */
public static function sendUnshare($owner, $contact) public static function sendUnshare(array $owner, array $contact)
{ {
$message = ["author" => self::myHandle($owner), $message = ["author" => self::myHandle($owner),
"recipient" => $contact["addr"], "recipient" => $contact["addr"],
@ -3502,7 +3504,7 @@ class Diaspora
* 'type' -> Message type ("status_message" or "reshare") * 'type' -> Message type ("status_message" or "reshare")
* 'message' -> Array of XML elements of the status * 'message' -> Array of XML elements of the status
*/ */
public static function buildStatus($item, $owner) public static function buildStatus(array $item, array $owner)
{ {
$cachekey = "diaspora:buildStatus:".$item['guid']; $cachekey = "diaspora:buildStatus:".$item['guid'];
@ -3616,7 +3618,7 @@ class Diaspora
* *
* @return int The result of the transmission * @return int The result of the transmission
*/ */
public static function sendStatus($item, $owner, $contact, $public_batch = false) public static function sendStatus(array $item, array $owner, array $contact, $public_batch = false)
{ {
$status = self::buildStatus($item, $owner); $status = self::buildStatus($item, $owner);
@ -3631,7 +3633,7 @@ class Diaspora
* *
* @return array The data for a "like" * @return array The data for a "like"
*/ */
private static function constructLike($item, $owner) private static function constructLike(array $item, array $owner)
{ {
$parent = Item::selectFirst(['guid', 'uri', 'parent-uri'], ['uri' => $item["thr-parent"]]); $parent = Item::selectFirst(['guid', 'uri', 'parent-uri'], ['uri' => $item["thr-parent"]]);
if (!DBM::is_result($parent)) { if (!DBM::is_result($parent)) {
@ -3662,7 +3664,7 @@ class Diaspora
* *
* @return array The data for an "EventParticipation" * @return array The data for an "EventParticipation"
*/ */
private static function constructAttend($item, $owner) private static function constructAttend(array $item, array $owner)
{ {
$parent = Item::selectFirst(['guid', 'uri', 'parent-uri'], ['uri' => $item["thr-parent"]]); $parent = Item::selectFirst(['guid', 'uri', 'parent-uri'], ['uri' => $item["thr-parent"]]);
if (!DBM::is_result($parent)) { if (!DBM::is_result($parent)) {
@ -3699,7 +3701,7 @@ class Diaspora
* *
* @return array The data for a comment * @return array The data for a comment
*/ */
private static function constructComment($item, $owner) private static function constructComment(array $item, array $owner)
{ {
$cachekey = "diaspora:constructComment:".$item['guid']; $cachekey = "diaspora:constructComment:".$item['guid'];
@ -3743,7 +3745,7 @@ class Diaspora
* *
* @return int The result of the transmission * @return int The result of the transmission
*/ */
public static function sendFollowup($item, $owner, $contact, $public_batch = false) public static function sendFollowup(array $item, array $owner, array $contact, $public_batch = false)
{ {
if (in_array($item['verb'], [ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE])) { if (in_array($item['verb'], [ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE])) {
$message = self::constructAttend($item, $owner); $message = self::constructAttend($item, $owner);
@ -3773,7 +3775,7 @@ class Diaspora
* *
* @return string The message * @return string The message
*/ */
private static function messageFromSignature($item, $signature) private static function messageFromSignature(array $item, array $signature)
{ {
// Split the signed text // Split the signed text
$signed_parts = explode(";", $signature['signed_text']); $signed_parts = explode(";", $signature['signed_text']);
@ -3823,7 +3825,7 @@ class Diaspora
* *
* @return int The result of the transmission * @return int The result of the transmission
*/ */
public static function sendRelay($item, $owner, $contact, $public_batch = false) public static function sendRelay(array $item, array $owner, array $contact, $public_batch = false)
{ {
if ($item["deleted"]) { if ($item["deleted"]) {
return self::sendRetraction($item, $owner, $contact, $public_batch, true); return self::sendRetraction($item, $owner, $contact, $public_batch, true);
@ -3893,7 +3895,7 @@ class Diaspora
* *
* @return int The result of the transmission * @return int The result of the transmission
*/ */
public static function sendRetraction($item, $owner, $contact, $public_batch = false, $relay = false) public static function sendRetraction(array $item, array $owner, array $contact, $public_batch = false, $relay = false)
{ {
$itemaddr = self::handleFromContact($item["contact-id"], $item["author-id"]); $itemaddr = self::handleFromContact($item["contact-id"], $item["author-id"]);
@ -3925,7 +3927,7 @@ class Diaspora
* *
* @return int The result of the transmission * @return int The result of the transmission
*/ */
public static function sendMail($item, $owner, $contact) public static function sendMail(array $item, array $owner, array $contact)
{ {
$myaddr = self::myHandle($owner); $myaddr = self::myHandle($owner);
@ -4166,7 +4168,7 @@ class Diaspora
* *
* @return bool Success * @return bool Success
*/ */
public static function storeLikeSignature($contact, $post_id) public static function storeLikeSignature(array $contact, $post_id)
{ {
// Is the contact the owner? Then fetch the private key // Is the contact the owner? Then fetch the private key
if (!$contact['self'] || ($contact['uid'] == 0)) { if (!$contact['self'] || ($contact['uid'] == 0)) {
@ -4217,7 +4219,7 @@ class Diaspora
* *
* @return bool Success * @return bool Success
*/ */
public static function storeCommentSignature($item, $contact, $uprvkey, $message_id) public static function storeCommentSignature(array $item, array $contact, $uprvkey, $message_id)
{ {
if ($uprvkey == "") { if ($uprvkey == "") {
logger('No private key, so not storing comment signature', LOGGER_DEBUG); logger('No private key, so not storing comment signature', LOGGER_DEBUG);