]> git.mxchange.org Git - friendica.git/blobdiff - mod/settings.php
Storing the protocol while following a contact
[friendica.git] / mod / settings.php
index 8aba6809f23618c421d79870e8c930e2d2c5fd17..536c8335422124f6ba1ffd5291d7c31234832c55 100644 (file)
@@ -30,6 +30,8 @@ use Friendica\Util\Temporal;
 
 function get_theme_config_file($theme)
 {
+       $theme = Strings::sanitizeFilePathItem($theme);
+
        $a = \get_app();
        $base_theme = defaults($a->theme_info, 'extends');
 
@@ -474,13 +476,13 @@ function settings_post(App $a)
        }
 
        // Adjust the page flag if the account type doesn't fit to the page flag.
-       if (($account_type == Contact::ACCOUNT_TYPE_PERSON) && !in_array($page_flags, [User::PAGE_FLAGS_NORMAL, User::PAGE_FLAGS_SOAPBOX, User::PAGE_FLAGS_FREELOVE])) {
+       if (($account_type == User::ACCOUNT_TYPE_PERSON) && !in_array($page_flags, [User::PAGE_FLAGS_NORMAL, User::PAGE_FLAGS_SOAPBOX, User::PAGE_FLAGS_FREELOVE])) {
                $page_flags = User::PAGE_FLAGS_NORMAL;
-       } elseif (($account_type == Contact::ACCOUNT_TYPE_ORGANISATION) && !in_array($page_flags, [User::PAGE_FLAGS_SOAPBOX])) {
+       } elseif (($account_type == User::ACCOUNT_TYPE_ORGANISATION) && !in_array($page_flags, [User::PAGE_FLAGS_SOAPBOX])) {
                $page_flags = User::PAGE_FLAGS_SOAPBOX;
-       } elseif (($account_type == Contact::ACCOUNT_TYPE_NEWS) && !in_array($page_flags, [User::PAGE_FLAGS_SOAPBOX])) {
+       } elseif (($account_type == User::ACCOUNT_TYPE_NEWS) && !in_array($page_flags, [User::PAGE_FLAGS_SOAPBOX])) {
                $page_flags = User::PAGE_FLAGS_SOAPBOX;
-       } elseif (($account_type == Contact::ACCOUNT_TYPE_COMMUNITY) && !in_array($page_flags, [User::PAGE_FLAGS_COMMUNITY, User::PAGE_FLAGS_PRVGROUP])) {
+       } elseif (($account_type == User::ACCOUNT_TYPE_COMMUNITY) && !in_array($page_flags, [User::PAGE_FLAGS_COMMUNITY, User::PAGE_FLAGS_PRVGROUP])) {
                $page_flags = User::PAGE_FLAGS_COMMUNITY;
        }
 
@@ -877,40 +879,30 @@ function settings_content(App $a)
                        $default_mobile_theme = 'none';
                }
 
-               $allowed_themes_str = Config::get('system', 'allowed_themes');
-               $allowed_themes_raw = explode(',', $allowed_themes_str);
-               $allowed_themes = [];
-               if (count($allowed_themes_raw)) {
-                       foreach ($allowed_themes_raw as $x) {
-                               if (strlen(trim($x)) && is_dir("view/theme/$x")) {
-                                       $allowed_themes[] = trim($x);
-                               }
-                       }
-               }
-
+               $allowed_themes = Theme::getAllowedList();
 
                $themes = [];
                $mobile_themes = ["---" => L10n::t('No special theme for mobile devices')];
