X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FContent%2FWidget%2FCalendarExport.php;h=dda3513fec0a917c3c84053a983043f4b82a87d2;hb=18745b1723b3f8580704914e8f9df8441c859e70;hp=27a4e434874f299636c16b2f8d38c7480a7bee23;hpb=8c956ac0c8b1ba55648145b8644af19faaecdd59;p=friendica.git diff --git a/src/Content/Widget/CalendarExport.php b/src/Content/Widget/CalendarExport.php index 27a4e43487..dda3513fec 100644 --- a/src/Content/Widget/CalendarExport.php +++ b/src/Content/Widget/CalendarExport.php @@ -1,15 +1,29 @@ . + * */ namespace Friendica\Content\Widget; -use Friendica\Core\L10n; - -require_once 'boot.php'; -require_once 'include/text.php'; +use Friendica\Content\Feature; +use Friendica\Core\Renderer; +use Friendica\DI; /** * TagCloud widget @@ -19,57 +33,52 @@ require_once 'include/text.php'; class CalendarExport { /** - * @brief Get the events widget. + * Get the events widget. * * @return string Formated HTML of the calendar widget. + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ public static function getHTML() { - $a = get_app(); + $a = DI::app(); + + if (empty($a->data['user'])) { + return; + } + + $owner_uid = intval($a->data['user']['uid']); -// $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; -// } -// -// /* -// * 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 (intval($owner_uid) && local_user() !== $owner_uid && ! Feature::isEnabled($owner_uid, "export_calendar")) { -// 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. -// */ -// if (intval($owner_uid) && ! local_user() && ! Feature::isEnabled($owner_uid, "export_calendar")) { -// return; -// } + // 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; + } + + /* + * If it's a kind of profile page (intval($owner_uid)) return if the user not logged in and + * export feature isn't enabled. + */ /* - * All the legacy checks above seem to be equivalent to the check below, see https://ethercalc.org/z6ehv1tut9cm - * If there is a mistake in the spreadsheet, please notify @MrPetovan on GitHub or by email mrpetovan@gmail.com + * 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()) { + 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']); + $user = ($a->data['user']['nickname'] ?? '') ?: $a->user['nickname']; - $tpl = get_markup_template("events_aside.tpl"); - $return = replace_macros($tpl, [ - '$etitle' => L10n::t("Export"), - '$export_ical' => L10n::t("Export calendar as ical"), - '$export_csv' => L10n::t("Export calendar as csv"), + $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 ]);