X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FProfile.php;h=867a6db4fb6fad2f31ea1a41d65c6a7b9cb8f07d;hb=7b7132971a64a92a685a5fd860fe4709dce1765a;hp=86fb1a94cbb22aeb48ecef35492eb423bd4a12fe;hpb=18cfd8dfaaa65859e773641c908fe588dc726768;p=friendica.git diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 86fb1a94cb..867a6db4fb 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -1,7 +1,24 @@ . + * */ + namespace Friendica\Model; use Friendica\App; @@ -10,6 +27,7 @@ use Friendica\Content\Widget\ContactBlock; use Friendica\Core\Cache\Duration; use Friendica\Core\Hook; use Friendica\Core\Logger; +use Friendica\Network\Probe; use Friendica\Core\Protocol; use Friendica\Core\Renderer; use Friendica\Core\Session; @@ -121,13 +139,12 @@ class Profile * * @param App $a * @param string $nickname string - * @param int $profile_id int * @param array $profiledata array * @param boolean $show_connect Show connect link * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function load(App $a, $nickname, $profile_id = 0, array $profiledata = [], $show_connect = true) + public static function load(App $a, $nickname, array $profiledata = [], $show_connect = true) { $user = DBA::selectFirst('user', ['uid'], ['nickname' => $nickname, 'account_removed' => false]); @@ -185,16 +202,6 @@ class Profile require_once $theme_info_file; } - if (local_user() && local_user() == $a->profile['uid'] && $profiledata) { - DI::page()['aside'] .= Renderer::replaceMacros( - Renderer::getMarkupTemplate('settings/profile/link.tpl'), - [ - '$editprofile' => DI::l10n()->t('Edit profile'), - '$profid' => $a->profile['id'] - ] - ); - } - $block = ((DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) ? true : false); /** @@ -323,8 +330,9 @@ class Profile if (!$local_user_is_self && $show_connect) { if (!$visitor_is_authenticated) { - if (!empty($profile['nickname'])) { - $follow_link = 'dfrn_request/' . $profile['nickname']; + // Remote follow is only available for local profiles + if (!empty($profile['nickname']) && strpos($profile_url, DI::baseUrl()->get()) === 0) { + $follow_link = 'remote_follow/' . $profile['nickname']; } } elseif ($profile_is_native) { if ($visitor_is_following) { @@ -370,14 +378,12 @@ class Profile $location = DI::l10n()->t('Location:'); } - $gender = !empty($profile['gender']) ? DI::l10n()->t('Gender:') : false; - $marital = !empty($profile['marital']) ? DI::l10n()->t('Status:') : false; $homepage = !empty($profile['homepage']) ? DI::l10n()->t('Homepage:') : false; $about = !empty($profile['about']) ? DI::l10n()->t('About:') : false; $xmpp = !empty($profile['xmpp']) ? DI::l10n()->t('XMPP:') : false; if ((!empty($profile['hidewall']) || $block) && !Session::isAuthenticated()) { - $location = $gender = $marital = $homepage = $about = false; + $location = $homepage = $about = false; } $split_name = Diaspora::splitName($profile['name']); @@ -388,7 +394,7 @@ class Profile $diaspora = [ 'guid' => $profile['guid'], 'podloc' => DI::baseUrl(), - 'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false'), + 'searchable' => ($profile['net-publish'] ? 'true' : 'false'), 'nickname' => $profile['nickname'], 'fullname' => $profile['name'], 'firstname' => $firstname, @@ -446,14 +452,6 @@ class Profile $p['address'] = BBCode::convert($p['address']); } - if (isset($p['gender'])) { - $p['gender'] = DI::l10n()->t($p['gender']); - } - - if (isset($p['marital'])) { - $p['marital'] = DI::l10n()->t($p['marital']); - } - if (isset($p['photo'])) { $p['photo'] = ProxyUtils::proxifyUrl($p['photo'], false, ProxyUtils::SIZE_SMALL); } @@ -474,8 +472,6 @@ class Profile '$wallmessage_link' => $wallmessage_link, '$account_type' => $account_type, '$location' => $location, - '$gender' => $gender, - '$marital' => $marital, '$homepage' => $homepage, '$about' => $about, '$network' => DI::l10n()->t('Network:'), @@ -675,121 +671,6 @@ class Profile ]); } - /** - * @param App $a - * @param string $current - * @param bool $is_owner - * @param string $nickname - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ - public static function getTabs(App $a, string $current, bool $is_owner, string $nickname = null) - { - if (is_null($nickname)) { - $nickname = $a->user['nickname']; - } - - $baseProfileUrl = DI::baseUrl() . '/profile/' . $nickname; - - $tabs = [ - [ - 'label' => DI::l10n()->t('Profile'), - 'url' => $baseProfileUrl, - 'sel' => $current == 'profile' ? 'active' : '', - 'title' => DI::l10n()->t('Profile Details'), - 'id' => 'profile-tab', - 'accesskey' => 'r', - ], - [ - 'label' => DI::l10n()->t('Status'), - 'url' => $baseProfileUrl . '/status', - 'sel' => $current == 'status' ? 'active' : '', - 'title' => DI::l10n()->t('Status Messages and Posts'), - 'id' => 'status-tab', - 'accesskey' => 'm', - ], - [ - 'label' => DI::l10n()->t('Photos'), - 'url' => DI::baseUrl() . '/photos/' . $nickname, - 'sel' => $current == 'photos' ? 'active' : '', - 'title' => DI::l10n()->t('Photo Albums'), - 'id' => 'photo-tab', - 'accesskey' => 'h', - ], - [ - 'label' => DI::l10n()->t('Videos'), - 'url' => DI::baseUrl() . '/videos/' . $nickname, - 'sel' => $current == 'videos' ? 'active' : '', - 'title' => DI::l10n()->t('Videos'), - 'id' => 'video-tab', - 'accesskey' => 'v', - ], - ]; - - // the calendar link for the full featured events calendar - if ($is_owner && $a->theme_events_in_profile) { - $tabs[] = [ - 'label' => DI::l10n()->t('Events'), - 'url' => DI::baseUrl() . '/events', - 'sel' => $current == 'events' ? 'active' : '', - 'title' => DI::l10n()->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[] = [ - 'label' => DI::l10n()->t('Events'), - 'url' => DI::baseUrl() . '/cal/' . $nickname, - 'sel' => $current == 'cal' ? 'active' : '', - 'title' => DI::l10n()->t('Events and Calendar'), - 'id' => 'events-tab', - 'accesskey' => 'e', - ]; - } - - if ($is_owner) { - $tabs[] = [ - 'label' => DI::l10n()->t('Personal Notes'), - 'url' => DI::baseUrl() . '/notes', - 'sel' => $current == 'notes' ? 'active' : '', - 'title' => DI::l10n()->t('Only You Can See This'), - 'id' => 'notes-tab', - 'accesskey' => 't', - ]; - } - - if (empty($a->profile['hide-friends'])) { - $tabs[] = [ - 'label' => DI::l10n()->t('Contacts'), - 'url' => $baseProfileUrl . '/contacts', - 'sel' => $current == 'contacts' ? 'active' : '', - 'title' => DI::l10n()->t('Contacts'), - 'id' => 'viewcontacts-tab', - 'accesskey' => 'k', - ]; - } - - if (!empty($_SESSION['new_member']) && $is_owner) { - $tabs[] = [ - 'label' => DI::l10n()->t('Tips for New Members'), - 'url' => DI::baseUrl() . '/newmember', - 'sel' => false, - 'title' => DI::l10n()->t('Tips for New Members'), - 'id' => 'newmember-tab', - ]; - } - - $arr = ['is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => $current, 'tabs' => $tabs]; - - Hook::callAll('profile_tabs', $arr); - - $tpl = Renderer::getMarkupTemplate('common_tabs.tpl'); - - return Renderer::replaceMacros($tpl, ['$tabs' => $arr['tabs']]); - } - /** * Retrieves the my_url session variable * @@ -906,6 +787,7 @@ class Profile $_SESSION['visitor_handle'] = $visitor['addr']; $_SESSION['visitor_home'] = $visitor['url']; $_SESSION['my_url'] = $visitor['url']; + $_SESSION['remote_comment'] = Probe::getRemoteFollowLink($visitor['url']); Session::setVisitorsContacts(); @@ -1031,17 +913,10 @@ class Profile WHERE $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` AND ((`profile`.`name` LIKE ?) OR (`user`.`nickname` LIKE ?) OR - (`profile`.`pdesc` LIKE ?) OR + (`profile`.`about` LIKE ?) OR (`profile`.`locality` LIKE ?) OR (`profile`.`region` LIKE ?) OR (`profile`.`country-name` LIKE ?) OR - (`profile`.`gender` LIKE ?) OR - (`profile`.`marital` LIKE ?) OR - (`profile`.`sexual` LIKE ?) OR - (`profile`.`about` LIKE ?) OR - (`profile`.`romance` LIKE ?) OR - (`profile`.`work` LIKE ?) OR - (`profile`.`education` LIKE ?) OR (`profile`.`pub_keywords` LIKE ?) OR (`profile`.`prv_keywords` LIKE ?))", $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, @@ -1073,17 +948,10 @@ class Profile WHERE $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` AND `contact`.`self` AND ((`profile`.`name` LIKE ?) OR (`user`.`nickname` LIKE ?) OR - (`profile`.`pdesc` LIKE ?) OR + (`profile`.`about` LIKE ?) OR (`profile`.`locality` LIKE ?) OR (`profile`.`region` LIKE ?) OR (`profile`.`country-name` LIKE ?) OR - (`profile`.`gender` LIKE ?) OR - (`profile`.`marital` LIKE ?) OR - (`profile`.`sexual` LIKE ?) OR - (`profile`.`about` LIKE ?) OR - (`profile`.`romance` LIKE ?) OR - (`profile`.`work` LIKE ?) OR - (`profile`.`education` LIKE ?) OR (`profile`.`pub_keywords` LIKE ?) OR (`profile`.`prv_keywords` LIKE ?)) $order LIMIT ?,?",