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
* 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.
$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)]);
'$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'),
'$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'],
$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'], '<a href="#" data-toggle="modal" data-target="#' . $v . 'Modal-'
return false;
}
- $params['notify_flags'] = defaults($params, 'notify_flags', $user['notify-flags']);
- $params['language'] = defaults($params, 'language' , $user['language']);
- $params['to_name'] = defaults($params, 'to_name' , $user['username']);
- $params['to_email'] = defaults($params, 'to_email' , $user['email']);
+ $params['notify_flags'] = ($params['notify_flags'] ?? '') ?: $user['notify-flags'];
+ $params['language'] = ($params['language'] ?? '') ?: $user['language'];
+ $params['to_name'] = ($params['to_name'] ?? '') ?: $user['username'];
+ $params['to_email'] = ($params['to_email'] ?? '') ?: $user['email'];
// from here on everything is in the recipients language
L10n::pushLang($params['language']);
if (!isset($params['subject'])) {
Logger::warning('subject isn\'t set.', ['type' => $params['type']]);
}
- $subject = defaults($params, 'subject', '');
+ $subject = $params['subject'] ?? '';
if (!isset($params['preamble'])) {
Logger::warning('preamble isn\'t set.', ['type' => $params['type'], 'subject' => $subject]);
}
- $preamble = defaults($params, 'preamble', '');
+ $preamble = $params['preamble'] ?? '';
if (!isset($params['body'])) {
Logger::warning('body isn\'t set.', ['type' => $params['type'], 'subject' => $subject, 'preamble' => $preamble]);
}
- $body = defaults($params, 'body', '');
+ $body = $params['body'] ?? '';
$show_in_notification_page = false;
}
$datarray['siteurl'] = $siteurl;
$datarray['type'] = $params['type'];
$datarray['parent'] = $parent_id;
- $datarray['source_name'] = defaults($params, 'source_name', '');
- $datarray['source_link'] = defaults($params, 'source_link', '');
- $datarray['source_photo'] = defaults($params, 'source_photo', '');
+ $datarray['source_name'] = $params['source_name'] ?? '';
+ $datarray['source_link'] = $params['source_link'] ?? '';
+ $datarray['source_photo'] = $params['source_photo'] ?? '';
$datarray['uid'] = $params['uid'];
- $datarray['username'] = defaults($params, 'to_name', '');
+ $datarray['username'] = $params['to_name'] ?? '';
$datarray['hsitelink'] = $hsitelink;
$datarray['tsitelink'] = $tsitelink;
$datarray['hitemlink'] = '<a href="'.$itemlink.'">'.$itemlink.'</a>';
$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 "";
// 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,
$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'],
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(
* 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;
$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);
}
/*
*/
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);
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)) {
$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');
{
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");
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)) {
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;
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;
$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']);
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())
);
$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))) {
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'];
$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;
// 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 = [
$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())
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) {
}
// 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);
}
$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) {
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'],
}
if (!$blocked) {
- $keywords = defaults($a->profile, 'pub_keywords', '');
+ $keywords = $a->profile['pub_keywords'] ?? '';
$keywords = str_replace([',',' ',',,'], [' ',',',','], $keywords);
if (strlen($keywords)) {
$a->page['htmlhead'] .= '<meta name="keywords" content="' . $keywords . '" />' . "\r\n";
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'))) {
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 = [];
$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
}
// 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, '?')) {
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
}
// 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;
$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) {
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'])) {
$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,
$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'];
$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);
$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) {
// 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)) {
$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
$msearch = json_decode($msearch_json);
- $start = defaults($_GET, 'start', 0);
+ $start = $_GET['start'] ?? 0;
$entries = [];
$paginate = '';
$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'),
'$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,
'$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'],
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;
// 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');
$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'] ?? '');
}
/**
$o = '';
- $file = defaults($_GET, 'file', '');
+ $file = $_GET['file'] ?? '';
if (!$update && !$rawmode) {
$tabs = network_tabs($a);
$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) {
$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'],
];
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, [
exit;
}
- $keywords = defaults($a->profile, 'pub_keywords', '');
+ $keywords = $a->profile['pub_keywords'] ?? '';
$keywords = str_replace(['#',',',' ',',,'], ['',' ',',',','], $keywords);
$keywords = explode(',', $keywords);
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');
];
// 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');
$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']);
$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));
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);
$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 {
* 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';
$system_mode = true;
}
- $format = defaults($_GET, 'format', 'json');
+ $format = ($_GET['format'] ?? '') ?: 'json';
$justme = false;
$global = false;
$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);
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])) {
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()) {
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);
}
// 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);
}
. '&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
}
} else {
$contact_url = $contact['url'];
- $target_url = defaults($url, $contact_url);
+ $target_url = $url ?: $contact_url;
}
$basepath = Contact::getBasepath($contact_url);
$user,
Config::get('config', 'sitename'),
$a->getBaseUrl(),
- defaults($register, 'password', 'Sent in a previous email')
+ ($register['password'] ?? '') ?: 'Sent in a previous email'
);
L10n::popLang();
$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";
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!"));
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 = 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) {
+ $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'] ?? '';
+
+ 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())
}
$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);
}
$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),
$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
'$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' => '',
# 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)" {
/**
* 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
/* 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
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.');
{
$this->setQueryString($queryString);
$this->setItemsPerPage($itemsPerPage);
- $this->setPage(defaults($_GET, 'page', 1));
+ $this->setPage(($_GET['page'] ?? 0) ?: 1);
}
/**
*
* @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
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];
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];
}
}
}
*
* @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
$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]);
$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];
$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];
$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];
$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];
$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;
}
*/
$has_title = !empty($item['title']);
- $plink = defaults($item, 'plink', '');
+ $plink = $item['plink'] ?? '';
$post = self::getAttachmentData($body);
// Get all linked images with alternative image description
}
// 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) {
// 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);
// 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'];
}
}
private static function convertAttachment($return, $simplehtml = false, $tryoembed = true)
{
$data = self::getAttachmentData($return);
- if (empty($data) || empty($data["url"])) {
+ if (empty($data) || empty($data['url'])) {
return $return;
}
- if (isset($data["title"])) {
- $data["title"] = strip_tags($data["title"]);
- $data["title"] = str_replace(["http://", "https://"], "", $data["title"]);
+ if (isset($data['title'])) {
+ $data['title'] = strip_tags($data['title']);
+ $data['title'] = str_replace(['http://', 'https://'], '', $data['title']);
} else {
- $data["title"] = null;
+ $data['title'] = null;
}
- if (((strpos($data["text"], "[img=") !== false) || (strpos($data["text"], "[img]") !== false) || Config::get('system', 'always_show_preview')) && !empty($data["image"])) {
- $data["preview"] = $data["image"];
- $data["image"] = "";
+ if (((strpos($data['text'], "[img=") !== false) || (strpos($data['text'], "[img]") !== false) || Config::get('system', 'always_show_preview')) && !empty($data['image'])) {
+ $data['preview'] = $data['image'];
+ $data['image'] = '';
}
$return = '';
if (in_array($simplehtml, [7, 9])) {
- $return = self::convertUrlForOStatus($data["url"]);
+ $return = self::convertUrlForActivityPub($data['url']);
} elseif (($simplehtml != 4) && ($simplehtml != 0)) {
- $return = sprintf('<a href="%s" target="_blank">%s</a><br>', $data["url"], $data["title"]);
+ $return = sprintf('<a href="%s" target="_blank">%s</a><br>', $data['url'], $data['title']);
} else {
try {
if ($tryoembed && OEmbed::isAllowedURL($data['url'])) {
throw new Exception('OEmbed is disabled for this attachment.');
}
} catch (Exception $e) {
- $data["title"] = defaults($data, 'title', $data['url']);
+ $data['title'] = ($data['title'] ?? '') ?: $data['url'];
if ($simplehtml != 4) {
- $return = sprintf('<div class="type-%s">', $data["type"]);
+ $return = sprintf('<div class="type-%s">', $data['type']);
}
if (!empty($data['title']) && !empty($data['url'])) {
- if (!empty($data["image"]) && empty($data["text"]) && ($data["type"] == "photo")) {
- $return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a>', $data["url"], self::proxyUrl($data["image"], $simplehtml), $data["title"]);
+ if (!empty($data['image']) && empty($data['text']) && ($data['type'] == 'photo')) {
+ $return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a>', $data['url'], self::proxyUrl($data['image'], $simplehtml), $data['title']);
} else {
- if (!empty($data["image"])) {
- $return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a><br />', $data["url"], self::proxyUrl($data["image"], $simplehtml), $data["title"]);
- } elseif (!empty($data["preview"])) {
- $return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-preview" /></a><br />', $data["url"], self::proxyUrl($data["preview"], $simplehtml), $data["title"]);
+ if (!empty($data['image'])) {
+ $return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-image" /></a><br />', $data['url'], self::proxyUrl($data['image'], $simplehtml), $data['title']);
+ } elseif (!empty($data['preview'])) {
+ $return .= sprintf('<a href="%s" target="_blank"><img src="%s" alt="" title="%s" class="attachment-preview" /></a><br />', $data['url'], self::proxyUrl($data['preview'], $simplehtml), $data['title']);
}
$return .= sprintf('<h4><a href="%s">%s</a></h4>', $data['url'], $data['title']);
}
}
- if (!empty($data["description"]) && $data["description"] != $data["title"]) {
+ if (!empty($data['description']) && $data['description'] != $data['title']) {
// Sanitize the HTML by converting it to BBCode
- $bbcode = HTML::toBBCode($data["description"]);
+ $bbcode = HTML::toBBCode($data['description']);
$return .= sprintf('<blockquote>%s</blockquote>', trim(self::convert($bbcode)));
}
}
}
- 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)
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'];
}
/**
* @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];
return $match[0];
}
- return self::convertUrlForOStatus($url);
+ return self::convertUrlForActivityPub($url);
}
/**
- * @brief Converts [url] BBCodes in a format that looks fine on OStatus systems.
+ * @brief Converts [url] BBCodes in a format that looks fine on ActivityPub systems.
* @param string $url URL that is about to be reformatted
* @return string reformatted link including HTML codes
*/
- private static function convertUrlForOStatus($url)
+ private static function convertUrlForActivityPub($url)
+ {
+ $html = '<a href="%s" target="_blank">%s</a>';
+ return sprintf($html, $url, self::getStyledURL($url));
+ }
+
+ /**
+ * Converts an URL in a nicer format (without the scheme and possibly shortened)
+ * @param string $url URL that is about to be reformatted
+ * @return string reformatted link
+ */
+ private static function getStyledURL($url)
{
$parts = parse_url($url);
$scheme = $parts['scheme'] . '://';
$styled_url = substr($styled_url, 0, 30) . "…";
}
- $html = '<a href="%s" target="_blank">%s</a>';
-
- return sprintf($html, $url, $styled_url);
+ return $styled_url;
}
/*
$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.
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);
$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]);
}
}
- 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]';
}
}
}
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]");
$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;
}
$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
}
}
- 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]";
}
}
}
$try_oembed_callback = function ($match)
{
$url = $match[1];
- $title = defaults($match, 2, null);
+ $title = $match[2] ?? null;
try {
$return = OEmbed::getHTML($url, $title);
$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]",
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);
// 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;
$doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">';
$encoding = '<?xml encoding="UTF-8">';
- @$doc->loadHTML($encoding.$doctype."<html><body>".$text."</body></html>");
+ @$doc->loadHTML($encoding . $doctype . '<html><body>' . $text . '</body></html>');
$doc->encoding = 'UTF-8';
$text = $doc->saveHTML();
- $text = str_replace(["<html><body>", "</body></html>", $doctype, $encoding], ["", "", "", ""], $text);
+ $text = str_replace(['<html><body>', '</body></html>', $doctype, $encoding], ['', '', '', ''], $text);
$text = str_replace('<br></li>', '</li>', $text);
* @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);
$abstract = $abstracts[$addon];
}
- if ($abstract == "" && preg_match("/\[abstract\](.*?)\[\/abstract\]/ism", $text, $result)) {
+ if ($abstract == '' && preg_match("/\[abstract\](.*?)\[\/abstract\]/ism", $text, $result)) {
$abstract = $result[1];
}
// 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)) {
// If a link is followed by a quote then there should be a newline before it
// Maybe we should make this newline at every time before a quote.
- $text = str_replace(["</a><blockquote>"], ["</a><br><blockquote>"], $text);
+ $text = str_replace(['</a><blockquote>'], ['</a><br><blockquote>'], $text);
$stamp1 = microtime(true);
$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),
// $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, [
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];
$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;
$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
'$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'),
$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 = "";
/**
* 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
{
*
* 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
* @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
* 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
* @param string $cat The category of the configuration value
*
* @return void
- * @see PConfigCache )
+ * @see PConfigCache
*
*/
abstract public function load(int $uid, string $cat = 'config');
*
* 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
* 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
*/
public function getTabs()
{
- $selected = defaults(self::getApp()->argv, 1, '');
+ $selected = self::getApp()->argv[1] ?? '';
$tabs = [
[
*/
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])) {
}
// 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]);
$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);
}
'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();
public static function getByName($name)
{
self::setup();
- return defaults(self::$backends, $name, '');
+ return self::$backends[$name] ?? '';
}
/**
}
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) . "'";
// 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'])) {
* @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?
$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"] = "";
'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(),
$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']))) {
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'];
*/
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()];
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']);
}
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['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['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(($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']) {
$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'];
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),
"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)
);
"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),
$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`)
if (!empty($data['version'])) {
$serverdata['platform'] = 'mastodon';
- $serverdata['version'] = defaults($data, 'version', '');
+ $serverdata['version'] = $data['version'] ?? '';
$serverdata['network'] = Protocol::ACTIVITYPUB;
}
$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;
break;
}
- $serverdata['platform'] = defaults($data, 'platform', '');
+ $serverdata['platform'] = $data['platform'] ?? '';
return $serverdata;
}
$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']]);
}
}
- $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'] == '') {
$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']]);
$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']]);
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"])) {
{
$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 == ""
$filesubtype = 'unkn';
}
- $title = Strings::escapeHtml(trim(defaults($mtch, 4, $mtch[1])));
+ $title = Strings::escapeHtml(trim(($mtch[4] ?? '') ?: $mtch[1]));
$title .= ' ' . $mtch[2] . ' ' . L10n::t('bytes');
$icon = '<div class="attachtype icon s22 type-' . $filetype . ' subtype-' . $filesubtype . '"></div>';
}
}
- $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'));
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') {
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);
$location .= $profile['locality'];
}
- if (!empty($profile['region']) && (defaults($profile, 'locality', '') != $profile['region'])) {
+ if (!empty($profile['region']) && (($profile['locality'] ?? '') != $profile['region'])) {
if ($location) {
$location .= ', ';
}
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']);
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'];
}
$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;
$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, [
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')
{
$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/';
{
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);
$a->internalRedirect('admin/addons');
}
- if (defaults($_GET, 'action', '') == 'toggle') {
+ if (($_GET['action'] ?? '') == 'toggle') {
parent::checkFormSecurityTokenRedirectOnError('/admin/addons', 'admin_themes', 't');
// Toggle addon status
break;
case 'toggle' :
- $addon = defaults($_GET, 'addon', '');
+ $addon = $_GET['addon'] ?? '';
if (Addon::isEnabled($addon)) {
Addon::uninstall($addon);
info(L10n::t('Addon %s disabled.', $addon));
{
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');
$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)) {
/**
* @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 != "") {
$value = !empty($_POST[$fieldname]);
break;
default:
- $value = defaults($_POST, $fieldname, '');
+ $value = $_POST[$fieldname] ?? '';
}
$storage_opts_data[$name] = $value;
}
break;
case 'toggle' :
- $theme = defaults($_GET, 'addon', '');
+ $theme = $_GET['addon'] ?? '';
if ($theme) {
$theme = Strings::sanitizeFilePathItem($theme);
if (!is_dir("view/theme/$theme")) {
$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');
$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'],
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)) {
'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);
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);
$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,
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);
$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'] = '';
'$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),
}
// @TODO: Replace with parameter from router
- $type = defaults($a->argv, 1, '');
+ $type = $a->argv[1] ?? '';
switch ($type) {
case 'blocked':
$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 = [
[
'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'],
$results = [];
if (!empty($_REQUEST['text'])) {
- switch (defaults($_REQUEST, 'type', 'bbcode')) {
+ switch (($_REQUEST['type'] ?? '') ?: 'bbcode') {
case 'bbcode':
$bbcode = trim($_REQUEST['text']);
$results[] = [
$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
]);
$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
]);
}
{
public static function post()
{
- $time = defaults($_REQUEST, 'time', 'now');
+ $time = ($_REQUEST['time'] ?? '') ?: 'now';
$bd_format = L10n::t('l F d, Y \@ g:i A');
{
$app = self::getApp();
- $time = defaults($_REQUEST, 'time', 'now');
+ $time = ($_REQUEST['time'] ?? '') ?: 'now';
$output = '<h3>' . L10n::t('Time Conversion') . '</h3>';
$output .= '<p>' . L10n::t('Friendica provides this service for sharing events with other networks and friends in unknown timezones.') . '</p>';
$output .= '<form action ="' . $app->getBaseURL() . '/localtime?time=' . $time . '" method="post" >';
$output .= '<p>' . L10n::t('Please select your timezone:') . '</p>';
- $output .= Temporal::getTimezoneSelect(defaults($_REQUEST, 'timezone', Installer::DEFAULT_TZ));
+ $output .= Temporal::getTimezoneSelect(($_REQUEST['timezone'] ?? '') ?: Installer::DEFAULT_TZ);
$output .= '<input type="submit" name="submit" value="' . L10n::t('Submit') . '" /></form>';
return $output;
throw $e;
}
- $addr = defaults($_GET, 'addr', '');
+ $addr = $_GET['addr'] ?? '';
$res = '';
if (!empty($addr)) {
throw $e;
}
- $addr = defaults($_GET, 'addr', '');
+ $addr = $_GET['addr'] ?? '';
$res = '';
if (!empty($addr)) {
{
$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
$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);
$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);
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);
throw new \Friendica\Network\HTTPException\NotFoundException();
}
- $page = defaults($_REQUEST, 'page', null);
+ $page = $_REQUEST['page'] ?? null;
$followers = ActivityPub\Transmitter::getFollowers($owner, $page);
throw new \Friendica\Network\HTTPException\NotFoundException();
}
- $page = defaults($_REQUEST, 'page', null);
+ $page = $_REQUEST['page'] ?? null;
$Following = ActivityPub\Transmitter::getFollowing($owner, $page);
// 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()
{
$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))
)
)
);
// 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();
&& (!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']));
}
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;
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);
// site block
if (!$blocked && !$userblock) {
- $keywords = str_replace(['#', ',', ' ', ',,'], ['', ' ', ',', ','], defaults($a->profile, 'pub_keywords', ''));
+ $keywords = str_replace(['#', ',', ' ', ',,'], ['', ' ', ',', ','], $a->profile['pub_keywords'] ?? '');
if (strlen($keywords)) {
$a->page['htmlhead'] .= '<meta name="keywords" content="' . $keywords . '" />' . "\n";
}
}
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();
}
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']);
//@TODO: Get value from router parameters
$nickname = $a->argv[1];
- $type = defaults($a->argv, 3, 'all');
+ $type = ($a->argv[3] ?? '') ?: 'all';
Nav::setSelected('home');
$url = base64_decode(strtr($url, '-_', '+/'), true);
} else {
- $url = defaults($_REQUEST, 'url', '');
+ $url = $_REQUEST['url'] ?? '';
}
return [
}
}
- $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 = '';
'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
]);
}
'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']) {
'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']
];
}
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();
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);
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, [
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
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')];
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, '?')) {
$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),
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);
}
$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';
}
$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';
}
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 = [];
}
}
}
- $parts = parse_url(defaults($this->info, 'url', ''));
+ $parts = parse_url($this->info['url'] ?? '');
if (empty($parts)) {
$parts = [];
}
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'] = '';
}
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';
}
}
// 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;
}
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);
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);
$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"];
$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"];
// 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"];
// 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"];
$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'] . ' ';
}
*/
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');
}
/**
$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 .= ',';
}
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]';
}
}
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);
}
$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);
}
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']));
$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;
$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']);
// 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];
}
*/
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');
}
/**
$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);
$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()];
if (!empty($actor)) {
$profile = APContact::getByURL($actor);
- $followers = defaults($profile, 'followers', '');
+ $followers = $profile['followers'] ?? '';
Logger::log('Actor: ' . $actor . ' - Followers: ' . $followers, Logger::DEBUG);
} else {
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]]);
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]]);
if (empty($page)) {
$data['first'] = System::baseUrl() . '/outbox/' . $owner['nickname'] . '?page=1';
} else {
+ $data['type'] = 'OrderedCollectionPage';
$list = [];
$condition['parent-network'] = Protocol::NATIVE_SUPPORT;
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)) {
$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);
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"]];
}
$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) == '>') {
}
$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 = [];
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":
"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:
.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" .
}
/**
- * 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
*
$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);
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);
}
$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;
/// @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;
}
$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)) {
$i = 0;
$path = "";
do {
- $path1 = defaults($pathparts1, $i, '');
- $path2 = defaults($pathparts2, $i, '');
+ $path1 = $pathparts1[$i] ?? '';
+ $path2 = $pathparts2[$i] ?? '';
if ($path1 == $path2) {
$path .= $path1."/";
}
// 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;
}
* 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
{
return;
}
- $duration = (float) (microtime(true) - $timestamp);
+ $duration = floatval(microtime(true) - $timestamp);
if (!isset($this->performance[$value])) {
// Prevent ugly E_NOTICE
*/
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;
$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));
// 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)) {
$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
// 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']);
}
}
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']);
$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;
}
}
<div class="clear"></div>\
<hr class="previewseparator">';
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;
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});
}
});
+/**
+ * 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 : '');
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');
}
$a->page['htmlhead'] .= <<< EOT
<script>
-function insertFormatting(BBcode, id) {
- var tmpStr = $("#comment-edit-text-" + id).val();
- if (tmpStr == "") {
- $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
- $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
- openMenu("comment-edit-submit-wrapper-" + id);
- }
-
- textarea = document.getElementById("comment-edit-text-" +id);
- if (document.selection) {
- textarea.focus();
- selected = document.selection.createRange();
- selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
- } else if (textarea.selectionStart || textarea.selectionStart == "0") {
- var start = textarea.selectionStart;
- var end = textarea.selectionEnd;
- textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
- }
-
- return true;
-}
-
function cmtBbOpen(comment, id) {
if ($(comment).hasClass('comment-edit-text-full')) {
$(".comment-edit-bb-" + id).show();
'$nav_icon_color' => array_key_exists('nav_icon_color', $disable) ? '' : ['frio_nav_icon_color', L10n::t('Navigation bar icon color '), $arr['nav_icon_color'], '', false],
'$link_color' => array_key_exists('link_color', $disable) ? '' : ['frio_link_color', L10n::t('Link color'), $arr['link_color'], '', false],
'$background_color' => array_key_exists('background_color', $disable) ? '' : ['frio_background_color', L10n::t('Set the background color'), $arr['background_color'], '', false],
- '$contentbg_transp' => array_key_exists('contentbg_transp', $disable) ? '' : ['frio_contentbg_transp', L10n::t('Content background opacity'), defaults($arr, 'contentbg_transp', 100), ''],
+ '$contentbg_transp' => array_key_exists('contentbg_transp', $disable) ? '' : ['frio_contentbg_transp', L10n::t('Content background opacity'), ($arr['contentbg_transp'] ?? 0) ?: 100, ''],
'$background_image' => array_key_exists('background_image', $disable) ? '' : ['frio_background_image', L10n::t('Set the background image'), $arr['background_image'], $background_image_help, false],
'$bg_image_options_title' => L10n::t('Background image style'),
'$bg_image_options' => Image::get_options($arr),
}
}
-
-function insertFormatting(BBcode, id) {
- var tmpStr = $("#comment-edit-text-" + id).val();
- if (tmpStr == '') {
- $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
- $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
- closeMenu("comment-fake-form-" + id);
- openMenu("item-comments-" + id);
- }
-
- textarea = document.getElementById("comment-edit-text-" + id);
- if (document.selection) {
- textarea.focus();
- selected = document.selection.createRange();
- selected.text = "[" + BBcode + "]" + selected.text + "[/" + BBcode + "]";
- } else if (textarea.selectionStart || textarea.selectionStart == "0") {
- var start = textarea.selectionStart;
- var end = textarea.selectionEnd;
- textarea.value = textarea.value.substring(0, start) + "[" + BBcode + "]" + textarea.value.substring(start, end) + "[/" + BBcode + "]" + textarea.value.substring(end, textarea.value.length);
- }
-
- $(textarea).trigger('change');
-
- return true;
-}
-
-function insertFormattingToPost(BBcode) {
+function insertFormattingToPost(BBCode) {
textarea = document.getElementById("profile-jot-text");
- if (document.selection) {
- textarea.focus();
- selected = document.selection.createRange();
- selected.text = "[" + BBcode + "]" + selected.text + "[/" + BBcode + "]";
- } else if (textarea.selectionStart || textarea.selectionStart == "0") {
- var start = textarea.selectionStart;
- var end = textarea.selectionEnd;
- textarea.value = textarea.value.substring(0, start) + "[" + BBcode + "]" + textarea.value.substring(start, end) + "[/" + BBcode + "]" + textarea.value.substring(end, textarea.value.length);
- }
- $(textarea).trigger('change');
+ insertBBCodeInTextarea(BBCode, textarea);
return true;
}
<html>
<head>
<title><?php if (!empty($page['title'])) echo $page['title'] ?></title>
- <meta request="<?php echo htmlspecialchars(defaults($_REQUEST, 'pagename', '')) ?>">
+ <meta request="<?php echo htmlspecialchars($_REQUEST['pagename'] ?? '') ?>">
<script type="text/javascript">var baseurl = "<?php echo System::baseUrl(); ?>";</script>
<script type="text/javascript">var frio = "<?php echo 'view/theme/frio'; ?>";</script>
<?php
</main>
<footer>
- <?php echo defaults($page, 'footer', ''); ?>
+ <?php echo $page['footer'] ?? ''; ?>
</footer>
<?php } ?> <!-- End of condition if $minimal else the rest -->
</body>
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 {
<div id="page-footer"></div>\r
</section>\r
<!-- Modal -->\r
- <div id="modal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">\r
+ <div id="modal" class="modal fade" tabindex="-1" role="dialog">\r
<div class="modal-dialog modal-full-screen">\r
<div class="modal-content">\r
<div id="modal-header" class="modal-header">\r
- <button id="modal-cloase" type="button" class="close" data-dismiss="modal" aria-hidden="true">\r
+ <button id="modal-cloase" type="button" class="close" data-dismiss="modal">\r
×\r
</button>\r
<h4 id="modal-title" class="modal-title"></h4>\r
<script src="<?=$frio?>/frameworks/justifiedGallery/jquery.justifiedGallery.min.js"></script>
<!-- Modal -->
-<div id="modal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
+<div id="modal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog modal-full-screen">
<div class="modal-content">
<div id="modal-header" class="modal-header">
- <button id="modal-cloase" type="button" class="close" data-dismiss="modal" aria-hidden="true">
+ <button id="modal-cloase" type="button" class="close" data-dismiss="modal">
×
</button>
<h4 id="modal-title" class="modal-title"></h4>
<div class="field checkbox" id="div_id_{{$field.0}}">
<input type="hidden" name="{{$field.0}}" value="0">
- <input type="checkbox" name="{{$field.0}}" id="id_{{$field.0}}" value="1" {{if $field.2}}checked="checked"{{/if}} aria-checked="{{if $field.2}}true{{else}}false{{/if}}" aria-describedby="{{$field.0}}_tip" {{if $field.4}}{{$field.4}}{{/if}}>
+ <input type="checkbox" name="{{$field.0}}" id="id_{{$field.0}}" value="1" {{if $field.2}}checked="checked"{{/if}} aria-checked="{{if $field.2}}true{{else}}false{{/if}}" {{if $field.3}}aria-describedby="{{$field.0}}_tip"{{/if}} {{if $field.4}}{{$field.4}}{{/if}}>
<label for="id_{{$field.0}}">
{{$field.1}}
{{if $field.3}}
<!-- Modal -->
- <div id="modal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
+ <div id="modal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog modal-full-screen">
<div class="modal-content">
<div id="modal-header" class="modal-header">
- <button id="modal-cloase" type="button" class="close" data-dismiss="modal" aria-hidden="true">
+ <button id="modal-cloase" type="button" class="close" data-dismiss="modal">
×
</button>
<h4 id="modal-title" class="modal-title"></h4>
{{* The notifications dropdown *}}
{{if $nav.notifications}}
<li id="nav-notification" class="nav-segment" role="presentation">
- <a href="{{$nav.notifications.0}}" rel="#nav-notifications-menu" data-toggle="tooltip" aria-label="{{$nav.notifications.1}}" title="{{$nav.notifications.1}}" role="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ <a href="{{$nav.notifications.0}}" rel="#nav-notifications-menu" data-toggle="tooltip" aria-label="{{$nav.notifications.1}}" title="{{$nav.notifications.1}}" role="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-controls="nav-notifications-menu">
<i class="fa fa-bell fa-lg" aria-hidden="true"></i>
<span role="menuitem" class="sr-only">{{$nav.notifications.1}}</span>
<span id="notify-update" class="nav-notify-badge badge nav-notify dropdown" data-toggle="dropdown"></span>
{{if $nav.remote}}<span class="trunctate">{{$nav.remote}}</span>{{/if}}
</div>
- <img id="avatar" src="{{$nav.userinfo.icon}}" alt="{{$nav.userinfo.name}}">
+ <img id="avatar" src="{{$nav.userinfo.icon}}" alt="{{$nav.userinfo.name}}">
<span class="caret"></span>
</button>
});
});
-function insertFormatting(BBcode, id) {
- var tmpStr = $("#comment-edit-text-" + id).val();
- if (tmpStr == "") {
- $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
- $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
- openMenu("comment-edit-submit-wrapper-" + id);
- }
-
- textarea = document.getElementById("comment-edit-text-" +id);
- if (document.selection) {
- textarea.focus();
- selected = document.selection.createRange();
- selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
- } else if (textarea.selectionStart || textarea.selectionStart == "0") {
- var start = textarea.selectionStart;
- var end = textarea.selectionEnd;
- textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
- }
-
- return true;
-}
-
function showThread(id) {
$("#collapsed-comments-" + id).show()
$("#collapsed-comments-" + id + " .collapsed-comments").show()
use Friendica\Core\PConfig;
use Friendica\Model\Profile;
-$uid = defaults($_REQUEST, 'puid', 0);
+$uid = $_REQUEST['puid'] ?? 0;
$color = false;
$quattro_align = false;
<script type="text/javascript" src="{{$baseurl}}/view/theme/smoothly/js/jquery.autogrow.textarea.js"></script>
<script type="text/javascript">
-$(document).ready(function() {
-
-});
function tautogrow(id) {
$("textarea#comment-edit-text-" + id).autogrow();
-};
-
-function insertFormatting(BBcode, id) {
- var tmpStr = $("#comment-edit-text-" + id).val();
- if (tmpStr == "") {
- $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
- $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
- openMenu("comment-edit-submit-wrapper-" + id);
- }
-
- textarea = document.getElementById("comment-edit-text-" + id);
- if (document.selection) {
- textarea.focus();
- selected = document.selection.createRange();
- selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
- } else if (textarea.selectionStart || textarea.selectionStart == "0") {
- var start = textarea.selectionStart;
- var end = textarea.selectionEnd;
- textarea.value = textarea.value.substring(0, start)
- + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]"
- + textarea.value.substring(end, textarea.value.length);
- }
-
- return true;
-}
-
-function cmtBbOpen(id) {
- $(".comment-edit-bb-" + id).show();
-}
-function cmtBbClose(id) {
- $(".comment-edit-bb-" + id).hide();
}
</script>
$a->page['htmlhead'] .= <<< EOT
<script>
-function insertFormatting(BBcode, id) {
- var tmpStr = $("#comment-edit-text-" + id).val();
- if (tmpStr == "") {
- $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
- $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
- openMenu("comment-edit-submit-wrapper-" + id);
- }
-
- textarea = document.getElementById("comment-edit-text-" +id);
- if (document.selection) {
- textarea.focus();
- selected = document.selection.createRange();
- selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
- } else if (textarea.selectionStart || textarea.selectionStart == "0") {
- var start = textarea.selectionStart;
- var end = textarea.selectionEnd;
- textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
- }
-
- return true;
-}
-
function cmtBbOpen(id) {
$(".comment-edit-bb-" + id).show();
}
use Friendica\Core\PConfig;
use Friendica\Model\Profile;
-$uid = defaults($_REQUEST, 'puid', 0);
+$uid = $_REQUEST['puid'] ?? 0;
$style = PConfig::get($uid, 'vier', 'style');
Renderer::setActiveTemplateEngine('smarty3');
- if (!empty($a->argv[0]) && $a->argv[0] . defaults($a->argv, 1, '') === "profile".$a->user['nickname'] || $a->argv[0] === "network" && local_user()) {
+ if (!empty($a->argv[0]) && ($a->argv[0] . ($a->argv[1] ?? '')) === ('profile' . $a->user['nickname']) || $a->argv[0] === 'network' && local_user()) {
vier_community_info();
$a->page['htmlhead'] .= "<link rel='stylesheet' type='text/css' href='view/theme/vier/wide.css' media='screen and (min-width: 1300px)'/>\n";
$a->page['htmlhead'] .= <<< EOT
<link rel='stylesheet' type='text/css' href='view/theme/vier/narrow.css' media='screen and (max-width: 1100px)' />
<script type="text/javascript">
-
-function insertFormatting(BBcode, id) {
- var tmpStr = $("#comment-edit-text-" + id).val();
- if (tmpStr == "") {
- $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
- $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
- openMenu("comment-edit-submit-wrapper-" + id);
- }
-
- textarea = document.getElementById("comment-edit-text-" +id);
- if (document.selection) {
- textarea.focus();
- selected = document.selection.createRange();
- selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
- } else if (textarea.selectionStart || textarea.selectionStart == "0") {
- var start = textarea.selectionStart;
- var end = textarea.selectionEnd;
- textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
- }
-
- return true;
-}
-
function showThread(id) {
$("#collapsed-comments-" + id).show()
$("#collapsed-comments-" + id + " .collapsed-comments").show()
//Community_Pages at right_aside
if ($show_pages && local_user()) {
- $cid = defaults($_GET, 'cid', null);
+ $cid = $_GET['cid'] ?? null;
//sort by last updated item
$lastitem = true;