X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FAdmin%2FThemes%2FIndex.php;h=955ddadc700f6827f1142a5e0933d35ff2356fd3;hb=2ce15cae1a41451b631b814c418b3b3b976d79d1;hp=62c775bf04251cd2319949a94032bd6ae6fe4fb5;hpb=9774c95b807eeae0a9f70ce6c75f3f20a5147673;p=friendica.git
diff --git a/src/Module/Admin/Themes/Index.php b/src/Module/Admin/Themes/Index.php
index 62c775bf04..955ddadc70 100644
--- a/src/Module/Admin/Themes/Index.php
+++ b/src/Module/Admin/Themes/Index.php
@@ -1,107 +1,125 @@
-getBaseURL() . '/admin/themes', 'admin_themes', 't');
-
- switch ($_GET['action']) {
- case 'reload':
- foreach ($allowed_themes as $theme) {
- Theme::uninstall($theme['name']);
- Theme::install($theme['name']);
- }
-
- info('Themes reloaded');
- break;
-
- case 'toggle' :
- $theme = defaults($_GET, 'addon', '');
- if ($theme) {
- $theme = Strings::sanitizeFilePathItem($theme);
- if (!is_dir("view/theme/$theme")) {
- notice(L10n::t('Item not found.'));
- return '';
- }
-
- if (in_array($theme, Theme::getAllowedList())) {
- Theme::uninstall($theme);
- info(L10n::t('Theme %s disabled.', $theme));
- } elseif (Theme::install($theme)) {
- info(L10n::t('Theme %s successfully enabled.', $theme));
- } else {
- info(L10n::t('Theme %s failed to install.', $theme));
- }
- }
-
- break;
-
- }
-
- $a->internalRedirect('admin/themes');
- }
-
- $themes = [];
- $files = glob('view/theme/*');
- if (is_array($files)) {
- foreach ($files as $file) {
- $theme = basename($file);
-
- // Is there a style file?
- $theme_files = glob('view/theme/' . $theme . '/style.*');
-
- // If not then quit
- if (count($theme_files) == 0) {
- continue;
- }
-
- $is_experimental = intval(file_exists($file . '/experimental'));
- $is_supported = 1 - (intval(file_exists($file . '/unsupported')));
- $is_allowed = intval(in_array($theme, $allowed_themes));
-
- if ($is_allowed || $is_supported || Config::get('system', 'show_unsupported_themes')) {
- $themes[] = ['name' => $theme, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed];
- }
- }
- }
-
- $addons = [];
- foreach ($themes as $theme) {
- $addons[] = [$theme['name'], (($theme['allowed']) ? 'on' : 'off'), Theme::getInfo($theme['name'])];
- }
-
- $t = Renderer::getMarkupTemplate('admin/addons/index.tpl');
- return Renderer::replaceMacros($t, [
- '$title' => L10n::t('Administration'),
- '$page' => L10n::t('Themes'),
- '$submit' => L10n::t('Save Settings'),
- '$reload' => L10n::t('Reload active themes'),
- '$baseurl' => $a->getBaseURL(true),
- '$function' => 'themes',
- '$addons' => $addons,
- '$pcount' => count($themes),
- '$noplugshint' => L10n::t('No themes found on the system. They should be placed in %1$s', '/view/themes
'),
- '$experimental' => L10n::t('[Experimental]'),
- '$unsupported' => L10n::t('[Unsupported]'),
- '$form_security_token' => parent::getFormSecurityToken('admin_themes'),
- ]);
- }
-}
\ No newline at end of file
+.
+ *
+ */
+
+namespace Friendica\Module\Admin\Themes;
+
+use Friendica\Core\Renderer;
+use Friendica\Core\Theme;
+use Friendica\DI;
+use Friendica\Module\BaseAdmin;
+use Friendica\Util\Strings;
+
+class Index extends BaseAdmin
+{
+ public static function content(array $parameters = [])
+ {
+ parent::content($parameters);
+
+ $allowed_themes = Theme::getAllowedList();
+
+ // reload active themes
+ if (!empty($_GET['action'])) {
+ parent::checkFormSecurityTokenRedirectOnError(DI::baseUrl()->get() . '/admin/themes', 'admin_themes', 't');
+
+ switch ($_GET['action']) {
+ case 'reload':
+ $allowed_themes = array_unique($allowed_themes);
+ foreach ($allowed_themes as $theme) {
+ Theme::uninstall($theme);
+ Theme::install($theme);
+ }
+ Theme::setAllowedList($allowed_themes);
+
+ info('Themes reloaded');
+ break;
+
+ case 'toggle' :
+ $theme = $_GET['addon'] ?? '';
+ if ($theme) {
+ $theme = Strings::sanitizeFilePathItem($theme);
+ if (!is_dir("view/theme/$theme")) {
+ notice(DI::l10n()->t('Item not found.'));
+ return '';
+ }
+
+ if (in_array($theme, Theme::getAllowedList())) {
+ Theme::uninstall($theme);
+ info(DI::l10n()->t('Theme %s disabled.', $theme));
+ } elseif (Theme::install($theme)) {
+ info(DI::l10n()->t('Theme %s successfully enabled.', $theme));
+ } else {
+ info(DI::l10n()->t('Theme %s failed to install.', $theme));
+ }
+ }
+
+ break;
+
+ }
+
+ DI::baseUrl()->redirect('admin/themes');
+ }
+
+ $themes = [];
+ $files = glob('view/theme/*');
+ if (is_array($files)) {
+ foreach ($files as $file) {
+ $theme = basename($file);
+
+ // Is there a style file?
+ $theme_files = glob('view/theme/' . $theme . '/style.*');
+
+ // If not then quit
+ if (count($theme_files) == 0) {
+ continue;
+ }
+
+ $is_experimental = intval(file_exists($file . '/experimental'));
+ $is_supported = 1 - (intval(file_exists($file . '/unsupported')));
+ $is_allowed = intval(in_array($theme, $allowed_themes));
+
+ if ($is_allowed || $is_supported || DI::config()->get('system', 'show_unsupported_themes')) {
+ $themes[] = ['name' => $theme, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed];
+ }
+ }
+ }
+
+ $addons = [];
+ foreach ($themes as $theme) {
+ $addons[] = [$theme['name'], (($theme['allowed']) ? 'on' : 'off'), Theme::getInfo($theme['name'])];
+ }
+
+ $t = Renderer::getMarkupTemplate('admin/addons/index.tpl');
+ return Renderer::replaceMacros($t, [
+ '$title' => DI::l10n()->t('Administration'),
+ '$page' => DI::l10n()->t('Themes'),
+ '$submit' => DI::l10n()->t('Save Settings'),
+ '$reload' => DI::l10n()->t('Reload active themes'),
+ '$baseurl' => DI::baseUrl()->get(true),
+ '$function' => 'themes',
+ '$addons' => $addons,
+ '$pcount' => count($themes),
+ '$noplugshint' => DI::l10n()->t('No themes found on the system. They should be placed in %1$s', '/view/themes
'),
+ '$experimental' => DI::l10n()->t('[Experimental]'),
+ '$unsupported' => DI::l10n()->t('[Unsupported]'),
+ '$form_security_token' => parent::getFormSecurityToken('admin_themes'),
+ ]);
+ }
+}