-               if ($allowed_themes) {
-                       foreach ($allowed_themes as $theme) {
-                               $is_experimental = file_exists('view/theme/' . $theme . '/experimental');
-                               $is_unsupported  = file_exists('view/theme/' . $theme . '/unsupported');
-                               $is_mobile       = file_exists('view/theme/' . $theme . '/mobile');
-                               if (!$is_experimental || ($is_experimental && (Config::get('experimentals', 'exp_themes')==1 || is_null(Config::get('experimentals', 'exp_themes'))))) {
-                                       $theme_name = ucfirst($theme);
-                                       if ($is_unsupported) {
-                                               $theme_name = L10n::t("%s - \x28Unsupported\x29", $theme_name);
-                                       } elseif ($is_experimental) {
-                                               $theme_name = L10n::t("%s - \x28Experimental\x29", $theme_name);
-                                       }
-                                       if ($is_mobile) {
-                                               $mobile_themes[$theme] = $theme_name;
-                                       } else {
-                                               $themes[$theme] = $theme_name;
-                                       }
+               foreach ($allowed_themes as $theme) {
+                       $is_experimental = file_exists('view/theme/' . $theme . '/experimental');
+                       $is_unsupported  = file_exists('view/theme/' . $theme . '/unsupported');
+                       $is_mobile       = file_exists('view/theme/' . $theme . '/mobile');
+                       if (!$is_experimental || ($is_experimental && (Config::get('experimentals', 'exp_themes')==1 || is_null(Config::get('experimentals', 'exp_themes'))))) {
+                               $theme_name = ucfirst($theme);
+                               if ($is_unsupported) {
+                                       $theme_name = L10n::t('%s - (Unsupported)', $theme_name);
+                               } elseif ($is_experimental) {
+                                       $theme_name = L10n::t('%s - (Experimental)', $theme_name);
+                               }
+
+                               if ($is_mobile) {
+                                       $mobile_themes[$theme] = $theme_name;
+                               } else {
+                                       $themes[$theme] = $theme_name;
                                }
                        }
                }
+
                $theme_selected        = defaults($_SESSION, 'theme'       , $default_theme);
                $mobile_theme_selected = defaults($_SESSION, 'mobile-theme', $default_mobile_theme);
 
@@ -1015,8 +1007,8 @@ function settings_content(App $a)
        // Set the account type to "Community" when the page is a community page but the account type doesn't fit
        // This is only happening on the first visit after the update
        if (in_array($a->user['page-flags'], [User::PAGE_FLAGS_COMMUNITY, User::PAGE_FLAGS_PRVGROUP]) &&
-               ($a->user['account-type'] != Contact::ACCOUNT_TYPE_COMMUNITY))
-               $a->user['account-type'] = Contact::ACCOUNT_TYPE_COMMUNITY;
+               ($a->user['account-type'] != User::ACCOUNT_TYPE_COMMUNITY))
+               $a->user['account-type'] = User::ACCOUNT_TYPE_COMMUNITY;
 
        $pageset_tpl = Renderer::getMarkupTemplate('settings/pagetypes.tpl');
 
@@ -1025,26 +1017,26 @@ function settings_content(App $a)
                '$user'                 => L10n::t("Personal Page Subtypes"),
                '$community'            => L10n::t("Community Forum Subtypes"),
                '$account_type'         => $a->user['account-type'],
-               '$type_person'          => Contact::ACCOUNT_TYPE_PERSON,
-               '$type_organisation'    => Contact::ACCOUNT_TYPE_ORGANISATION,
-               '$type_news'            => Contact::ACCOUNT_TYPE_NEWS,
-               '$type_community'       => Contact::ACCOUNT_TYPE_COMMUNITY,
+               '$type_person'          => User::ACCOUNT_TYPE_PERSON,
+               '$type_organisation'    => User::ACCOUNT_TYPE_ORGANISATION,
+               '$type_news'            => User::ACCOUNT_TYPE_NEWS,
+               '$type_community'       => User::ACCOUNT_TYPE_COMMUNITY,
 
-               '$account_person'       => ['account-type', L10n::t('Personal Page'), Contact::ACCOUNT_TYPE_PERSON,
+               '$account_person'       => ['account-type', L10n::t('Personal Page'), User::ACCOUNT_TYPE_PERSON,
                                                                        L10n::t('Account for a personal profile.'),
-                                                                       ($a->user['account-type'] == Contact::ACCOUNT_TYPE_PERSON)],
+                                                                       ($a->user['account-type'] == User::ACCOUNT_TYPE_PERSON)],
 
-               '$account_organisation' => ['account-type', L10n::t('Organisation Page'), Contact::ACCOUNT_TYPE_ORGANISATION,
+               '$account_organisation' => ['account-type', L10n::t('Organisation Page'), User::ACCOUNT_TYPE_ORGANISATION,
                                                                        L10n::t('Account for an organisation that automatically approves contact requests as "Followers".'),
-                                                                       ($a->user['account-type'] == Contact::ACCOUNT_TYPE_ORGANISATION)],
+                                                                       ($a->user['account-type'] == User::ACCOUNT_TYPE_ORGANISATION)],
 
-               '$account_news'         => ['account-type', L10n::t('News Page'), Contact::ACCOUNT_TYPE_NEWS,
+               '$account_news'         => ['account-type', L10n::t('News Page'), User::ACCOUNT_TYPE_NEWS,
                                                                        L10n::t('Account for a news reflector that automatically approves contact requests as "Followers".'),
-                                                                       ($a->user['account-type'] == Contact::ACCOUNT_TYPE_NEWS)],
+                                                                       ($a->user['account-type'] == User::ACCOUNT_TYPE_NEWS)],
 
-               '$account_community'    => ['account-type', L10n::t('Community Forum'), Contact::ACCOUNT_TYPE_COMMUNITY,
+               '$account_community'    => ['account-type', L10n::t('Community Forum'), User::ACCOUNT_TYPE_COMMUNITY,
                                                                        L10n::t('Account for community discussions.'),
-                                                                       ($a->user['account-type'] == Contact::ACCOUNT_TYPE_COMMUNITY)],
+                                                                       ($a->user['account-type'] == User::ACCOUNT_TYPE_COMMUNITY)],
 
                '$page_normal'          => ['page-flags', L10n::t('Normal Account Page'), User::PAGE_FLAGS_NORMAL,
                                                                        L10n::t('Account for a regular personal profile that requires manual approval of "Friends" and "Followers".'),