X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FContent%2FWidget%2FCalendarExport.php;h=3d028ef478ca8f52272586440a44f48fe2940380;hb=e1f32f7f15c5b8e740ffe20f0390ea23e13a1f3a;hp=e8bec0b95a451211e97ed2b5373bb099dc63dc5b;hpb=7d5494dd67f58e1fc63c6571946e26290092321c;p=friendica.git diff --git a/src/Content/Widget/CalendarExport.php b/src/Content/Widget/CalendarExport.php index e8bec0b95a..3d028ef478 100644 --- a/src/Content/Widget/CalendarExport.php +++ b/src/Content/Widget/CalendarExport.php @@ -1,17 +1,29 @@ . + * */ namespace Friendica\Content\Widget; -use Friendica\Content\Feature; -use Friendica\Core\L10n; use Friendica\Core\Renderer; - -require_once 'boot.php'; -require_once 'include/text.php'; +use Friendica\DI; +use Friendica\Model\User; /** * TagCloud widget @@ -21,52 +33,28 @@ require_once 'include/text.php'; class CalendarExport { /** - * @brief Get the events widget. + * 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 = get_app(); - - if (empty($a->data['user'])) { - return; + public static function getHTML(int $uid = 0) { + if (empty($uid)) { + return ''; } - $owner_uid = $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 ''; } - /* - * If it's a kind of profile page (intval($owner_uid)) return if the user not logged in and - * export feature isn't enabled. - */ - /* - * Cal logged in user (test permission at foreign profile page). - * If the $owner uid is available we know it is part of one of the profile pages (like /cal). - * So we have to test if if it's the own profile page of the logged in user - * or a foreign one. For foreign profile pages we need to check if the feature - * for exporting the cal is enabled (otherwise the widget would appear for logged in users - * on foreigen profile pages even if the widget is disabled). - */ - if (local_user() != $owner_uid && !Feature::isEnabled($owner_uid, "export_calendar")) { - 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 = defaults($a->data['user'], 'nickname', $a->user['nickname']); - - $tpl = Renderer::getMarkupTemplate("events_aside.tpl"); + $tpl = Renderer::getMarkupTemplate("widget/events.tpl"); $return = Renderer::replaceMacros($tpl, [ - '$etitle' => L10n::t("Export"), - '$export_ical' => L10n::t("Export calendar as ical"), - '$export_csv' => L10n::t("Export calendar as csv"), - '$user' => $user + '$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['nickname'] ]); return $return;