diff --git a/boot.php b/boot.php index ae9c35ae5d..3571a77c16 100644 --- a/boot.php +++ b/boot.php @@ -322,47 +322,6 @@ function get_app() return BaseObject::getApp(); } -/** - * Return the provided variable value if it exists and is truthy or the provided - * default value instead. - * - * Works with initialized variables and potentially uninitialized array keys - * - * Usages: - * - defaults($var, $default) - * - defaults($array, 'key', $default) - * - * @param array $args - * @brief Returns a defaut value if the provided variable or array key is falsy - * @return mixed - * @deprecated since version 2019.06, use native coalesce operator (??) instead - */ -function defaults(...$args) -{ - if (count($args) < 2) { - throw new BadFunctionCallException('defaults() requires at least 2 parameters'); - } - if (count($args) > 3) { - throw new BadFunctionCallException('defaults() cannot use more than 3 parameters'); - } - if (count($args) === 3 && is_null($args[1])) { - throw new BadFunctionCallException('defaults($arr, $key, $def) $key is null'); - } - - // The default value always is the last argument - $return = array_pop($args); - - if (count($args) == 2 && is_array($args[0]) && !empty($args[0][$args[1]])) { - $return = $args[0][$args[1]]; - } - - if (count($args) == 1 && !empty($args[0])) { - $return = $args[0]; - } - - return $return; -} - /** * @brief Used to end the current process, after saving session state. * @deprecated diff --git a/doc/Developers-Intro.md b/doc/Developers-Intro.md index d7f3f81fe6..ae9a856b8e 100644 --- a/doc/Developers-Intro.md +++ b/doc/Developers-Intro.md @@ -81,6 +81,7 @@ Here's a few primers if you are new to Friendica or to the PSR-2 coding standard * No closing PHP tag * No trailing spaces * Array declarations use the new square brackets syntax +* Quoting style is single quotes by default, except for needed string interpolation, SQL query strings by convention and comments that should stay in natural language. Don't worry, you don't have to know by heart the PSR-2 coding standards to start contributing to Friendica. There are a few tools you can use to check or fix your files before you commit. diff --git a/include/api.php b/include/api.php index e986a51734..7daf134551 100644 --- a/include/api.php +++ b/include/api.php @@ -322,7 +322,7 @@ function api_call(App $a) $stamp = microtime(true); $return = call_user_func($info['func'], $type); - $duration = (float) (microtime(true) - $stamp); + $duration = floatval(microtime(true) - $stamp); Logger::info(API_LOG_PREFIX . 'username {username}', ['module' => 'api', 'action' => 'call', 'username' => $a->user['username'], 'duration' => round($duration, 2)]); diff --git a/include/conversation.php b/include/conversation.php index 74c8a6d272..b6faa4d2c8 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1208,7 +1208,7 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false) '$new_post' => L10n::t('New Post'), '$return_path' => $query_str, '$action' => 'item', - '$share' => defaults($x, 'button', L10n::t('Share')), + '$share' => ($x['button'] ?? '') ?: L10n::t('Share'), '$upload' => L10n::t('Upload photo'), '$shortupload' => L10n::t('upload photo'), '$attach' => L10n::t('Attach file'), @@ -1225,17 +1225,17 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false) '$shortsetloc' => L10n::t('set location'), '$noloc' => L10n::t('Clear browser location'), '$shortnoloc' => L10n::t('clear location'), - '$title' => defaults($x, 'title', ''), + '$title' => $x['title'] ?? '', '$placeholdertitle' => L10n::t('Set title'), - '$category' => defaults($x, 'category', ''), + '$category' => $x['category'] ?? '', '$placeholdercategory' => Feature::isEnabled(local_user(), 'categories') ? L10n::t("Categories \x28comma-separated list\x29") : '', '$wait' => L10n::t('Please wait'), '$permset' => L10n::t('Permission settings'), '$shortpermset' => L10n::t('permissions'), '$wall' => $notes_cid ? 0 : 1, '$posttype' => $notes_cid ? Item::PT_PERSONAL_NOTE : Item::PT_ARTICLE, - '$content' => defaults($x, 'content', ''), - '$post_id' => defaults($x, 'post_id', ''), + '$content' => $x['content'] ?? '', + '$post_id' => $x['post_id'] ?? '', '$baseurl' => System::baseUrl(true), '$defloc' => $x['default_location'], '$visitor' => $x['visitor'], @@ -1527,9 +1527,9 @@ function get_responses(array $conv_responses, array $response_verbs, array $item $ret = []; foreach ($response_verbs as $v) { $ret[$v] = []; - $ret[$v]['count'] = defaults($conv_responses[$v], $item['uri'], 0); - $ret[$v]['list'] = defaults($conv_responses[$v], $item['uri'] . '-l', []); - $ret[$v]['self'] = defaults($conv_responses[$v], $item['uri'] . '-self', '0'); + $ret[$v]['count'] = $conv_responses[$v][$item['uri']] ?? 0; + $ret[$v]['list'] = $conv_responses[$v][$item['uri'] . '-l'] ?? []; + $ret[$v]['self'] = $conv_responses[$v][$item['uri'] . '-self'] ?? '0'; if (count($ret[$v]['list']) > MAX_LIKERS) { $ret[$v]['list_part'] = array_slice($ret[$v]['list'], 0, MAX_LIKERS); array_push($ret[$v]['list_part'], ''.$itemlink.''; diff --git a/include/items.php b/include/items.php index 4cc10e628c..3868db40a2 100644 --- a/include/items.php +++ b/include/items.php @@ -42,7 +42,7 @@ function add_page_info_data(array $data, $no_photos = false) $data["type"] = "link"; } - $data["title"] = defaults($data, "title", ""); + $data["title"] = $data["title"] ?? ''; if ((($data["type"] != "link") && ($data["type"] != "video") && ($data["type"] != "photo")) || ($data["title"] == $data["url"])) { return ""; diff --git a/mod/cal.php b/mod/cal.php index eba8d97586..51d17a10a4 100644 --- a/mod/cal.php +++ b/mod/cal.php @@ -200,7 +200,7 @@ function cal_content(App $a) // put the event parametes in an array so we can better transmit them $event_params = [ - 'event_id' => intval(defaults($_GET, 'id', 0)), + 'event_id' => intval($_GET['id'] ?? 0), 'start' => $start, 'finish' => $finish, 'adjust_start' => $adjust_start, diff --git a/mod/common.php b/mod/common.php index a2821921c6..9d441f18a7 100644 --- a/mod/common.php +++ b/mod/common.php @@ -118,7 +118,7 @@ function common_content(App $a) $entry = [ 'url' => Model\Contact::magicLink($common_friend['url']), - 'itemurl' => defaults($contact_details, 'addr', $common_friend['url']), + 'itemurl' => ($contact_details['addr'] ?? '') ?: $common_friend['url'], 'name' => $contact_details['name'], 'thumb' => ProxyUtils::proxifyUrl($contact_details['thumb'], false, ProxyUtils::SIZE_THUMB), 'img_hover' => $contact_details['name'], diff --git a/mod/crepair.php b/mod/crepair.php index ce27b44982..84cb458fa2 100644 --- a/mod/crepair.php +++ b/mod/crepair.php @@ -38,17 +38,17 @@ function crepair_post(App $a) return; } - $name = defaults($_POST, 'name' , $contact['name']); - $nick = defaults($_POST, 'nick' , ''); - $url = defaults($_POST, 'url' , ''); - $alias = defaults($_POST, 'alias' , ''); - $request = defaults($_POST, 'request' , ''); - $confirm = defaults($_POST, 'confirm' , ''); - $notify = defaults($_POST, 'notify' , ''); - $poll = defaults($_POST, 'poll' , ''); - $attag = defaults($_POST, 'attag' , ''); - $photo = defaults($_POST, 'photo' , ''); - $remote_self = defaults($_POST, 'remote_self', false); + $name = ($_POST['name'] ?? '') ?: $contact['name']; + $nick = $_POST['nick'] ?? ''; + $url = $_POST['url'] ?? ''; + $alias = $_POST['alias'] ?? ''; + $request = $_POST['request'] ?? ''; + $confirm = $_POST['confirm'] ?? ''; + $notify = $_POST['notify'] ?? ''; + $poll = $_POST['poll'] ?? ''; + $attag = $_POST['attag'] ?? ''; + $photo = $_POST['photo'] ?? ''; + $remote_self = $_POST['remote_self'] ?? false; $nurl = Strings::normaliseLink($url); $r = DBA::update( diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 9f9684e093..944ba98be2 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -59,7 +59,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) * since we are operating on behalf of our registered user to approve a friendship. */ if (empty($_POST['source_url'])) { - $uid = defaults($handsfree, 'uid', local_user()); + $uid = ($handsfree['uid'] ?? 0) ?: local_user(); if (!$uid) { notice(L10n::t('Permission denied.') . EOL); return; @@ -78,13 +78,13 @@ function dfrn_confirm_post(App $a, $handsfree = null) $intro_id = $handsfree['intro_id']; $duplex = $handsfree['duplex']; $cid = 0; - $hidden = intval(defaults($handsfree, 'hidden' , 0)); + $hidden = intval($handsfree['hidden'] ?? 0); } else { - $dfrn_id = Strings::escapeTags(trim(defaults($_POST, 'dfrn_id' , ''))); - $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)); + $dfrn_id = Strings::escapeTags(trim($_POST['dfrn_id'] ?? '')); + $intro_id = intval($_POST['intro_id'] ?? 0); + $duplex = intval($_POST['duplex'] ?? 0); + $cid = intval($_POST['contact_id'] ?? 0); + $hidden = intval($_POST['hidden'] ?? 0); } /* @@ -347,12 +347,12 @@ function dfrn_confirm_post(App $a, $handsfree = null) */ if (!empty($_POST['source_url'])) { // We are processing an external confirmation to an introduction created by our user. - $public_key = defaults($_POST, 'public_key', ''); - $dfrn_id = hex2bin(defaults($_POST, 'dfrn_id' , '')); - $source_url = hex2bin(defaults($_POST, 'source_url', '')); - $aes_key = defaults($_POST, 'aes_key' , ''); - $duplex = intval(defaults($_POST, 'duplex' , 0)); - $page = intval(defaults($_POST, 'page' , 0)); + $public_key = $_POST['public_key'] ?? ''; + $dfrn_id = hex2bin($_POST['dfrn_id'] ?? ''); + $source_url = hex2bin($_POST['source_url'] ?? ''); + $aes_key = $_POST['aes_key'] ?? ''; + $duplex = intval($_POST['duplex'] ?? 0); + $page = intval($_POST['page'] ?? 0); $forum = (($page == 1) ? 1 : 0); $prv = (($page == 2) ? 1 : 0); diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index 3f0ecba005..dee6bad779 100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -26,7 +26,7 @@ function dfrn_notify_post(App $a) { if (empty($_POST) || !empty($postdata)) { $data = json_decode($postdata); if (is_object($data)) { - $nick = defaults($a->argv, 1, ''); + $nick = $a->argv[1] ?? ''; $user = DBA::selectFirst('user', [], ['nickname' => $nick, 'account_expired' => false, 'account_removed' => false]); if (!DBA::isResult($user)) { @@ -42,8 +42,8 @@ function dfrn_notify_post(App $a) { $dfrn_id = (!empty($_POST['dfrn_id']) ? Strings::escapeTags(trim($_POST['dfrn_id'])) : ''); $dfrn_version = (!empty($_POST['dfrn_version']) ? (float) $_POST['dfrn_version'] : 2.0); $challenge = (!empty($_POST['challenge']) ? Strings::escapeTags(trim($_POST['challenge'])) : ''); - $data = defaults($_POST, 'data', ''); - $key = defaults($_POST, 'key', ''); + $data = $_POST['data'] ?? ''; + $key = $_POST['key'] ?? ''; $rino_remote = (!empty($_POST['rino']) ? intval($_POST['rino']) : 0); $dissolve = (!empty($_POST['dissolve']) ? intval($_POST['dissolve']) : 0); $perm = (!empty($_POST['perm']) ? Strings::escapeTags(trim($_POST['perm'])) : 'r'); diff --git a/mod/dfrn_poll.php b/mod/dfrn_poll.php index c6134bb45d..ca60cc87a1 100644 --- a/mod/dfrn_poll.php +++ b/mod/dfrn_poll.php @@ -22,17 +22,17 @@ function dfrn_poll_init(App $a) { Login::sessionAuth(); - $dfrn_id = defaults($_GET, 'dfrn_id' , ''); - $type = defaults($_GET, 'type' , 'data'); - $last_update = defaults($_GET, 'last_update' , ''); - $destination_url = defaults($_GET, 'destination_url', ''); - $challenge = defaults($_GET, 'challenge' , ''); - $sec = defaults($_GET, 'sec' , ''); - $dfrn_version = (float) defaults($_GET, 'dfrn_version' , 2.0); + $dfrn_id = $_GET['dfrn_id'] ?? ''; + $type = ($_GET['type'] ?? '') ?: 'data'; + $last_update = $_GET['last_update'] ?? ''; + $destination_url = $_GET['destination_url'] ?? ''; + $challenge = $_GET['challenge'] ?? ''; + $sec = $_GET['sec'] ?? ''; + $dfrn_version = floatval(($_GET['dfrn_version'] ?? 0.0) ?: 2.0); $quiet = !empty($_GET['quiet']); // Possibly it is an OStatus compatible server that requests a user feed - $user_agent = defaults($_SERVER, 'HTTP_USER_AGENT', ''); + $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? ''; if (($a->argc > 1) && ($dfrn_id == '') && !strstr($user_agent, 'Friendica')) { $nickname = $a->argv[1]; header("Content-type: application/atom+xml"); @@ -225,13 +225,13 @@ function dfrn_poll_init(App $a) function dfrn_poll_post(App $a) { - $dfrn_id = defaults($_POST, 'dfrn_id' , ''); - $challenge = defaults($_POST, 'challenge', ''); - $url = defaults($_POST, 'url' , ''); - $sec = defaults($_POST, 'sec' , ''); - $ptype = defaults($_POST, 'type' , ''); - $perm = defaults($_POST, 'perm' , 'r'); - $dfrn_version = !empty($_POST['dfrn_version']) ? (float) $_POST['dfrn_version'] : 2.0; + $dfrn_id = $_POST['dfrn_id'] ?? ''; + $challenge = $_POST['challenge'] ?? ''; + $url = $_POST['url'] ?? ''; + $sec = $_POST['sec'] ?? ''; + $ptype = $_POST['type'] ?? ''; + $perm = ($_POST['perm'] ?? '') ?: 'r'; + $dfrn_version = floatval(($_GET['dfrn_version'] ?? 0.0) ?: 2.0); if ($ptype === 'profile-check') { if (strlen($challenge) && strlen($sec)) { @@ -391,12 +391,12 @@ function dfrn_poll_post(App $a) function dfrn_poll_content(App $a) { - $dfrn_id = defaults($_GET, 'dfrn_id' , ''); - $type = defaults($_GET, 'type' , 'data'); - $last_update = defaults($_GET, 'last_update' , ''); - $destination_url = defaults($_GET, 'destination_url', ''); - $sec = defaults($_GET, 'sec' , ''); - $dfrn_version = !empty($_GET['dfrn_version']) ? (float) $_GET['dfrn_version'] : 2.0; + $dfrn_id = $_GET['dfrn_id'] ?? ''; + $type = ($_GET['type'] ?? '') ?: 'data'; + $last_update = $_GET['last_update'] ?? ''; + $destination_url = $_GET['destination_url'] ?? ''; + $sec = $_GET['sec'] ?? ''; + $dfrn_version = floatval(($_GET['dfrn_version'] ?? 0.0) ?: 2.0); $quiet = !empty($_GET['quiet']); $direction = -1; diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index f78da7fb04..f37064573b 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -80,7 +80,7 @@ function dfrn_request_post(App $a) if (local_user() && ($a->user['nickname'] == $a->argv[1]) && !empty($_POST['dfrn_url'])) { $dfrn_url = Strings::escapeTags(trim($_POST['dfrn_url'])); $aes_allow = !empty($_POST['aes_allow']); - $confirm_key = defaults($_POST, 'confirm_key', ""); + $confirm_key = $_POST['confirm_key'] ?? ''; $hidden = (!empty($_POST['hidden-contact']) ? intval($_POST['hidden-contact']) : 0); $contact_record = null; $blocked = 1; @@ -169,7 +169,7 @@ function dfrn_request_post(App $a) $r = q("SELECT `id`, `network` FROM `contact` WHERE `uid` = %d AND `url` = '%s' AND `site-pubkey` = '%s' LIMIT 1", intval(local_user()), DBA::escape($dfrn_url), - defaults($parms, 'key', '') // Potentially missing + $parms['key'] ?? '' // Potentially missing ); if (DBA::isResult($r)) { Group::addMember(User::getDefaultGroup(local_user(), $r[0]["network"]), $r[0]['id']); @@ -423,7 +423,7 @@ function dfrn_request_post(App $a) intval($uid), intval($contact_record['id']), intval(!empty($_POST['knowyou'])), - DBA::escape(Strings::escapeTags(trim(defaults($_POST, 'dfrn-request-message', '')))), + DBA::escape(Strings::escapeTags(trim($_POST['dfrn-request-message'] ?? ''))), DBA::escape($hash), DBA::escape(DateTimeFormat::utcNow()) ); @@ -499,7 +499,7 @@ function dfrn_request_content(App $a) $dfrn_url = Strings::escapeTags(trim(hex2bin($_GET['dfrn_url']))); $aes_allow = !empty($_GET['aes_allow']); - $confirm_key = defaults($_GET, 'confirm_key', ""); + $confirm_key = $_GET['confirm_key'] ?? ''; // Checking fastlane for validity if (!empty($_SESSION['fastlane']) && (Strings::normaliseLink($_SESSION["fastlane"]) == Strings::normaliseLink($dfrn_url))) { diff --git a/mod/display.php b/mod/display.php index 8513788dfc..12fa8d7ece 100644 --- a/mod/display.php +++ b/mod/display.php @@ -276,8 +276,8 @@ function display_content(App $a, $update = false, $update_uid = 0) if (isset($item_parent_uri)) { $parent = Item::selectFirst(['uid'], ['uri' => $item_parent_uri, 'wall' => true]); if (DBA::isResult($parent)) { - $a->profile['uid'] = defaults($a->profile, 'uid', $parent['uid']); - $a->profile['profile_uid'] = defaults($a->profile, 'profile_uid', $parent['uid']); + $a->profile['uid'] = ($a->profile['uid'] ?? 0) ?: $parent['uid']; + $a->profile['profile_uid'] = ($a->profile['profile_uid'] ?? 0) ?: $parent['uid']; $is_remote_contact = Session::getRemoteContactID($a->profile['profile_uid']); if ($is_remote_contact) { $item_uid = $parent['uid']; diff --git a/mod/events.php b/mod/events.php index 82257a8481..649a25ab1b 100644 --- a/mod/events.php +++ b/mod/events.php @@ -59,11 +59,11 @@ function events_post(App $a) $cid = !empty($_POST['cid']) ? intval($_POST['cid']) : 0; $uid = local_user(); - $start_text = Strings::escapeHtml(defaults($_REQUEST, 'start_text', '')); - $finish_text = Strings::escapeHtml(defaults($_REQUEST, 'finish_text', '')); + $start_text = Strings::escapeHtml($_REQUEST['start_text'] ?? ''); + $finish_text = Strings::escapeHtml($_REQUEST['finish_text'] ?? ''); - $adjust = intval(defaults($_POST, 'adjust', 0)); - $nofinish = intval(defaults($_POST, 'nofinish', 0)); + $adjust = intval($_POST['adjust'] ?? 0); + $nofinish = intval($_POST['nofinish'] ?? 0); // The default setting for the `private` field in event_store() is false, so mirror that $private_event = false; @@ -96,9 +96,9 @@ function events_post(App $a) // and we'll waste a bunch of time responding to it. Time that // could've been spent doing something else. - $summary = trim(defaults($_POST, 'summary' , '')); - $desc = trim(defaults($_POST, 'desc' , '')); - $location = trim(defaults($_POST, 'location', '')); + $summary = trim($_POST['summary'] ?? ''); + $desc = trim($_POST['desc'] ?? ''); + $location = trim($_POST['location'] ?? ''); $type = 'event'; $params = [ @@ -132,7 +132,7 @@ function events_post(App $a) $a->internalRedirect($onerror_path); } - $share = intval(defaults($_POST, 'share', 0)); + $share = intval($_POST['share'] ?? 0); $c = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1", intval(local_user()) @@ -146,10 +146,10 @@ function events_post(App $a) if ($share) { - $str_group_allow = perms2str(defaults($_POST, 'group_allow' , '')); - $str_contact_allow = perms2str(defaults($_POST, 'contact_allow', '')); - $str_group_deny = perms2str(defaults($_POST, 'group_deny' , '')); - $str_contact_deny = perms2str(defaults($_POST, 'contact_deny' , '')); + $str_group_allow = perms2str($_POST['group_allow'] ?? ''); + $str_contact_allow = perms2str($_POST['contact_allow'] ?? ''); + $str_group_deny = perms2str($_POST['group_deny'] ?? ''); + $str_contact_deny = perms2str($_POST['contact_deny'] ?? ''); // Undo the pseudo-contact of self, since there are real contacts now if (strpos($str_contact_allow, '<' . $self . '>') !== false) { diff --git a/mod/fbrowser.php b/mod/fbrowser.php index f2bccb085a..102d0c613d 100644 --- a/mod/fbrowser.php +++ b/mod/fbrowser.php @@ -29,7 +29,7 @@ function fbrowser_content(App $a) } // Needed to match the correct template in a module that uses a different theme than the user/site/default - $theme = Strings::sanitizeFilePathItem(defaults($_GET, 'theme', null)); + $theme = Strings::sanitizeFilePathItem($_GET['theme'] ?? null); if ($theme && is_file("view/theme/$theme/config.php")) { $a->setCurrentTheme($theme); } diff --git a/mod/follow.php b/mod/follow.php index c7a96f734f..31b92aa0dc 100644 --- a/mod/follow.php +++ b/mod/follow.php @@ -62,7 +62,7 @@ function follow_content(App $a) $uid = local_user(); // Issue 4815: Silently removing a prefixing @ - $url = ltrim(Strings::escapeTags(trim(defaults($_REQUEST, 'url', ''))), '@!'); + $url = ltrim(Strings::escapeTags(trim($_REQUEST['url'] ?? '')), '@!'); // Issue 6874: Allow remote following from Peertube if (strpos($url, 'acct:') === 0) { diff --git a/mod/fsuggest.php b/mod/fsuggest.php index 2bddf48133..d41363ad7b 100644 --- a/mod/fsuggest.php +++ b/mod/fsuggest.php @@ -45,7 +45,7 @@ function fsuggest_post(App $a) return; } - $note = Strings::escapeHtml(trim(defaults($_POST, 'note', ''))); + $note = Strings::escapeHtml(trim($_POST['note'] ?? '')); $fields = ['uid' => local_user(),'cid' => $contact_id, 'name' => $contact['name'], 'url' => $contact['url'], 'request' => $contact['request'], diff --git a/mod/hcard.php b/mod/hcard.php index ad84e24e54..013619bcba 100644 --- a/mod/hcard.php +++ b/mod/hcard.php @@ -41,7 +41,7 @@ function hcard_init(App $a) } if (!$blocked) { - $keywords = defaults($a->profile, 'pub_keywords', ''); + $keywords = $a->profile['pub_keywords'] ?? ''; $keywords = str_replace([',',' ',',,'], [' ',',',','], $keywords); if (strlen($keywords)) { $a->page['htmlhead'] .= '' . "\r\n"; diff --git a/mod/hovercard.php b/mod/hovercard.php index ca39919636..d5951dbe00 100644 --- a/mod/hovercard.php +++ b/mod/hovercard.php @@ -26,8 +26,8 @@ function hovercard_init(App $a) function hovercard_content() { - $profileurl = defaults($_REQUEST, 'profileurl', ''); - $datatype = defaults($_REQUEST, 'datatype' , 'json'); + $profileurl = $_REQUEST['profileurl'] ?? ''; + $datatype = ($_REQUEST['datatype'] ?? '') ?: 'json'; // Get out if the system doesn't have public access allowed if (intval(Config::get('system', 'block_public'))) { @@ -50,7 +50,7 @@ function hovercard_content() if (strpos($profileurl, 'redir/') === 0) { $cid = intval(substr($profileurl, 6)); $remote_contact = DBA::selectFirst('contact', ['nurl'], ['id' => $cid]); - $profileurl = defaults($remote_contact, 'nurl', ''); + $profileurl = $remote_contact['nurl'] ?? ''; } $contact = []; @@ -97,7 +97,7 @@ function hovercard_content() $profile = [ 'name' => $contact['name'], 'nick' => $contact['nick'], - 'addr' => defaults($contact, 'addr', $contact['url']), + 'addr' => ($contact['addr'] ?? '') ?: $contact['url'], 'thumb' => ProxyUtils::proxifyUrl($contact['thumb'], false, ProxyUtils::SIZE_THUMB), 'url' => Contact::magicLink($contact['url']), 'nurl' => $contact['nurl'], // We additionally store the nurl as identifier diff --git a/mod/ignored.php b/mod/ignored.php index 64edf6e151..6e0cf92a65 100644 --- a/mod/ignored.php +++ b/mod/ignored.php @@ -33,7 +33,7 @@ function ignored_init(App $a) } // See if we've been passed a return path to redirect to - $return_path = defaults($_REQUEST, 'return', ''); + $return_path = $_REQUEST['return'] ?? ''; if ($return_path) { $rand = '_=' . time(); if (strpos($return_path, '?')) { diff --git a/mod/item.php b/mod/item.php index b1c0355e01..7c8ebee4ab 100644 --- a/mod/item.php +++ b/mod/item.php @@ -64,12 +64,12 @@ function item_post(App $a) { Logger::log('postvars ' . print_r($_REQUEST, true), Logger::DATA); - $api_source = defaults($_REQUEST, 'api_source', false); + $api_source = $_REQUEST['api_source'] ?? false; $message_id = ((!empty($_REQUEST['message_id']) && $api_source) ? strip_tags($_REQUEST['message_id']) : ''); - $return_path = defaults($_REQUEST, 'return', ''); - $preview = intval(defaults($_REQUEST, 'preview', 0)); + $return_path = $_REQUEST['return'] ?? ''; + $preview = intval($_REQUEST['preview'] ?? 0); /* * Check for doubly-submitted posts, and reject duplicates @@ -86,8 +86,8 @@ function item_post(App $a) { } // Is this a reply to something? - $toplevel_item_id = intval(defaults($_REQUEST, 'parent', 0)); - $thr_parent_uri = trim(defaults($_REQUEST, 'parent_uri', '')); + $toplevel_item_id = intval($_REQUEST['parent'] ?? 0); + $thr_parent_uri = trim($_REQUEST['parent_uri'] ?? ''); $thread_parent_id = 0; $thread_parent_contact = null; @@ -98,8 +98,8 @@ function item_post(App $a) { $parent_contact = null; $objecttype = null; - $profile_uid = defaults($_REQUEST, 'profile_uid', local_user()); - $posttype = defaults($_REQUEST, 'post_type', Item::PT_ARTICLE); + $profile_uid = ($_REQUEST['profile_uid'] ?? 0) ?: local_user(); + $posttype = ($_REQUEST['post_type'] ?? '') ?: Item::PT_ARTICLE; if ($toplevel_item_id || $thr_parent_uri) { if ($toplevel_item_id) { @@ -138,10 +138,10 @@ function item_post(App $a) { Logger::info('mod_item: item_post parent=' . $toplevel_item_id); } - $post_id = intval(defaults($_REQUEST, 'post_id', 0)); - $app = strip_tags(defaults($_REQUEST, 'source', '')); - $extid = strip_tags(defaults($_REQUEST, 'extid', '')); - $object = defaults($_REQUEST, 'object', ''); + $post_id = intval($_REQUEST['post_id'] ?? 0); + $app = strip_tags($_REQUEST['source'] ?? ''); + $extid = strip_tags($_REQUEST['extid'] ?? ''); + $object = $_REQUEST['object'] ?? ''; // Don't use "defaults" here. It would turn 0 to 1 if (!isset($_REQUEST['wall'])) { @@ -194,20 +194,20 @@ function item_post(App $a) { $categories = ''; $postopts = ''; $emailcc = ''; - $body = defaults($_REQUEST, 'body', ''); - $has_attachment = defaults($_REQUEST, 'has_attachment', 0); + $body = $_REQUEST['body'] ?? ''; + $has_attachment = $_REQUEST['has_attachment'] ?? 0; // If we have a speparate attachment, we need to add it to the body. if (!empty($has_attachment)) { - $attachment_type = defaults($_REQUEST, 'attachment_type', ''); - $attachment_title = defaults($_REQUEST, 'attachment_title', ''); - $attachment_text = defaults($_REQUEST, 'attachment_text', ''); + $attachment_type = $_REQUEST['attachment_type'] ?? ''; + $attachment_title = $_REQUEST['attachment_title'] ?? ''; + $attachment_text = $_REQUEST['attachment_text'] ?? ''; - $attachment_url = hex2bin(defaults($_REQUEST, 'attachment_url', '')); - $attachment_img_src = hex2bin(defaults($_REQUEST, 'attachment_img_src', '')); + $attachment_url = hex2bin($_REQUEST['attachment_url'] ?? ''); + $attachment_img_src = hex2bin($_REQUEST['attachment_img_src'] ?? ''); - $attachment_img_width = defaults($_REQUEST, 'attachment_img_width', 0); - $attachment_img_height = defaults($_REQUEST, 'attachment_img_height', 0); + $attachment_img_width = $_REQUEST['attachment_img_width'] ?? 0; + $attachment_img_height = $_REQUEST['attachment_img_height'] ?? 0; $attachment = [ 'type' => $attachment_type, 'title' => $attachment_title, @@ -229,6 +229,9 @@ function item_post(App $a) { $body .= $att_bbcode; } + // Convert links with empty descriptions to links without an explicit description + $body = preg_replace('#\[url=([^\]]*?)\]\[/url\]#ism', '[url]$1[/url]', $body); + if (!empty($orig_post)) { $str_group_allow = $orig_post['allow_gid']; $str_contact_allow = $orig_post['allow_cid']; @@ -266,22 +269,22 @@ function item_post(App $a) { $str_contact_deny = $user['deny_cid']; } else { // use the posted permissions - $str_group_allow = perms2str(defaults($_REQUEST, 'group_allow', '')); - $str_contact_allow = perms2str(defaults($_REQUEST, 'contact_allow', '')); - $str_group_deny = perms2str(defaults($_REQUEST, 'group_deny', '')); - $str_contact_deny = perms2str(defaults($_REQUEST, 'contact_deny', '')); + $str_group_allow = perms2str($_REQUEST['group_allow'] ?? ''); + $str_contact_allow = perms2str($_REQUEST['contact_allow'] ?? ''); + $str_group_deny = perms2str($_REQUEST['group_deny'] ?? ''); + $str_contact_deny = perms2str($_REQUEST['contact_deny'] ?? ''); } - $title = Strings::escapeTags(trim(defaults($_REQUEST, 'title' , ''))); - $location = Strings::escapeTags(trim(defaults($_REQUEST, 'location', ''))); - $coord = Strings::escapeTags(trim(defaults($_REQUEST, 'coord' , ''))); - $verb = Strings::escapeTags(trim(defaults($_REQUEST, 'verb' , ''))); - $emailcc = Strings::escapeTags(trim(defaults($_REQUEST, 'emailcc' , ''))); + $title = Strings::escapeTags(trim($_REQUEST['title'] ?? '')); + $location = Strings::escapeTags(trim($_REQUEST['location'] ?? '')); + $coord = Strings::escapeTags(trim($_REQUEST['coord'] ?? '')); + $verb = Strings::escapeTags(trim($_REQUEST['verb'] ?? '')); + $emailcc = Strings::escapeTags(trim($_REQUEST['emailcc'] ?? '')); $body = Strings::escapeHtml(trim($body)); - $network = Strings::escapeTags(trim(defaults($_REQUEST, 'network' , Protocol::DFRN))); + $network = Strings::escapeTags(trim(($_REQUEST['network'] ?? '') ?: Protocol::DFRN)); $guid = System::createUUID(); - $postopts = defaults($_REQUEST, 'postopts', ''); + $postopts = $_REQUEST['postopts'] ?? ''; $private = ((strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) ? 1 : 0); @@ -304,7 +307,7 @@ function item_post(App $a) { $wall = $toplevel_item['wall']; } - $pubmail_enabled = defaults($_REQUEST, 'pubmail_enable', false) && !$private; + $pubmail_enabled = ($_REQUEST['pubmail_enable'] ?? false) && !$private; // if using the API, we won't see pubmail_enable - figure out if it should be set if ($api_source && $profile_uid && $profile_uid == local_user() && !$private) { @@ -332,7 +335,7 @@ function item_post(App $a) { // save old and new categories, so we can determine what needs to be deleted from pconfig $categories_old = $categories; - $categories = FileTag::listToFile(trim(defaults($_REQUEST, 'category', '')), 'category'); + $categories = FileTag::listToFile(trim($_REQUEST['category'] ?? ''), 'category'); $categories_new = $categories; if (!empty($filedas) && is_array($filedas)) { @@ -1012,7 +1015,7 @@ function handle_tag(&$body, &$inform, &$str_tags, $profile_uid, $tag, $network = $profile = $contact["url"]; $alias = $contact["alias"]; - $newname = defaults($contact, "name", $contact["nick"]); + $newname = ($contact["name"] ?? '') ?: $contact["nick"]; } //if there is an url for this persons profile diff --git a/mod/match.php b/mod/match.php index 2b3c7ca525..41346bc89d 100644 --- a/mod/match.php +++ b/mod/match.php @@ -66,7 +66,7 @@ function match_content(App $a) $msearch = json_decode($msearch_json); - $start = defaults($_GET, 'start', 0); + $start = $_GET['start'] ?? 0; $entries = []; $paginate = ''; @@ -92,11 +92,11 @@ function match_content(App $a) $entry = [ 'url' => Contact::magicLink($profile->url), - 'itemurl' => defaults($contact_details, 'addr', $profile->url), + 'itemurl' => $contact_details['addr'] ?? $profile->url, 'name' => $profile->name, - 'details' => defaults($contact_details, 'location', ''), - 'tags' => defaults($contact_details, 'keywords', ''), - 'about' => defaults($contact_details, 'about', ''), + 'details' => $contact_details['location'] ?? '', + 'tags' => $contact_details['keywords'] ?? '', + 'about' => $contact_details['about'] ?? '', 'account_type' => Contact::getAccountType($contact_details), 'thumb' => ProxyUtils::proxifyUrl($profile->photo, false, ProxyUtils::SIZE_THUMB), 'conntxt' => L10n::t('Connect'), diff --git a/mod/message.php b/mod/message.php index fe4429e000..393d5d276b 100644 --- a/mod/message.php +++ b/mod/message.php @@ -249,8 +249,8 @@ function message_content(App $a) '$prefill' => $prefill, '$preid' => $preid, '$subject' => L10n::t('Subject:'), - '$subjtxt' => defaults($_REQUEST, 'subject', ''), - '$text' => defaults($_REQUEST, 'body', ''), + '$subjtxt' => $_REQUEST['subject'] ?? '', + '$text' => $_REQUEST['body'] ?? '', '$readonly' => '', '$yourmessage'=> L10n::t('Your message:'), '$select' => $select, @@ -530,7 +530,7 @@ function render_messages(array $msg, $t) '$id' => $rr['id'], '$from_name' => $participants, '$from_url' => Contact::magicLink($rr['url']), - '$from_addr' => defaults($contact, 'addr', ''), + '$from_addr' => $contact['addr'] ?? '', '$sparkle' => ' sparkle', '$from_photo' => ProxyUtils::proxifyUrl($from_photo, false, ProxyUtils::SIZE_THUMB), '$subject' => $rr['title'], diff --git a/mod/msearch.php b/mod/msearch.php index fcb93a32f0..e87a8f522c 100644 --- a/mod/msearch.php +++ b/mod/msearch.php @@ -6,9 +6,9 @@ use Friendica\Database\DBA; function msearch_post(App $a) { - $search = defaults($_POST, 's', ''); - $perpage = intval(defaults($_POST, 'n', 80)); - $page = intval(defaults($_POST, 'p', 1)); + $search = $_POST['s'] ?? ''; + $perpage = intval(($_POST['n'] ?? 0) ?: 80); + $page = intval(($_POST['p'] ?? 0) ?: 1); $startrec = ($page - 1) * $perpage; $total = 0; diff --git a/mod/network.php b/mod/network.php index 515219827a..0438be7059 100644 --- a/mod/network.php +++ b/mod/network.php @@ -66,7 +66,7 @@ function network_init(App $a) // fetch last used network view and redirect if needed if (!$is_a_date_query) { - $sel_nets = defaults($_GET, 'nets', ''); + $sel_nets = $_GET['nets'] ?? ''; $sel_tabs = network_query_get_sel_tab($a); $sel_groups = network_query_get_sel_group($a); $last_sel_tabs = PConfig::get(local_user(), 'network.view', 'tab.selected'); @@ -138,9 +138,9 @@ function network_init(App $a) $a->page['aside'] .= Group::sidebarWidget('network/0', 'network', 'standard', $group_id); $a->page['aside'] .= ForumManager::widget(local_user(), $cid); $a->page['aside'] .= Widget::postedByYear('network', local_user(), false); - $a->page['aside'] .= Widget::networks('network', defaults($_GET, 'nets', '') ); + $a->page['aside'] .= Widget::networks('network', $_GET['nets'] ?? ''); $a->page['aside'] .= Widget\SavedSearches::getHTML($a->query_string); - $a->page['aside'] .= Widget::fileAs('network', defaults($_GET, 'file', '') ); + $a->page['aside'] .= Widget::fileAs('network', $_GET['file'] ?? ''); } /** @@ -356,7 +356,7 @@ function networkFlatView(App $a, $update = 0) $o = ''; - $file = defaults($_GET, 'file', ''); + $file = $_GET['file'] ?? ''; if (!$update && !$rawmode) { $tabs = network_tabs($a); @@ -479,12 +479,12 @@ function networkThreadedView(App $a, $update, $parent) $o = ''; - $cid = intval(defaults($_GET, 'cid' , 0)); - $star = intval(defaults($_GET, 'star' , 0)); - $bmark = intval(defaults($_GET, 'bmark', 0)); - $conv = intval(defaults($_GET, 'conv' , 0)); - $order = Strings::escapeTags(defaults($_GET, 'order', 'comment')); - $nets = defaults($_GET, 'nets' , ''); + $cid = intval($_GET['cid'] ?? 0); + $star = intval($_GET['star'] ?? 0); + $bmark = intval($_GET['bmark'] ?? 0); + $conv = intval($_GET['conv'] ?? 0); + $order = Strings::escapeTags(($_GET['order'] ?? '') ?: 'comment'); + $nets = $_GET['nets'] ?? ''; $allowedCids = []; if ($cid) { @@ -623,7 +623,7 @@ function networkThreadedView(App $a, $update, $parent) $entries[0] = [ 'id' => 'network', 'name' => $contact['name'], - 'itemurl' => defaults($contact, 'addr', $contact['nurl']), + 'itemurl' => ($contact['addr'] ?? '') ?: $contact['nurl'], 'thumb' => ProxyUtils::proxifyUrl($contact['thumb'], false, ProxyUtils::SIZE_THUMB), 'details' => $contact['location'], ]; @@ -1013,7 +1013,7 @@ function network_infinite_scroll_head(App $a, &$htmlhead) global $pager; if (PConfig::get(local_user(), 'system', 'infinite_scroll') - && defaults($_GET, 'mode', '') != 'minimal' + && ($_GET['mode'] ?? '') != 'minimal' ) { $tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl'); $htmlhead .= Renderer::replaceMacros($tpl, [ diff --git a/mod/noscrape.php b/mod/noscrape.php index 5761df3ff9..7b8c0bdeb1 100644 --- a/mod/noscrape.php +++ b/mod/noscrape.php @@ -49,7 +49,7 @@ function noscrape_init(App $a) exit; } - $keywords = defaults($a->profile, 'pub_keywords', ''); + $keywords = $a->profile['pub_keywords'] ?? ''; $keywords = str_replace(['#',',',' ',',,'], ['',' ',',',','], $keywords); $keywords = explode(',', $keywords); diff --git a/mod/notifications.php b/mod/notifications.php index cd572895f1..8fbc5dac49 100644 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -78,8 +78,8 @@ function notifications_content(App $a) return Login::form(); } - $page = defaults($_REQUEST, 'page', 1); - $show = defaults($_REQUEST, 'show', 0); + $page = ($_REQUEST['page'] ?? 0) ?: 1; + $show = $_REQUEST['show'] ?? 0; Nav::setSelected('notifications'); @@ -158,7 +158,7 @@ function notifications_content(App $a) ]; // Process the data for template creation - if (defaults($notifs, 'ident', '') === 'introductions') { + if (($notifs['ident'] ?? '') == 'introductions') { $sugg = Renderer::getMarkupTemplate('suggestions.tpl'); $tpl = Renderer::getMarkupTemplate('intros.tpl'); diff --git a/mod/photos.php b/mod/photos.php index 84be1c8285..1789c0710e 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -63,9 +63,9 @@ function photos_init(App $a) { $vcard_widget = Renderer::replaceMacros($tpl, [ '$name' => $profile['name'], '$photo' => $profile['photo'], - '$addr' => defaults($profile, 'addr', ''), + '$addr' => $profile['addr'] ?? '', '$account_type' => $account_type, - '$pdesc' => defaults($profile, 'pdesc', ''), + '$pdesc' => $profile['pdesc'] ?? '', ]); $albums = Photo::getAlbums($a->data['user']['uid']); @@ -630,10 +630,10 @@ function photos_post(App $a) $visible = 0; } - $group_allow = defaults($_REQUEST, 'group_allow' , []); - $contact_allow = defaults($_REQUEST, 'contact_allow', []); - $group_deny = defaults($_REQUEST, 'group_deny' , []); - $contact_deny = defaults($_REQUEST, 'contact_deny' , []); + $group_allow = $_REQUEST['group_allow'] ?? []; + $contact_allow = $_REQUEST['contact_allow'] ?? []; + $group_deny = $_REQUEST['group_deny'] ?? []; + $contact_deny = $_REQUEST['contact_deny'] ?? []; $str_group_allow = perms2str(is_array($group_allow) ? $group_allow : explode(',', $group_allow)); $str_contact_allow = perms2str(is_array($contact_allow) ? $contact_allow : explode(',', $contact_allow)); @@ -666,7 +666,7 @@ function photos_post(App $a) notice(L10n::t('Image exceeds size limit of %s', ini_get('upload_max_filesize')) . EOL); break; case UPLOAD_ERR_FORM_SIZE: - notice(L10n::t('Image exceeds size limit of %s', Strings::formatBytes(defaults($_REQUEST, 'MAX_FILE_SIZE', 0))) . EOL); + notice(L10n::t('Image exceeds size limit of %s', Strings::formatBytes($_REQUEST['MAX_FILE_SIZE'] ?? 0)) . EOL); break; case UPLOAD_ERR_PARTIAL: notice(L10n::t('Image upload didn\'t complete, please try again') . EOL); @@ -1006,7 +1006,7 @@ function photos_content(App $a) $pager = new Pager($a->query_string, 20); /// @TODO I have seen this many times, maybe generalize it script-wide and encapsulate it? - $order_field = defaults($_GET, 'order', ''); + $order_field = $_GET['order'] ?? ''; if ($order_field === 'posted') { $order = 'ASC'; } else { @@ -1158,7 +1158,7 @@ function photos_content(App $a) * By now we hide it if someone wants to. */ if ($cmd === 'view' && !Config::get('system', 'no_count', false)) { - $order_field = defaults($_GET, 'order', ''); + $order_field = $_GET['order'] ?? ''; if ($order_field === 'posted') { $order = 'ASC'; diff --git a/mod/poco.php b/mod/poco.php index c288f6b639..2ed871285b 100644 --- a/mod/poco.php +++ b/mod/poco.php @@ -36,7 +36,7 @@ function poco_init(App $a) { $system_mode = true; } - $format = defaults($_GET, 'format', 'json'); + $format = ($_GET['format'] ?? '') ?: 'json'; $justme = false; $global = false; diff --git a/mod/pubsub.php b/mod/pubsub.php index d10d7031d6..c008fb09da 100644 --- a/mod/pubsub.php +++ b/mod/pubsub.php @@ -33,10 +33,10 @@ function pubsub_init(App $a) $contact_id = (($a->argc > 2) ? intval($a->argv[2]) : 0 ); if ($_SERVER['REQUEST_METHOD'] === 'GET') { - $hub_mode = Strings::escapeTags(trim(defaults($_GET, 'hub_mode', ''))); - $hub_topic = Strings::escapeTags(trim(defaults($_GET, 'hub_topic', ''))); - $hub_challenge = Strings::escapeTags(trim(defaults($_GET, 'hub_challenge', ''))); - $hub_verify = Strings::escapeTags(trim(defaults($_GET, 'hub_verify_token', ''))); + $hub_mode = Strings::escapeTags(trim($_GET['hub_mode'] ?? '')); + $hub_topic = Strings::escapeTags(trim($_GET['hub_topic'] ?? '')); + $hub_challenge = Strings::escapeTags(trim($_GET['hub_challenge'] ?? '')); + $hub_verify = Strings::escapeTags(trim($_GET['hub_verify_token'] ?? '')); Logger::log('Subscription from ' . $_SERVER['REMOTE_ADDR'] . ' Mode: ' . $hub_mode . ' Nick: ' . $nick); Logger::log('Data: ' . print_r($_GET,true), Logger::DATA); diff --git a/mod/redir.php b/mod/redir.php index 12d93186e2..9d86f27a96 100644 --- a/mod/redir.php +++ b/mod/redir.php @@ -13,7 +13,7 @@ use Friendica\Util\Strings; function redir_init(App $a) { - $url = defaults($_GET, 'url', ''); + $url = $_GET['url'] ?? ''; $quiet = !empty($_GET['quiet']) ? '&quiet=1' : ''; if ($a->argc > 1 && intval($a->argv[1])) { @@ -38,7 +38,7 @@ function redir_init(App $a) { if (!Session::isAuthenticated() // Visitors (not logged in or not remotes) can't authenticate. || (!empty($a->contact['id']) && $a->contact['id'] == $cid)) // Local user is already authenticated. { - $a->redirect(defaults($url, $contact_url)); + $a->redirect($url ?: $contact_url); } if ($contact['uid'] == 0 && local_user()) { @@ -52,7 +52,7 @@ function redir_init(App $a) { if (!empty($a->contact['id']) && $a->contact['id'] == $cid) { // Local user is already authenticated. - $target_url = defaults($url, $contact_url); + $target_url = $url ?: $contact_url; Logger::log($contact['name'] . " is already authenticated. Redirecting to " . $target_url, Logger::DEBUG); $a->redirect($target_url); } @@ -68,7 +68,7 @@ function redir_init(App $a) { // contact. if (($host == $remotehost) && (Session::getRemoteContactID(Session::get('visitor_visiting')) == Session::get('visitor_id'))) { // Remote user is already authenticated. - $target_url = defaults($url, $contact_url); + $target_url = $url ?: $contact_url; Logger::log($contact['name'] . " is already authenticated. Redirecting to " . $target_url, Logger::DEBUG); $a->redirect($target_url); } @@ -101,7 +101,7 @@ function redir_init(App $a) { . '&dfrn_version=' . DFRN_PROTOCOL_VERSION . '&type=profile&sec=' . $sec . $dest . $quiet); } - $url = defaults($url, $contact_url); + $url = $url ?: $contact_url; } // If we don't have a connected contact, redirect with @@ -142,7 +142,7 @@ function redir_magic($a, $cid, $url) } } else { $contact_url = $contact['url']; - $target_url = defaults($url, $contact_url); + $target_url = $url ?: $contact_url; } $basepath = Contact::getBasepath($contact_url); diff --git a/mod/regmod.php b/mod/regmod.php index 6cf4c8836c..295d8df25f 100644 --- a/mod/regmod.php +++ b/mod/regmod.php @@ -44,7 +44,7 @@ function user_allow($hash) $user, Config::get('config', 'sitename'), $a->getBaseUrl(), - defaults($register, 'password', 'Sent in a previous email') + ($register['password'] ?? '') ?: 'Sent in a previous email' ); L10n::popLang(); diff --git a/mod/settings.php b/mod/settings.php index 0d519e5a07..b5011881cb 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -35,7 +35,7 @@ function get_theme_config_file($theme) $theme = Strings::sanitizeFilePathItem($theme); $a = \get_app(); - $base_theme = defaults($a->theme_info, 'extends'); + $base_theme = $a->theme_info['extends'] ?? ''; if (file_exists("view/theme/$theme/config.php")) { return "view/theme/$theme/config.php"; @@ -180,11 +180,11 @@ function settings_post(App $a) if (($a->argc > 2) && ($a->argv[1] === 'oauth') && ($a->argv[2] === 'edit'||($a->argv[2] === 'add')) && !empty($_POST['submit'])) { BaseModule::checkFormSecurityTokenRedirectOnError('/settings/oauth', 'settings_oauth'); - $name = defaults($_POST, 'name' , ''); - $key = defaults($_POST, 'key' , ''); - $secret = defaults($_POST, 'secret' , ''); - $redirect = defaults($_POST, 'redirect', ''); - $icon = defaults($_POST, 'icon' , ''); + $name = $_POST['name'] ?? ''; + $key = $_POST['key'] ?? ''; + $secret = $_POST['secret'] ?? ''; + $redirect = $_POST['redirect'] ?? ''; + $icon = $_POST['icon'] ?? ''; if ($name == "" || $key == "" || $secret == "") { notice(L10n::t("Missing some important data!")); @@ -241,24 +241,21 @@ function settings_post(App $a) PConfig::set(local_user(), 'ostatus', 'default_group', $_POST['group-selection']); PConfig::set(local_user(), 'ostatus', 'legacy_contact', $_POST['legacy_contact']); } elseif (!empty($_POST['imap-submit'])) { + $mail_server = $_POST['mail_server'] ?? ''; + $mail_port = $_POST['mail_port'] ?? ''; + $mail_ssl = strtolower(trim($_POST['mail_ssl'] ?? '')); + $mail_user = $_POST['mail_user'] ?? ''; + $mail_pass = trim($_POST['mail_pass'] ?? ''); + $mail_action = trim($_POST['mail_action'] ?? ''); + $mail_movetofolder = trim($_POST['mail_movetofolder'] ?? ''); + $mail_replyto = $_POST['mail_replyto'] ?? ''; + $mail_pubmail = $_POST['mail_pubmail'] ?? ''; - $mail_server = defaults($_POST, 'mail_server', ''); - $mail_port = defaults($_POST, 'mail_port', ''); - $mail_ssl = (!empty($_POST['mail_ssl']) ? strtolower(trim($_POST['mail_ssl'])) : ''); - $mail_user = defaults($_POST, 'mail_user', ''); - $mail_pass = (!empty($_POST['mail_pass']) ? trim($_POST['mail_pass']) : ''); - $mail_action = (!empty($_POST['mail_action']) ? trim($_POST['mail_action']) : ''); - $mail_movetofolder = (!empty($_POST['mail_movetofolder']) ? trim($_POST['mail_movetofolder']) : ''); - $mail_replyto = defaults($_POST, 'mail_replyto', ''); - $mail_pubmail = defaults($_POST, 'mail_pubmail', ''); - - - $mail_disabled = ((function_exists('imap_open') && (!Config::get('system', 'imap_disabled'))) ? 0 : 1); - if (Config::get('system', 'dfrn_only')) { - $mail_disabled = 1; - } - - if (!$mail_disabled) { + if ( + !Config::get('system', 'dfrn_only') + && function_exists('imap_open') + && !Config::get('system', 'imap_disabled') + ) { $failed = false; $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1", intval(local_user()) diff --git a/mod/tagrm.php b/mod/tagrm.php index f6f2a9a29e..3f091f298a 100644 --- a/mod/tagrm.php +++ b/mod/tagrm.php @@ -22,11 +22,11 @@ function tagrm_post(App $a) } $tags = []; - foreach (defaults($_POST, 'tag', []) as $tag) { + foreach ($_POST['tag'] ?? [] as $tag) { $tags[] = hex2bin(Strings::escapeTags(trim($tag))); } - $item_id = defaults($_POST,'item', 0); + $item_id = $_POST['item'] ?? 0; update_tags($item_id, $tags); info(L10n::t('Tag(s) removed') . EOL); diff --git a/mod/unfollow.php b/mod/unfollow.php index a66c88aefd..7afd82c98a 100644 --- a/mod/unfollow.php +++ b/mod/unfollow.php @@ -25,7 +25,7 @@ function unfollow_post(App $a) } $uid = local_user(); - $url = Strings::escapeTags(trim(defaults($_REQUEST, 'url', ''))); + $url = Strings::escapeTags(trim($_REQUEST['url'] ?? '')); $condition = ["`uid` = ? AND (`rel` = ? OR `rel` = ?) AND (`nurl` = ? OR `alias` = ? OR `alias` = ?)", $uid, Contact::SHARING, Contact::FRIEND, Strings::normaliseLink($url), diff --git a/mod/videos.php b/mod/videos.php index 48027a603e..4174c7f48a 100644 --- a/mod/videos.php +++ b/mod/videos.php @@ -51,9 +51,9 @@ function videos_init(App $a) $vcard_widget = Renderer::replaceMacros($tpl, [ '$name' => $profile['name'], '$photo' => $profile['photo'], - '$addr' => defaults($profile, 'addr', ''), + '$addr' => $profile['addr'] ?? '', '$account_type' => $account_type, - '$pdesc' => defaults($profile, 'pdesc', ''), + '$pdesc' => $profile['pdesc'] ?? '', ]); // If not there, create 'aside' empty diff --git a/mod/wallmessage.php b/mod/wallmessage.php index 780230b8c7..ad8ca96675 100644 --- a/mod/wallmessage.php +++ b/mod/wallmessage.php @@ -131,8 +131,8 @@ function wallmessage_content(App $a) { '$subject' => L10n::t('Subject:'), '$recipname' => $user['username'], '$nickname' => $user['nickname'], - '$subjtxt' => defaults($_REQUEST, 'subject', ''), - '$text' => defaults($_REQUEST, 'body', ''), + '$subjtxt' => $_REQUEST['subject'] ?? '', + '$text' => $_REQUEST['body'] ?? '', '$readonly' => '', '$yourmessage'=> L10n::t('Your message:'), '$parent' => '', diff --git a/mods/sample-Lighttpd.config b/mods/sample-Lighttpd.config index 1c83700609..fb8ef0b2a4 100644 --- a/mods/sample-Lighttpd.config +++ b/mods/sample-Lighttpd.config @@ -102,8 +102,8 @@ $HTTP["scheme"] == "https" { # Got the following 'Drupal Clean URL'after Mike suggested trying # something along those lines, from http://drupal.org/node/1414950 url.rewrite-if-not-file = ( - "^\/([^\?]*)\?(.*)$" => "/index.php?q=$1&$2", - "^\/(.*)$" => "/index.php?q=$1" + "^\/([^\?]*)\?(.*)$" => "/index.php?pagename=$1&$2", + "^\/(.*)$" => "/index.php?pagename=$1" ) } else $HTTP["host"] !~ "(friendica.example.com|wordpress.example.com)" { diff --git a/src/App/Arguments.php b/src/App/Arguments.php index 8047186a07..e65309f6b0 100644 --- a/src/App/Arguments.php +++ b/src/App/Arguments.php @@ -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 diff --git a/src/App/BaseURL.php b/src/App/BaseURL.php index ad5fd0d4ed..8d76a0d2d2 100644 --- a/src/App/BaseURL.php +++ b/src/App/BaseURL.php @@ -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 diff --git a/src/BaseObject.php b/src/BaseObject.php index fcec89bb42..996824f4a1 100644 --- a/src/BaseObject.php +++ b/src/BaseObject.php @@ -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.'); diff --git a/src/Content/Pager.php b/src/Content/Pager.php index c9acb63f23..c12608d45d 100644 --- a/src/Content/Pager.php +++ b/src/Content/Pager.php @@ -39,7 +39,7 @@ class Pager { $this->setQueryString($queryString); $this->setItemsPerPage($itemsPerPage); - $this->setPage(defaults($_GET, 'page', 1)); + $this->setPage(($_GET['page'] ?? 0) ?: 1); } /** diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index c5f9986f1f..75f5d506e1 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -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('%s
', $data["url"], $data["title"]); + $return = sprintf('%s
', $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('
', $data["type"]); + $return = sprintf('
', $data['type']); } if (!empty($data['title']) && !empty($data['url'])) { - if (!empty($data["image"]) && empty($data["text"]) && ($data["type"] == "photo")) { - $return .= sprintf('', $data["url"], self::proxyUrl($data["image"], $simplehtml), $data["title"]); + if (!empty($data['image']) && empty($data['text']) && ($data['type'] == 'photo')) { + $return .= sprintf('', $data['url'], self::proxyUrl($data['image'], $simplehtml), $data['title']); } else { - if (!empty($data["image"])) { - $return .= sprintf('
', $data["url"], self::proxyUrl($data["image"], $simplehtml), $data["title"]); - } elseif (!empty($data["preview"])) { - $return .= sprintf('
', $data["url"], self::proxyUrl($data["preview"], $simplehtml), $data["title"]); + if (!empty($data['image'])) { + $return .= sprintf('
', $data['url'], self::proxyUrl($data['image'], $simplehtml), $data['title']); + } elseif (!empty($data['preview'])) { + $return .= sprintf('
', $data['url'], self::proxyUrl($data['preview'], $simplehtml), $data['title']); } $return .= sprintf('

%s

', $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('
%s
', 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 = '%s'; + 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 = '%s'; - - 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 = ''; $encoding = ''; - @$doc->loadHTML($encoding.$doctype."".$text.""); + @$doc->loadHTML($encoding . $doctype . '' . $text . ''); $doc->encoding = 'UTF-8'; $text = $doc->saveHTML(); - $text = str_replace(["", "", $doctype, $encoding], ["", "", "", ""], $text); + $text = str_replace(['', '', $doctype, $encoding], ['', '', '', ''], $text); $text = str_replace('
', '', $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(["
"], ["
"], $text); + $text = str_replace(['
'], ['
'], $text); $stamp1 = microtime(true); diff --git a/src/Content/Text/HTML.php b/src/Content/Text/HTML.php index 549025dec0..390a97f0f5 100644 --- a/src/Content/Text/HTML.php +++ b/src/Content/Text/HTML.php @@ -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), diff --git a/src/Content/Widget/CalendarExport.php b/src/Content/Widget/CalendarExport.php index 829d267d8f..c78ca21ebe 100644 --- a/src/Content/Widget/CalendarExport.php +++ b/src/Content/Widget/CalendarExport.php @@ -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, [ diff --git a/src/Content/Widget/ContactBlock.php b/src/Content/Widget/ContactBlock.php index ef152f9008..ec78dae922 100644 --- a/src/Content/Widget/ContactBlock.php +++ b/src/Content/Widget/ContactBlock.php @@ -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]; diff --git a/src/Core/ACL.php b/src/Core/ACL.php index fd9bfc6e22..df2f86e2b7 100644 --- a/src/Core/ACL.php +++ b/src/Core/ACL.php @@ -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'), diff --git a/src/Core/Authentication.php b/src/Core/Authentication.php index d67a67bba5..6d017664aa 100644 --- a/src/Core/Authentication.php +++ b/src/Core/Authentication.php @@ -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 = ""; diff --git a/src/Core/Config/Configuration.php b/src/Core/Config/Configuration.php index f904f369bb..c54fbb27e7 100644 --- a/src/Core/Config/Configuration.php +++ b/src/Core/Config/Configuration.php @@ -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 diff --git a/src/Core/Config/PConfiguration.php b/src/Core/Config/PConfiguration.php index badec9dfca..c54fc31220 100644 --- a/src/Core/Config/PConfiguration.php +++ b/src/Core/Config/PConfiguration.php @@ -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 diff --git a/src/Core/NotificationsManager.php b/src/Core/NotificationsManager.php index a6a5c24e01..3c8367c91e 100644 --- a/src/Core/NotificationsManager.php +++ b/src/Core/NotificationsManager.php @@ -137,7 +137,7 @@ class NotificationsManager extends BaseObject */ public function getTabs() { - $selected = defaults(self::getApp()->argv, 1, ''); + $selected = self::getApp()->argv[1] ?? ''; $tabs = [ [ diff --git a/src/Core/Renderer.php b/src/Core/Renderer.php index fd5e733025..d9d913050f 100644 --- a/src/Core/Renderer.php +++ b/src/Core/Renderer.php @@ -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])) { diff --git a/src/Core/Search.php b/src/Core/Search.php index 5792fb1c9e..9700c64722 100644 --- a/src/Core/Search.php +++ b/src/Core/Search.php @@ -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); } diff --git a/src/Core/Session.php b/src/Core/Session.php index 3a0da3ab08..aaead868a0 100644 --- a/src/Core/Session.php +++ b/src/Core/Session.php @@ -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(); diff --git a/src/Core/StorageManager.php b/src/Core/StorageManager.php index 8cd7d43953..832d9819c5 100644 --- a/src/Core/StorageManager.php +++ b/src/Core/StorageManager.php @@ -48,7 +48,7 @@ class StorageManager public static function getByName($name) { self::setup(); - return defaults(self::$backends, $name, ''); + return self::$backends[$name] ?? ''; } /** diff --git a/src/Database/DBStructure.php b/src/Database/DBStructure.php index 72b903e076..218cab9507 100644 --- a/src/Database/DBStructure.php +++ b/src/Database/DBStructure.php @@ -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? diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 5ae9955223..3033bb90b1 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -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']; diff --git a/src/Model/Conversation.php b/src/Model/Conversation.php index 06d3ba536d..2ef58636a0 100644 --- a/src/Model/Conversation.php +++ b/src/Model/Conversation.php @@ -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']); } diff --git a/src/Model/Event.php b/src/Model/Event.php index 42742f18e0..9152180844 100644 --- a/src/Model/Event.php +++ b/src/Model/Event.php @@ -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']; diff --git a/src/Model/GContact.php b/src/Model/GContact.php index 4e316de73e..8c220a57ae 100644 --- a/src/Model/GContact.php +++ b/src/Model/GContact.php @@ -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`) diff --git a/src/Model/GServer.php b/src/Model/GServer.php index b86b5506ce..d759a24dff 100644 --- a/src/Model/GServer.php +++ b/src/Model/GServer.php @@ -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; } diff --git a/src/Model/Item.php b/src/Model/Item.php index c73ea99b1b..ff0f46676f 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -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 = '
'; diff --git a/src/Model/ItemContent.php b/src/Model/ItemContent.php index 6d03ae3253..68b42af928 100644 --- a/src/Model/ItemContent.php +++ b/src/Model/ItemContent.php @@ -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') { diff --git a/src/Model/PermissionSet.php b/src/Model/PermissionSet.php index 90448806d8..c9a0697ebc 100644 --- a/src/Model/PermissionSet.php +++ b/src/Model/PermissionSet.php @@ -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); diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 67c6a0eb68..b69860edff 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -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, [ diff --git a/src/Model/Storage/Filesystem.php b/src/Model/Storage/Filesystem.php index 82e638158c..ff7c59444e 100644 --- a/src/Model/Storage/Filesystem.php +++ b/src/Model/Storage/Filesystem.php @@ -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') diff --git a/src/Model/Term.php b/src/Model/Term.php index 1de93fb05b..01169c5226 100644 --- a/src/Model/Term.php +++ b/src/Model/Term.php @@ -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/'; diff --git a/src/Module/Acctlink.php b/src/Module/Acctlink.php index 692e905914..1c2500a224 100644 --- a/src/Module/Acctlink.php +++ b/src/Module/Acctlink.php @@ -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); diff --git a/src/Module/Admin/Addons/Details.php b/src/Module/Admin/Addons/Details.php index 1fadf6768b..1965102f03 100644 --- a/src/Module/Admin/Addons/Details.php +++ b/src/Module/Admin/Addons/Details.php @@ -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 diff --git a/src/Module/Admin/Addons/Index.php b/src/Module/Admin/Addons/Index.php index 2fa39d8e40..eed47defb4 100644 --- a/src/Module/Admin/Addons/Index.php +++ b/src/Module/Admin/Addons/Index.php @@ -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)); diff --git a/src/Module/Admin/Blocklist/Contact.php b/src/Module/Admin/Blocklist/Contact.php index de3c717e37..bf1c7bc081 100644 --- a/src/Module/Admin/Blocklist/Contact.php +++ b/src/Module/Admin/Blocklist/Contact.php @@ -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'); diff --git a/src/Module/Admin/Logs/Settings.php b/src/Module/Admin/Logs/Settings.php index b9a5e3832d..be060e0535 100644 --- a/src/Module/Admin/Logs/Settings.php +++ b/src/Module/Admin/Logs/Settings.php @@ -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)) { diff --git a/src/Module/Admin/Site.php b/src/Module/Admin/Site.php index dff869df20..18a1cbf2a8 100644 --- a/src/Module/Admin/Site.php +++ b/src/Module/Admin/Site.php @@ -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; } diff --git a/src/Module/Admin/Themes/Index.php b/src/Module/Admin/Themes/Index.php index d29b4c33ca..af2d1f28e1 100644 --- a/src/Module/Admin/Themes/Index.php +++ b/src/Module/Admin/Themes/Index.php @@ -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")) { diff --git a/src/Module/Admin/Users.php b/src/Module/Admin/Users.php index 92dddd9f73..a949c9331b 100644 --- a/src/Module/Admin/Users.php +++ b/src/Module/Admin/Users.php @@ -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'); diff --git a/src/Module/AllFriends.php b/src/Module/AllFriends.php index b0e6ea1490..e5fbe69712 100644 --- a/src/Module/AllFriends.php +++ b/src/Module/AllFriends.php @@ -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'], diff --git a/src/Module/Bookmarklet.php b/src/Module/Bookmarklet.php index 283ab0117b..92130eeff1 100644 --- a/src/Module/Bookmarklet.php +++ b/src/Module/Bookmarklet.php @@ -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); diff --git a/src/Module/Contact.php b/src/Module/Contact.php index 0b27f0e4a3..c8bbbfe2e6 100644 --- a/src/Module/Contact.php +++ b/src/Module/Contact.php @@ -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'], diff --git a/src/Module/Debug/Babel.php b/src/Module/Debug/Babel.php index 19e3ec2131..cf1f869552 100644 --- a/src/Module/Debug/Babel.php +++ b/src/Module/Debug/Babel.php @@ -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 ]); diff --git a/src/Module/Debug/Feed.php b/src/Module/Debug/Feed.php index a11df59b79..cc0be643b3 100644 --- a/src/Module/Debug/Feed.php +++ b/src/Module/Debug/Feed.php @@ -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 ]); } diff --git a/src/Module/Debug/Localtime.php b/src/Module/Debug/Localtime.php index 7af9cb8dad..197149837a 100644 --- a/src/Module/Debug/Localtime.php +++ b/src/Module/Debug/Localtime.php @@ -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 = '

' . L10n::t('Time Conversion') . '

'; $output .= '

' . L10n::t('Friendica provides this service for sharing events with other networks and friends in unknown timezones.') . '

'; @@ -41,7 +41,7 @@ class Localtime extends BaseModule $output .= '
'; $output .= '

' . L10n::t('Please select your timezone:') . '

'; - $output .= Temporal::getTimezoneSelect(defaults($_REQUEST, 'timezone', Installer::DEFAULT_TZ)); + $output .= Temporal::getTimezoneSelect(($_REQUEST['timezone'] ?? '') ?: Installer::DEFAULT_TZ); $output .= '
'; return $output; diff --git a/src/Module/Debug/Probe.php b/src/Module/Debug/Probe.php index f29f3b3bb7..6762c5b82c 100644 --- a/src/Module/Debug/Probe.php +++ b/src/Module/Debug/Probe.php @@ -21,7 +21,7 @@ class Probe extends BaseModule throw $e; } - $addr = defaults($_GET, 'addr', ''); + $addr = $_GET['addr'] ?? ''; $res = ''; if (!empty($addr)) { diff --git a/src/Module/Debug/WebFinger.php b/src/Module/Debug/WebFinger.php index 2b0b9c53b4..18cf4bb2a7 100644 --- a/src/Module/Debug/WebFinger.php +++ b/src/Module/Debug/WebFinger.php @@ -20,7 +20,7 @@ class WebFinger extends BaseModule throw $e; } - $addr = defaults($_GET, 'addr', ''); + $addr = $_GET['addr'] ?? ''; $res = ''; if (!empty($addr)) { diff --git a/src/Module/Feed.php b/src/Module/Feed.php index 15b2026e2c..49ecfed96c 100644 --- a/src/Module/Feed.php +++ b/src/Module/Feed.php @@ -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 diff --git a/src/Module/Filer/RemoveTag.php b/src/Module/Filer/RemoveTag.php index 7e88b2e72e..1dcc2e41e2 100644 --- a/src/Module/Filer/RemoveTag.php +++ b/src/Module/Filer/RemoveTag.php @@ -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); diff --git a/src/Module/Filer/SaveTag.php b/src/Module/Filer/SaveTag.php index 08ff1a32d0..e8e3112681 100644 --- a/src/Module/Filer/SaveTag.php +++ b/src/Module/Filer/SaveTag.php @@ -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); diff --git a/src/Module/FollowConfirm.php b/src/Module/FollowConfirm.php index 1921e748a8..f4f2a877c4 100644 --- a/src/Module/FollowConfirm.php +++ b/src/Module/FollowConfirm.php @@ -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); diff --git a/src/Module/Followers.php b/src/Module/Followers.php index 79f34021b1..5bd3fe0ce2 100644 --- a/src/Module/Followers.php +++ b/src/Module/Followers.php @@ -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); diff --git a/src/Module/Following.php b/src/Module/Following.php index 3a68e7e0af..5b5f4dc986 100644 --- a/src/Module/Following.php +++ b/src/Module/Following.php @@ -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); diff --git a/src/Module/Install.php b/src/Module/Install.php index 7ba4039665..39d6a062af 100644 --- a/src/Module/Install.php +++ b/src/Module/Install.php @@ -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)) ) ) ); diff --git a/src/Module/Like.php b/src/Module/Like.php index a43e38045c..cc450dd9d0 100644 --- a/src/Module/Like.php +++ b/src/Module/Like.php @@ -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(); diff --git a/src/Module/Login.php b/src/Module/Login.php index 8affd77557..b67f48fb95 100644 --- a/src/Module/Login.php +++ b/src/Module/Login.php @@ -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'])); } diff --git a/src/Module/Magic.php b/src/Module/Magic.php index 4cb3dc7328..b04ea80c04 100644 --- a/src/Module/Magic.php +++ b/src/Module/Magic.php @@ -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; diff --git a/src/Module/Outbox.php b/src/Module/Outbox.php index 1482567791..4fc0507631 100644 --- a/src/Module/Outbox.php +++ b/src/Module/Outbox.php @@ -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); diff --git a/src/Module/Profile.php b/src/Module/Profile.php index cb710b10ba..ed37540753 100644 --- a/src/Module/Profile.php +++ b/src/Module/Profile.php @@ -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'] .= '' . "\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']); diff --git a/src/Module/Profile/Contacts.php b/src/Module/Profile/Contacts.php index ed41f421b1..1bf88d7c5b 100644 --- a/src/Module/Profile/Contacts.php +++ b/src/Module/Profile/Contacts.php @@ -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'); diff --git a/src/Module/Proxy.php b/src/Module/Proxy.php index 38a9b17e01..2b8ad01dda 100644 --- a/src/Module/Proxy.php +++ b/src/Module/Proxy.php @@ -210,7 +210,7 @@ class Proxy extends BaseModule $url = base64_decode(strtr($url, '-_', '+/'), true); } else { - $url = defaults($_REQUEST, 'url', ''); + $url = $_REQUEST['url'] ?? ''; } return [ diff --git a/src/Module/Register.php b/src/Module/Register.php index 367eeb5ade..03f9dbb698 100644 --- a/src/Module/Register.php +++ b/src/Module/Register.php @@ -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 ]); } diff --git a/src/Module/Search/Acl.php b/src/Module/Search/Acl.php index 95ebd1cf74..1016756008 100644 --- a/src/Module/Search/Acl.php +++ b/src/Module/Search/Acl.php @@ -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'] ]; } diff --git a/src/Module/Settings/TwoFactor/Index.php b/src/Module/Settings/TwoFactor/Index.php index 79b92f1592..e7694225c4 100644 --- a/src/Module/Settings/TwoFactor/Index.php +++ b/src/Module/Settings/TwoFactor/Index.php @@ -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(); diff --git a/src/Module/Settings/TwoFactor/Verify.php b/src/Module/Settings/TwoFactor/Verify.php index caed464ece..b9205852d8 100644 --- a/src/Module/Settings/TwoFactor/Verify.php +++ b/src/Module/Settings/TwoFactor/Verify.php @@ -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); diff --git a/src/Module/Smilies.php b/src/Module/Smilies.php index 422f37d3e5..ded58768fe 100644 --- a/src/Module/Smilies.php +++ b/src/Module/Smilies.php @@ -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, [ diff --git a/src/Module/Special/HTTPException.php b/src/Module/Special/HTTPException.php index 6446ec38cb..36c770fba7 100644 --- a/src/Module/Special/HTTPException.php +++ b/src/Module/Special/HTTPException.php @@ -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')]; diff --git a/src/Module/Starred.php b/src/Module/Starred.php index df7da40992..70cd397351 100644 --- a/src/Module/Starred.php +++ b/src/Module/Starred.php @@ -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, '?')) { diff --git a/src/Module/ThemeDetails.php b/src/Module/ThemeDetails.php index 7b53d1cfde..9a2e913bca 100644 --- a/src/Module/ThemeDetails.php +++ b/src/Module/ThemeDetails.php @@ -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), diff --git a/src/Module/TwoFactor/Recovery.php b/src/Module/TwoFactor/Recovery.php index 60f443c35f..7c17fdace0 100644 --- a/src/Module/TwoFactor/Recovery.php +++ b/src/Module/TwoFactor/Recovery.php @@ -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); diff --git a/src/Module/Xrd.php b/src/Module/Xrd.php index ae020d3554..5e108c3b53 100644 --- a/src/Module/Xrd.php +++ b/src/Module/Xrd.php @@ -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'; diff --git a/src/Network/CurlResult.php b/src/Network/CurlResult.php index c12bb28266..5b77c3963c 100644 --- a/src/Network/CurlResult.php +++ b/src/Network/CurlResult.php @@ -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 = []; } diff --git a/src/Network/Probe.php b/src/Network/Probe.php index 3f10895c3c..d6ea766312 100644 --- a/src/Network/Probe.php +++ b/src/Network/Probe.php @@ -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"]; diff --git a/src/Object/Post.php b/src/Object/Post.php index 2ef53d075c..04775bbd0e 100644 --- a/src/Object/Post.php +++ b/src/Object/Post.php @@ -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'] . ' '; } diff --git a/src/Protocol/ActivityPub.php b/src/Protocol/ActivityPub.php index 3a8a5e5b12..522fee97ef 100644 --- a/src/Protocol/ActivityPub.php +++ b/src/Protocol/ActivityPub.php @@ -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'); } /** diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 7639d0f2a3..50e8dd91e8 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -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]; } diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php index 058d210a24..f23269615e 100644 --- a/src/Protocol/ActivityPub/Receiver.php +++ b/src/Protocol/ActivityPub/Receiver.php @@ -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 { diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index 19c0cc28ed..d2581ff3f4 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -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; diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index 7dee12b56c..d557af0692 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -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"]]; diff --git a/src/Protocol/Email.php b/src/Protocol/Email.php index a6090ce91f..06cf861250 100644 --- a/src/Protocol/Email.php +++ b/src/Protocol/Email.php @@ -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) == '>') { diff --git a/src/Protocol/OStatus.php b/src/Protocol/OStatus.php index 054eaf51b2..afd406f972 100644 --- a/src/Protocol/OStatus.php +++ b/src/Protocol/OStatus.php @@ -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: diff --git a/src/Util/Emailer.php b/src/Util/Emailer.php index 4310046c23..d7ca234a98 100644 --- a/src/Util/Emailer.php +++ b/src/Util/Emailer.php @@ -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" . diff --git a/src/Util/Logger/SyslogLogger.php b/src/Util/Logger/SyslogLogger.php index 83c3fc3ce5..7ef4f6b27a 100644 --- a/src/Util/Logger/SyslogLogger.php +++ b/src/Util/Logger/SyslogLogger.php @@ -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 * diff --git a/src/Util/Network.php b/src/Util/Network.php index cd66abe0b2..f222dc22df 100644 --- a/src/Util/Network.php +++ b/src/Util/Network.php @@ -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."/"; diff --git a/src/Util/ParseUrl.php b/src/Util/ParseUrl.php index 9a3de88cf2..4590f39a99 100644 --- a/src/Util/ParseUrl.php +++ b/src/Util/ParseUrl.php @@ -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; } diff --git a/src/Util/Profiler.php b/src/Util/Profiler.php index dc140469c6..e745a8bbdf 100644 --- a/src/Util/Profiler.php +++ b/src/Util/Profiler.php @@ -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 diff --git a/src/Worker/Delivery.php b/src/Worker/Delivery.php index 8652885630..fbc8fb8b25 100644 --- a/src/Worker/Delivery.php +++ b/src/Worker/Delivery.php @@ -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']); diff --git a/src/Worker/GProbe.php b/src/Worker/GProbe.php index 3c71363470..415c8f3ae2 100644 --- a/src/Worker/GProbe.php +++ b/src/Worker/GProbe.php @@ -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; } } diff --git a/view/js/linkPreview.js b/view/js/linkPreview.js index c018563848..09493eebad 100644 --- a/view/js/linkPreview.js +++ b/view/js/linkPreview.js @@ -52,7 +52,6 @@
\
'; var text; - var urlRegex = /^(?:https?\:\/\/|\s)[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})(?:\/+[a-z0-9_.\:\;-]*)*(?:\?[\&\%\|\+a-z0-9_=,\.\:\;-]*)?(?:[\&\%\|\+&a-z0-9_=,\:\;\.-]*)(?:[\!\#\/\&\%\|\+a-z0-9_=,\:\;\.-]*)}*$/i; var binurl; var block = false; var blockTitle = false; diff --git a/view/js/main.js b/view/js/main.js index e2cee43d54..47e7b968d0 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -86,6 +86,8 @@ var last_popup_menu = null; var last_popup_button = null; var lockLoadContent = false; +const urlRegex = /^(?:https?:\/\/|\s)[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})(?:\/+[a-z0-9_.:;-]*)*(?:\?[&%|+a-z0-9_=,.:;-]*)?(?:[&%|+&a-z0-9_=,:;.-]*)(?:[!#\/&%|+a-z0-9_=,:;.-]*)}*$/i; + $(function() { $.ajaxSetup({cache: false}); @@ -404,6 +406,61 @@ $(function() { } }); +/** + * Inserts a BBCode tag in the comment textarea identified by id + * + * @param {string} BBCode + * @param {int} id + * @returns {boolean} + */ +function insertFormatting(BBCode, id) { + let textarea = document.getElementById('comment-edit-text-' + id); + + if (textarea.value === '') { + $(textarea) + .addClass("comment-edit-text-full") + .removeClass("comment-edit-text-empty"); + closeMenu("comment-fake-form-" + id); + openMenu("item-comments-" + id); + } + + insertBBCodeInTextarea(BBCode, textarea); + + return true; +} + +/** + * Inserts a BBCode tag in the provided textarea element, wrapping the currently selected text. + * For URL BBCode, it discriminates between link text and non-link text to determine where to insert the selected text. + * + * @param {string} BBCode + * @param {HTMLTextAreaElement} textarea + */ +function insertBBCodeInTextarea(BBCode, textarea) { + let selectionStart = textarea.selectionStart; + let selectionEnd = textarea.selectionEnd; + let selectedText = textarea.value.substring(selectionStart, selectionEnd); + let openingTag = '[' + BBCode + ']'; + let closingTag = '[/' + BBCode + ']'; + let cursorPosition = selectionStart + openingTag.length + selectedText.length; + + if (BBCode === 'url') { + if (urlRegex.test(selectedText)) { + openingTag = '[' + BBCode + '=' + selectedText + ']'; + selectedText = ''; + cursorPosition = selectionStart + openingTag.length; + } else { + openingTag = '[' + BBCode + '=]'; + cursorPosition = selectionStart + openingTag.length - 1; + } + } + + textarea.value = textarea.value.substring(0, selectionStart) + openingTag + selectedText + closingTag + textarea.value.substring(selectionEnd, textarea.value.length); + textarea.setSelectionRange(cursorPosition, cursorPosition); + textarea.dispatchEvent(new Event('change')); + textarea.focus(); +} + function NavUpdate() { if (!stopped) { var pingCmd = 'ping?format=json' + ((localUser != 0) ? '&f=&uid=' + localUser : ''); diff --git a/view/theme/duepuntozero/style.php b/view/theme/duepuntozero/style.php index a5810f2dc1..2758ada414 100644 --- a/view/theme/duepuntozero/style.php +++ b/view/theme/duepuntozero/style.php @@ -10,7 +10,7 @@ if (file_exists("$THEMEPATH/style.css")) { echo file_get_contents("$THEMEPATH/style.css"); } -$uid = defaults($_REQUEST, 'puid', 0); +$uid = $_REQUEST['puid'] ?? 0; $s_colorset = Config::get('duepuntozero', 'colorset'); $colorset = PConfig::get($uid, 'duepuntozero', 'colorset'); diff --git a/view/theme/duepuntozero/theme.php b/view/theme/duepuntozero/theme.php index 015e8090fc..363f6dc487 100644 --- a/view/theme/duepuntozero/theme.php +++ b/view/theme/duepuntozero/theme.php @@ -28,28 +28,6 @@ Renderer::setActiveTemplateEngine('smarty3'); } $a->page['htmlhead'] .= <<< EOT
- +
diff --git a/view/theme/frio/php/frio_boot.php b/view/theme/frio/php/frio_boot.php index dcb87b6d27..7ec81a3565 100644 --- a/view/theme/frio/php/frio_boot.php +++ b/view/theme/frio/php/frio_boot.php @@ -22,7 +22,7 @@ function load_page(App $a) require 'view/theme/frio/none.php'; } else { $template = 'view/theme/' . $a->getCurrentTheme() . '/' - . defaults($a->page, 'template', 'default' ) . '.php'; + . (($a->page['template'] ?? '') ?: 'default' ) . '.php'; if (file_exists($template)) { require_once $template; } else { diff --git a/view/theme/frio/php/minimal.php b/view/theme/frio/php/minimal.php index e8486653ae..1ab45bd39b 100644 --- a/view/theme/frio/php/minimal.php +++ b/view/theme/frio/php/minimal.php @@ -10,11 +10,11 @@ -