diff --git a/mod/bookmarklet.php b/mod/bookmarklet.php
index 21b2039c58..e1ae9aa64c 100644
--- a/mod/bookmarklet.php
+++ b/mod/bookmarklet.php
@@ -30,6 +30,10 @@ function bookmarklet_content(App $a)
$page = normalise_link(System::baseUrl() . "/bookmarklet");
if (!strstr($referer, $page)) {
+ if (empty($_REQUEST["url"])) {
+ System::httpExit(400, ["title" => L10n::t('Bad Request')]);
+ }
+
$content = add_page_info($_REQUEST["url"]);
$x = [
diff --git a/mod/contacts.php b/mod/contacts.php
index 031f6964c3..a7c67cb910 100644
--- a/mod/contacts.php
+++ b/mod/contacts.php
@@ -47,6 +47,11 @@ function contacts_init(App $a)
if (!DBA::isResult($contact)) {
$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => 0]);
}
+
+ // Don't display contacts that are about to be deleted
+ if ($contact['network'] == Protocol::PHANTOM) {
+ $contact = false;
+ }
}
if (DBA::isResult($contact)) {
@@ -719,6 +724,8 @@ function contacts_content(App $a, $update = 0)
$sql_extra = " AND `blocked` = 0 ";
}
+ $sql_extra .= sprintf(" AND `network` != '%s' ", Protocol::PHANTOM);
+
$search = x($_GET, 'search') ? notags(trim($_GET['search'])) : '';
$nets = x($_GET, 'nets' ) ? notags(trim($_GET['nets'])) : '';
diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php
index 666c388a4a..8a53ac09b6 100644
--- a/mod/dfrn_notify.php
+++ b/mod/dfrn_notify.php
@@ -79,13 +79,13 @@ function dfrn_notify_post(App $a) {
$condition = [];
switch ($direction) {
case (-1):
- $condition = ["`issued-id` = ? OR `dfrn-id` = ?", $dfrn_id, $dfrn_id];
+ $condition = ["(`issued-id` = ? OR `dfrn-id` = ?) AND `uid` = ?", $dfrn_id, $dfrn_id, $user['uid']];
break;
case 0:
- $condition = ['issued-id' => $dfrn_id, 'duplex' => true];
+ $condition = ['issued-id' => $dfrn_id, 'duplex' => true, 'uid' => $user['uid']];
break;
case 1:
- $condition = ['dfrn-id' => $dfrn_id, 'duplex' => true];
+ $condition = ['dfrn-id' => $dfrn_id, 'duplex' => true, 'uid' => $user['uid']];
break;
default:
System::xmlExit(3, 'Invalid direction');
@@ -287,15 +287,15 @@ function dfrn_notify_content(App $a) {
$condition = [];
switch ($direction) {
case (-1):
- $condition = ["`issued-id` = ? OR `dfrn-id` = ?", $dfrn_id, $dfrn_id];
+ $condition = ["(`issued-id` = ? OR `dfrn-id` = ?) AND `uid` = ?", $dfrn_id, $dfrn_id, $user['uid']];
$my_id = $dfrn_id;
break;
case 0:
- $condition = ['issued-id' => $dfrn_id, 'duplex' => true];
+ $condition = ['issued-id' => $dfrn_id, 'duplex' => true, 'uid' => $user['uid']];
$my_id = '1:' . $dfrn_id;
break;
case 1:
- $condition = ['dfrn-id' => $dfrn_id, 'duplex' => true];
+ $condition = ['dfrn-id' => $dfrn_id, 'duplex' => true, 'uid' => $user['uid']];
$my_id = '0:' . $dfrn_id;
break;
default:
diff --git a/mod/fetch.php b/mod/fetch.php
index 35455e2822..4e7d8c751a 100644
--- a/mod/fetch.php
+++ b/mod/fetch.php
@@ -25,7 +25,7 @@ function fetch_init(App $a)
// Fetch the item
$fields = ['uid', 'title', 'body', 'guid', 'contact-id', 'private', 'created', 'app', 'location', 'coord', 'network',
- 'event-id', 'resource-id', 'author-link', 'owner-link', 'attach'];
+ 'event-id', 'resource-id', 'author-link', 'author-avatar', 'author-name', 'plink', 'owner-link', 'attach'];
$condition = ['wall' => true, 'private' => false, 'guid' => $guid, 'network' => [Protocol::DFRN, Protocol::DIASPORA]];
$item = Item::selectFirst($fields, $condition);
if (!DBA::isResult($item)) {
diff --git a/mod/notes.php b/mod/notes.php
index 68a870e9d6..01f283870e 100644
--- a/mod/notes.php
+++ b/mod/notes.php
@@ -70,8 +70,11 @@ function notes_content(App $a, $update = false)
$count = 0;
if (DBA::isResult($r)) {
- $count = count($r);
- $o .= conversation($a, DBA::toArray($r), 'notes', $update);
+ $notes = DBA::toArray($r);
+
+ $count = count($notes);
+
+ $o .= conversation($a, $notes, 'notes', $update);
}
$o .= alt_pager($a, $count);
diff --git a/mod/notifications.php b/mod/notifications.php
index acd49de063..3934a32357 100644
--- a/mod/notifications.php
+++ b/mod/notifications.php
@@ -132,6 +132,11 @@ function notifications_content(App $a)
$notif_tpl = get_markup_template('notifications.tpl');
+ $notif_show_lnk = [
+ 'href' => ($show ? 'notifications/' . $notifs['ident'] : 'notifications/' . $notifs['ident'] . '?show=all' ),
+ 'text' => ($show ? L10n::t('Show unread') : L10n::t('Show all')),
+ ];
+
// Process the data for template creation
if (defaults($notifs, 'ident', '') === 'introductions') {
$sugg = get_markup_template('suggestions.tpl');
@@ -303,11 +308,6 @@ function notifications_content(App $a)
$notif_nocontent = L10n::t('No more %s notifications.', $notifs['ident']);
}
- $notif_show_lnk = [
- 'href' => ($show ? 'notifications/' . $notifs['ident'] : 'notifications/' . $notifs['ident'] . '?show=all' ),
- 'text' => ($show ? L10n::t('Show unread') : L10n::t('Show all')),
- ];
-
$o .= replace_macros($notif_tpl, [
'$notif_header' => $notif_header,
'$tabs' => $tabs,
diff --git a/mod/photos.php b/mod/photos.php
index 16af455997..e205d72c6d 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -212,7 +212,7 @@ function photos_post(App $a)
}
// Check if the user has responded to a delete confirmation query
- if ($_REQUEST['canceled']) {
+ if (!empty($_REQUEST['canceled'])) {
goaway($_SESSION['photo_return']);
}
@@ -762,12 +762,14 @@ function photos_post(App $a)
$filesize = $ret['filesize'];
$type = $ret['type'];
$error = UPLOAD_ERR_OK;
- } else {
+ } elseif (!empty($_FILES['userfile'])) {
$src = $_FILES['userfile']['tmp_name'];
$filename = basename($_FILES['userfile']['name']);
$filesize = intval($_FILES['userfile']['size']);
$type = $_FILES['userfile']['type'];
$error = $_FILES['userfile']['error'];
+ } else {
+ $error = UPLOAD_ERR_NO_FILE;
}
if ($error !== UPLOAD_ERR_OK) {
diff --git a/mod/salmon.php b/mod/salmon.php
index d07b06004d..bd4b3773cb 100644
--- a/mod/salmon.php
+++ b/mod/salmon.php
@@ -41,14 +41,14 @@ function salmon_post(App $a, $xml = '') {
$base = null;
// figure out where in the DOM tree our data is hiding
- if($dom->provenance->data)
+ if (!empty($dom->provenance->data))
$base = $dom->provenance;
- elseif($dom->env->data)
+ elseif (!empty($dom->env->data))
$base = $dom->env;
- elseif($dom->data)
+ elseif (!empty($dom->data))
$base = $dom;
- if(! $base) {
+ if (empty($base)) {
logger('unable to locate salmon data in xml ');
System::httpExit(400);
}
diff --git a/mod/webfinger.php b/mod/webfinger.php
index 6f49a8f28c..4f23db6d8f 100644
--- a/mod/webfinger.php
+++ b/mod/webfinger.php
@@ -23,7 +23,7 @@ function webfinger_content(App $a)
$o = '
Webfinger Diagnostic
';
$o .= '';
$o .= '
';
diff --git a/src/Model/Profile.php b/src/Model/Profile.php
index 29bc7e680d..3a014517da 100644
--- a/src/Model/Profile.php
+++ b/src/Model/Profile.php
@@ -361,7 +361,7 @@ class Profile
if ($r) {
$remote_url = $r[0]['url'];
$message_path = preg_replace('=(.*)/profile/(.*)=ism', '$1/message/new/', $remote_url);
- $wallmessage_link = $message_path . base64_encode($profile['addr']);
+ $wallmessage_link = $message_path . base64_encode(defaults($profile, 'addr', ''));
} else if (!empty($profile['nickname'])) {
$wallmessage_link = 'wallmessage/' . $profile['nickname'];
}
diff --git a/src/Network/Probe.php b/src/Network/Probe.php
index 2cf91486bb..0e9219c5a6 100644
--- a/src/Network/Probe.php
+++ b/src/Network/Probe.php
@@ -979,23 +979,23 @@ class Probe
$hcard_url = "";
$data = [];
foreach ($webfinger["links"] as $link) {
- if (($link["rel"] == NAMESPACE_DFRN) && ($link["href"] != "")) {
+ if (($link["rel"] == NAMESPACE_DFRN) && !empty($link["href"])) {
$data["network"] = Protocol::DFRN;
- } elseif (($link["rel"] == NAMESPACE_FEED) && ($link["href"] != "")) {
+ } elseif (($link["rel"] == NAMESPACE_FEED) && !empty($link["href"])) {
$data["poll"] = $link["href"];
- } elseif (($link["rel"] == "http://webfinger.net/rel/profile-page") && ($link["type"] == "text/html") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "http://webfinger.net/rel/profile-page") && (defaults($link, "type", "") == "text/html") && !empty($link["href"])) {
$data["url"] = $link["href"];
- } elseif (($link["rel"] == "http://microformats.org/profile/hcard") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "http://microformats.org/profile/hcard") && !empty($link["href"])) {
$hcard_url = $link["href"];
- } elseif (($link["rel"] == NAMESPACE_POCO) && ($link["href"] != "")) {
+ } elseif (($link["rel"] == NAMESPACE_POCO) && !empty($link["href"])) {
$data["poco"] = $link["href"];
- } elseif (($link["rel"] == "http://webfinger.net/rel/avatar") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "http://webfinger.net/rel/avatar") && !empty($link["href"])) {
$data["photo"] = $link["href"];
- } elseif (($link["rel"] == "http://joindiaspora.com/seed_location") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "http://joindiaspora.com/seed_location") && !empty($link["href"])) {
$data["baseurl"] = trim($link["href"], '/');
- } elseif (($link["rel"] == "http://joindiaspora.com/guid") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "http://joindiaspora.com/guid") && !empty($link["href"])) {
$data["guid"] = $link["href"];
- } elseif (($link["rel"] == "diaspora-public-key") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "diaspora-public-key") && !empty($link["href"])) {
$data["pubkey"] = base64_decode($link["href"]);
//if (strstr($data["pubkey"], 'RSA ') || ($link["type"] == "RSA"))
@@ -1182,21 +1182,21 @@ class Probe
$hcard_url = "";
$data = [];
foreach ($webfinger["links"] as $link) {
- if (($link["rel"] == "http://microformats.org/profile/hcard") && ($link["href"] != "")) {
+ if (($link["rel"] == "http://microformats.org/profile/hcard") && !empty($link["href"])) {
$hcard_url = $link["href"];
- } elseif (($link["rel"] == "http://joindiaspora.com/seed_location") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "http://joindiaspora.com/seed_location") && !empty($link["href"])) {
$data["baseurl"] = trim($link["href"], '/');
- } elseif (($link["rel"] == "http://joindiaspora.com/guid") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "http://joindiaspora.com/guid") && !empty($link["href"])) {
$data["guid"] = $link["href"];
- } elseif (($link["rel"] == "http://webfinger.net/rel/profile-page") && ($link["type"] == "text/html") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "http://webfinger.net/rel/profile-page") && (defaults($link, "type", "") == "text/html") && !empty($link["href"])) {
$data["url"] = $link["href"];
- } elseif (($link["rel"] == NAMESPACE_FEED) && ($link["href"] != "")) {
+ } elseif (($link["rel"] == NAMESPACE_FEED) && !empty($link["href"])) {
$data["poll"] = $link["href"];
- } elseif (($link["rel"] == NAMESPACE_POCO) && ($link["href"] != "")) {
+ } elseif (($link["rel"] == NAMESPACE_POCO) && !empty($link["href"])) {
$data["poco"] = $link["href"];
- } elseif (($link["rel"] == "salmon") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "salmon") && !empty($link["href"])) {
$data["notify"] = $link["href"];
- } elseif (($link["rel"] == "diaspora-public-key") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "diaspora-public-key") && !empty($link["href"])) {
$data["pubkey"] = base64_decode($link["href"]);
//if (strstr($data["pubkey"], 'RSA ') || ($link["type"] == "RSA"))
@@ -1284,15 +1284,15 @@ class Probe
if (is_array($webfinger["links"])) {
foreach ($webfinger["links"] as $link) {
if (($link["rel"] == "http://webfinger.net/rel/profile-page")
- && ($link["type"] == "text/html")
+ && (defaults($link, "type", "") == "text/html")
&& ($link["href"] != "")
) {
$data["url"] = $link["href"];
- } elseif (($link["rel"] == "salmon") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "salmon") && !empty($link["href"])) {
$data["notify"] = $link["href"];
- } elseif (($link["rel"] == NAMESPACE_FEED) && ($link["href"] != "")) {
+ } elseif (($link["rel"] == NAMESPACE_FEED) && !empty($link["href"])) {
$data["poll"] = $link["href"];
- } elseif (($link["rel"] == "magic-public-key") && ($link["href"] != "")) {
+ } elseif (($link["rel"] == "magic-public-key") && !empty($link["href"])) {
$pubkey = $link["href"];
if (substr($pubkey, 0, 5) === 'data:') {
@@ -1448,7 +1448,7 @@ class Probe
$data = [];
foreach ($webfinger["links"] as $link) {
if (($link["rel"] == "http://webfinger.net/rel/profile-page")
- && ($link["type"] == "text/html")
+ && (defaults($link, "type", "") == "text/html")
&& ($link["href"] != "")
) {
$data["url"] = $link["href"];
diff --git a/src/Protocol/Diaspora.php b/src/Protocol/Diaspora.php
index 11a0e5996e..e7edcdc490 100644
--- a/src/Protocol/Diaspora.php
+++ b/src/Protocol/Diaspora.php
@@ -3492,7 +3492,7 @@ class Diaspora
$myaddr = self::myHandle($owner);
- $public = (($item["private"]) ? "false" : "true");
+ $public = ($item["private"] ? "false" : "true");
$created = DateTimeFormat::utc($item["created"], DateTimeFormat::ATOM);
diff --git a/src/Protocol/PortableContact.php b/src/Protocol/PortableContact.php
index 61274dc2be..280dbe72c2 100644
--- a/src/Protocol/PortableContact.php
+++ b/src/Protocol/PortableContact.php
@@ -1157,9 +1157,9 @@ class PortableContact
if (isset($data['version'])) {
$platform = "Mastodon";
- $version = $data['version'];
- $site_name = $data['title'];
- $info = $data['description'];
+ $version = defaults($data, 'version', '');
+ $site_name = defaults($data, 'title', '');
+ $info = defaults($data, 'description', '');
$network = Protocol::OSTATUS;
}
diff --git a/src/Util/ParseUrl.php b/src/Util/ParseUrl.php
index 40cb0b8fc0..ac13e15174 100644
--- a/src/Util/ParseUrl.php
+++ b/src/Util/ParseUrl.php
@@ -486,21 +486,23 @@ class ParseUrl
$complete = $schemearr["scheme"]."://".$schemearr["host"];
- if (@$schemearr["port"] != "") {
+ if (!empty($schemearr["port"])) {
$complete .= ":".$schemearr["port"];
}
- if (strpos($urlarr["path"], "/") !== 0) {
- $complete .= "/";
+ if (!empty($urlarr["path"])) {
+ if (strpos($urlarr["path"], "/") !== 0) {
+ $complete .= "/";
+ }
+
+ $complete .= $urlarr["path"];
}
- $complete .= $urlarr["path"];
-
- if (@$urlarr["query"] != "") {
+ if (!empty($urlarr["query"])) {
$complete .= "?".$urlarr["query"];
}
- if (@$urlarr["fragment"] != "") {
+ if (!empty($urlarr["fragment"])) {
$complete .= "#".$urlarr["fragment"];
}
diff --git a/src/Worker/RemoveContact.php b/src/Worker/RemoveContact.php
index b07661b7a9..8f986eab11 100644
--- a/src/Worker/RemoveContact.php
+++ b/src/Worker/RemoveContact.php
@@ -13,8 +13,8 @@ require_once 'include/dba.php';
class RemoveContact {
public static function execute($id) {
- // Only delete if the contact is archived
- $condition = ['archive' => true, 'network' => Protocol::PHANTOM, 'id' => $id];
+ // Only delete if the contact is to be deleted
+ $condition = ['network' => Protocol::PHANTOM, 'id' => $id];
$r = DBA::exists('contact', $condition);
if (!DBA::isResult($r)) {
return;
diff --git a/view/js/main.js b/view/js/main.js
index 4ccbc8044e..83086c82b0 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -81,6 +81,11 @@ $(function() {
Dialog.doImageBrowser("comment", id);
return;
}
+
+ if (bbcode == "imgprv") {
+ bbcode = "img";
+ }
+
insertFormatting(bbcode, id);
});
diff --git a/view/theme/frio/templates/prv_message.tpl b/view/theme/frio/templates/prv_message.tpl
index 4c90dcae6d..9077c4d4c1 100644
--- a/view/theme/frio/templates/prv_message.tpl
+++ b/view/theme/frio/templates/prv_message.tpl
@@ -33,7 +33,7 @@