use Friendica\Content\ForumManager;
use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML;
-use Friendica\Core\Addon;
+use Friendica\Content\Widget\ContactBlock;
use Friendica\Core\Cache;
use Friendica\Core\Config;
+use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\PConfig;
use Friendica\Core\System;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
-use Friendica\Model\Contact;
use Friendica\Protocol\Diaspora;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Network;
use Friendica\Util\Strings;
use Friendica\Util\Temporal;
-require_once 'include/dba.php';
-
class Profile
{
/**
* @param integer User ID
*
* @return array Profile data
+ * @throws \Exception
*/
public static function getByUID($uid)
{
* @param int $profile 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 = 0, array $profiledata = [], $show_connect = true)
{
* Includes all available profile data
*
* @brief Get all profile data of a local user
- * @param string $nickname nick
- * @param int $uid uid
- * @param int $profile_id ID of the profile
+ * @param string $nickname nick
+ * @param int $uid uid
+ * @param int $profile_id ID of the profile
* @return array
+ * @throws \Exception
*/
public static function getByNickname($nickname, $uid = 0, $profile_id = 0)
{
* because of all the conditional logic.
*
* @brief Formats a profile for display in the sidebar.
- * @param array $profile
- * @param int $block
+ * @param array $profile
+ * @param int $block
* @param boolean $show_connect Show connect link
*
* @return string HTML sidebar module
*
- * @note Returns empty string if passed $profile is wrong type or not populated
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
+ * @note Returns empty string if passed $profile is wrong type or not populated
*
* @hooks 'profile_sidebar_enter'
* array $profile - profile data
*/
private static function sidebar($profile, $block = 0, $show_connect = true)
{
- $a = get_app();
+ $a = \get_app();
$o = '';
$location = false;
$profile['picdate'] = urlencode(defaults($profile, 'picdate', ''));
if (($profile['network'] != '') && ($profile['network'] != Protocol::DFRN)) {
- $profile['network_name'] = Strings::formatNetworkName($profile['network'], $profile['url']);
+ $profile['network_link'] = Strings::formatNetworkName($profile['network'], $profile['url']);
} else {
- $profile['network_name'] = '';
+ $profile['network_link'] = '';
}
- Addon::callHooks('profile_sidebar_enter', $profile);
+ Hook::callAll('profile_sidebar_enter', $profile);
// don't show connect link to yourself
$contact_block = '';
$updated = '';
- $contacts = 0;
+ $contact_count = 0;
if (!$block) {
- $contact_block = HTML::contactBlock();
+ $contact_block = ContactBlock::getHTML($a->profile);
if (is_array($a->profile) && !$a->profile['hide-friends']) {
$r = q(
$updated = date('c', strtotime($r[0]['updated']));
}
- $r = q(
- "SELECT COUNT(*) AS `total` FROM `contact`
- WHERE `uid` = %d
- AND NOT `self` AND NOT `blocked` AND NOT `pending`
- AND NOT `hidden` AND NOT `archive`
- AND `network` IN ('%s', '%s', '%s', '')",
- intval($profile['uid']),
- DBA::escape(Protocol::DFRN),
- DBA::escape(Protocol::DIASPORA),
- DBA::escape(Protocol::OSTATUS)
- );
- if (DBA::isResult($r)) {
- $contacts = intval($r[0]['total']);
- }
+ $contact_count = DBA::count('contact', [
+ 'uid' => $profile['uid'],
+ 'self' => false,
+ 'blocked' => false,
+ 'pending' => false,
+ 'hidden' => false,
+ 'archive' => false,
+ 'network' => [Protocol::DFRN, Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA],
+ ]);
}
}
$p['about'] = BBCode::convert($p['about']);
}
+ if (empty($p['address']) && !empty($p['location'])) {
+ $p['address'] = $p['location'];
+ }
+
if (isset($p['address'])) {
$p['address'] = BBCode::convert($p['address']);
- } elseif (isset($p['location'])) {
- $p['address'] = BBCode::convert($p['location']);
}
if (isset($p['photo'])) {
'$homepage' => $homepage,
'$about' => $about,
'$network' => L10n::t('Network:'),
- '$contacts' => $contacts,
+ '$contacts' => $contact_count,
'$updated' => $updated,
'$diaspora' => $diaspora,
'$contact_block' => $contact_block,
$arr = ['profile' => &$profile, 'entry' => &$o];
- Addon::callHooks('profile_sidebar', $arr);
+ Hook::callAll('profile_sidebar', $arr);
return $o;
}
public static function getBirthdays()
{
- $a = get_app();
+ $a = \get_app();
$o = '';
if (!local_user() || $a->is_mobile || $a->is_tablet) {
public static function getEventsReminderHTML()
{
- $a = get_app();
+ $a = \get_app();
$o = '';
if (!local_user() || $a->is_mobile || $a->is_tablet) {
public static function getAdvanced(App $a)
{
- $o = '';
$uid = $a->profile['uid'];
- $o .= Renderer::replaceMacros(
- Renderer::getMarkupTemplate('section_title.tpl'),
- ['$title' => L10n::t('Profile')]
- );
-
if ($a->profile['name']) {
$tpl = Renderer::getMarkupTemplate('profile_advanced.tpl');
}
if ($a->profile['gender']) {
- $profile['gender'] = [L10n::t('Gender:'), $a->profile['gender']];
+ $profile['gender'] = [L10n::t('Gender:'), L10n::t($a->profile['gender'])];
}
if (!empty($a->profile['dob']) && $a->profile['dob'] > DBA::NULL_DATE) {
}
if ($a->profile['marital']) {
- $profile['marital'] = [L10n::t('Status:'), $a->profile['marital']];
+ $profile['marital'] = [L10n::t('Status:'), L10n::t($a->profile['marital'])];
}
/// @TODO Maybe use x() here, plus below?
}
if ($a->profile['sexual']) {
- $profile['sexual'] = [L10n::t('Sexual Preference:'), $a->profile['sexual']];
+ $profile['sexual'] = [L10n::t('Sexual Preference:'), L10n::t($a->profile['sexual'])];
}
if ($a->profile['homepage']) {
}
$arr = ['is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => $tab, 'tabs' => $tabs];
- Addon::callHooks('profile_tabs', $arr);
+ Hook::callAll('profile_tabs', $arr);
$tpl = Renderer::getMarkupTemplate('common_tabs.tpl');
* Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/include/channel.php
*
* @param App $a Application instance.
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
*/
public static function zrlInit(App $a)
{
}
$arr = ['zrl' => $my_url, 'url' => $a->cmd];
- Addon::callHooks('zrl_init', $arr);
+ Hook::callAll('zrl_init', $arr);
// Try to find the public contact entry of the visitor.
$cid = Contact::getIdForURL($my_url);
* Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/include/zid.php
*
* @param string $token
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
*/
public static function openWebAuthInit($token)
{
- $a = get_app();
+ $a = \get_app();
// Clean old OpenWebAuthToken entries.
OpenWebAuthToken::purge('owt', '3 MINUTE');
* * \e array \b visitor
* * \e string \b url
*/
- Addon::callHooks('magic_auth_success', $arr);
+ Hook::callAll('magic_auth_success', $arr);
$a->contact = $arr['visitor'];
* Get the user ID of the page owner.
*
* Used from within PCSS themes to set theme parameters. If there's a
- * puid request variable, that is the "page owner" and normally their theme
+ * profile_uid variable set in App, that is the "page owner" and normally their theme
* settings take precedence; unless a local user sets the "always_my_theme"
* system pconfig, which means they don't want to see anybody else's theme
* settings except their own while on this site.
* @brief Get the user ID of the page owner
* @return int user ID
*
- * @note Returns local_user instead of user ID if "always_my_theme"
- * is set to true
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @note Returns local_user instead of user ID if "always_my_theme" is set to true
*/
- public static function getThemeUid()
+ public static function getThemeUid(App $a)
{
- $uid = (!empty($_REQUEST['puid']) ? intval($_REQUEST['puid']) : 0);
- if ((local_user()) && ((PConfig::get(local_user(), 'system', 'always_my_theme')) || (!$uid))) {
+ $uid = !empty($a->profile_uid) ? intval($a->profile_uid) : 0;
+ if (local_user() && (PConfig::get(local_user(), 'system', 'always_my_theme') || !$uid)) {
return local_user();
}
}
/**
- * Stip zrl parameter from a string.
+ * Strip zrl parameter from a string.
*
* @param string $s The input string.
* @return string The zrl.
}
/**
- * Stip query parameter from a string.
- *
- * @param string $s The input string.
- * @return string The query parameter.
- */
+ * Strip query parameter from a string.
+ *
+ * @param string $s The input string.
+ * @param $param
+ * @return string The query parameter.
+ */
public static function stripQueryParam($s, $param)
{
return preg_replace('/[\?&]' . $param . '=(.*?)(&|$)/ism', '$2', $s);