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'), + ]); + } +}