From 838c0f96de57717e21e985cd2f92a130f568052d Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 29 Dec 2018 00:21:57 -0500 Subject: [PATCH] Use minimal mode to change site theme settings - Use textarea in colorbox instead of inline HTML - Add mode propagation to site theme setting form - Set theme for site theme settings form to load JS dependencies --- mod/admin.php | 24 ++++++------------------ view/templates/admin/site.tpl | 3 ++- view/theme/frio/templates/admin/site.tpl | 3 ++- 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/mod/admin.php b/mod/admin.php index b906ad7d05..c0ad281d3b 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -89,12 +89,10 @@ function admin_post(App $a) $theme = $a->argv[2]; if (is_file("view/theme/$theme/config.php")) { - $orig_theme = Renderer::$theme; - $orig_page = $a->page; - $orig_session_theme = $_SESSION['theme']; + $a->setCurrentTheme($theme); + require_once "view/theme/$theme/theme.php"; require_once "view/theme/$theme/config.php"; - $_SESSION['theme'] = $theme; $init = $theme . '_init'; if (function_exists($init)) { @@ -103,17 +101,13 @@ function admin_post(App $a) if (function_exists('theme_admin_post')) { theme_admin_post($a); } - - $_SESSION['theme'] = $orig_session_theme; - Renderer::$theme = $orig_theme; - $a->page = $orig_page; } info(L10n::t('Theme settings updated.')); if ($a->isAjax()) { return; } - $return_path = 'admin/themes/' . $theme; + $return_path = 'admin/themes/' . $theme . (!empty($_GET['mode']) ? '?mode=' . $_GET['mode'] : ''); break; case 'tos': admin_page_tos_post($a); @@ -2312,12 +2306,10 @@ function admin_page_themes(App $a) $admin_form = ''; if (is_file("view/theme/$theme/config.php")) { - $orig_theme = Renderer::$theme; - $orig_page = $a->page; - $orig_session_theme = $_SESSION['theme']; + $a->setCurrentTheme($theme); + require_once "view/theme/$theme/theme.php"; require_once "view/theme/$theme/config.php"; - $_SESSION['theme'] = $theme; $init = $theme . "_init"; if (function_exists($init)) { @@ -2327,10 +2319,6 @@ function admin_page_themes(App $a) if (function_exists('theme_admin')) { $admin_form = theme_admin($a); } - - $_SESSION['theme'] = $orig_session_theme; - Renderer::$theme = $orig_theme; - $a->page = $orig_page; } $screenshot = [Theme::getScreenshot($theme), L10n::t('Screenshot')]; @@ -2345,7 +2333,7 @@ function admin_page_themes(App $a) '$toggle' => L10n::t('Toggle'), '$settings' => L10n::t('Settings'), '$baseurl' => System::baseUrl(true), - '$addon' => $theme, + '$addon' => $theme . (!empty($_GET['mode']) ? '?mode=' . $_GET['mode'] : ''), '$status' => $status, '$action' => $action, '$info' => Theme::getInfo($theme), diff --git a/view/templates/admin/site.tpl b/view/templates/admin/site.tpl index dd40654b51..a7adfd5a1a 100644 --- a/view/templates/admin/site.tpl +++ b/view/templates/admin/site.tpl @@ -9,7 +9,8 @@ var theme = $("#id_theme :selected").val(); $("#cnftheme").attr('href',"{{$baseurl}}/admin/themes/"+theme); },*/ - href: "{{$baseurl}}/admin/themes/" + $("#id_theme :selected").val(), + iframe: true, + href: "{{$baseurl}}/admin/themes/" + $("#id_theme :selected").val() + "?mode=minimal", onComplete: function(){ $("div#fancybox-content form").submit(function(e){ var url = $(this).attr('action'); diff --git a/view/theme/frio/templates/admin/site.tpl b/view/theme/frio/templates/admin/site.tpl index 7228b9022b..5d4fd2506e 100644 --- a/view/theme/frio/templates/admin/site.tpl +++ b/view/theme/frio/templates/admin/site.tpl @@ -10,7 +10,8 @@ var theme = $("#id_theme :selected").val(); $("#cnftheme").attr('href',"{{$baseurl}}/admin/themes/"+theme); },*/ - href: "{{$baseurl}}/admin/themes/" + $("#id_theme :selected").val(), + iframe: true, + href: "{{$baseurl}}/admin/themes/" + $("#id_theme :selected").val() + "?mode=minimal", onComplete: function(){ $("div#fancybox-content form").submit(function(e){ var url = $(this).attr('action'); -- 2.39.5