]> git.mxchange.org Git - friendica.git/blobdiff - src/Content/Widget/CalendarExport.php
Merge pull request #6324 from MrPetovan/bug/6316-remove-html-encode
[friendica.git] / src / Content / Widget / CalendarExport.php
index 87b8c14da92654b6b45c37726974ab0763d9b185..e8bec0b95a451211e97ed2b5373bb099dc63dc5b 100644 (file)
@@ -8,6 +8,7 @@ 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';
@@ -27,6 +28,10 @@ class CalendarExport
        public static function getHTML() {
                $a = get_app();
 
+               if (empty($a->data['user'])) {
+                       return;
+               }
+
                $owner_uid = $a->data['user']['uid'];
 
                // The permission testing is a little bit tricky because we have to respect many cases.
@@ -40,7 +45,15 @@ class CalendarExport
                 * 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 (!local_user() && $owner_uid && !Feature::isEnabled($owner_uid, 'export_calendar')) {
+               /*
+                * 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;
                }
 
@@ -48,8 +61,8 @@ class CalendarExport
                // 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 = get_markup_template("events_aside.tpl");
-               $return = replace_macros($tpl, [
+               $tpl = Renderer::getMarkupTemplate("events_aside.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"),