X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fidentity.php;h=70ff7f00ac7f801d90d2c42c2d9cf55a81a3cc25;hb=66902c7956eedba02ea54aea6ea7aa417344ffbb;hp=580539c07155cbd4e106b08394b2ada65350401b;hpb=d22d36be7d05d8589a876db6364f79a9589fc06e;p=friendica.git diff --git a/include/identity.php b/include/identity.php index 580539c071..70ff7f00ac 100644 --- a/include/identity.php +++ b/include/identity.php @@ -71,8 +71,8 @@ function profile_load(&$a, $nickname, $profile = 0, $profiledata = array()) { $a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename']; -// if (!$profiledata) -// $_SESSION['theme'] = $a->profile['theme']; + if (!$profiledata && !get_pconfig(local_user(),'system','always_my_theme')) + $_SESSION['theme'] = $a->profile['theme']; $_SESSION['mobile-theme'] = $a->profile['mobile-theme']; @@ -138,7 +138,7 @@ function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0) { $r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1", intval($visitor['cid']) ); - if(count($r)) + if (dbm::is_result($r)) $profile = $r[0]['profile-id']; break; } @@ -149,17 +149,23 @@ function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0) { if($profile) { $profile_int = intval($profile); - $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.* FROM `profile` - INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid` - WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d AND `contact`.`self` = 1 LIMIT 1", + $r = q("SELECT `contact`.`id` AS `contact_id`, `profile`.`uid` AS `profile_uid`, `profile`.*, + `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.* + FROM `profile` + INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` AND `contact`.`self` + INNER JOIN `user` ON `profile`.`uid` = `user`.`uid` + WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d LIMIT 1", dbesc($nickname), intval($profile_int) ); } - if((!$r) && (!count($r))) { - $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.* FROM `profile` - INNER JOIN `contact` ON `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid` - WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 AND `contact`.`self` = 1 LIMIT 1", + if (!dbm::is_result($r)) { + $r = q("SELECT `contact`.`id` AS `contact_id`, `profile`.`uid` AS `profile_uid`, `profile`.*, + `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.* + FROM `profile` + INNER JOIN `contact` ON `contact`.`uid` = `profile`.`uid` AND `contact`.`self` + INNER JOIN `user` ON `profile`.`uid` = `user`.`uid` + WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` LIMIT 1", dbesc($nickname) ); } @@ -223,14 +229,17 @@ function profile_sidebar($profile, $block = 0) { // Is the local user already connected to that user? if ($connect AND local_user()) { - if (isset($profile["url"])) + if (isset($profile["url"])) { $profile_url = normalise_link($profile["url"]); - else - $profile_url = normalise_link($a->get_baseurl()."/profile/".$profile["nickname"]); + } + else { + $profile_url = normalise_link(App::get_baseurl()."/profile/".$profile["nickname"]); + } $r = q("SELECT * FROM `contact` WHERE NOT `pending` AND `uid` = %d AND `nurl` = '%s'", local_user(), $profile_url); - if (count($r)) + + if (dbm::is_result($r)) $connect = false; } @@ -273,7 +282,7 @@ function profile_sidebar($profile, $block = 0) { // show edit profile to yourself if ($profile['uid'] == local_user() && feature_enabled(local_user(),'multi_profiles')) { - $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles')); + $profile['edit'] = array(App::get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles')); $r = q("SELECT * FROM `profile` WHERE `uid` = %d", local_user()); @@ -283,9 +292,9 @@ function profile_sidebar($profile, $block = 0) { 'entries' => array(), ); - if(count($r)) { + if (dbm::is_result($r)) { - foreach($r as $rr) { + foreach ($r as $rr) { $profile['menu']['entries'][] = array( 'photo' => $rr['thumb'], 'id' => $rr['id'], @@ -302,7 +311,7 @@ function profile_sidebar($profile, $block = 0) { } } if ($profile['uid'] == local_user() && !feature_enabled(local_user(),'multi_profiles')) { - $profile['edit'] = array($a->get_baseurl(). '/profiles/'.$profile['id'], t('Edit profile'),"", t('Edit profile')); + $profile['edit'] = array(App::get_baseurl(). '/profiles/'.$profile['id'], t('Edit profile'),"", t('Edit profile')); $profile['menu'] = array( 'chg_photo' => t('Change profile photo'), 'cr_new' => null, @@ -310,15 +319,8 @@ function profile_sidebar($profile, $block = 0) { ); } - // check if profile is a forum - if((intval($profile['page-flags']) == PAGE_COMMUNITY) - || (intval($profile['page-flags']) == PAGE_PRVGROUP) - || (isset($profile['forum']) && intval($profile['forum'])) - || (isset($profile['prv']) && intval($profile['prv'])) - || (isset($profile['community']) && intval($profile['community']))) - $account_type = t('Forum'); - else - $account_type = ""; + // Fetch the account type + $account_type = account_type($profile); if((x($profile,'address') == 1) || (x($profile,'location') == 1) @@ -337,6 +339,8 @@ function profile_sidebar($profile, $block = 0) { $about = ((x($profile,'about') == 1) ? t('About:') : False); + $xmpp = ((x($profile,'xmpp') == 1) ? t('XMPP:') : False); + if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) { $location = $pdesc = $gender = $marital = $homepage = $about = False; } @@ -345,18 +349,21 @@ function profile_sidebar($profile, $block = 0) { ? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']); $lastname = (($firstname === $profile['name']) ? '' : trim(substr($profile['name'],strlen($firstname)))); - $diaspora = array( - 'guid' => $profile['guid'], - 'podloc' => $a->get_baseurl(), - 'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ), - 'nickname' => $profile['nickname'], - 'fullname' => $profile['name'], - 'firstname' => $firstname, - 'lastname' => $lastname, - 'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg', - 'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg', - 'photo50' => $a->get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg', - ); + if ($profile['guid'] != "") + $diaspora = array( + 'guid' => $profile['guid'], + 'podloc' => App::get_baseurl(), + 'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ), + 'nickname' => $profile['nickname'], + 'fullname' => $profile['name'], + 'firstname' => $firstname, + 'lastname' => $lastname, + 'photo300' => App::get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg', + 'photo100' => App::get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg', + 'photo50' => App::get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg', + ); + else + $diaspora = false; if (!$block){ $contact_block = contact_block(); @@ -364,17 +371,17 @@ function profile_sidebar($profile, $block = 0) { if(is_array($a->profile) AND !$a->profile['hide-friends']) { $r = q("SELECT `gcontact`.`updated` FROM `contact` INNER JOIN `gcontact` WHERE `gcontact`.`nurl` = `contact`.`nurl` AND `self` AND `uid` = %d LIMIT 1", intval($a->profile['uid'])); - if(count($r)) + if (dbm::is_result($r)) $updated = date("c", strtotime($r[0]['updated'])); - $r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0 + $r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `hidden` AND NOT `archive` AND `network` IN ('%s', '%s', '%s', '')", intval($profile['uid']), dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS) ); - if(count($r)) + if (dbm::is_result($r)) $contacts = intval($r[0]['total']); } } @@ -402,6 +409,7 @@ function profile_sidebar($profile, $block = 0) { $tpl = get_markup_template('profile_vcard.tpl'); $o .= replace_macros($tpl, array( '$profile' => $p, + '$xmpp' => $xmpp, '$connect' => $connect, '$remoteconnect' => $remoteconnect, '$subscribe_feed' => $subscribe_feed, @@ -455,13 +463,13 @@ function get_birthdays() { dbesc(datetime_convert('UTC','UTC','now')) ); - if($r && count($r)) { + if (dbm::is_result($r)) { $total = 0; $now = strtotime('now'); $cids = array(); $istoday = false; - foreach($r as $rr) { + foreach ($r as $rr) { if(strlen($rr['name'])) $total ++; if((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) @@ -484,7 +492,7 @@ function get_birthdays() { $url = $rr['url']; if($rr['network'] === NETWORK_DFRN) { $sparkle = " sparkle"; - $url = $a->get_baseurl() . '/redir/' . $rr['cid']; + $url = App::get_baseurl() . '/redir/' . $rr['cid']; } $rr['link'] = $url; @@ -498,7 +506,7 @@ function get_birthdays() { } $tpl = get_markup_template("birthdays_reminder.tpl"); return replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$classtoday' => $classtoday, '$count' => $total, '$event_reminders' => t('Birthday Reminders'), @@ -538,10 +546,10 @@ function get_events() { dbesc(datetime_convert('UTC','UTC','now - 1 days')) ); - if($r && count($r)) { + if (dbm::is_result($r)) { $now = strtotime('now'); $istoday = false; - foreach($r as $rr) { + foreach ($r as $rr) { if(strlen($rr['name'])) $total ++; @@ -582,7 +590,7 @@ function get_events() { $tpl = get_markup_template("events_reminder.tpl"); return replace_macros($tpl, array( - '$baseurl' => $a->get_baseurl(), + '$baseurl' => App::get_baseurl(), '$classtoday' => $classtoday, '$count' => count($r) - $skip, '$event_reminders' => t('Event Reminders'), @@ -679,11 +687,14 @@ function advanced_profile(&$a) { $profile['forumlist'] = array( t('Forums:'), ForumManager::profile_advanced($uid)); } - if ($a->profile['uid'] == local_user()) - $profile['edit'] = array($a->get_baseurl(). '/profiles/'.$a->profile['id'], t('Edit profile'),"", t('Edit profile')); + if ($a->profile['uid'] == local_user()) { + $profile['edit'] = array(App::get_baseurl(). '/profiles/'.$a->profile['id'], t('Edit profile'),"", t('Edit profile')); + } return replace_macros($tpl, array( '$title' => t('Profile'), + '$basic' => t('Basic'), + '$advanced' => t('Advanced'), '$profile' => $profile )); } @@ -700,7 +711,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ if(x($_GET,'tab')) $tab = notags(trim($_GET['tab'])); - $url = $a->get_baseurl() . '/profile/' . $nickname; + $url = App::get_baseurl() . '/profile/' . $nickname; $tabs = array( array( @@ -721,7 +732,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ ), array( 'label' => t('Photos'), - 'url' => $a->get_baseurl() . '/photos/' . $nickname, + 'url' => App::get_baseurl() . '/photos/' . $nickname, 'sel' => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''), 'title' => t('Photo Albums'), 'id' => 'photo-tab', @@ -729,7 +740,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ ), array( 'label' => t('Videos'), - 'url' => $a->get_baseurl() . '/videos/' . $nickname, + 'url' => App::get_baseurl() . '/videos/' . $nickname, 'sel' => ((!isset($tab)&&$a->argv[0]=='videos')?'active':''), 'title' => t('Videos'), 'id' => 'video-tab', @@ -737,19 +748,33 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ ), ); - if ($is_owner){ - if ($a->theme_events_in_profile) + // the calendar link for the full featured events calendar + if ($is_owner && $a->theme_events_in_profile) { $tabs[] = array( 'label' => t('Events'), - 'url' => $a->get_baseurl() . '/events', + 'url' => App::get_baseurl() . '/events', 'sel' =>((!isset($tab)&&$a->argv[0]=='events')?'active':''), 'title' => t('Events and Calendar'), 'id' => 'events-tab', 'accesskey' => 'e', ); + // if the user is not the owner of the calendar we only show a calendar + // with the public events of the calendar owner + } elseif (! $is_owner) { + $tabs[] = array( + 'label' => t('Events'), + 'url' => App::get_baseurl() . '/cal/' . $nickname, + 'sel' =>((!isset($tab)&&$a->argv[0]=='cal')?'active':''), + 'title' => t('Events and Calendar'), + 'id' => 'events-tab', + 'accesskey' => 'e', + ); + } + + if ($is_owner){ $tabs[] = array( 'label' => t('Personal Notes'), - 'url' => $a->get_baseurl() . '/notes', + 'url' => App::get_baseurl() . '/notes', 'sel' =>((!isset($tab)&&$a->argv[0]=='notes')?'active':''), 'title' => t('Only You Can See This'), 'id' => 'notes-tab', @@ -760,7 +785,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ if ((! $is_owner) && ((count($a->profile)) || (! $a->profile['hide-friends']))) { $tabs[] = array( 'label' => t('Contacts'), - 'url' => $a->get_baseurl() . '/viewcontacts/' . $nickname, + 'url' => App::get_baseurl() . '/viewcontacts/' . $nickname, 'sel' => ((!isset($tab)&&$a->argv[0]=='viewcontacts')?'active':''), 'title' => t('Contacts'), 'id' => 'viewcontacts-tab', @@ -792,14 +817,13 @@ function zrl_init(&$a) { $result = Cache::get("gprobe:".$urlparts["host"]); if (!is_null($result)) { - $result = unserialize($result); if (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; } } - proc_run('php','include/gprobe.php',bin2hex($tmp_str)); + proc_run(PRIORITY_LOW, 'include/gprobe.php',bin2hex($tmp_str)); $arr = array('zrl' => $tmp_str, 'url' => $a->cmd); call_hooks('zrl_init',$arr); }