From a9302c30c31742394232ed867889ab9698d1c091 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 29 May 2021 17:09:45 +0000 Subject: [PATCH] simplify the calendar download --- mod/cal.php | 2 +- mod/events.php | 2 +- src/Content/Widget/CalendarExport.php | 27 +++++++++------------------ 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/mod/cal.php b/mod/cal.php index aa38fa6582..c867582a7f 100644 --- a/mod/cal.php +++ b/mod/cal.php @@ -84,7 +84,7 @@ function cal_init(App $a) '$about' => BBCode::convert($a->profile['about']), ]); - $cal_widget = Widget\CalendarExport::getHTML(); + $cal_widget = Widget\CalendarExport::getHTML($user['uid']); if (empty(DI::page()['aside'])) { DI::page()['aside'] = ''; diff --git a/mod/events.php b/mod/events.php index 85976f8f87..2bbf4e6a3b 100644 --- a/mod/events.php +++ b/mod/events.php @@ -59,7 +59,7 @@ function events_init(App $a) DI::page()['aside'] = ''; } - $cal_widget = CalendarExport::getHTML(); + $cal_widget = CalendarExport::getHTML(local_user()); DI::page()['aside'] .= $cal_widget; diff --git a/src/Content/Widget/CalendarExport.php b/src/Content/Widget/CalendarExport.php index 63d1d7af87..1ea7d1e180 100644 --- a/src/Content/Widget/CalendarExport.php +++ b/src/Content/Widget/CalendarExport.php @@ -21,9 +21,9 @@ namespace Friendica\Content\Widget; -use Friendica\Content\Feature; use Friendica\Core\Renderer; use Friendica\DI; +use Friendica\Model\User; /** * TagCloud widget @@ -34,36 +34,27 @@ class CalendarExport { /** * Get the events widget. + * @param int $uid * * @return string Formated HTML of the calendar widget. * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ - public static function getHTML() { - $a = DI::app(); - - if (empty($a->data['user'])) { - return; + public static function getHTML(int $uid = 0) { + if (empty($uid)) { + return ''; } - $owner_uid = intval($a->data['user']['uid']); - - // The permission testing is a little bit tricky because we have to respect many cases. - - // It's not the private events page (we don't get the $owner_uid for /events). - if (!local_user() && !$owner_uid) { - return; + $user = User::getById($uid, ['nickname']); + if (empty($user['nickname'])) { + return ''; } - // $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 = ($a->data['user']['nickname'] ?? '') ?: $a->user['nickname']; - $tpl = Renderer::getMarkupTemplate("widget/events.tpl"); $return = Renderer::replaceMacros($tpl, [ '$etitle' => DI::l10n()->t("Export"), '$export_ical' => DI::l10n()->t("Export calendar as ical"), '$export_csv' => DI::l10n()->t("Export calendar as csv"), - '$user' => $user + '$user' => $user['nickname'] ]); return $return;