Fix formatting and PHP notices in identity

- Change flow of profile_load() function to return early if $profiledata
and !$user
- Replace remaining double quotes by single
- Add back uninitialized variables in profile_sidebar
This commit is contained in:
Hypolite Petovan 2018-01-01 15:47:20 -05:00
parent a964129085
commit 861c4c7474
1 changed files with 182 additions and 194 deletions

View File

@ -1,8 +1,8 @@
<?php
/**
* @file include/identity.php
*/
use Friendica\App;
use Friendica\Content\Feature;
use Friendica\Content\ForumManager;
@ -50,13 +50,25 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array(), $
dbesc($nickname)
);
if (!$user && count($user) && !count($profiledata)) {
if (!$user && !count($user) && !count($profiledata)) {
logger('profile error: ' . $a->query_string, LOGGER_DEBUG);
notice(t('Requested account is not available.') . EOL);
$a->error = 404;
return;
}
if (!x($a->page, 'aside')) {
$a->page['aside'] = '';
}
if ($profiledata) {
$a->page['aside'] .= profile_sidebar($profiledata, true, $show_connect);
if (!DBM::is_result($user)) {
return;
}
}
$pdata = get_profiledata_by_nick($nickname, $user[0]['uid'], $profile);
if (empty($pdata) && empty($profiledata)) {
@ -73,9 +85,10 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array(), $
"SELECT `pub_keywords` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
intval($pdata['profile_uid'])
);
if ($x && count($x))
if ($x && count($x)) {
$pdata['pub_keywords'] = $x[0]['pub_keywords'];
}
}
$a->profile = $pdata;
$a->profile_uid = $pdata['profile_uid'];
@ -83,7 +96,7 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array(), $
$a->profile['mobile-theme'] = PConfig::get($a->profile['profile_uid'], 'system', 'mobile_theme');
$a->profile['network'] = NETWORK_DFRN;
$a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
$a->page['title'] = $a->profile['name'] . ' @ ' . $a->config['sitename'];
if (!$profiledata && !PConfig::get(local_user(), 'system', 'always_my_theme')) {
$_SESSION['theme'] = $a->profile['theme'];
@ -97,19 +110,18 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array(), $
$a->set_template_engine(); // reset the template engine to the default in case the user's theme doesn't specify one
$theme_info_file = "view/theme/" . current_theme() . "/theme.php";
$theme_info_file = 'view/theme/' . current_theme() . '/theme.php';
if (file_exists($theme_info_file)) {
require_once $theme_info_file;
}
if (! (x($a->page, 'aside'))) {
if (!x($a->page, 'aside')) {
$a->page['aside'] = '';
}
if (local_user() && local_user() == $a->profile['uid'] && $profiledata) {
$a->page['aside'] .= replace_macros(
get_markup_template('profile_edlink.tpl'),
array(
get_markup_template('profile_edlink.tpl'), array(
'$editprofile' => t('Edit profile'),
'$profid' => $a->profile['id']
)
@ -123,19 +135,13 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array(), $
* By now, the contact block isn't shown, when a different profile is given
* But: When this profile was on the same server, then we could display the contacts
*/
if ($profiledata) {
$a->page['aside'] .= profile_sidebar($profiledata, true, $show_connect);
} else {
if (!$profiledata) {
$a->page['aside'] .= profile_sidebar($a->profile, $block, $show_connect);
}
/*if (! $block)
$a->page['aside'] .= contact_block();*/
return;
}
/**
* @brief Get all profil data of a local user
*
@ -144,11 +150,12 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array(), $
* Passing a non-zero profile ID can also allow a preview of a selected profile
* by the owner
*
* Includes all available profile data
*
* @param string $nickname nick
* @param int $uid uid
* @param int $profile ID of the profile
* @returns array
* Includes all available profile data
*/
function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0)
{
@ -198,7 +205,6 @@ function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0)
return $r;
}
/**
* @brief Formats a profile for display in the sidebar.
*
@ -225,28 +231,27 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
$o = '';
$location = false;
$address = false;
// $pdesc = true;
// This function can also use contact information in $profile
$is_contact = x($profile, 'cid');
if ((! is_array($profile)) && (! count($profile))) {
if (!is_array($profile) && !count($profile)) {
return $o;
}
$profile['picdate'] = urlencode($profile['picdate']);
$profile['picdate'] = urlencode(defaults($profile, 'picdate', ''));
if (($profile['network'] != "") && ($profile['network'] != NETWORK_DFRN)) {
if (($profile['network'] != '') && ($profile['network'] != NETWORK_DFRN)) {
$profile['network_name'] = format_network_name($profile['network'], $profile['url']);
} else {
$profile['network_name'] = "";
$profile['network_name'] = '';
}
call_hooks('profile_sidebar_enter', $profile);
// don't show connect link to yourself
$connect = (($profile['uid'] != local_user()) ? t('Connect') : false);
$connect = $profile['uid'] != local_user() ? t('Connect') : false;
// don't show connect link to authenticated visitors either
if (remote_user() && count($_SESSION['remote'])) {
@ -264,10 +269,10 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
// Is the local user already connected to that user?
if ($connect && local_user()) {
if (isset($profile["url"])) {
$profile_url = normalise_link($profile["url"]);
if (isset($profile['url'])) {
$profile_url = normalise_link($profile['url']);
} else {
$profile_url = normalise_link(System::baseUrl()."/profile/".$profile["nickname"]);
$profile_url = normalise_link(System::baseUrl() . '/profile/' . $profile['nickname']);
}
if (dba::exists('contact', array('pending' => false, 'uid' => local_user(), 'nurl' => $profile_url))) {
@ -275,21 +280,24 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
}
}
if ($connect && ($profile['network'] != NETWORK_DFRN) && !isset($profile['remoteconnect']))
if ($connect && ($profile['network'] != NETWORK_DFRN) && !isset($profile['remoteconnect'])) {
$connect = false;
}
$remoteconnect = null;
if (isset($profile['remoteconnect']))
if (isset($profile['remoteconnect'])) {
$remoteconnect = $profile['remoteconnect'];
}
if ($connect && ($profile['network'] == NETWORK_DFRN) && !isset($remoteconnect))
$subscribe_feed = t("Atom feed");
else
if ($connect && ($profile['network'] == NETWORK_DFRN) && !isset($remoteconnect)) {
$subscribe_feed = t('Atom feed');
} else {
$subscribe_feed = false;
}
if (remote_user() || (get_my_url() && $profile['unkmail'] && ($profile['uid'] != local_user()))) {
if (remote_user() || (get_my_url() && x($profile, 'unkmail') && ($profile['uid'] != local_user()))) {
$wallmessage = t('Message');
$wallmessage_link = "wallmessage/".$profile["nickname"];
$wallmessage_link = 'wallmessage/' . $profile['nickname'];
if (remote_user()) {
$r = q(
@ -307,9 +315,9 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
);
}
if ($r) {
$remote_url = $r[0]["url"];
$message_path = preg_replace("=(.*)/profile/(.*)=ism", "$1/message/new/", $remote_url);
$wallmessage_link = $message_path.base64_encode($profile["addr"]);
$remote_url = $r[0]['url'];
$message_path = preg_replace('=(.*)/profile/(.*)=ism', '$1/message/new/', $remote_url);
$wallmessage_link = $message_path . base64_encode($profile['addr']);
}
} else {
$wallmessage = false;
@ -318,7 +326,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
// show edit profile to yourself
if (!$is_contact && $profile['uid'] == local_user() && Feature::isEnabled(local_user(), 'multi_profiles')) {
$profile['edit'] = array(System::baseUrl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles'));
$profile['edit'] = array(System::baseUrl() . '/profiles', t('Profiles'), '', t('Manage/edit profiles'));
$r = q(
"SELECT * FROM `profile` WHERE `uid` = %d",
local_user()
@ -345,7 +353,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
}
}
if (!$is_contact && $profile['uid'] == local_user() && !Feature::isEnabled(local_user(), 'multi_profiles')) {
$profile['edit'] = array(System::baseUrl(). '/profiles/'.$profile['id'], t('Edit profile'),"", t('Edit profile'));
$profile['edit'] = array(System::baseUrl() . '/profiles/' . $profile['id'], t('Edit profile'), '', t('Edit profile'));
$profile['menu'] = array(
'chg_photo' => t('Change profile photo'),
'cr_new' => null,
@ -356,28 +364,23 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
// Fetch the account type
$account_type = Contact::getAccountType($profile);
if ((x($profile, 'address') == 1)
|| (x($profile, 'location') == 1)
|| (x($profile, 'locality') == 1)
|| (x($profile, 'region') == 1)
|| (x($profile, 'postal-code') == 1)
|| (x($profile, 'country-name') == 1)
if (x($profile, 'address')
|| x($profile, 'location')
|| x($profile, 'locality')
|| x($profile, 'region')
|| x($profile, 'postal-code')
|| x($profile, 'country-name')
) {
$location = t('Location:');
}
$gender = ((x($profile, 'gender') == 1) ? t('Gender:') : false);
$gender = x($profile, 'gender') ? t('Gender:') : false;
$marital = x($profile, 'marital') ? t('Status:') : false;
$homepage = x($profile, 'homepage') ? t('Homepage:') : false;
$about = x($profile, 'about') ? t('About:') : false;
$xmpp = x($profile, 'xmpp') ? t('XMPP:') : false;
$marital = ((x($profile, 'marital') == 1) ? t('Status:') : false);
$homepage = ((x($profile, 'homepage') == 1) ? t('Homepage:') : false);
$about = ((x($profile, 'about') == 1) ? t('About:') : false);
$xmpp = ((x($profile, 'xmpp') == 1) ? t('XMPP:') : false);
if (($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
if ((x($profile, 'hidewall') || $block) && !local_user() && !remote_user()) {
$location = $pdesc = $gender = $marital = $homepage = $about = false;
}
@ -385,7 +388,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
$firstname = $split_name['first'];
$lastname = $split_name['last'];
if ($profile['guid'] != "") {
if (x($profile, 'guid')) {
$diaspora = array(
'guid' => $profile['guid'],
'podloc' => System::baseUrl(),
@ -402,6 +405,9 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
$diaspora = false;
}
$contact_block = '';
$updated = '';
$contacts = 0;
if (!$block) {
$contact_block = contact_block();
@ -411,7 +417,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
intval($a->profile['uid'])
);
if (DBM::is_result($r)) {
$updated = date("c", strtotime($r[0]['updated']));
$updated = date('c', strtotime($r[0]['updated']));
}
$r = q(
@ -437,24 +443,22 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
$p[$k] = $v;
}
if (isset($p["about"])) {
$p["about"] = bbcode($p["about"]);
if (isset($p['about'])) {
$p['about'] = bbcode($p['about']);
}
if (isset($p["address"])) {
$p["address"] = bbcode($p["address"]);
if (isset($p['address'])) {
$p['address'] = bbcode($p['address']);
} else {
$p["address"] = bbcode($p["location"]);
$p['address'] = bbcode($p['location']);
}
if (isset($p["photo"])) {
$p["photo"] = proxy_url($p["photo"], false, PROXY_SIZE_SMALL);
if (isset($p['photo'])) {
$p['photo'] = proxy_url($p['photo'], false, PROXY_SIZE_SMALL);
}
$tpl = get_markup_template('profile_vcard.tpl');
$o .= replace_macros(
$tpl,
array(
$o .= replace_macros($tpl, array(
'$profile' => $p,
'$xmpp' => $xmpp,
'$connect' => $connect,
@ -465,7 +469,6 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
'$account_type' => $account_type,
'$location' => $location,
'$gender' => $gender,
// '$pdesc' => $pdesc,
'$marital' => $marital,
'$homepage' => $homepage,
'$about' => $about,
@ -474,8 +477,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
'$updated' => $updated,
'$diaspora' => $diaspora,
'$contact_block' => $contact_block,
)
);
));
$arr = array('profile' => &$profile, 'entry' => &$o);
@ -484,7 +486,6 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
return $o;
}
function get_birthdays()
{
$a = get_app();
@ -504,7 +505,7 @@ function get_birthdays()
$bd_format = t('g A l F d'); // 8 AM Friday January 18
$bd_short = t('F d');
$cachekey = "get_birthdays:".local_user();
$cachekey = 'get_birthdays:' . local_user();
$r = Cache::get($cachekey);
if (is_null($r)) {
$s = dba::p(
@ -553,7 +554,7 @@ function get_birthdays()
$sparkle = '';
$url = $rr['url'];
if ($rr['network'] === NETWORK_DFRN) {
$sparkle = " sparkle";
$sparkle = ' sparkle';
$url = System::baseUrl() . '/redir/' . $rr['cid'];
}
@ -565,10 +566,8 @@ function get_birthdays()
}
}
}
$tpl = get_markup_template("birthdays_reminder.tpl");
return replace_macros(
$tpl,
array(
$tpl = get_markup_template('birthdays_reminder.tpl');
return replace_macros($tpl, array(
'$baseurl' => System::baseUrl(),
'$classtoday' => $classtoday,
'$count' => $total,
@ -577,11 +576,9 @@ function get_birthdays()
'$events' => $r,
'$lbr' => '{', // raw brackets mess up if/endif macro processing
'$rbr' => '}'
)
);
));
}
function get_events()
{
require_once 'include/bbcode.php';
@ -600,7 +597,7 @@ function get_events()
*/
$bd_format = t('g A l F d'); // 8 AM Friday January 18
$bd_short = t('F d');
$classtoday = '';
$s = dba::p(
"SELECT `event`.* FROM `event`
@ -614,7 +611,6 @@ function get_events()
$r = array();
if (DBM::is_result($s)) {
$now = strtotime('now');
$istoday = false;
while ($rr = dba::fetch($s)) {
@ -647,7 +643,7 @@ function get_events()
$today = ((substr($strt, 0, 10) === datetime_convert('UTC', $a->timezone, 'now', 'Y-m-d')) ? true : false);
$rr['title'] = $title;
$rr['description'] = $desciption;
$rr['description'] = $description;
$rr['date'] = day_translate(datetime_convert('UTC', $rr['adjust'] ? $a->timezone : 'UTC', $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : '');
$rr['startime'] = $strt;
$rr['today'] = $today;
@ -657,18 +653,15 @@ function get_events()
dba::close($s);
$classtoday = (($istoday) ? 'event-today' : '');
}
$tpl = get_markup_template("events_reminder.tpl");
return replace_macros(
$tpl,
array(
$tpl = get_markup_template('events_reminder.tpl');
return replace_macros($tpl, array(
'$baseurl' => System::baseUrl(),
'$classtoday' => $classtoday,
'$count' => count($r),
'$event_reminders' => t('Event Reminders'),
'$event_title' => t('Events this week:'),
'$events' => $r,
)
);
));
}
function advanced_profile(App $a)
@ -677,8 +670,7 @@ function advanced_profile(App $a)
$uid = $a->profile['uid'];
$o .= replace_macros(
get_markup_template('section_title.tpl'),
array(
get_markup_template('section_title.tpl'), array(
'$title' => t('Profile')
)
);
@ -698,13 +690,13 @@ function advanced_profile(App $a)
$year_bd_format = t('j F, Y');
$short_bd_format = t('j F');
$val = ((intval($a->profile['dob']))
? day_translate(datetime_convert('UTC', 'UTC', $a->profile['dob'] . ' 00:00 +00:00', $year_bd_format))
: day_translate(datetime_convert('UTC', 'UTC', '2001-' . substr($a->profile['dob'], 5) . ' 00:00 +00:00', $short_bd_format)));
$val = intval($a->profile['dob']) ?
day_translate(datetime_convert('UTC', 'UTC', $a->profile['dob'] . ' 00:00 +00:00', $year_bd_format))
: day_translate(datetime_convert('UTC', 'UTC', '2001-' . substr($a->profile['dob'], 5) . ' 00:00 +00:00', $short_bd_format));
$profile['birthday'] = array(t('Birthday:'), $val);
}
if (!empty($a->profile['dob'])
&& $a->profile['dob'] > '0001-01-01'
&& $age = age($a->profile['dob'], $a->profile['timezone'], '')
@ -803,18 +795,15 @@ function advanced_profile(App $a)
}
if ($a->profile['uid'] == local_user()) {
$profile['edit'] = array(System::baseUrl(). '/profiles/'.$a->profile['id'], t('Edit profile'),"", t('Edit profile'));
$profile['edit'] = array(System::baseUrl() . '/profiles/' . $a->profile['id'], t('Edit profile'), '', t('Edit profile'));
}
return replace_macros(
$tpl,
array(
return replace_macros($tpl, array(
'$title' => t('Profile'),
'$basic' => t('Basic'),
'$advanced' => t('Advanced'),
'$profile' => $profile
)
);
));
}
return '';
@ -822,12 +811,11 @@ function advanced_profile(App $a)
function profile_tabs($a, $is_owner = false, $nickname = null)
{
//echo "<pre>"; var_dump($a->user); killme();
if (is_null($nickname)) {
$nickname = $a->user['nickname'];
}
$tab = false;
if (x($_GET, 'tab')) {
$tab = notags(trim($_GET['tab']));
}
@ -838,7 +826,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null)
array(
'label' => t('Status'),
'url' => $url,
'sel' => ((!isset($tab) && $a->argv[0]=='profile') ? 'active' : ''),
'sel' => !$tab && $a->argv[0] == 'profile' ? 'active' : '',
'title' => t('Status Messages and Posts'),
'id' => 'status-tab',
'accesskey' => 'm',
@ -846,7 +834,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null)
array(
'label' => t('Profile'),
'url' => $url . '/?tab=profile',
'sel' => ((isset($tab) && $tab=='profile') ? 'active' : ''),
'sel' => $tab == 'profile' ? 'active' : '',
'title' => t('Profile Details'),
'id' => 'profile-tab',
'accesskey' => 'r',
@ -854,7 +842,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null)
array(
'label' => t('Photos'),
'url' => System::baseUrl() . '/photos/' . $nickname,
'sel' => ((!isset($tab) && $a->argv[0]=='photos') ? 'active' : ''),
'sel' => !$tab && $a->argv[0] == 'photos' ? 'active' : '',
'title' => t('Photo Albums'),
'id' => 'photo-tab',
'accesskey' => 'h',
@ -862,7 +850,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null)
array(
'label' => t('Videos'),
'url' => System::baseUrl() . '/videos/' . $nickname,
'sel' => ((!isset($tab) && $a->argv[0]=='videos') ? 'active' : ''),
'sel' => !$tab && $a->argv[0] == 'videos' ? 'active' : '',
'title' => t('Videos'),
'id' => 'video-tab',
'accesskey' => 'v',
@ -874,7 +862,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null)
$tabs[] = array(
'label' => t('Events'),
'url' => System::baseUrl() . '/events',
'sel' =>((!isset($tab) && $a->argv[0]=='events') ? 'active' : ''),
'sel' => !$tab && $a->argv[0] == 'events' ? 'active' : '',
'title' => t('Events and Calendar'),
'id' => 'events-tab',
'accesskey' => 'e',
@ -885,7 +873,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null)
$tabs[] = array(
'label' => t('Events'),
'url' => System::baseUrl() . '/cal/' . $nickname,
'sel' =>((!isset($tab) && $a->argv[0]=='cal') ? 'active' : ''),
'sel' => !$tab && $a->argv[0] == 'cal' ? 'active' : '',
'title' => t('Events and Calendar'),
'id' => 'events-tab',
'accesskey' => 'e',
@ -896,7 +884,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null)
$tabs[] = array(
'label' => t('Personal Notes'),
'url' => System::baseUrl() . '/notes',
'sel' =>((!isset($tab) && $a->argv[0]=='notes') ? 'active' : ''),
'sel' => !$tab && $a->argv[0] == 'notes' ? 'active' : '',
'title' => t('Only You Can See This'),
'id' => 'notes-tab',
'accesskey' => 't',
@ -907,14 +895,14 @@ function profile_tabs($a, $is_owner = false, $nickname = null)
$tabs[] = array(
'label' => t('Contacts'),
'url' => System::baseUrl() . '/viewcontacts/' . $nickname,
'sel' => ((!isset($tab) && $a->argv[0]=='viewcontacts') ? 'active' : ''),
'sel' => !$tab && $a->argv[0] == 'viewcontacts' ? 'active' : '',
'title' => t('Contacts'),
'id' => 'viewcontacts-tab',
'accesskey' => 'k',
);
}
$arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
$arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => $tab, 'tabs' => $tabs);
call_hooks('profile_tabs', $arr);
$tpl = get_markup_template('common_tabs.tpl');
@ -938,9 +926,9 @@ function zrl_init(App $a)
// The check fetches the cached value from gprobe to reduce the load for this system
$urlparts = parse_url($tmp_str);
$result = Cache::get("gprobe:" . $urlparts["host"]);
if ((!is_null($result)) && (in_array($result["network"], array(NETWORK_FEED, NETWORK_PHANTOM)))) {
logger("DDoS attempt detected for " . $urlparts["host"] . " by " . $_SERVER["REMOTE_ADDR"] . ". server data: " . print_r($_SERVER, true), LOGGER_DEBUG);
$result = Cache::get('gprobe:' . $urlparts['host']);
if ((!is_null($result)) && (in_array($result['network'], array(NETWORK_FEED, NETWORK_PHANTOM)))) {
logger('DDoS attempt detected for ' . $urlparts['host'] . ' by ' . $_SERVER['REMOTE_ADDR'] . '. server data: ' . print_r($_SERVER, true), LOGGER_DEBUG);
return;
}