Merge remote-tracking branch 'upstream/develop' into sanitize-gcontact

This commit is contained in:
Michael 2019-10-18 18:48:32 +00:00
commit 98c12006d5
144 changed files with 843 additions and 941 deletions

View file

@ -70,7 +70,7 @@ class Arguments
/**
* Returns the value of a argv key
* @todo there are a lot of $a->argv usages in combination with defaults() which can be replaced with this method
* @todo there are a lot of $a->argv usages in combination with ?? which can be replaced with this method
*
* @param int $position the position of the argument
* @param mixed $default the default value if not found

View file

@ -338,12 +338,12 @@ class BaseURL
/* Relative script path to the web server root
* Not all of those $_SERVER properties can be present, so we do by inverse priority order
*/
$relative_script_path = '';
$relative_script_path = defaults($this->server, 'REDIRECT_URL', $relative_script_path);
$relative_script_path = defaults($this->server, 'REDIRECT_URI', $relative_script_path);
$relative_script_path = defaults($this->server, 'REDIRECT_SCRIPT_URL', $relative_script_path);
$relative_script_path = defaults($this->server, 'SCRIPT_URL', $relative_script_path);
$relative_script_path = defaults($this->server, 'REQUEST_URI', $relative_script_path);
$relative_script_path =
($this->server['REDIRECT_URL'] ?? '') ?:
($this->server['REDIRECT_URI'] ?? '') ?:
($this->server['REDIRECT_SCRIPT_URL'] ?? '') ?:
($this->server['SCRIPT_URL'] ?? '') ?:
$this->server['REQUEST_URI'] ?? '';
/* $relative_script_path gives /relative/path/to/friendica/module/parameter
* QUERY_STRING gives pagename=module/parameter

View file

@ -60,7 +60,7 @@ class BaseObject
throw new InternalServerErrorException('DICE isn\'t initialized.');
}
if (class_exists($name) || interface_exists($name )) {
if (class_exists($name) || interface_exists($name)) {
return self::$dice->create($name);
} else {
throw new InternalServerErrorException('Class \'' . $name . '\' isn\'t valid.');

View file

@ -39,7 +39,7 @@ class Pager
{
$this->setQueryString($queryString);
$this->setItemsPerPage($itemsPerPage);
$this->setPage(defaults($_GET, 'page', 1));
$this->setPage(($_GET['page'] ?? 0) ?: 1);
}
/**

View file

@ -38,7 +38,7 @@ class BBCode extends BaseObject
*
* @param string $body Message body
* @return array
* 'type' -> Message type ("link", "video", "photo")
* 'type' -> Message type ('link', 'video', 'photo')
* 'text' -> Text before the shared message
* 'after' -> Text after the shared message
* 'image' -> Preview image of the message
@ -56,19 +56,19 @@ class BBCode extends BaseObject
if (preg_match_all("(\[class=(.*?)\](.*?)\[\/class\])ism", $body, $attached, PREG_SET_ORDER)) {
foreach ($attached as $data) {
if (!in_array($data[1], ["type-link", "type-video", "type-photo"])) {
if (!in_array($data[1], ['type-link', 'type-video', 'type-photo'])) {
continue;
}
$post["type"] = substr($data[1], 5);
$post['type'] = substr($data[1], 5);
$pos = strpos($body, $data[0]);
if ($pos > 0) {
$post["text"] = trim(substr($body, 0, $pos));
$post["after"] = trim(substr($body, $pos + strlen($data[0])));
$post['text'] = trim(substr($body, 0, $pos));
$post['after'] = trim(substr($body, $pos + strlen($data[0])));
} else {
$post["text"] = trim(str_replace($data[0], "", $body));
$post["after"] = '';
$post['text'] = trim(str_replace($data[0], '', $body));
$post['after'] = '';
}
$attacheddata = $data[2];
@ -79,25 +79,25 @@ class BBCode extends BaseObject
if ($picturedata) {
if (($picturedata[0] >= 500) && ($picturedata[0] >= $picturedata[1])) {
$post["image"] = $matches[1];
$post['image'] = $matches[1];
} else {
$post["preview"] = $matches[1];
$post['preview'] = $matches[1];
}
}
}
if (preg_match("/\[bookmark\=(.*?)\](.*?)\[\/bookmark\]/ism", $attacheddata, $matches)) {
$post["url"] = $matches[1];
$post["title"] = $matches[2];
$post['url'] = $matches[1];
$post['title'] = $matches[2];
}
if (!empty($post["url"]) && (in_array($post["type"], ["link", "video"]))
if (!empty($post['url']) && (in_array($post['type'], ['link', 'video']))
&& preg_match("/\[url\=(.*?)\](.*?)\[\/url\]/ism", $attacheddata, $matches)) {
$post["url"] = $matches[1];
$post['url'] = $matches[1];
}
// Search for description
if (preg_match("/\[quote\](.*?)\[\/quote\]/ism", $attacheddata, $matches)) {
$post["description"] = $matches[1];
$post['description'] = $matches[1];
}
}
}
@ -109,7 +109,7 @@ class BBCode extends BaseObject
*
* @param string $body Message body
* @return array
* 'type' -> Message type ("link", "video", "photo")
* 'type' -> Message type ('link', 'video', 'photo')
* 'text' -> Text before the shared message
* 'after' -> Text after the shared message
* 'image' -> Preview image of the message
@ -136,9 +136,9 @@ class BBCode extends BaseObject
$attributes = $match[2];
$data["text"] = trim($match[1]);
$data['text'] = trim($match[1]);
$type = "";
$type = '';
preg_match("/type='(.*?)'/ism", $attributes, $matches);
if (!empty($matches[1])) {
$type = strtolower($matches[1]);
@ -149,19 +149,19 @@ class BBCode extends BaseObject
$type = strtolower($matches[1]);
}
if ($type == "") {
if ($type == '') {
return [];
}
if (!in_array($type, ["link", "audio", "photo", "video"])) {
if (!in_array($type, ['link', 'audio', 'photo', 'video'])) {
return [];
}
if ($type != "") {
$data["type"] = $type;
if ($type != '') {
$data['type'] = $type;
}
$url = "";
$url = '';
preg_match("/url='(.*?)'/ism", $attributes, $matches);
if (!empty($matches[1])) {
$url = $matches[1];
@ -172,11 +172,11 @@ class BBCode extends BaseObject
$url = $matches[1];
}
if ($url != "") {
$data["url"] = html_entity_decode($url, ENT_QUOTES, 'UTF-8');
if ($url != '') {
$data['url'] = html_entity_decode($url, ENT_QUOTES, 'UTF-8');
}
$title = "";
$title = '';
preg_match("/title='(.*?)'/ism", $attributes, $matches);
if (!empty($matches[1])) {
$title = $matches[1];
@ -187,14 +187,14 @@ class BBCode extends BaseObject
$title = $matches[1];
}
if ($title != "") {
if ($title != '') {
$title = self::convert(html_entity_decode($title, ENT_QUOTES, 'UTF-8'), false, true);
$title = html_entity_decode($title, ENT_QUOTES, 'UTF-8');
$title = str_replace(["[", "]"], ["[", "]"], $title);
$data["title"] = $title;
$title = str_replace(['[', ']'], ['[', ']'], $title);
$data['title'] = $title;
}
$image = "";
$image = '';
preg_match("/image='(.*?)'/ism", $attributes, $matches);
if (!empty($matches[1])) {
$image = $matches[1];
@ -205,11 +205,11 @@ class BBCode extends BaseObject
$image = $matches[1];
}
if ($image != "") {
$data["image"] = html_entity_decode($image, ENT_QUOTES, 'UTF-8');
if ($image != '') {
$data['image'] = html_entity_decode($image, ENT_QUOTES, 'UTF-8');
}
$preview = "";
$preview = '';
preg_match("/preview='(.*?)'/ism", $attributes, $matches);
if (!empty($matches[1])) {
$preview = $matches[1];
@ -220,13 +220,13 @@ class BBCode extends BaseObject
$preview = $matches[1];
}
if ($preview != "") {
$data["preview"] = html_entity_decode($preview, ENT_QUOTES, 'UTF-8');
if ($preview != '') {
$data['preview'] = html_entity_decode($preview, ENT_QUOTES, 'UTF-8');
}
$data["description"] = trim($match[3]);
$data['description'] = trim($match[3]);
$data["after"] = trim($match[4]);
$data['after'] = trim($match[4]);
return $data;
}
@ -244,7 +244,7 @@ class BBCode extends BaseObject
*/
$has_title = !empty($item['title']);
$plink = defaults($item, 'plink', '');
$plink = $item['plink'] ?? '';
$post = self::getAttachmentData($body);
// Get all linked images with alternative image description
@ -268,11 +268,11 @@ class BBCode extends BaseObject
}
// if nothing is found, it maybe having an image.
if (!isset($post["type"])) {
if (!isset($post['type'])) {
// Simplify image codes
$body = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $body);
$body = preg_replace("/\[img\=(.*?)\](.*?)\[\/img\]/ism", '[img]$1[/img]', $body);
$post["text"] = $body;
$post['text'] = $body;
if (preg_match_all("(\[url=(.*?)\]\s*\[img\](.*?)\[\/img\]\s*\[\/url\])ism", $body, $pictures, PREG_SET_ORDER)) {
if ((count($pictures) == 1) && !$has_title) {
@ -288,75 +288,75 @@ class BBCode extends BaseObject
// Workaround:
// Sometimes photo posts to the own album are not detected at the start.
// So we seem to cannot use the cache for these cases. That's strange.
if (($data["type"] != "photo") && strstr($pictures[0][1], "/photos/")) {
if (($data['type'] != 'photo') && strstr($pictures[0][1], "/photos/")) {
$data = ParseUrl::getSiteinfo($pictures[0][1], true);
}
if ($data["type"] == "photo") {
$post["type"] = "photo";
if (isset($data["images"][0])) {
$post["image"] = $data["images"][0]["src"];
$post["url"] = $data["url"];
if ($data['type'] == 'photo') {
$post['type'] = 'photo';
if (isset($data['images'][0])) {
$post['image'] = $data['images'][0]['src'];
$post['url'] = $data['url'];
} else {
$post["image"] = $data["url"];
$post['image'] = $data['url'];
}
$post["preview"] = $pictures[0][2];
$post["text"] = trim(str_replace($pictures[0][0], "", $body));
$post['preview'] = $pictures[0][2];
$post['text'] = trim(str_replace($pictures[0][0], '', $body));
} else {
$imgdata = Image::getInfoFromURL($pictures[0][1]);
if ($imgdata && substr($imgdata["mime"], 0, 6) == "image/") {
$post["type"] = "photo";
$post["image"] = $pictures[0][1];
$post["preview"] = $pictures[0][2];
$post["text"] = trim(str_replace($pictures[0][0], "", $body));
if ($imgdata && substr($imgdata['mime'], 0, 6) == 'image/') {
$post['type'] = 'photo';
$post['image'] = $pictures[0][1];
$post['preview'] = $pictures[0][2];
$post['text'] = trim(str_replace($pictures[0][0], '', $body));
}
}
} elseif (count($pictures) > 0) {
$post["type"] = "link";
$post["url"] = $plink;
$post["image"] = $pictures[0][2];
$post["text"] = $body;
$post['type'] = 'link';
$post['url'] = $plink;
$post['image'] = $pictures[0][2];
$post['text'] = $body;
foreach ($pictures as $picture) {
$post["text"] = trim(str_replace($picture[0], "", $post["text"]));
$post['text'] = trim(str_replace($picture[0], '', $post['text']));
}
}
} elseif (preg_match_all("(\[img\](.*?)\[\/img\])ism", $body, $pictures, PREG_SET_ORDER)) {
if ((count($pictures) == 1) && !$has_title) {
$post["type"] = "photo";
$post["image"] = $pictures[0][1];
$post["text"] = str_replace($pictures[0][0], "", $body);
$post['type'] = 'photo';
$post['image'] = $pictures[0][1];
$post['text'] = str_replace($pictures[0][0], '', $body);
} elseif (count($pictures) > 0) {
$post["type"] = "link";
$post["url"] = $plink;
$post["image"] = $pictures[0][1];
$post["text"] = $body;
$post['type'] = 'link';
$post['url'] = $plink;
$post['image'] = $pictures[0][1];
$post['text'] = $body;
foreach ($pictures as $picture) {
$post["text"] = trim(str_replace($picture[0], "", $post["text"]));
$post['text'] = trim(str_replace($picture[0], '', $post['text']));
}
}
}
// Test for the external links
preg_match_all("(\[url\](.*?)\[\/url\])ism", $post["text"], $links1, PREG_SET_ORDER);
preg_match_all("(\[url\=(.*?)\].*?\[\/url\])ism", $post["text"], $links2, PREG_SET_ORDER);
preg_match_all("(\[url\](.*?)\[\/url\])ism", $post['text'], $links1, PREG_SET_ORDER);
preg_match_all("(\[url\=(.*?)\].*?\[\/url\])ism", $post['text'], $links2, PREG_SET_ORDER);
$links = array_merge($links1, $links2);
// If there is only a single one, then use it.
// This should cover link posts via API.
if ((count($links) == 1) && !isset($post["preview"]) && !$has_title) {
$post["type"] = "link";
$post["url"] = $links[0][1];
if ((count($links) == 1) && !isset($post['preview']) && !$has_title) {
$post['type'] = 'link';
$post['url'] = $links[0][1];
}
// Now count the number of external media links
preg_match_all("(\[vimeo\](.*?)\[\/vimeo\])ism", $post["text"], $links1, PREG_SET_ORDER);
preg_match_all("(\[youtube\\](.*?)\[\/youtube\\])ism", $post["text"], $links2, PREG_SET_ORDER);
preg_match_all("(\[video\\](.*?)\[\/video\\])ism", $post["text"], $links3, PREG_SET_ORDER);
preg_match_all("(\[audio\\](.*?)\[\/audio\\])ism", $post["text"], $links4, PREG_SET_ORDER);
preg_match_all("(\[vimeo\](.*?)\[\/vimeo\])ism", $post['text'], $links1, PREG_SET_ORDER);
preg_match_all("(\[youtube\\](.*?)\[\/youtube\\])ism", $post['text'], $links2, PREG_SET_ORDER);
preg_match_all("(\[video\\](.*?)\[\/video\\])ism", $post['text'], $links3, PREG_SET_ORDER);
preg_match_all("(\[audio\\](.*?)\[\/audio\\])ism", $post['text'], $links4, PREG_SET_ORDER);
// Add them to the other external links
$links = array_merge($links, $links1, $links2, $links3, $links4);
@ -364,19 +364,19 @@ class BBCode extends BaseObject
// Are there more than one?
if (count($links) > 1) {
// The post will be the type "text", which means a blog post
unset($post["type"]);
$post["url"] = $plink;
unset($post['type']);
$post['url'] = $plink;
}
if (!isset($post["type"])) {
$post["type"] = "text";
$post["text"] = trim($body);
if (!isset($post['type'])) {
$post['type'] = "text";
$post['text'] = trim($body);
}
} elseif (isset($post["url"]) && ($post["type"] == "video")) {
$data = ParseUrl::getSiteinfoCached($post["url"], true);
} elseif (isset($post['url']) && ($post['type'] == 'video')) {
$data = ParseUrl::getSiteinfoCached($post['url'], true);
if (isset($data["images"][0])) {
$post["image"] = $data["images"][0]["src"];
if (isset($data['images'][0])) {
$post['image'] = $data['images'][0]['src'];
}
}
@ -581,27 +581,27 @@ class BBCode extends BaseObject
private static function convertAttachment($return, $simplehtml = false, $tryoembed = true)
{
$data = self::getAttachmentData($return);
if (empty($data) || empty($data["url"])) {
if (empty($data) || empty($data['url'])) {
return $return;
}
if (isset($data["title"])) {
$data["title"] = strip_tags($data["title"]);
$data["title"] = str_replace(["http://", "https://"], "", $data["title"]);
if (isset($data['title'])) {
$data['title'] = strip_tags($data['title']);
$data['title'] = str_replace(['http://', 'https://'], '', $data['title']);
} else {
$data["title"] = null;
$data['title'] = null;
}
if (((strpos($data["text"], "[img=") !== false) || (strpos($data["text"], "[img]") !== false) || Config::get('system', 'always_show_preview')) && !empty($data["image"])) {
$data["preview"] = $data["image"];
$data["image"] = "";
if (((strpos($data['text'], "[img=") !== false) || (strpos($data['text'], "[img]") !== false) || Config::get('system', 'always_show_preview')) && !empty($data['image'])) {
$data['preview'] = $data['image'];
$data['image'] = '';
}
$return = '';
if (in_array($simplehtml, [7, 9])) {
$return = self::convertUrlForOStatus($data["url"]);
$return = self::convertUrlForActivityPub($data['url']);
} elseif (($simplehtml != 4) && ($simplehtml != 0)) {
$return = sprintf('<a href="%s" target="_blank">%s</a><br>', $data["url"], $data["title"]);
$return = sprintf('<a href="%s" target="_blank">%s</a><br>', $data['url'], $data['title']);
} else {
try {
if ($tryoembed && OEmbed::isAllowedURL($data['url'])) {
@ -610,28 +610,28 @@ class BBCode extends BaseObject
throw new Exception('OEmbed is disabled for this attachment.');
}
} catch (Exception $e) {
$data["title"] = defaults($data, 'title', $data['url']);
$data['title'] = ($data['title'] ?? '') ?: $data['url'];
if ($simplehtml != 4) {
$return = sprintf('<div class="type-%s">', $data["type"]);
$return = sprintf('<div class="type-%s">', $data['type']);
}
if (!empty($data['title']) && !empty($data['url'])) {
if (!empty($data["image"]) && empty($data["text"]) && ($data["type"] == "photo")) {
$return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a>', $data["url"], self::proxyUrl($data["image"], $simplehtml), $data["title"]);
if (!empty($data['image']) && empty($data['text']) && ($data['type'] == 'photo')) {
$return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a>', $data['url'], self::proxyUrl($data['image'], $simplehtml), $data['title']);
} else {
if (!empty($data["image"])) {
$return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a><br />', $data["url"], self::proxyUrl($data["image"], $simplehtml), $data["title"]);
} elseif (!empty($data["preview"])) {
$return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-preview" /></a><br />', $data["url"], self::proxyUrl($data["preview"], $simplehtml), $data["title"]);
if (!empty($data['image'])) {
$return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a><br />', $data['url'], self::proxyUrl($data['image'], $simplehtml), $data['title']);
} elseif (!empty($data['preview'])) {
$return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-preview" /></a><br />', $data['url'], self::proxyUrl($data['preview'], $simplehtml), $data['title']);
}
$return .= sprintf('<h4><a href="%s">%s</a></h4>', $data['url'], $data['title']);
}
}
if (!empty($data["description"]) && $data["description"] != $data["title"]) {
if (!empty($data['description']) && $data['description'] != $data['title']) {
// Sanitize the HTML by converting it to BBCode
$bbcode = HTML::toBBCode($data["description"]);
$bbcode = HTML::toBBCode($data['description']);
$return .= sprintf('<blockquote>%s</blockquote>', trim(self::convert($bbcode)));
}
@ -645,7 +645,7 @@ class BBCode extends BaseObject
}
}
return trim(defaults($data, 'text', '') . ' ' . $return . ' ' . defaults($data, 'after', ''));
return trim(($data['text'] ?? '') . ' ' . $return . ' ' . ($data['after'] ?? ''));
}
public static function removeShareInformation($Text, $plaintext = false, $nolink = false)
@ -655,36 +655,36 @@ class BBCode extends BaseObject
if (!$data) {
return $Text;
} elseif ($nolink) {
return $data["text"] . defaults($data, 'after', '');
return $data['text'] . ($data['after'] ?? '');
}
$title = htmlentities(defaults($data, 'title', ''), ENT_QUOTES, 'UTF-8', false);
$text = htmlentities($data["text"], ENT_QUOTES, 'UTF-8', false);
if ($plaintext || (($title != "") && strstr($text, $title))) {
$data["title"] = $data["url"];
} elseif (($text != "") && strstr($title, $text)) {
$data["text"] = $data["title"];
$data["title"] = $data["url"];
$title = htmlentities($data['title'] ?? '', ENT_QUOTES, 'UTF-8', false);
$text = htmlentities($data['text'], ENT_QUOTES, 'UTF-8', false);
if ($plaintext || (($title != '') && strstr($text, $title))) {
$data['title'] = $data['url'];
} elseif (($text != '') && strstr($title, $text)) {
$data['text'] = $data['title'];
$data['title'] = $data['url'];
}
if (empty($data["text"]) && !empty($data["title"]) && empty($data["url"])) {
return $data["title"] . $data["after"];
if (empty($data['text']) && !empty($data['title']) && empty($data['url'])) {
return $data['title'] . $data['after'];
}
// If the link already is included in the post, don't add it again
if (!empty($data["url"]) && strpos($data["text"], $data["url"])) {
return $data["text"] . $data["after"];
if (!empty($data['url']) && strpos($data['text'], $data['url'])) {
return $data['text'] . $data['after'];
}
$text = $data["text"];
$text = $data['text'];
if (!empty($data["url"]) && !empty($data["title"])) {
$text .= "\n[url=" . $data["url"] . "]" . $data["title"] . "[/url]";
} elseif (!empty($data["url"])) {
$text .= "\n[url]" . $data["url"] . "[/url]";
if (!empty($data['url']) && !empty($data['title'])) {
$text .= "\n[url=" . $data['url'] . ']' . $data['title'] . '[/url]';
} elseif (!empty($data['url'])) {
$text .= "\n[url]" . $data['url'] . '[/url]';
}
return $text . "\n" . $data["after"];
return $text . "\n" . $data['after'];
}
/**
@ -694,7 +694,7 @@ class BBCode extends BaseObject
* @param array $match Array with the matching values
* @return string reformatted link including HTML codes
*/
private static function convertUrlForOStatusCallback($match)
private static function convertUrlForActivityPubCallback($match)
{
$url = $match[1];
@ -707,15 +707,26 @@ class BBCode extends BaseObject
return $match[0];
}
return self::convertUrlForOStatus($url);
return self::convertUrlForActivityPub($url);
}
/**
* @brief Converts [url] BBCodes in a format that looks fine on OStatus systems.
* @brief Converts [url] BBCodes in a format that looks fine on ActivityPub systems.
* @param string $url URL that is about to be reformatted
* @return string reformatted link including HTML codes
*/
private static function convertUrlForOStatus($url)
private static function convertUrlForActivityPub($url)
{
$html = '<a href="%s" target="_blank">%s</a>';
return sprintf($html, $url, self::getStyledURL($url));
}
/**
* Converts an URL in a nicer format (without the scheme and possibly shortened)
* @param string $url URL that is about to be reformatted
* @return string reformatted link
*/
private static function getStyledURL($url)
{
$parts = parse_url($url);
$scheme = $parts['scheme'] . '://';
@ -725,9 +736,7 @@ class BBCode extends BaseObject
$styled_url = substr($styled_url, 0, 30) . "";
}
$html = '<a href="%s" target="_blank">%s</a>';
return sprintf($html, $url, $styled_url);
return $styled_url;
}
/*
@ -932,7 +941,7 @@ class BBCode extends BaseObject
$attributes = [];
foreach(['author', 'profile', 'avatar', 'link', 'posted'] as $field) {
preg_match("/$field=(['\"])(.+?)\\1/ism", $attribute_string, $matches);
$attributes[$field] = html_entity_decode(defaults($matches, 2, ''), ENT_QUOTES, 'UTF-8');
$attributes[$field] = html_entity_decode($matches[2] ?? '', ENT_QUOTES, 'UTF-8');
}
// We only call this so that a previously unknown contact can be added.
@ -951,11 +960,11 @@ class BBCode extends BaseObject
Contact::getIdForURL($attributes['profile'], 0, true, $default);
$author_contact = Contact::getDetailsByURL($attributes['profile']);
$author_contact['addr'] = defaults($author_contact, 'addr' , Protocol::getAddrFromProfileUrl($attributes['profile']));
$author_contact['addr'] = ($author_contact['addr'] ?? '') ?: Protocol::getAddrFromProfileUrl($attributes['profile']);
$attributes['author'] = defaults($author_contact, 'name' , $attributes['author']);
$attributes['avatar'] = defaults($author_contact, 'micro', $attributes['avatar']);
$attributes['profile'] = defaults($author_contact, 'url' , $attributes['profile']);
$attributes['author'] = ($author_contact['name'] ?? '') ?: $attributes['author'];
$attributes['avatar'] = ($author_contact['micro'] ?? '') ?: $attributes['avatar'];
$attributes['profile'] = ($author_contact['url'] ?? '') ?: $attributes['profile'];
if ($attributes['avatar']) {
$attributes['avatar'] = ProxyUtils::proxifyUrl($attributes['avatar'], false, ProxyUtils::SIZE_THUMB);
@ -1073,10 +1082,10 @@ class BBCode extends BaseObject
$a->getProfiler()->saveTimestamp($stamp1, "network", System::callstack());
if (substr($curl_info["content_type"], 0, 6) == "image/") {
$text = "[url=" . $match[1] . "]" . $match[1] . "[/url]";
if (substr($curl_info['content_type'], 0, 6) == 'image/') {
$text = "[url=" . $match[1] . ']' . $match[1] . "[/url]";
} else {
$text = "[url=" . $match[2] . "]" . $match[2] . "[/url]";
$text = "[url=" . $match[2] . ']' . $match[2] . "[/url]";
// if its not a picture then look if its a page that contains a picture link
$body = Network::fetchUrl($match[1]);
@ -1094,8 +1103,8 @@ class BBCode extends BaseObject
}
}
if (strtolower($attr["name"]) == "twitter:image") {
$text = "[url=" . $attr["content"] . "]" . $attr["content"] . "[/url]";
if (strtolower($attr['name']) == 'twitter:image') {
$text = '[url=' . $attr['content'] . ']' . $attr['content'] . '[/url]';
}
}
}
@ -1107,7 +1116,7 @@ class BBCode extends BaseObject
private static function expandLinksCallback($match)
{
if (($match[3] == "") || ($match[2] == $match[3]) || stristr($match[2], $match[3])) {
if (($match[3] == '') || ($match[2] == $match[3]) || stristr($match[2], $match[3])) {
return ($match[1] . "[url]" . $match[2] . "[/url]");
} else {
return ($match[1] . $match[3] . " [url]" . $match[2] . "[/url]");
@ -1122,9 +1131,9 @@ class BBCode extends BaseObject
$own_photo_url = preg_quote(Strings::normaliseLink($a->getBaseURL()) . '/photos/');
if (preg_match('|' . $own_photo_url . '.*?/image/|', Strings::normaliseLink($match[1]))) {
if (!empty($match[3])) {
$text = "[img=" . str_replace('-1.', '-0.', $match[2]) . "]" . $match[3] . "[/img]";
$text = '[img=' . str_replace('-1.', '-0.', $match[2]) . ']' . $match[3] . '[/img]';
} else {
$text = "[img]" . str_replace('-1.', '-0.', $match[2]) . "[/img]";
$text = '[img]' . str_replace('-1.', '-0.', $match[2]) . '[/img]';
}
return $text;
}
@ -1148,13 +1157,13 @@ class BBCode extends BaseObject
$a->getProfiler()->saveTimestamp($stamp1, "network", System::callstack());
// if its a link to a picture then embed this picture
if (substr($curl_info["content_type"], 0, 6) == "image/") {
$text = "[img]" . $match[1] . "[/img]";
if (substr($curl_info['content_type'], 0, 6) == 'image/') {
$text = '[img]' . $match[1] . '[/img]';
} else {
if (!empty($match[3])) {
$text = "[img=" . $match[2] . "]" . $match[3] . "[/img]";
$text = '[img=' . $match[2] . ']' . $match[3] . '[/img]';
} else {
$text = "[img]" . $match[2] . "[/img]";
$text = '[img]' . $match[2] . '[/img]';
}
// if its not a picture then look if its a page that contains a picture link
@ -1172,11 +1181,11 @@ class BBCode extends BaseObject
}
}
if (strtolower($attr["name"]) == "twitter:image") {
if (strtolower($attr['name']) == "twitter:image") {
if (!empty($match[3])) {
$text = "[img=" . $attr["content"] . "]" . $match[3] . "[/img]";
$text = "[img=" . $attr['content'] . "]" . $match[3] . "[/img]";
} else {
$text = "[img]" . $attr["content"] . "[/img]";
$text = "[img]" . $attr['content'] . "[/img]";
}
}
}
@ -1232,7 +1241,7 @@ class BBCode extends BaseObject
$try_oembed_callback = function ($match)
{
$url = $match[1];
$title = defaults($match, 2, null);
$title = $match[2] ?? null;
try {
$return = OEmbed::getHTML($url, $title);
@ -1333,7 +1342,7 @@ class BBCode extends BaseObject
$text = str_replace($search, $replace, $text);
// removing multiplicated newlines
if (Config::get("system", "remove_multiplicated_lines")) {
if (Config::get('system', 'remove_multiplicated_lines')) {
$search = ["\n\n\n", "\n ", " \n", "[/quote]\n\n", "\n[/quote]", "[/li]\n", "\n[li]", "\n[ul]", "[/ul]\n", "\n\n[share ", "[/attachment]\n",
"\n[h1]", "[/h1]\n", "\n[h2]", "[/h2]\n", "\n[h3]", "[/h3]\n", "\n[h4]", "[/h4]\n", "\n[h5]", "[/h5]\n", "\n[h6]", "[/h6]\n"];
$replace = ["\n\n", "\n", "\n", "[/quote]\n", "[/quote]", "[/li]", "[li]", "[ul]", "[/ul]", "\n[share ", "[/attachment]",
@ -1655,8 +1664,8 @@ class BBCode extends BaseObject
if (!$for_plaintext) {
if (in_array($simple_html, [7, 9])) {
$text = preg_replace_callback("/\[url\](.*?)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text);
$text = preg_replace_callback("/\[url\=(.*?)\](.*?)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text);
$text = preg_replace_callback("/\[url\](.*?)\[\/url\]/ism", 'self::convertUrlForActivityPubCallback', $text);
$text = preg_replace_callback("/\[url\=(.*?)\](.*?)\[\/url\]/ism", 'self::convertUrlForActivityPubCallback', $text);
}
} else {
$text = preg_replace("(\[url\](.*?)\[\/url\])ism", " $1 ", $text);
@ -1832,7 +1841,7 @@ class BBCode extends BaseObject
// Clean up the HTML by loading and saving the HTML with the DOM.
// Bad structured html can break a whole page.
// For performance reasons do it only with activated item cache or at export.
if (!$try_oembed || (get_itemcachepath() != "")) {
if (!$try_oembed || (get_itemcachepath() != '')) {
$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
@ -1840,10 +1849,10 @@ class BBCode extends BaseObject
$doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">';
$encoding = '<?xml encoding="UTF-8">';
@$doc->loadHTML($encoding.$doctype."<html><body>".$text."</body></html>");
@$doc->loadHTML($encoding . $doctype . '<html><body>' . $text . '</body></html>');
$doc->encoding = 'UTF-8';
$text = $doc->saveHTML();
$text = str_replace(["<html><body>", "</body></html>", $doctype, $encoding], ["", "", "", ""], $text);
$text = str_replace(['<html><body>', '</body></html>', $doctype, $encoding], ['', '', '', ''], $text);
$text = str_replace('<br></li>', '</li>', $text);
@ -1883,9 +1892,9 @@ class BBCode extends BaseObject
* @param string $addon The addon for which the abstract is meant for
* @return string The abstract
*/
public static function getAbstract($text, $addon = "")
public static function getAbstract($text, $addon = '')
{
$abstract = "";
$abstract = '';
$abstracts = [];
$addon = strtolower($addon);
@ -1899,7 +1908,7 @@ class BBCode extends BaseObject
$abstract = $abstracts[$addon];
}
if ($abstract == "" && preg_match("/\[abstract\](.*?)\[\/abstract\]/ism", $text, $result)) {
if ($abstract == '' && preg_match("/\[abstract\](.*?)\[\/abstract\]/ism", $text, $result)) {
$abstract = $result[1];
}
@ -1975,7 +1984,7 @@ class BBCode extends BaseObject
// Add all tags that maybe were removed
if (preg_match_all("/#\[url\=([$url_search_string]*)\](.*?)\[\/url\]/ism", $original_text, $tags)) {
$tagline = "";
$tagline = '';
foreach ($tags[2] as $tag) {
$tag = html_entity_decode($tag, ENT_QUOTES, 'UTF-8');
if (!strpos(html_entity_decode($text, ENT_QUOTES, 'UTF-8'), '#' . $tag)) {
@ -1993,7 +2002,7 @@ class BBCode extends BaseObject
// If a link is followed by a quote then there should be a newline before it
// Maybe we should make this newline at every time before a quote.
$text = str_replace(["</a><blockquote>"], ["</a><br><blockquote>"], $text);
$text = str_replace(['</a><blockquote>'], ['</a><br><blockquote>'], $text);
$stamp1 = microtime(true);

View file

@ -872,8 +872,8 @@ class HTML
$url = '';
}
return Renderer::replaceMacros(Renderer::getMarkupTemplate(($textmode)?'micropro_txt.tpl':'micropro_img.tpl'), [
'$click' => defaults($contact, 'click', ''),
return Renderer::replaceMacros(Renderer::getMarkupTemplate($textmode ? 'micropro_txt.tpl' : 'micropro_img.tpl'), [
'$click' => $contact['click'] ?? '',
'$class' => $class,
'$url' => $url,
'$photo' => ProxyUtils::proxifyUrl($contact['thumb'], false, ProxyUtils::SIZE_THUMB),

View file

@ -57,7 +57,7 @@ class CalendarExport
// $a->data is only available if the profile page is visited. If the visited page is not part
// of the profile page it should be the personal /events page. So we can use $a->user.
$user = defaults($a->data['user'], 'nickname', $a->user['nickname']);
$user = ($a->data['user']['nickname'] ?? '') ?: $a->user['nickname'];
$tpl = Renderer::getMarkupTemplate("widget/events.tpl");
$return = Renderer::replaceMacros($tpl, [

View file

@ -61,7 +61,7 @@ class ContactBlock
if ($total) {
// Only show followed for personal accounts, followers for pages
if (defaults($profile, 'account-type', User::ACCOUNT_TYPE_PERSON) == User::ACCOUNT_TYPE_PERSON) {
if ((($profile['account-type'] ?? '') ?: User::ACCOUNT_TYPE_PERSON) == User::ACCOUNT_TYPE_PERSON) {
$rel = [Contact::SHARING, Contact::FRIEND];
} else {
$rel = [Contact::FOLLOWER, Contact::FRIEND];

View file

@ -41,12 +41,12 @@ class ACL extends BaseObject
$networks = null;
$size = defaults($options, 'size', 4);
$size = ($options['size'] ?? 0) ?: 4;
$mutual = !empty($options['mutual_friends']);
$single = !empty($options['single']) && empty($options['multiple']);
$exclude = defaults($options, 'exclude', false);
$exclude = $options['exclude'] ?? false;
switch (defaults($options, 'networks', Protocol::PHANTOM)) {
switch (($options['networks'] ?? '') ?: Protocol::PHANTOM) {
case 'DFRN_ONLY':
$networks = [Protocol::DFRN];
break;
@ -226,13 +226,13 @@ class ACL extends BaseObject
$acl_regex = '/<([0-9]+)>/i';
preg_match_all($acl_regex, defaults($user, 'allow_cid', ''), $matches);
preg_match_all($acl_regex, $user['allow_cid'] ?? '', $matches);
$allow_cid = $matches[1];
preg_match_all($acl_regex, defaults($user, 'allow_gid', ''), $matches);
preg_match_all($acl_regex, $user['allow_gid'] ?? '', $matches);
$allow_gid = $matches[1];
preg_match_all($acl_regex, defaults($user, 'deny_cid', ''), $matches);
preg_match_all($acl_regex, $user['deny_cid'] ?? '', $matches);
$deny_cid = $matches[1];
preg_match_all($acl_regex, defaults($user, 'deny_gid', ''), $matches);
preg_match_all($acl_regex, $user['deny_gid'] ?? '', $matches);
$deny_gid = $matches[1];
// Reformats the ACL data so that it is accepted by the JS frontend
@ -301,10 +301,10 @@ class ACL extends BaseObject
'$showall' => L10n::t('Visible to everybody'),
'$show' => L10n::t('show'),
'$hide' => L10n::t('don\'t show'),
'$allowcid' => json_encode(defaults($default_permissions, 'allow_cid', [])), // we need arrays for Javascript since we call .remove() and .push() on this values
'$allowgid' => json_encode(defaults($default_permissions, 'allow_gid', [])),
'$denycid' => json_encode(defaults($default_permissions, 'deny_cid', [])),
'$denygid' => json_encode(defaults($default_permissions, 'deny_gid', [])),
'$allowcid' => json_encode(($default_permissions['allow_cid'] ?? '') ?: []), // We need arrays for
'$allowgid' => json_encode(($default_permissions['allow_gid'] ?? '') ?: []), // Javascript since we
'$denycid' => json_encode(($default_permissions['deny_cid'] ?? '') ?: []), // call .remove() and
'$denygid' => json_encode(($default_permissions['deny_gid'] ?? '') ?: []), // .push() on these values
'$networks' => $show_jotnets,
'$emailcc' => L10n::t('CC: email addresses'),
'$emtitle' => L10n::t('Example: bob@example.com, mary@example.com'),

View file

@ -49,7 +49,7 @@ class Authentication extends BaseObject
$value = json_encode([
"uid" => $user["uid"],
"hash" => self::getCookieHashForUser($user),
"ip" => defaults($_SERVER, 'REMOTE_ADDR', '0.0.0.0')
"ip" => ($_SERVER['REMOTE_ADDR'] ?? '') ?: '0.0.0.0'
]);
} else {
$value = "";

View file

@ -7,8 +7,8 @@ use Friendica\Model;
/**
* This class is responsible for all system-wide configuration values in Friendica
* There are two types of storage
* - The Config-Files (loaded into the FileCache @see Cache\ConfigCache )
* - The Config-DB-Table (per Config-DB-model @see Model\Config\Config )
* - The Config-Files (loaded into the FileCache @see Cache\ConfigCache)
* - The Config-DB-Table (per Config-DB-model @see Model\Config\Config)
*/
abstract class Configuration
{
@ -59,7 +59,7 @@ abstract class Configuration
*
* Get a particular config value from the given category ($cat)
* and the $key from a cached storage either from the $this->configAdapter
* (@see IConfigAdapter ) or from the $this->configCache (@see ConfigCache ).
* (@see IConfigAdapter) or from the $this->configCache (@see ConfigCache).
*
* @param string $cat The category of the configuration value
* @param string $key The configuration key to query
@ -89,7 +89,7 @@ abstract class Configuration
* @brief Deletes the given key from the system configuration.
*
* Removes the configured value from the stored cache in $this->configCache
* (@see ConfigCache ) and removes it from the database (@see IConfigAdapter ).
* (@see ConfigCache) and removes it from the database (@see IConfigAdapter).
*
* @param string $cat The category of the configuration value
* @param string $key The configuration key to delete

View file

@ -8,7 +8,7 @@ use Friendica\Model;
* This class is responsible for the user-specific configuration values in Friendica
* The values are set through the Config-DB-Table (per Config-DB-model @see Model\Config\PConfig)
*
* The configuration cache (@see Cache\PConfigCache ) is used for temporary caching of database calls. This will
* The configuration cache (@see Cache\PConfigCache) is used for temporary caching of database calls. This will
* increase the performance.
*/
abstract class PConfiguration
@ -52,7 +52,7 @@ abstract class PConfiguration
* @param string $cat The category of the configuration value
*
* @return void
* @see PConfigCache )
* @see PConfigCache
*
*/
abstract public function load(int $uid, string $cat = 'config');
@ -63,7 +63,7 @@ abstract class PConfiguration
*
* Get a particular user's config value from the given category ($cat)
* and the $key with the $uid from a cached storage either from the $this->configAdapter
* (@see IConfigAdapter ) or from the $this->configCache (@see PConfigCache ).
* (@see IConfigAdapter) or from the $this->configCache (@see PConfigCache).
*
* @param int $uid The user_id
* @param string $cat The category of the configuration value
@ -96,7 +96,7 @@ abstract class PConfiguration
* Deletes the given key from the users's configuration.
*
* Removes the configured value from the stored cache in $this->configCache
* (@see ConfigCache ) and removes it from the database (@see IConfigAdapter )
* (@see ConfigCache) and removes it from the database (@see IConfigAdapter)
* with the given $uid.
*
* @param int $uid The user_id

View file

@ -137,7 +137,7 @@ class NotificationsManager extends BaseObject
*/
public function getTabs()
{
$selected = defaults(self::getApp()->argv, 1, '');
$selected = self::getApp()->argv[1] ?? '';
$tabs = [
[

View file

@ -136,7 +136,7 @@ class Renderer extends BaseObject
*/
public static function getTemplateEngine()
{
$template_engine = defaults(self::$theme, 'template_engine', 'smarty3');
$template_engine = (self::$theme['template_engine'] ?? '') ?: 'smarty3';
if (isset(self::$template_engines[$template_engine])) {
if (isset(self::$template_engine_instance[$template_engine])) {

View file

@ -56,21 +56,20 @@ class Search extends BaseObject
}
// Ensure that we do have a contact entry
Contact::getIdForURL(defaults($user_data, 'url', ''));
Contact::getIdForURL($user_data['url'] ?? '');
$contactDetails = Contact::getDetailsByURL(defaults($user_data, 'url', ''), local_user());
$itemUrl = defaults($contactDetails, 'addr', defaults($user_data, 'url', ''));
$contactDetails = Contact::getDetailsByURL($user_data['url'] ?? '', local_user());
$result = new ContactResult(
defaults($user_data, 'name', ''),
defaults($user_data, 'addr', ''),
$itemUrl,
defaults($user_data, 'url', ''),
defaults($user_data, 'photo', ''),
defaults($user_data, 'network', ''),
defaults($contactDetails, 'id', 0),
$user_data['name'] ?? '',
$user_data['addr'] ?? '',
($contactDetails['addr'] ?? '') ?: ($user_data['url'] ?? ''),
$user_data['url'] ?? '',
$user_data['photo'] ?? '',
$user_data['network'] ?? '',
$contactDetails['id'] ?? 0,
0,
defaults($user_data, 'tags', '')
$user_data['tags'] ?? ''
);
return new ResultList(1, 1, 1, [$result]);
@ -117,27 +116,28 @@ class Search extends BaseObject
$results = json_decode($resultJson, true);
$resultList = new ResultList(
defaults($results, 'page', 1),
defaults($results, 'count', 0),
defaults($results, 'itemsperpage', 30)
($results['page'] ?? 0) ?: 1,
$results['count'] ?? 0,
($results['itemsperpage'] ?? 0) ?: 30
);
$profiles = defaults($results, 'profiles', []);
$profiles = $results['profiles'] ?? [];
foreach ($profiles as $profile) {
$contactDetails = Contact::getDetailsByURL(defaults($profile, 'profile_url', ''), local_user());
$itemUrl = defaults($contactDetails, 'addr', defaults($profile, 'profile_url', ''));
$profile_url = $profile['profile_url'] ?? '';
$contactDetails = Contact::getDetailsByURL($profile_url, local_user());
$result = new ContactResult(
defaults($profile, 'name', ''),
defaults($profile, 'addr', ''),
$itemUrl,
defaults($profile, 'profile_url', ''),
defaults($profile, 'photo', ''),
$profile['name'] ?? '',
$profile['addr'] ?? '',
($contactDetails['addr'] ?? '') ?: $profile_url,
$profile_url,
$profile['photo'] ?? '',
Protocol::DFRN,
defaults($contactDetails, 'cid', 0),
$contactDetails['cid'] ?? 0,
0,
defaults($profile, 'tags', ''));
$profile['tags'] ?? ''
);
$resultList->addResult($result);
}

View file

@ -128,7 +128,7 @@ class Session
'page_flags' => $user_record['page-flags'],
'my_url' => $a->getBaseURL() . '/profile/' . $user_record['nickname'],
'my_address' => $user_record['nickname'] . '@' . substr($a->getBaseURL(), strpos($a->getBaseURL(), '://') + 3),
'addr' => defaults($_SERVER, 'REMOTE_ADDR', '0.0.0.0')
'addr' => ($_SERVER['REMOTE_ADDR'] ?? '') ?: '0.0.0.0'
]);
self::setVisitorsContacts();

View file

@ -48,7 +48,7 @@ class StorageManager
public static function getByName($name)
{
self::setup();
return defaults(self::$backends, $name, '');
return self::$backends[$name] ?? '';
}
/**

View file

@ -421,7 +421,7 @@ class DBStructure
}
if (isset($database[$name]["table_status"]["Comment"])) {
$structurecomment = defaults($structure, "comment", "");
$structurecomment = $structure["comment"] ?? '';
if ($database[$name]["table_status"]["Comment"] != $structurecomment) {
$sql2 = "COMMENT = '" . DBA::escape($structurecomment) . "'";
@ -465,7 +465,7 @@ class DBStructure
// Compare the field structure field by field
foreach ($structure["fields"] AS $fieldname => $parameters) {
// Compare the field definition
$field_definition = defaults($database[$name]["fields"], $fieldname, ['Collation' => '']);
$field_definition = ($database[$name]["fields"][$fieldname] ?? '') ?: ['Collation' => ''];
// Define the default collation if not given
if (!isset($parameters['Collation']) && !empty($field_definition['Collation'])) {
@ -717,8 +717,8 @@ class DBStructure
* @todo You cannot rename a primary key if "auto increment" is set
*
* @param string $table Table name
* @param array $columns Columns Syntax for Rename: [ $old1 => [ $new1, $type1 ], $old2 => [ $new2, $type2 ], ... ] )
* Syntax for Primary Key: [ $col1, $col2, ...] )
* @param array $columns Columns Syntax for Rename: [ $old1 => [ $new1, $type1 ], $old2 => [ $new2, $type2 ], ... ]
* Syntax for Primary Key: [ $col1, $col2, ...]
* @param int $type The type of renaming (Default is Column)
*
* @return boolean Was the renaming successful?

View file

@ -1078,14 +1078,14 @@ class Contact extends BaseObject
$profile["micro"] = $profile["thumb"];
}
if ((empty($profile["addr"]) || empty($profile["name"])) && (defaults($profile, "gid", 0) != 0)
if ((empty($profile["addr"]) || empty($profile["name"])) && !empty($profile["gid"])
&& in_array($profile["network"], Protocol::FEDERATED)
) {
Worker::add(PRIORITY_LOW, "UpdateGContact", $url);
}
// Show contact details of Diaspora contacts only if connected
if ((defaults($profile, "cid", 0) == 0) && (defaults($profile, "network", "") == Protocol::DIASPORA)) {
if (empty($profile["cid"]) && ($profile["network"] ?? "") == Protocol::DIASPORA) {
$profile["location"] = "";
$profile["about"] = "";
$profile["gender"] = "";
@ -1504,25 +1504,25 @@ class Contact extends BaseObject
'created' => DateTimeFormat::utcNow(),
'url' => $data['url'],
'nurl' => Strings::normaliseLink($data['url']),
'addr' => defaults($data, 'addr', ''),
'alias' => defaults($data, 'alias', ''),
'notify' => defaults($data, 'notify', ''),
'poll' => defaults($data, 'poll', ''),
'name' => defaults($data, 'name', ''),
'nick' => defaults($data, 'nick', ''),
'photo' => defaults($data, 'photo', ''),
'keywords' => defaults($data, 'keywords', ''),
'location' => defaults($data, 'location', ''),
'about' => defaults($data, 'about', ''),
'addr' => $data['addr'] ?? '',
'alias' => $data['alias'] ?? '',
'notify' => $data['notify'] ?? '',
'poll' => $data['poll'] ?? '',
'name' => $data['name'] ?? '',
'nick' => $data['nick'] ?? '',
'photo' => $data['photo'] ?? '',
'keywords' => $data['keywords'] ?? '',
'location' => $data['location'] ?? '',
'about' => $data['about'] ?? '',
'network' => $data['network'],
'pubkey' => defaults($data, 'pubkey', ''),
'pubkey' => $data['pubkey'] ?? '',
'rel' => self::SHARING,
'priority' => defaults($data, 'priority', 0),
'batch' => defaults($data, 'batch', ''),
'request' => defaults($data, 'request', ''),
'confirm' => defaults($data, 'confirm', ''),
'poco' => defaults($data, 'poco', ''),
'baseurl' => defaults($data, 'baseurl', ''),
'priority' => $data['priority'] ?? 0,
'batch' => $data['batch'] ?? '',
'request' => $data['request'] ?? '',
'confirm' => $data['confirm'] ?? '',
'poco' => $data['poco'] ?? '',
'baseurl' => $data['baseurl'] ?? '',
'name-date' => DateTimeFormat::utcNow(),
'uri-date' => DateTimeFormat::utcNow(),
'avatar-date' => DateTimeFormat::utcNow(),
@ -1589,7 +1589,7 @@ class Contact extends BaseObject
$fields = ['addr', 'alias', 'name', 'nick', 'keywords', 'location', 'about', 'baseurl'];
foreach ($fields as $field) {
$updated[$field] = defaults($data, $field, $contact[$field]);
$updated[$field] = ($data[$field] ?? '') ?: $contact[$field];
}
if (($updated['addr'] != $contact['addr']) || (!empty($data['alias']) && ($data['alias'] != $contact['alias']))) {
@ -2469,9 +2469,9 @@ class Contact extends BaseObject
return false;
}
$url = defaults($datarray, 'author-link', $pub_contact['url']);
$url = ($datarray['author-link'] ?? '') ?: $pub_contact['url'];
$name = $pub_contact['name'];
$photo = defaults($pub_contact, 'avatar', $pub_contact["photo"]);
$photo = ($pub_contact['avatar'] ?? '') ?: $pub_contact["photo"];
$nick = $pub_contact['nick'];
$network = $pub_contact['network'];

View file

@ -39,7 +39,7 @@ class Conversation
*/
public static function insert(array $arr)
{
if (in_array(defaults($arr, 'network', Protocol::PHANTOM),
if (in_array(($arr['network'] ?? '') ?: Protocol::PHANTOM,
[Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS, Protocol::TWITTER]) && !empty($arr['uri'])) {
$conversation = ['item-uri' => $arr['uri'], 'received' => DateTimeFormat::utcNow()];
@ -76,8 +76,13 @@ class Conversation
unset($old_conv['source']);
}
// Update structure data all the time but the source only when its from a better protocol.
if (empty($conversation['source']) || (!empty($old_conv['source']) &&
($old_conv['protocol'] < defaults($conversation, 'protocol', self::PARCEL_UNKNOWN)))) {
if (
empty($conversation['source'])
|| (
!empty($old_conv['source'])
&& ($old_conv['protocol'] < (($conversation['protocol'] ?? '') ?: self::PARCEL_UNKNOWN))
)
) {
unset($conversation['protocol']);
unset($conversation['source']);
}

View file

@ -242,30 +242,30 @@ class Event extends BaseObject
public static function store($arr)
{
$event = [];
$event['id'] = intval(defaults($arr, 'id' , 0));
$event['uid'] = intval(defaults($arr, 'uid' , 0));
$event['cid'] = intval(defaults($arr, 'cid' , 0));
$event['guid'] = defaults($arr, 'guid' , System::createUUID());
$event['uri'] = defaults($arr, 'uri' , Item::newURI($event['uid'], $event['guid']));
$event['type'] = defaults($arr, 'type' , 'event');
$event['summary'] = defaults($arr, 'summary' , '');
$event['desc'] = defaults($arr, 'desc' , '');
$event['location'] = defaults($arr, 'location' , '');
$event['allow_cid'] = defaults($arr, 'allow_cid', '');
$event['allow_gid'] = defaults($arr, 'allow_gid', '');
$event['deny_cid'] = defaults($arr, 'deny_cid' , '');
$event['deny_gid'] = defaults($arr, 'deny_gid' , '');
$event['adjust'] = intval(defaults($arr, 'adjust' , 0));
$event['nofinish'] = intval(defaults($arr, 'nofinish' , !empty($event['start']) && empty($event['finish'])));
$event['id'] = intval($arr['id'] ?? 0);
$event['uid'] = intval($arr['uid'] ?? 0);
$event['cid'] = intval($arr['cid'] ?? 0);
$event['guid'] = ($arr['guid'] ?? '') ?: System::createUUID();
$event['uri'] = ($arr['uri'] ?? '') ?: Item::newURI($event['uid'], $event['guid']);
$event['type'] = ($arr['type'] ?? '') ?: 'event';
$event['summary'] = $arr['summary'] ?? '';
$event['desc'] = $arr['desc'] ?? '';
$event['location'] = $arr['location'] ?? '';
$event['allow_cid'] = $arr['allow_cid'] ?? '';
$event['allow_gid'] = $arr['allow_gid'] ?? '';
$event['deny_cid'] = $arr['deny_cid'] ?? '';
$event['deny_gid'] = $arr['deny_gid'] ?? '';
$event['adjust'] = intval($arr['adjust'] ?? 0);
$event['nofinish'] = intval(!empty($arr['nofinish'] || !empty($event['start']) && empty($event['finish'])));
$event['created'] = DateTimeFormat::utc(defaults($arr, 'created' , 'now'));
$event['edited'] = DateTimeFormat::utc(defaults($arr, 'edited' , 'now'));
$event['start'] = DateTimeFormat::utc(defaults($arr, 'start' , DBA::NULL_DATETIME));
$event['finish'] = DateTimeFormat::utc(defaults($arr, 'finish' , DBA::NULL_DATETIME));
$event['created'] = DateTimeFormat::utc(($arr['created'] ?? '') ?: 'now');
$event['edited'] = DateTimeFormat::utc(($arr['edited'] ?? '') ?: 'now');
$event['start'] = DateTimeFormat::utc(($arr['start'] ?? '') ?: DBA::NULL_DATETIME);
$event['finish'] = DateTimeFormat::utc(($arr['finish'] ?? '') ?: DBA::NULL_DATETIME);
if ($event['finish'] < DBA::NULL_DATETIME) {
$event['finish'] = DBA::NULL_DATETIME;
}
$private = intval(defaults($arr, 'private', 0));
$private = intval($arr['private'] ?? 0);
$conditions = ['uid' => $event['uid']];
if ($event['cid']) {
@ -333,7 +333,7 @@ class Event extends BaseObject
$item_arr['uri'] = $event['uri'];
$item_arr['parent-uri'] = $event['uri'];
$item_arr['guid'] = $event['guid'];
$item_arr['plink'] = defaults($arr, 'plink', '');
$item_arr['plink'] = $arr['plink'] ?? '';
$item_arr['post-type'] = Item::PT_EVENT;
$item_arr['wall'] = $event['cid'] ? 0 : 1;
$item_arr['contact-id'] = $contact['id'];

View file

@ -256,7 +256,7 @@ class GContact
WHERE `glink`.`cid` = %d AND `glink`.`uid` = %d AND
((`gcontact`.`last_contact` >= `gcontact`.`last_failure`) OR
(`gcontact`.`updated` >= `gcontact`.`last_failure`))
AND `gcontact`.`nurl` IN (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 and id != %d ) ",
AND `gcontact`.`nurl` IN (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 and id != %d) ",
intval($cid),
intval($uid),
intval($uid),
@ -282,7 +282,7 @@ class GContact
"SELECT count(*) as `total`
FROM `glink` INNER JOIN `gcontact` on `glink`.`gcid` = `gcontact`.`id`
where `glink`.`zcid` = %d
and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 ) ",
and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0) ",
intval($zcid),
intval($uid)
);
@ -354,7 +354,7 @@ class GContact
"SELECT `gcontact`.*
FROM `glink` INNER JOIN `gcontact` on `glink`.`gcid` = `gcontact`.`id`
where `glink`.`zcid` = %d
and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 )
and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0)
$sql_extra limit %d, %d",
intval($zcid),
intval($uid),
@ -687,9 +687,9 @@ class GContact
$doprobing = (((time() - $last_contact) > (90 * 86400)) && ((time() - $last_failure) > (90 * 86400)));
}
} else {
$contact['location'] = defaults($contact, 'location', '');
$contact['about'] = defaults($contact, 'about', '');
$contact['generation'] = defaults($contact, 'generation', 0);
$contact['location'] = $contact['location'] ?? '';
$contact['about'] = $contact['about'] ?? '';
$contact['generation'] = $contact['generation'] ?? 0;
q(
"INSERT INTO `gcontact` (`name`, `nick`, `addr` , `network`, `url`, `nurl`, `photo`, `created`, `updated`, `location`, `about`, `hide`, `generation`)

View file

@ -814,7 +814,7 @@ class GServer
if (!empty($data['version'])) {
$serverdata['platform'] = 'mastodon';
$serverdata['version'] = defaults($data, 'version', '');
$serverdata['version'] = $data['version'] ?? '';
$serverdata['network'] = Protocol::ACTIVITYPUB;
}
@ -1010,7 +1010,7 @@ class GServer
$serverdata['info'] = trim($data['info']);
}
$register_policy = defaults($data, 'register_policy', 'REGISTER_CLOSED');
$register_policy = ($data['register_policy'] ?? '') ?: 'REGISTER_CLOSED';
switch ($register_policy) {
case 'REGISTER_OPEN':
$serverdata['register_policy'] = Register::OPEN;
@ -1030,7 +1030,7 @@ class GServer
break;
}
$serverdata['platform'] = defaults($data, 'platform', '');
$serverdata['platform'] = $data['platform'] ?? '';
return $serverdata;
}

View file

@ -1313,11 +1313,11 @@ class Item extends BaseObject
$priority = $notify;
}
} else {
$item['network'] = trim(defaults($item, 'network', Protocol::PHANTOM));
$item['network'] = trim(($item['network'] ?? '') ?: Protocol::PHANTOM);
}
$item['guid'] = self::guid($item, $notify);
$item['uri'] = Strings::escapeTags(trim(defaults($item, 'uri', self::newURI($item['uid'], $item['guid']))));
$item['uri'] = Strings::escapeTags(trim(($item['uri'] ?? '') ?: self::newURI($item['uid'], $item['guid'])));
// Store URI data
$item['uri-id'] = ItemURI::insert(['uri' => $item['uri'], 'guid' => $item['guid']]);
@ -1419,47 +1419,47 @@ class Item extends BaseObject
}
}
$item['wall'] = intval(defaults($item, 'wall', 0));
$item['extid'] = trim(defaults($item, 'extid', ''));
$item['author-name'] = trim(defaults($item, 'author-name', ''));
$item['author-link'] = trim(defaults($item, 'author-link', ''));
$item['author-avatar'] = trim(defaults($item, 'author-avatar', ''));
$item['owner-name'] = trim(defaults($item, 'owner-name', ''));
$item['owner-link'] = trim(defaults($item, 'owner-link', ''));
$item['owner-avatar'] = trim(defaults($item, 'owner-avatar', ''));
$item['wall'] = intval($item['wall'] ?? 0);
$item['extid'] = trim($item['extid'] ?? '');
$item['author-name'] = trim($item['author-name'] ?? '');
$item['author-link'] = trim($item['author-link'] ?? '');
$item['author-avatar'] = trim($item['author-avatar'] ?? '');
$item['owner-name'] = trim($item['owner-name'] ?? '');
$item['owner-link'] = trim($item['owner-link'] ?? '');
$item['owner-avatar'] = trim($item['owner-avatar'] ?? '');
$item['received'] = (isset($item['received']) ? DateTimeFormat::utc($item['received']) : DateTimeFormat::utcNow());
$item['created'] = (isset($item['created']) ? DateTimeFormat::utc($item['created']) : $item['received']);
$item['edited'] = (isset($item['edited']) ? DateTimeFormat::utc($item['edited']) : $item['created']);
$item['changed'] = (isset($item['changed']) ? DateTimeFormat::utc($item['changed']) : $item['created']);
$item['commented'] = (isset($item['commented']) ? DateTimeFormat::utc($item['commented']) : $item['created']);
$item['title'] = trim(defaults($item, 'title', ''));
$item['location'] = trim(defaults($item, 'location', ''));
$item['coord'] = trim(defaults($item, 'coord', ''));
$item['title'] = trim($item['title'] ?? '');
$item['location'] = trim($item['location'] ?? '');
$item['coord'] = trim($item['coord'] ?? '');
$item['visible'] = (isset($item['visible']) ? intval($item['visible']) : 1);
$item['deleted'] = 0;
$item['parent-uri'] = trim(defaults($item, 'parent-uri', $item['uri']));
$item['post-type'] = defaults($item, 'post-type', self::PT_ARTICLE);
$item['verb'] = trim(defaults($item, 'verb', ''));
$item['object-type'] = trim(defaults($item, 'object-type', ''));
$item['object'] = trim(defaults($item, 'object', ''));
$item['target-type'] = trim(defaults($item, 'target-type', ''));
$item['target'] = trim(defaults($item, 'target', ''));
$item['plink'] = trim(defaults($item, 'plink', ''));
$item['allow_cid'] = trim(defaults($item, 'allow_cid', ''));
$item['allow_gid'] = trim(defaults($item, 'allow_gid', ''));
$item['deny_cid'] = trim(defaults($item, 'deny_cid', ''));
$item['deny_gid'] = trim(defaults($item, 'deny_gid', ''));
$item['private'] = intval(defaults($item, 'private', 0));
$item['body'] = trim(defaults($item, 'body', ''));
$item['tag'] = trim(defaults($item, 'tag', ''));
$item['attach'] = trim(defaults($item, 'attach', ''));
$item['app'] = trim(defaults($item, 'app', ''));
$item['origin'] = intval(defaults($item, 'origin', 0));
$item['postopts'] = trim(defaults($item, 'postopts', ''));
$item['resource-id'] = trim(defaults($item, 'resource-id', ''));
$item['event-id'] = intval(defaults($item, 'event-id', 0));
$item['inform'] = trim(defaults($item, 'inform', ''));
$item['file'] = trim(defaults($item, 'file', ''));
$item['parent-uri'] = trim(($item['parent-uri'] ?? '') ?: $item['uri']);
$item['post-type'] = ($item['post-type'] ?? '') ?: self::PT_ARTICLE;
$item['verb'] = trim($item['verb'] ?? '');
$item['object-type'] = trim($item['object-type'] ?? '');
$item['object'] = trim($item['object'] ?? '');
$item['target-type'] = trim($item['target-type'] ?? '');
$item['target'] = trim($item['target'] ?? '');
$item['plink'] = trim($item['plink'] ?? '');
$item['allow_cid'] = trim($item['allow_cid'] ?? '');
$item['allow_gid'] = trim($item['allow_gid'] ?? '');
$item['deny_cid'] = trim($item['deny_cid'] ?? '');
$item['deny_gid'] = trim($item['deny_gid'] ?? '');
$item['private'] = intval($item['private'] ?? 0);
$item['body'] = trim($item['body'] ?? '');
$item['tag'] = trim($item['tag'] ?? '');
$item['attach'] = trim($item['attach'] ?? '');
$item['app'] = trim($item['app'] ?? '');
$item['origin'] = intval($item['origin'] ?? 0);
$item['postopts'] = trim($item['postopts'] ?? '');
$item['resource-id'] = trim($item['resource-id'] ?? '');
$item['event-id'] = intval($item['event-id'] ?? 0);
$item['inform'] = trim($item['inform'] ?? '');
$item['file'] = trim($item['file'] ?? '');
// When there is no content then we don't post it
if ($item['body'].$item['title'] == '') {
@ -1479,12 +1479,12 @@ class Item extends BaseObject
$item['edited'] = DateTimeFormat::utcNow();
}
$item['plink'] = defaults($item, 'plink', System::baseUrl() . '/display/' . urlencode($item['guid']));
$item['plink'] = ($item['plink'] ?? '') ?: System::baseUrl() . '/display/' . urlencode($item['guid']);
$default = ['url' => $item['author-link'], 'name' => $item['author-name'],
'photo' => $item['author-avatar'], 'network' => $item['network']];
$item['author-id'] = defaults($item, 'author-id', Contact::getIdForURL($item['author-link'], 0, false, $default));
$item['author-id'] = ($item['author-id'] ?? 0) ?: Contact::getIdForURL($item['author-link'], 0, false, $default);
if (Contact::isBlocked($item['author-id'])) {
Logger::notice('Author is blocked node-wide', ['author-link' => $item['author-link'], 'item-uri' => $item['uri']]);
@ -1504,7 +1504,7 @@ class Item extends BaseObject
$default = ['url' => $item['owner-link'], 'name' => $item['owner-name'],
'photo' => $item['owner-avatar'], 'network' => $item['network']];
$item['owner-id'] = defaults($item, 'owner-id', Contact::getIdForURL($item['owner-link'], 0, false, $default));
$item['owner-id'] = ($item['owner-id'] ?? 0) ?: Contact::getIdForURL($item['owner-link'], 0, false, $default);
if (Contact::isBlocked($item['owner-id'])) {
Logger::notice('Owner is blocked node-wide', ['owner-link' => $item['owner-link'], 'item-uri' => $item['uri']]);
@ -2453,7 +2453,7 @@ class Item extends BaseObject
Contact::unmarkForArchival($contact);
}
$update = (!$arr['private'] && ((defaults($arr, 'author-link', '') === defaults($arr, 'owner-link', '')) || ($arr["parent-uri"] === $arr["uri"])));
$update = (!$arr['private'] && ((($arr['author-link'] ?? '') === ($arr['owner-link'] ?? '')) || ($arr["parent-uri"] === $arr["uri"])));
// Is it a forum? Then we don't care about the rules from above
if (!$update && in_array($arr["network"], [Protocol::ACTIVITYPUB, Protocol::DFRN]) && ($arr["parent-uri"] === $arr["uri"])) {
@ -3334,8 +3334,8 @@ class Item extends BaseObject
{
$body = $item["body"];
$rendered_hash = defaults($item, 'rendered-hash', '');
$rendered_html = defaults($item, 'rendered-html', '');
$rendered_hash = $item['rendered-hash'] ?? '';
$rendered_html = $item['rendered-html'] ?? '';
if ($rendered_hash == ''
|| $rendered_html == ""
@ -3491,7 +3491,7 @@ class Item extends BaseObject
$filesubtype = 'unkn';
}
$title = Strings::escapeHtml(trim(defaults($mtch, 4, $mtch[1])));
$title = Strings::escapeHtml(trim(($mtch[4] ?? '') ?: $mtch[1]));
$title .= ' ' . $mtch[2] . ' ' . L10n::t('bytes');
$icon = '<div class="attachtype icon s22 type-' . $filetype . ' subtype-' . $filesubtype . '"></div>';

View file

@ -90,7 +90,7 @@ class ItemContent extends BaseObject
}
}
$html = Text\BBCode::convert($post['text'] . defaults($post, 'after', ''), false, $htmlmode);
$html = Text\BBCode::convert($post['text'] . ($post['after'] ?? ''), false, $htmlmode);
$msg = Text\HTML::toPlaintext($html, 0, true);
$msg = trim(html_entity_decode($msg, ENT_QUOTES, 'UTF-8'));
@ -99,7 +99,7 @@ class ItemContent extends BaseObject
if ($post['type'] == 'link') {
$link = $post['url'];
} elseif ($post['type'] == 'text') {
$link = defaults($post, 'url', '');
$link = $post['url'] ?? '';
} elseif ($post['type'] == 'video') {
$link = $post['url'];
} elseif ($post['type'] == 'photo') {

View file

@ -22,10 +22,10 @@ class PermissionSet extends BaseObject
public static function fetchIDForPost(&$postarray)
{
$condition = ['uid' => $postarray['uid'],
'allow_cid' => self::sortPermissions(defaults($postarray, 'allow_cid', '')),
'allow_gid' => self::sortPermissions(defaults($postarray, 'allow_gid', '')),
'deny_cid' => self::sortPermissions(defaults($postarray, 'deny_cid', '')),
'deny_gid' => self::sortPermissions(defaults($postarray, 'deny_gid', ''))];
'allow_cid' => self::sortPermissions($postarray['allow_cid'] ?? ''),
'allow_gid' => self::sortPermissions($postarray['allow_gid'] ?? ''),
'deny_cid' => self::sortPermissions($postarray['deny_cid'] ?? ''),
'deny_gid' => self::sortPermissions($postarray['deny_gid'] ?? '')];
$set = DBA::selectFirst('permissionset', ['id'], $condition);

View file

@ -90,7 +90,7 @@ class Profile
$location .= $profile['locality'];
}
if (!empty($profile['region']) && (defaults($profile, 'locality', '') != $profile['region'])) {
if (!empty($profile['region']) && (($profile['locality'] ?? '') != $profile['region'])) {
if ($location) {
$location .= ', ';
}
@ -322,7 +322,7 @@ class Profile
return $o;
}
$profile['picdate'] = urlencode(defaults($profile, 'picdate', ''));
$profile['picdate'] = urlencode($profile['picdate'] ?? '');
if (($profile['network'] != '') && ($profile['network'] != Protocol::DFRN)) {
$profile['network_link'] = Strings::formatNetworkName($profile['network'], $profile['url']);
@ -384,7 +384,7 @@ class Profile
if (Contact::canReceivePrivateMessages($profile)) {
if ($visitor_is_followed || $visitor_is_following) {
$wallmessage_link = $visitor_base_path . '/message/new/' . base64_encode(defaults($profile, 'addr', ''));
$wallmessage_link = $visitor_base_path . '/message/new/' . base64_encode($profile['addr'] ?? '');
} elseif ($visitor_is_authenticated && !empty($profile['unkmail'])) {
$wallmessage_link = 'wallmessage/' . $profile['nickname'];
}
@ -460,14 +460,14 @@ class Profile
$diaspora = [
'guid' => $profile['guid'],
'podloc' => System::baseUrl(),
'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ),
'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false'),
'nickname' => $profile['nickname'],
'fullname' => $profile['name'],
'firstname' => $firstname,
'lastname' => $lastname,
'photo300' => defaults($profile, 'contact_photo', ''),
'photo100' => defaults($profile, 'contact_thumb', ''),
'photo50' => defaults($profile, 'contact_micro', ''),
'photo300' => $profile['contact_photo'] ?? '',
'photo100' => $profile['contact_thumb'] ?? '',
'photo50' => $profile['contact_micro'] ?? '',
];
} else {
$diaspora = false;
@ -530,7 +530,7 @@ class Profile
$p['photo'] = ProxyUtils::proxifyUrl($p['photo'], false, ProxyUtils::SIZE_SMALL);
}
$p['url'] = Contact::magicLink(defaults($p, 'url', $profile_url));
$p['url'] = Contact::magicLink(($p['url'] ?? '') ?: $profile_url);
$tpl = Renderer::getMarkupTemplate('profile_vcard.tpl');
$o .= Renderer::replaceMacros($tpl, [

View file

@ -132,7 +132,7 @@ class Filesystem implements IStorage
public static function saveOptions($data)
{
$storagepath = defaults($data, 'storagepath', '');
$storagepath = $data['storagepath'] ?? '';
if ($storagepath === '' || !is_dir($storagepath)) {
return [
'storagepath' => L10n::t('Enter a valid existing folder')

View file

@ -210,7 +210,7 @@ class Term
{
$profile_base = System::baseUrl();
$profile_data = parse_url($profile_base);
$profile_path = defaults($profile_data, 'path', '');
$profile_path = $profile_data['path'] ?? '';
$profile_base_friendica = $profile_data['host'] . $profile_path . '/profile/';
$profile_base_diaspora = $profile_data['host'] . $profile_path . '/u/';

View file

@ -13,10 +13,10 @@ class Acctlink extends BaseModule
{
public static function content()
{
$addr = defaults($_GET, 'addr', false);
$addr = trim($_GET['addr'] ?? '');
if ($addr) {
$url = defaults(Probe::uri(trim($addr)), 'url', false);
$url = Probe::uri($addr)['url'] ?? '';
if ($url) {
System::externalRedirect($url);

View file

@ -53,7 +53,7 @@ class Details extends BaseAdminModule
$a->internalRedirect('admin/addons');
}
if (defaults($_GET, 'action', '') == 'toggle') {
if (($_GET['action'] ?? '') == 'toggle') {
parent::checkFormSecurityTokenRedirectOnError('/admin/addons', 'admin_themes', 't');
// Toggle addon status

View file

@ -26,7 +26,7 @@ class Index extends BaseAdminModule
break;
case 'toggle' :
$addon = defaults($_GET, 'addon', '');
$addon = $_GET['addon'] ?? '';
if (Addon::isEnabled($addon)) {
Addon::uninstall($addon);
info(L10n::t('Addon %s disabled.', $addon));

View file

@ -15,9 +15,9 @@ class Contact extends BaseAdminModule
{
parent::post();
$contact_url = defaults($_POST, 'contact_url', '');
$block_reason = defaults($_POST, 'contact_block_reason', '');
$contacts = defaults($_POST, 'contacts', []);
$contact_url = $_POST['contact_url'] ?? '';
$block_reason = $_POST['contact_block_reason'] ?? '';
$contacts = $_POST['contacts'] ?? [];
parent::checkFormSecurityTokenRedirectOnError('/admin/blocklist/contact', 'admin_contactblock');

View file

@ -20,7 +20,7 @@ class Settings extends BaseAdminModule
$logfile = (!empty($_POST['logfile']) ? Strings::escapeTags(trim($_POST['logfile'])) : '');
$debugging = !empty($_POST['debugging']);
$loglevel = defaults($_POST, 'loglevel', LogLevel::ERROR);
$loglevel = ($_POST['loglevel'] ?? '') ?: LogLevel::ERROR;
if (is_file($logfile) &&
!is_writeable($logfile)) {

View file

@ -200,7 +200,7 @@ class Site extends BaseAdminModule
/**
* @var $storagebackend \Friendica\Model\Storage\IStorage
*/
$storagebackend = Strings::escapeTags(trim(defaults($_POST, 'storagebackend', '')));
$storagebackend = Strings::escapeTags(trim($_POST['storagebackend'] ?? ''));
// save storage backend form
if (!is_null($storagebackend) && $storagebackend != "") {
@ -216,7 +216,7 @@ class Site extends BaseAdminModule
$value = !empty($_POST[$fieldname]);
break;
default:
$value = defaults($_POST, $fieldname, '');
$value = $_POST[$fieldname] ?? '';
}
$storage_opts_data[$name] = $value;
}

View file

@ -36,7 +36,7 @@ class Index extends BaseAdminModule
break;
case 'toggle' :
$theme = defaults($_GET, 'addon', '');
$theme = $_GET['addon'] ?? '';
if ($theme) {
$theme = Strings::sanitizeFilePathItem($theme);
if (!is_dir("view/theme/$theme")) {

View file

@ -21,11 +21,11 @@ class Users extends BaseAdminModule
$a = self::getApp();
$pending = defaults($_POST, 'pending' , []);
$users = defaults($_POST, 'user' , []);
$nu_name = defaults($_POST, 'new_user_name' , '');
$nu_nickname = defaults($_POST, 'new_user_nickname', '');
$nu_email = defaults($_POST, 'new_user_email' , '');
$pending = $_POST['pending'] ?? [];
$users = $_POST['user'] ?? [];
$nu_name = $_POST['new_user_name'] ?? '';
$nu_nickname = $_POST['new_user_nickname'] ?? '';
$nu_email = $_POST['new_user_email'] ?? '';
$nu_language = Config::get('system', 'language');
parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users');

View file

@ -78,7 +78,7 @@ class AllFriends extends BaseModule
$entry = [
'url' => Model\Contact::magicLinkbyId($friend['id'], $friend['url']),
'itemurl' => defaults($contactDetails, 'addr', $friend['url']),
'itemurl' => ($contactDetails['addr'] ?? '') ?: $friend['url'],
'name' => $contactDetails['name'],
'thumb' => ProxyUtils::proxifyUrl($contactDetails['thumb'], false, ProxyUtils::SIZE_THUMB),
'img_hover' => $contactDetails['name'],

View file

@ -27,7 +27,7 @@ class Bookmarklet extends BaseModule
return $output;
}
$referer = Strings::normaliseLink(defaults($_SERVER, 'HTTP_REFERER', ''));
$referer = Strings::normaliseLink($_SERVER['HTTP_REFERER'] ?? '');
$page = Strings::normaliseLink($app->getBaseURL() . "/bookmarklet");
if (!strstr($referer, $page)) {
@ -48,7 +48,7 @@ class Bookmarklet extends BaseModule
'bang' => '',
'visitor' => 'block',
'profile_uid' => local_user(),
'title' => trim(defaults($_REQUEST, 'title', ''), '*'),
'title' => trim($_REQUEST['title'] ?? '', '*'),
'content' => $content
];
$output = status_editor($app, $x, 0, false);

View file

@ -103,7 +103,7 @@ class Contact extends BaseModule
Hook::callAll('contact_edit_post', $_POST);
$profile_id = intval(defaults($_POST, 'profile-assign', 0));
$profile_id = intval($_POST['profile-assign'] ?? 0);
if ($profile_id) {
if (!DBA::exists('profile', ['id' => $profile_id, 'uid' => local_user()])) {
notice(L10n::t('Could not locate selected profile.') . EOL);
@ -115,16 +115,16 @@ class Contact extends BaseModule
$notify = !empty($_POST['notify']);
$fetch_further_information = intval(defaults($_POST, 'fetch_further_information', 0));
$fetch_further_information = intval($_POST['fetch_further_information'] ?? 0);
$ffi_keyword_blacklist = Strings::escapeHtml(trim(defaults($_POST, 'ffi_keyword_blacklist', '')));
$ffi_keyword_blacklist = Strings::escapeHtml(trim($_POST['ffi_keyword_blacklist'] ?? ''));
$priority = intval(defaults($_POST, 'poll', 0));
$priority = intval($_POST['poll'] ?? 0);
if ($priority > 5 || $priority < 0) {
$priority = 0;
}
$info = Strings::escapeHtml(trim(defaults($_POST, 'info', '')));
$info = Strings::escapeHtml(trim($_POST['info'] ?? ''));
$r = DBA::update('contact', [
'profile-id' => $profile_id,
@ -188,21 +188,42 @@ class Contact extends BaseModule
Model\GContact::updateFromProbe($contact['url']);
}
/**
* Toggles the blocked status of a contact identified by id.
*
* @param $contact_id
* @throws \Exception
*/
private static function blockContact($contact_id)
{
$blocked = !Model\Contact::isBlockedByUser($contact_id, local_user());
Model\Contact::setBlockedForUser($contact_id, local_user(), $blocked);
}
/**
* Toggles the ignored status of a contact identified by id.
*
* @param $contact_id
* @throws \Exception
*/
private static function ignoreContact($contact_id)
{
$ignored = !Model\Contact::isIgnoredByUser($contact_id, local_user());
Model\Contact::setIgnoredForUser($contact_id, local_user(), $ignored);
}
/**
* Toggles the archived status of a contact identified by id.
* If the current status isn't provided, this will always archive the contact.
*
* @param $contact_id
* @param $orig_record
* @return bool
* @throws \Exception
*/
private static function archiveContact($contact_id, $orig_record)
{
$archived = (defaults($orig_record, 'archive', '') ? 0 : 1);
$archived = empty($orig_record['archive']);
$r = DBA::update('contact', ['archive' => $archived], ['id' => $contact_id, 'uid' => local_user()]);
return DBA::isResult($r);
@ -227,8 +248,8 @@ class Contact extends BaseModule
$a = self::getApp();
$nets = defaults($_GET, 'nets', '');
$rel = defaults($_GET, 'rel' , '');
$nets = $_GET['nets'] ?? '';
$rel = $_GET['rel'] ?? '';
if (empty($a->page['aside'])) {
$a->page['aside'] = '';
@ -290,7 +311,7 @@ class Contact extends BaseModule
'$name' => $contact['name'],
'$photo' => $contact['photo'],
'$url' => Model\Contact::magicLinkByContact($contact, $contact['url']),
'$addr' => defaults($contact, 'addr', ''),
'$addr' => $contact['addr'] ?? '',
'$network_link' => $network_link,
'$network' => L10n::t('Network:'),
'$account_type' => Model\Contact::getAccountType($contact),
@ -626,7 +647,7 @@ class Contact extends BaseModule
}
// @TODO: Replace with parameter from router
$type = defaults($a->argv, 1, '');
$type = $a->argv[1] ?? '';
switch ($type) {
case 'blocked':
@ -651,9 +672,9 @@ class Contact extends BaseModule
$sql_extra .= sprintf(" AND `network` != '%s' ", Protocol::PHANTOM);
$search = Strings::escapeTags(trim(defaults($_GET, 'search', '')));
$nets = Strings::escapeTags(trim(defaults($_GET, 'nets' , '')));
$rel = Strings::escapeTags(trim(defaults($_GET, 'rel' , '')));
$search = Strings::escapeTags(trim($_GET['search'] ?? ''));
$nets = Strings::escapeTags(trim($_GET['nets'] ?? ''));
$rel = Strings::escapeTags(trim($_GET['rel'] ?? ''));
$tabs = [
[
@ -1016,7 +1037,7 @@ class Contact extends BaseModule
'username' => $rr['name'],
'account_type' => Model\Contact::getAccountType($rr),
'sparkle' => $sparkle,
'itemurl' => defaults($rr, 'addr', $rr['url']),
'itemurl' => ($rr['addr'] ?? '') ?: $rr['url'],
'url' => $url,
'network' => ContactSelector::networkToName($rr['network'], $rr['url']),
'nick' => $rr['nick'],

View file

@ -25,7 +25,7 @@ class Babel extends BaseModule
$results = [];
if (!empty($_REQUEST['text'])) {
switch (defaults($_REQUEST, 'type', 'bbcode')) {
switch (($_REQUEST['type'] ?? '') ?: 'bbcode') {
case 'bbcode':
$bbcode = trim($_REQUEST['text']);
$results[] = [
@ -176,10 +176,10 @@ class Babel extends BaseModule
$tpl = Renderer::getMarkupTemplate('babel.tpl');
$o = Renderer::replaceMacros($tpl, [
'$text' => ['text', L10n::t('Source text'), defaults($_REQUEST, 'text', ''), ''],
'$type_bbcode' => ['type', L10n::t('BBCode'), 'bbcode', '', defaults($_REQUEST, 'type', 'bbcode') == 'bbcode'],
'$type_markdown' => ['type', L10n::t('Markdown'), 'markdown', '', defaults($_REQUEST, 'type', 'bbcode') == 'markdown'],
'$type_html' => ['type', L10n::t('HTML'), 'html', '', defaults($_REQUEST, 'type', 'bbcode') == 'html'],
'$text' => ['text', L10n::t('Source text'), $_REQUEST['text'] ?? '', ''],
'$type_bbcode' => ['type', L10n::t('BBCode'), 'bbcode', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'bbcode'],
'$type_markdown' => ['type', L10n::t('Markdown'), 'markdown', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'markdown'],
'$type_html' => ['type', L10n::t('HTML'), 'html', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'html'],
'$results' => $results
]);

View file

@ -46,7 +46,7 @@ class Feed extends BaseModule
$tpl = Renderer::getMarkupTemplate('feedtest.tpl');
return Renderer::replaceMacros($tpl, [
'$url' => ['url', L10n::t('Source URL'), defaults($_REQUEST, 'url', ''), ''],
'$url' => ['url', L10n::t('Source URL'), $_REQUEST['url'] ?? '', ''],
'$result' => $result
]);
}

View file

@ -12,7 +12,7 @@ class Localtime extends BaseModule
{
public static function post()
{
$time = defaults($_REQUEST, 'time', 'now');
$time = ($_REQUEST['time'] ?? '') ?: 'now';
$bd_format = L10n::t('l F d, Y \@ g:i A');
@ -25,7 +25,7 @@ class Localtime extends BaseModule
{
$app = self::getApp();
$time = defaults($_REQUEST, 'time', 'now');
$time = ($_REQUEST['time'] ?? '') ?: 'now';
$output = '<h3>' . L10n::t('Time Conversion') . '</h3>';
$output .= '<p>' . L10n::t('Friendica provides this service for sharing events with other networks and friends in unknown timezones.') . '</p>';
@ -41,7 +41,7 @@ class Localtime extends BaseModule
$output .= '<form action ="' . $app->getBaseURL() . '/localtime?time=' . $time . '" method="post" >';
$output .= '<p>' . L10n::t('Please select your timezone:') . '</p>';
$output .= Temporal::getTimezoneSelect(defaults($_REQUEST, 'timezone', Installer::DEFAULT_TZ));
$output .= Temporal::getTimezoneSelect(($_REQUEST['timezone'] ?? '') ?: Installer::DEFAULT_TZ);
$output .= '<input type="submit" name="submit" value="' . L10n::t('Submit') . '" /></form>';
return $output;

View file

@ -21,7 +21,7 @@ class Probe extends BaseModule
throw $e;
}
$addr = defaults($_GET, 'addr', '');
$addr = $_GET['addr'] ?? '';
$res = '';
if (!empty($addr)) {

View file

@ -20,7 +20,7 @@ class WebFinger extends BaseModule
throw $e;
}
$addr = defaults($_GET, 'addr', '');
$addr = $_GET['addr'] ?? '';
$res = '';
if (!empty($addr)) {

View file

@ -27,7 +27,7 @@ class Feed extends BaseModule
{
$a = self::getApp();
$last_update = defaults($_GET, 'last_update', '');
$last_update = $_GET['last_update'] ?? '';
$nocache = !empty($_GET['nocache']) && local_user();
// @TODO: Replace with parameter from router

View file

@ -23,8 +23,8 @@ class RemoveTag extends BaseModule
$item_id = (($app->argc > 1) ? intval($app->argv[1]) : 0);
$term = XML::unescape(trim(defaults($_GET, 'term', '')));
$cat = XML::unescape(trim(defaults($_GET, 'cat', '')));
$term = XML::unescape(trim($_GET['term'] ?? ''));
$cat = XML::unescape(trim($_GET['cat'] ?? ''));
$category = (($cat) ? true : false);

View file

@ -27,7 +27,7 @@ class SaveTag extends BaseModule
$a = self::getApp();
$logger = $a->getLogger();
$term = XML::unescape(trim(defaults($_GET, 'term', '')));
$term = XML::unescape(trim($_GET['term'] ?? ''));
// @TODO: Replace with parameter from router
$item_id = (($a->argc > 1) ? intval($a->argv[1]) : 0);

View file

@ -28,10 +28,10 @@ class FollowConfirm extends BaseModule
return;
}
$intro_id = intval(defaults($_POST, 'intro_id' , 0));
$duplex = intval(defaults($_POST, 'duplex' , 0));
$cid = intval(defaults($_POST, 'contact_id', 0));
$hidden = intval(defaults($_POST, 'hidden' , 0));
$intro_id = intval($_POST['intro_id'] ?? 0);
$duplex = intval($_POST['duplex'] ?? 0);
$cid = intval($_POST['contact_id'] ?? 0);
$hidden = intval($_POST['hidden'] ?? 0);
if (empty($cid)) {
notice(L10n::t('No given contact.') . EOL);

View file

@ -29,7 +29,7 @@ class Followers extends BaseModule
throw new \Friendica\Network\HTTPException\NotFoundException();
}
$page = defaults($_REQUEST, 'page', null);
$page = $_REQUEST['page'] ?? null;
$followers = ActivityPub\Transmitter::getFollowers($owner, $page);

View file

@ -29,7 +29,7 @@ class Following extends BaseModule
throw new \Friendica\Network\HTTPException\NotFoundException();
}
$page = defaults($_REQUEST, 'page', null);
$page = $_REQUEST['page'] ?? null;
$Following = ActivityPub\Transmitter::getFollowing($owner, $page);

View file

@ -73,7 +73,7 @@ class Install extends BaseModule
// so we may not have a css at all. Here we set a static css file for the install procedure pages
Renderer::$theme['stylesheet'] = $a->getBaseURL() . '/view/install/style.css';
self::$currentWizardStep = defaults($_POST, 'pass', self::SYSTEM_CHECK);
self::$currentWizardStep = ($_POST['pass'] ?? '') ?: self::SYSTEM_CHECK;
}
public static function post()
@ -345,8 +345,8 @@ class Install extends BaseModule
{
$configCache->set($cat, $key,
Strings::escapeTags(
trim(defaults($post, sprintf('%s-%s', $cat, $key),
(!isset($default) ? $configCache->get($cat, $key) : $default))
trim(($post[sprintf('%s-%s', $cat, $key)] ?? '') ?:
($default ?? $configCache->get($cat, $key))
)
)
);

View file

@ -36,7 +36,7 @@ class Like extends BaseModule
// Decide how to return. If we were called with a 'return' argument,
// then redirect back to the calling page. If not, just quietly end
$returnPath = defaults($_REQUEST, 'return', '');
$returnPath = $_REQUEST['return'] ?? '';
if (!empty($returnPath)) {
$rand = '_=' . time();

View file

@ -53,7 +53,7 @@ class Login extends BaseModule
&& (!empty($_POST['openid_url'])
|| !empty($_POST['username']))
) {
$openid_url = trim(defaults($_POST, 'openid_url', $_POST['username']));
$openid_url = trim(($_POST['openid_url'] ?? '') ?: $_POST['username']);
self::openIdAuthentication($openid_url, !empty($_POST['remember']));
}

View file

@ -28,8 +28,8 @@ class Magic extends BaseModule
Logger::log('args: ' . print_r($_REQUEST, true), Logger::DATA);
$addr = defaults($_REQUEST, 'addr', '');
$dest = defaults($_REQUEST, 'dest', '');
$addr = $_REQUEST['addr'] ?? '';
$dest = $_REQUEST['dest'] ?? '';
$test = (!empty($_REQUEST['test']) ? intval($_REQUEST['test']) : 0);
$owa = (!empty($_REQUEST['owa']) ? intval($_REQUEST['owa']) : 0);
$cid = 0;

View file

@ -28,7 +28,7 @@ class Outbox extends BaseModule
throw new \Friendica\Network\HTTPException\NotFoundException();
}
$page = defaults($_REQUEST, 'page', null);
$page = $_REQUEST['page'] ?? null;
/// @todo Add Authentication to enable fetching of non public content
// $requester = HTTPSignature::getSigner('', $_SERVER);

View file

@ -102,7 +102,7 @@ class Profile extends BaseModule
// site block
if (!$blocked && !$userblock) {
$keywords = str_replace(['#', ',', ' ', ',,'], ['', ' ', ',', ','], defaults($a->profile, 'pub_keywords', ''));
$keywords = str_replace(['#', ',', ' ', ',,'], ['', ' ', ',', ','], $a->profile['pub_keywords'] ?? '');
if (strlen($keywords)) {
$a->page['htmlhead'] .= '<meta name="keywords" content="' . $keywords . '" />' . "\n";
}
@ -146,10 +146,10 @@ class Profile extends BaseModule
}
if (empty($category)) {
$category = defaults($_GET, 'category', '');
$category = $_GET['category'] ?? '';
}
$hashtags = defaults($_GET, 'tag', '');
$hashtags = $_GET['tag'] ?? '';
if (Config::get('system', 'block_public') && !local_user() && !Session::getRemoteContactID($a->profile['profile_uid'])) {
return Login::form();
@ -174,7 +174,7 @@ class Profile extends BaseModule
}
if (!$update) {
$tab = Strings::escapeTags(trim(defaults($_GET, 'tab', '')));
$tab = Strings::escapeTags(trim($_GET['tab'] ?? ''));
$o .= ProfileModel::getTabs($a, $tab, $is_owner, $a->profile['nickname']);

View file

@ -28,7 +28,7 @@ class Contacts extends BaseModule
//@TODO: Get value from router parameters
$nickname = $a->argv[1];
$type = defaults($a->argv, 3, 'all');
$type = ($a->argv[3] ?? '') ?: 'all';
Nav::setSelected('home');

View file

@ -210,7 +210,7 @@ class Proxy extends BaseModule
$url = base64_decode(strtr($url, '-_', '+/'), true);
} else {
$url = defaults($_REQUEST, 'url', '');
$url = $_REQUEST['url'] ?? '';
}
return [

View file

@ -62,12 +62,12 @@ class Register extends BaseModule
}
}
$username = defaults($_REQUEST, 'username' , '');
$email = defaults($_REQUEST, 'email' , '');
$openid_url = defaults($_REQUEST, 'openid_url', '');
$nickname = defaults($_REQUEST, 'nickname' , '');
$photo = defaults($_REQUEST, 'photo' , '');
$invite_id = defaults($_REQUEST, 'invite_id' , '');
$username = $_REQUEST['username'] ?? '';
$email = $_REQUEST['email'] ?? '';
$openid_url = $_REQUEST['openid_url'] ?? '';
$nickname = $_REQUEST['nickname'] ?? '';
$photo = $_REQUEST['photo'] ?? '';
$invite_id = $_REQUEST['invite_id'] ?? '';
if (Config::get('system', 'no_openid')) {
$fillwith = '';
@ -290,7 +290,7 @@ class Register extends BaseModule
'source_photo' => $base_url . '/photo/avatar/' . $user['uid'] . '.jpg',
'to_email' => $admin['email'],
'uid' => $admin['uid'],
'language' => defaults($admin, 'language', 'en'),
'language' => ($admin['language'] ?? '') ?: 'en',
'show_in_notification_page' => false
]);
}

View file

@ -275,8 +275,8 @@ class Acl extends BaseModule
'id' => intval($g['id']),
'network' => $g['network'],
'link' => $g['url'],
'nick' => htmlentities(defaults($g, 'attag', $g['nick'])),
'addr' => htmlentities(defaults($g, 'addr', $g['url'])),
'nick' => htmlentities(($g['attag'] ?? '') ?: $g['nick']),
'addr' => htmlentities(($g['addr'] ?? '') ?: $g['url']),
'forum' => !empty($g['forum']) || !empty($g['prv']) ? 1 : 0,
];
if ($entry['forum']) {
@ -336,8 +336,8 @@ class Acl extends BaseModule
'id' => intval($contact['cid']),
'network' => $contact['network'],
'link' => $contact['url'],
'nick' => htmlentities(defaults($contact, 'nick', $contact['addr'])),
'addr' => htmlentities(defaults($contact, 'addr', $contact['url'])),
'nick' => htmlentities(($contact['nick'] ?? '') ?: $contact['addr']),
'addr' => htmlentities(($contact['addr'] ?? '') ?: $contact['url']),
'forum' => $contact['forum']
];
}

View file

@ -26,12 +26,12 @@ class Index extends BaseSettingsModule
self::checkFormSecurityTokenRedirectOnError('settings/2fa', 'settings_2fa');
try {
User::getIdFromPasswordAuthentication(local_user(), defaults($_POST, 'password', ''));
User::getIdFromPasswordAuthentication(local_user(), $_POST['password'] ?? '');
$has_secret = (bool) PConfig::get(local_user(), '2fa', 'secret');
$verified = PConfig::get(local_user(), '2fa', 'verified');
switch (defaults($_POST, 'action', '')) {
switch ($_POST['action'] ?? '') {
case 'enable':
if (!$has_secret && !$verified) {
$Google2FA = new Google2FA();

View file

@ -49,12 +49,12 @@ class Verify extends BaseSettingsModule
return;
}
if (defaults($_POST, 'action', null) == 'verify') {
if (($_POST['action'] ?? '') == 'verify') {
self::checkFormSecurityTokenRedirectOnError('settings/2fa/verify', 'settings_2fa_verify');
$google2fa = new Google2FA();
$valid = $google2fa->verifyKey(PConfig::get(local_user(), '2fa', 'secret'), defaults($_POST, 'verify_code', ''));
$valid = $google2fa->verifyKey(PConfig::get(local_user(), '2fa', 'secret'), $_POST['verify_code'] ?? '');
if ($valid) {
PConfig::set(local_user(), '2fa', 'verified', true);

View file

@ -29,7 +29,7 @@ class Smilies extends BaseModule
public static function content()
{
$smilies = Content\Smilies::getList();
$count = count(defaults($smilies, 'texts', []));
$count = count($smilies['texts'] ?? []);
$tpl = Renderer::getMarkupTemplate('smilies.tpl');
return Renderer::replaceMacros($tpl, [

View file

@ -36,7 +36,7 @@ class HTTPException
500 => L10n::t('Internal Server Error'),
503 => L10n::t('Service Unavailable'),
];
$title = defaults($titles, $e->getCode(), 'Error ' . $e->getCode());
$title = ($titles[$e->getCode()] ?? '') ?: 'Error ' . $e->getCode();
if (empty($message)) {
// Explanations are taken from https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
@ -49,7 +49,7 @@ class HTTPException
503 => L10n::t('The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later.'),
];
$message = defaults($explanation, $e->getCode(), '');
$message = $explanation[$e->getCode()] ?? '';
}
return ['$title' => $title, '$message' => $message, '$back' => L10n::t('Go back')];

View file

@ -41,7 +41,7 @@ class Starred extends BaseModule
Item::update(['starred' => $starred], ['id' => $itemId]);
// See if we've been passed a return path to redirect to
$returnPath = defaults($_REQUEST, 'return', '');
$returnPath = $_REQUEST['return'] ?? '';
if ($returnPath) {
$rand = '_=' . time();
if (strpos($returnPath, '?')) {

View file

@ -17,9 +17,9 @@ class ThemeDetails extends BaseModule
$info = Theme::getInfo($theme);
// Unfortunately there will be no translation for this string
$description = defaults($info, 'description', '');
$version = defaults($info, 'version' , '');
$credits = defaults($info, 'credits' , '');
$description = $info['description'] ?? '';
$version = $info['version'] ?? '';
$credits = $info['credits'] ?? '';
echo json_encode([
'img' => Theme::getScreenshot($theme),

View file

@ -28,12 +28,12 @@ class Recovery extends BaseModule
return;
}
if (defaults($_POST, 'action', null) == 'recover') {
if (($_POST['action'] ?? '') == 'recover') {
self::checkFormSecurityTokenRedirectOnError('2fa', 'twofactor_recovery');
$a = self::getApp();
$recovery_code = defaults($_POST, 'recovery_code', '');
$recovery_code = $_POST['recovery_code'] ?? '';
if (RecoveryCode::existsForUser(local_user(), $recovery_code)) {
RecoveryCode::markUsedForUser(local_user(), $recovery_code);

View file

@ -28,7 +28,7 @@ class Xrd extends BaseModule
}
$uri = urldecode(Strings::escapeTags(trim($_GET['uri'])));
if (defaults($_SERVER, 'HTTP_ACCEPT', '') == 'application/jrd+json') {
if (($_SERVER['HTTP_ACCEPT'] ?? '') == 'application/jrd+json') {
$mode = 'json';
} else {
$mode = 'xml';
@ -39,7 +39,7 @@ class Xrd extends BaseModule
}
$uri = urldecode(Strings::escapeTags(trim($_GET['resource'])));
if (defaults($_SERVER, 'HTTP_ACCEPT', '') == 'application/xrd+xml') {
if (($_SERVER['HTTP_ACCEPT'] ?? '') == 'application/xrd+xml') {
$mode = 'xml';
} else {
$mode = 'json';

View file

@ -167,7 +167,7 @@ class CurlResult
}
if ($this->returnCode == 301 || $this->returnCode == 302 || $this->returnCode == 303 || $this->returnCode== 307) {
$redirect_parts = parse_url(defaults($this->info, 'redirect_url', ''));
$redirect_parts = parse_url($this->info['redirect_url'] ?? '');
if (empty($redirect_parts)) {
$redirect_parts = [];
}
@ -179,7 +179,7 @@ class CurlResult
}
}
$parts = parse_url(defaults($this->info, 'url', ''));
$parts = parse_url($this->info['url'] ?? '');
if (empty($parts)) {
$parts = [];
}

View file

@ -348,7 +348,7 @@ class Probe
if (!self::$istimeout) {
$ap_profile = ActivityPub::probeProfile($uri);
if (empty($data) || (!empty($ap_profile) && empty($network) && (defaults($data, 'network', '') != Protocol::DFRN))) {
if (empty($data) || (!empty($ap_profile) && empty($network) && (($data['network'] ?? '') == Protocol::DFRN))) {
$data = $ap_profile;
} elseif (!empty($ap_profile)) {
$ap_profile['batch'] = '';
@ -363,7 +363,7 @@ class Probe
}
if (!empty($data['photo'])) {
$data['baseurl'] = Network::getUrlMatch(Strings::normaliseLink(defaults($data, 'baseurl', '')), Strings::normaliseLink($data['photo']));
$data['baseurl'] = Network::getUrlMatch(Strings::normaliseLink($data['baseurl'] ?? ''), Strings::normaliseLink($data['photo']));
} else {
$data['photo'] = System::baseUrl() . '/images/person-300.jpg';
}
@ -424,7 +424,7 @@ class Probe
}
// If the file is too large then exit
if (defaults($curlResult->getInfo(), 'download_content_length', 0) > 1000000) {
if (($curlResult->getInfo()['download_content_length'] ?? 0) > 1000000) {
return false;
}
@ -547,7 +547,7 @@ class Probe
return [];
}
$path_parts = explode("/", trim(defaults($parts, 'path', ''), "/"));
$path_parts = explode("/", trim($parts['path'] ?? '', "/"));
while (!$lrdd && (sizeof($path_parts) > 1)) {
$host .= "/".array_shift($path_parts);
@ -921,19 +921,19 @@ class Probe
if (empty($data["addr"]) || empty($data["nick"])) {
$probe_data = self::uri($profile_link);
$data["addr"] = defaults($data, "addr", $probe_data["addr"]);
$data["nick"] = defaults($data, "nick", $probe_data["nick"]);
$data["addr"] = ($data["addr"] ?? '') ?: $probe_data["addr"];
$data["nick"] = ($data["nick"] ?? '') ?: $probe_data["nick"];
}
$prof_data["addr"] = $data["addr"];
$prof_data["nick"] = $data["nick"];
$prof_data["dfrn-request"] = defaults($data, 'request', null);
$prof_data["dfrn-confirm"] = defaults($data, 'confirm', null);
$prof_data["dfrn-notify"] = defaults($data, 'notify' , null);
$prof_data["dfrn-poll"] = defaults($data, 'poll' , null);
$prof_data["photo"] = defaults($data, 'photo' , null);
$prof_data["fn"] = defaults($data, 'name' , null);
$prof_data["key"] = defaults($data, 'pubkey' , null);
$prof_data["dfrn-request"] = $data['request'] ?? null;
$prof_data["dfrn-confirm"] = $data['confirm'] ?? null;
$prof_data["dfrn-notify"] = $data['notify'] ?? null;
$prof_data["dfrn-poll"] = $data['poll'] ?? null;
$prof_data["photo"] = $data['photo'] ?? null;
$prof_data["fn"] = $data['name'] ?? null;
$prof_data["key"] = $data['pubkey'] ?? null;
Logger::log("Result for profile ".$profile_link.": ".print_r($prof_data, true), Logger::DEBUG);
@ -959,7 +959,7 @@ class Probe
$data["network"] = Protocol::DFRN;
} elseif (($link["rel"] == NAMESPACE_FEED) && !empty($link["href"])) {
$data["poll"] = $link["href"];
} elseif (($link["rel"] == "http://webfinger.net/rel/profile-page") && (defaults($link, "type", "") == "text/html") && !empty($link["href"])) {
} elseif (($link["rel"] == "http://webfinger.net/rel/profile-page") && (($link["type"] ?? "") == "text/html") && !empty($link["href"])) {
$data["url"] = $link["href"];
} elseif (($link["rel"] == "http://microformats.org/profile/hcard") && !empty($link["href"])) {
$hcard_url = $link["href"];
@ -1169,7 +1169,7 @@ class Probe
$data["baseurl"] = trim($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") && (defaults($link, "type", "") == "text/html") && !empty($link["href"])) {
} elseif (($link["rel"] == "http://webfinger.net/rel/profile-page") && (($link["type"] ?? "") == "text/html") && !empty($link["href"])) {
$data["url"] = $link["href"];
} elseif (($link["rel"] == NAMESPACE_FEED) && !empty($link["href"])) {
$data["poll"] = $link["href"];
@ -1267,7 +1267,7 @@ class Probe
// See: https://tools.ietf.org/html/rfc7033#section-4.4.4
foreach (array_reverse($webfinger["links"]) as $link) {
if (($link["rel"] == "http://webfinger.net/rel/profile-page")
&& (defaults($link, "type", "") == "text/html")
&& (($link["type"] ?? "") == "text/html")
&& ($link["href"] != "")
) {
$data["url"] = $link["href"];
@ -1436,7 +1436,7 @@ class Probe
// See: https://tools.ietf.org/html/rfc7033#section-4.4.4
foreach (array_reverse($webfinger["links"]) as $link) {
if (($link["rel"] == "http://webfinger.net/rel/profile-page")
&& (defaults($link, "type", "") == "text/html")
&& (($link["type"] ?? "") == "text/html")
&& ($link["href"] != "")
) {
$data["url"] = $link["href"];

View file

@ -805,7 +805,7 @@ class Post extends BaseObject
$terms = Term::tagArrayFromItemId($this->getId(), [Term::MENTION, Term::IMPLICIT_MENTION]);
foreach ($terms as $term) {
$profile = Contact::getDetailsByURL($term['url']);
if (!empty($profile['addr']) && (defaults($profile, 'contact-type', Contact::TYPE_UNKNOWN) != Contact::TYPE_COMMUNITY) &&
if (!empty($profile['addr']) && ((($profile['contact-type'] ?? '') ?: Contact::TYPE_UNKNOWN) != Contact::TYPE_COMMUNITY) &&
($profile['addr'] != $owner['addr']) && !strstr($text, $profile['addr'])) {
$text .= '@' . $profile['addr'] . ' ';
}

View file

@ -57,8 +57,8 @@ class ActivityPub
*/
public static function isRequest()
{
return stristr(defaults($_SERVER, 'HTTP_ACCEPT', ''), 'application/activity+json') ||
stristr(defaults($_SERVER, 'HTTP_ACCEPT', ''), 'application/ld+json');
return stristr($_SERVER['HTTP_ACCEPT'] ?? '', 'application/activity+json') ||
stristr($_SERVER['HTTP_ACCEPT'] ?? '', 'application/ld+json');
}
/**

View file

@ -75,7 +75,7 @@ class Processor
$tag_text = '';
foreach ($tags as $tag) {
if (in_array(defaults($tag, 'type', ''), ['Mention', 'Hashtag'])) {
if (in_array($tag['type'] ?? '', ['Mention', 'Hashtag'])) {
if (!empty($tag_text)) {
$tag_text .= ',';
}
@ -125,7 +125,7 @@ class Processor
if (!isset($attach['length'])) {
$attach['length'] = "0";
}
$item["attach"] .= '[attach]href="'.$attach['url'].'" length="'.$attach['length'].'" type="'.$attach['mediaType'].'" title="'.defaults($attach, 'name', '').'"[/attach]';
$item["attach"] .= '[attach]href="'.$attach['url'].'" length="'.$attach['length'].'" type="'.$attach['mediaType'].'" title="'.($attach['name'] ?? '') .'"[/attach]';
}
}
@ -183,7 +183,7 @@ class Processor
self::fetchMissingActivity($activity['reply-to-id'], $activity);
}
$item['diaspora_signed_text'] = defaults($activity, 'diaspora:comment', '');
$item['diaspora_signed_text'] = $activity['diaspora:comment'] ?? '';
self::postItem($activity, $item);
}
@ -256,7 +256,7 @@ class Processor
$item['gravity'] = GRAVITY_ACTIVITY;
$item['object-type'] = ACTIVITY_OBJ_NOTE;
$item['diaspora_signed_text'] = defaults($activity, 'diaspora:like', '');
$item['diaspora_signed_text'] = $activity['diaspora:like'] ?? '';
self::postItem($activity, $item);
}
@ -404,7 +404,7 @@ class Processor
return;
}
$item['plink'] = defaults($activity, 'alternate-url', $item['uri']);
$item['plink'] = $activity['alternate-url'] ?? $item['uri'];
$item = self::constructAttachList($activity['attachments'], $item, !empty($activity['source']));
@ -583,8 +583,8 @@ class Processor
$activity['@context'] = $object['@context'];
unset($object['@context']);
$activity['id'] = $object['id'];
$activity['to'] = defaults($object, 'to', []);
$activity['cc'] = defaults($object, 'cc', []);
$activity['to'] = $object['to'] ?? [];
$activity['cc'] = $object['cc'] ?? [];
$activity['actor'] = $actor;
$activity['object'] = $object;
$activity['published'] = $published;
@ -628,7 +628,7 @@ class Processor
$item = ['author-id' => Contact::getIdForURL($activity['actor']),
'author-link' => $activity['actor']];
$note = Strings::escapeTags(trim(defaults($activity, 'content', '')));
$note = Strings::escapeTags(trim($activity['content'] ?? ''));
// Ensure that the contact has got the right network type
self::switchContact($item['author-id']);
@ -893,7 +893,7 @@ class Processor
// Extract one prepended mention at a time from the body
while(preg_match('#^(@\[url=([^\]]+)].*?\[\/url]\s)(.*)#is', $body, $matches)) {
if (!in_array($matches[2], $potential_mentions) ) {
if (!in_array($matches[2], $potential_mentions)) {
$kept_mentions[] = $matches[1];
}

View file

@ -46,8 +46,8 @@ class Receiver
*/
public static function isRequest()
{
return stristr(defaults($_SERVER, 'HTTP_ACCEPT', ''), 'application/activity+json') ||
stristr(defaults($_SERVER, 'HTTP_ACCEPT', ''), 'application/ld+json');
return stristr($_SERVER['HTTP_ACCEPT'] ?? '', 'application/activity+json') ||
stristr($_SERVER['HTTP_ACCEPT'] ?? '', 'application/ld+json');
}
/**
@ -260,7 +260,7 @@ class Receiver
$object_data['type'] = $type;
$object_data['actor'] = $actor;
$object_data['item_receiver'] = $receivers;
$object_data['receiver'] = array_merge(defaults($object_data, 'receiver', []), $receivers);
$object_data['receiver'] = array_merge($object_data['receiver'] ?? [], $receivers);
Logger::log('Processing ' . $object_data['type'] . ' ' . $object_data['object_type'] . ' ' . $object_data['id'], Logger::DEBUG);
@ -301,9 +301,9 @@ class Receiver
$conversation = [
'protocol' => Conversation::PARCEL_ACTIVITYPUB,
'item-uri' => $activity['id'],
'reply-to-uri' => defaults($activity, 'reply-to-id', ''),
'conversation-href' => defaults($activity, 'context', ''),
'conversation-uri' => defaults($activity, 'conversation', ''),
'reply-to-uri' => $activity['reply-to-id'] ?? '',
'conversation-href' => $activity['context'] ?? '',
'conversation-uri' => $activity['conversation'] ?? '',
'source' => $body,
'received' => DateTimeFormat::utcNow()];
@ -508,7 +508,7 @@ class Receiver
if (!empty($actor)) {
$profile = APContact::getByURL($actor);
$followers = defaults($profile, 'followers', '');
$followers = $profile['followers'] ?? '';
Logger::log('Actor: ' . $actor . ' - Followers: ' . $followers, Logger::DEBUG);
} else {

View file

@ -71,6 +71,7 @@ class Transmitter
if (empty($page)) {
$data['first'] = System::baseUrl() . '/followers/' . $owner['nickname'] . '?page=1';
} else {
$data['type'] = 'OrderedCollectionPage';
$list = [];
$contacts = DBA::select('contact', ['url'], $condition, ['limit' => [($page - 1) * 100, 100]]);
@ -119,6 +120,7 @@ class Transmitter
if (empty($page)) {
$data['first'] = System::baseUrl() . '/following/' . $owner['nickname'] . '?page=1';
} else {
$data['type'] = 'OrderedCollectionPage';
$list = [];
$contacts = DBA::select('contact', ['url'], $condition, ['limit' => [($page - 1) * 100, 100]]);
@ -165,6 +167,7 @@ class Transmitter
if (empty($page)) {
$data['first'] = System::baseUrl() . '/outbox/' . $owner['nickname'] . '?page=1';
} else {
$data['type'] = 'OrderedCollectionPage';
$list = [];
$condition['parent-network'] = Protocol::NATIVE_SUPPORT;

View file

@ -119,8 +119,8 @@ class DFRN
foreach ($items as $item) {
// These values aren't sent when sending from the queue.
/// @todo Check if we can set these values from the queue or if they are needed at all.
$item["entry:comment-allow"] = defaults($item, "entry:comment-allow", true);
$item["entry:cid"] = defaults($item, "entry:cid", 0);
$item["entry:comment-allow"] = ($item["entry:comment-allow"] ?? '') ?: true;
$item["entry:cid"] = $item["entry:cid"] ?? 0;
$entry = self::entry($doc, "text", $item, $owner, $item["entry:comment-allow"], $item["entry:cid"]);
if (isset($entry)) {
@ -1259,7 +1259,7 @@ class DFRN
$sent_dfrn_id = hex2bin((string) $res->dfrn_id);
$challenge = hex2bin((string) $res->challenge);
$perm = (($res->perm) ? $res->perm : null);
$dfrn_version = (float) (($res->dfrn_version) ? $res->dfrn_version : 2.0);
$dfrn_version = floatval($res->dfrn_version ?: 2.0);
$rino_remote_version = intval($res->rino);
$page = (($owner['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? 1 : 0);
@ -2019,8 +2019,8 @@ class DFRN
return false;
}
$fields = ['title' => defaults($item, 'title', ''), 'body' => defaults($item, 'body', ''),
'tag' => defaults($item, 'tag', ''), 'changed' => DateTimeFormat::utcNow(),
$fields = ['title' => $item['title'] ?? '', 'body' => $item['body'] ?? '',
'tag' => $item['tag'] ?? '', 'changed' => DateTimeFormat::utcNow(),
'edited' => DateTimeFormat::utc($item["edited"])];
$condition = ["`uri` = ? AND `uid` IN (0, ?)", $item["uri"], $importer["importer_uid"]];

View file

@ -544,7 +544,7 @@ class Email
}
$quotelevel = 0;
$nextline = trim(defaults($arrbody, $i + 1, ''));
$nextline = trim($arrbody[$i + 1] ?? '');
while ((strlen($nextline)>0) && ((substr($nextline, 0, 1) == '>')
|| (substr($nextline, 0, 1) == ' '))) {
if (substr($nextline, 0, 1) == '>') {

View file

@ -74,7 +74,7 @@ class OStatus
}
$author["author-id"] = Contact::getIdForURL($author["author-link"]);
$author['contact-id'] = defaults($contact, 'id', $author['author-id']);
$author['contact-id'] = ($contact['id'] ?? 0) ?: $author['author-id'];
$contact = [];
@ -1131,7 +1131,7 @@ class OStatus
if (!isset($attribute['length'])) {
$attribute['length'] = "0";
}
$item["attach"] .= '[attach]href="'.$attribute['href'].'" length="'.$attribute['length'].'" type="'.$attribute['type'].'" title="'.defaults($attribute, 'title', '').'"[/attach]';
$item["attach"] .= '[attach]href="'.$attribute['href'].'" length="'.$attribute['length'].'" type="'.$attribute['type'].'" title="'.($attribute['title'] ?? '') .'"[/attach]';
}
break;
case "related":
@ -1403,7 +1403,8 @@ class OStatus
"href" => $siteinfo["url"],
"type" => "text/html; charset=UTF-8",
"length" => "",
"title" => defaults($siteinfo, "title", $siteinfo["url"])];
"title" => ($siteinfo["title"] ?? '') ?: $siteinfo["url"],
];
XML::addElement($doc, $root, "link", "", $attributes);
break;
default:

View file

@ -57,7 +57,7 @@ class Emailer
.rand(10000, 99999);
// generate a multipart/alternative message header
$messageHeader = defaults($params, 'additionalMailHeader', '') .
$messageHeader = ($params['additionalMailHeader'] ?? '') .
"From: $fromName <{$params['fromEmail']}>\n" .
"Reply-To: $fromName <{$params['replyTo']}>\n" .
"MIME-Version: 1.0\n" .

View file

@ -111,7 +111,7 @@ class SyslogLogger extends AbstractLogger
}
/**
* Maps the LogLevel (@see LogLevel ) to a SysLog priority (@see http://php.net/manual/en/function.syslog.php#refsect1-function.syslog-parameters )
* Maps the LogLevel (@see LogLevel) to a SysLog priority (@see http://php.net/manual/en/function.syslog.php#refsect1-function.syslog-parameters)
*
* @param string $level A LogLevel
*

View file

@ -104,7 +104,7 @@ class Network
$parts2 = [];
$parts = parse_url($url);
$path_parts = explode('/', defaults($parts, 'path', ''));
$path_parts = explode('/', $parts['path'] ?? '');
foreach ($path_parts as $part) {
if (strlen($part) <> mb_strlen($part)) {
$parts2[] = rawurlencode($part);
@ -285,16 +285,6 @@ class Network
curl_setopt($ch, CURLOPT_TIMEOUT, intval($curl_time));
}
if (defined('LIGHTTPD')) {
if (empty($headers)) {
$headers = ['Expect:'];
} else {
if (!in_array('Expect:', $headers)) {
array_push($headers, 'Expect:');
}
}
}
if (!empty($headers)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
@ -337,6 +327,21 @@ class Network
$a->getProfiler()->saveTimestamp($stamp1, 'network', System::callstack());
// Very old versions of Lighttpd don't like the "Expect" header, so we remove it when needed
if ($curlResponse->getReturnCode() == 417) {
$redirects++;
if (empty($headers)) {
$headers = ['Expect:'];
} else {
if (!in_array('Expect:', $headers)) {
array_push($headers, 'Expect:');
}
}
Logger::info('Server responds with 417, applying workaround', ['url' => $url]);
return self::post($url, $params, $headers, $redirects, $timeout);
}
Logger::log('post_url: end ' . $url, Logger::DATA);
return $curlResponse;
@ -380,7 +385,7 @@ class Network
/// @TODO Really suppress function outcomes? Why not find them + debug them?
$h = @parse_url($url);
if (!empty($h['host']) && (@dns_get_record($h['host'], DNS_A + DNS_CNAME) || filter_var($h['host'], FILTER_VALIDATE_IP) )) {
if (!empty($h['host']) && (@dns_get_record($h['host'], DNS_A + DNS_CNAME) || filter_var($h['host'], FILTER_VALIDATE_IP))) {
return $url;
}
@ -406,7 +411,7 @@ class Network
$h = substr($addr, strpos($addr, '@') + 1);
// Concerning the @ see here: https://stackoverflow.com/questions/36280957/dns-get-record-a-temporary-server-error-occurred
if ($h && (@dns_get_record($h, DNS_A + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) {
if ($h && (@dns_get_record($h, DNS_A + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP))) {
return true;
}
if ($h && @dns_get_record($h, DNS_CNAME + DNS_MX)) {
@ -801,8 +806,8 @@ class Network
$i = 0;
$path = "";
do {
$path1 = defaults($pathparts1, $i, '');
$path2 = defaults($pathparts2, $i, '');
$path1 = $pathparts1[$i] ?? '';
$path2 = $pathparts2[$i] ?? '';
if ($path1 == $path2) {
$path .= $path1."/";

View file

@ -141,7 +141,7 @@ class ParseUrl
}
// If the file is too large then exit
if (defaults($curlResult->getInfo(), 'download_content_length', 0) > 1000000) {
if (($curlResult->getInfo()['download_content_length'] ?? 0) > 1000000) {
return $siteinfo;
}

View file

@ -13,7 +13,7 @@ use Psr\Log\LoggerInterface;
* A class to store profiling data
* It can handle different logging data for specific functions or global performance measures
*
* It stores the data as log entries (@see LoggerInterface )
* It stores the data as log entries (@see LoggerInterface)
*/
class Profiler implements ContainerInterface
{
@ -79,7 +79,7 @@ class Profiler implements ContainerInterface
return;
}
$duration = (float) (microtime(true) - $timestamp);
$duration = floatval(microtime(true) - $timestamp);
if (!isset($this->performance[$value])) {
// Prevent ugly E_NOTICE

View file

@ -250,7 +250,7 @@ class Delivery extends BaseObject
*/
private static function deliverDFRN($cmd, $contact, $owner, $items, $target_item, $public_message, $top_level, $followup)
{
Logger::log('Deliver ' . defaults($target_item, 'guid', $target_item['id']) . ' via DFRN to ' . (empty($contact['addr']) ? $contact['url'] : $contact['addr']));
Logger::info('Deliver ' . (($target_item['guid'] ?? '') ?: $target_item['id']) . ' via DFRN to ' . (($contact['addr'] ?? '') ?: $contact['url']));
if ($cmd == self::MAIL) {
$item = $target_item;
@ -278,7 +278,7 @@ class Delivery extends BaseObject
$atom = DFRN::entries($msgitems, $owner);
}
Logger::log('Notifier entry: ' . $contact["url"] . ' ' . defaults($target_item, 'guid', $target_item['id']) . ' entry: ' . $atom, Logger::DATA);
Logger::debug('Notifier entry: ' . $contact["url"] . ' ' . (($target_item['guid'] ?? '') ?: $target_item['id']) . ' entry: ' . $atom);
$basepath = implode('/', array_slice(explode('/', $contact['url']), 0, 3));
@ -329,7 +329,7 @@ class Delivery extends BaseObject
// We never spool failed relay deliveries
if ($public_dfrn) {
Logger::log('Relay delivery to ' . $contact["url"] . ' with guid ' . $target_item["guid"] . ' returns ' . $deliver_status);
Logger::info('Relay delivery to ' . $contact["url"] . ' with guid ' . $target_item["guid"] . ' returns ' . $deliver_status);
if (in_array($cmd, [Delivery::POST, Delivery::POKE])) {
if (($deliver_status >= 200) && ($deliver_status <= 299)) {
@ -359,7 +359,7 @@ class Delivery extends BaseObject
$protocol = Model\ItemDeliveryData::LEGACY_DFRN;
}
Logger::info('DFRN Delivery', ['cmd' => $cmd, 'url' => $contact['url'], 'guid' => defaults($target_item, 'guid', $target_item['id']), 'return' => $deliver_status]);
Logger::info('DFRN Delivery', ['cmd' => $cmd, 'url' => $contact['url'], 'guid' => ($target_item['guid'] ?? '') ?: $target_item['id'], 'return' => $deliver_status]);
if (($deliver_status >= 200) && ($deliver_status <= 299)) {
// We successfully delivered a message, the contact is alive
@ -372,7 +372,7 @@ class Delivery extends BaseObject
// The message could not be delivered. We mark the contact as "dead"
Model\Contact::markForArchival($contact);
Logger::info('Delivery failed: defer message', ['id' => defaults($target_item, 'guid', $target_item['id'])]);
Logger::info('Delivery failed: defer message', ['id' => ($target_item['guid'] ?? '') ?: $target_item['id']]);
if (!Worker::defer() && in_array($cmd, [Delivery::POST, Delivery::POKE])) {
Model\ItemDeliveryData::incrementQueueFailed($target_item['id']);
}
@ -463,7 +463,7 @@ class Delivery extends BaseObject
}
if (empty($contact['contact-type']) || ($contact['contact-type'] != Model\Contact::TYPE_RELAY)) {
Logger::info('Delivery failed: defer message', ['id' => defaults($target_item, 'guid', $target_item['id'])]);
Logger::info('Delivery failed: defer message', ['id' => ($target_item['guid'] ?? '') ?: $target_item['id']]);
// defer message for redelivery
if (!Worker::defer() && in_array($cmd, [Delivery::POST, Delivery::POKE])) {
Model\ItemDeliveryData::incrementQueueFailed($target_item['id']);

View file

@ -35,7 +35,7 @@ class GProbe {
$result = Cache::get("gprobe:".$urlparts["host"]);
if (!is_null($result)) {
if (in_array($result["network"], [Protocol::FEED, Protocol::PHANTOM])) {
Logger::log("DDoS attempt detected for ".$urlparts["host"]." by ".defaults($_SERVER, "REMOTE_ADDR", '').". server data: ".print_r($_SERVER, true), Logger::DEBUG);
Logger::debug("DDoS attempt detected for " . $urlparts["host"] . " by " . ($_SERVER["REMOTE_ADDR"] ?? ''), ['$_SERVER' => $_SERVER]);
return;
}
}