return; // NOTREACHED
break;
case 'themes':
+ if ($a->argc < 2) {
+ if(is_ajax()) return;
+ goaway($a->get_baseurl(true) . '/admin/' );
+ return;
+ }
+
$theme = $a->argv[2];
if (is_file("view/theme/$theme/config.php")){
- require_once("view/theme/$theme/config.php");
- if (function_exists("theme_admin_post")){
- theme_admin_post($a);
+ function __call_theme_admin_post(&$a, $theme) {
+ $orig_theme = $a->theme;
+ $orig_page = $a->page;
+ $orig_session_theme = $_SESSION['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)) $init($a);
+ if(function_exists("theme_admin_post")){
+ $admin_form = theme_admin_post($a);
+ }
+
+ $_SESSION['theme'] = $orig_session_theme;
+ $a->theme = $orig_theme;
+ $a->page = $orig_page;
+ return $admin_form;
}
+ __call_theme_admin_post($a, $theme);
}
info(t('Theme settings updated.'));
if(is_ajax()) return;
set_config('system','old_pager', $old_pager);
set_config('system','only_tag_search', $only_tag_search);
-
+
if ($rino==2 and !function_exists('mcrypt_create_iv')){
- notice(t("RINO2 needs mcrypt php extension to work."));
- } else {
+ notice(t("RINO2 needs mcrypt php extension to work."));
+ } else {
set_config('system','rino_encrypt', $rino);
}
* List plugins
*/
- if (x($_GET,"a") && $_GET['a']=="r"){
+ if (x($_GET,"a") && $_GET['a']=="r"){
check_form_security_token_redirectOnErr($a->get_baseurl().'/admin/plugins', 'admin_themes', 't');
reload_plugins();
info("Plugins reloaded");
'$title' => t('Administration'),
'$page' => t('Plugins'),
'$submit' => t('Save Settings'),
+ '$reload' => t('Reload active plugins'),
'$baseurl' => $a->get_baseurl(true),
'$function' => 'plugins',
'$plugins' => $plugins,
$admin_form="";
if (is_file("view/theme/$theme/config.php")){
- require_once("view/theme/$theme/config.php");
- if(function_exists("theme_admin")){
- $admin_form = theme_admin($a);
- }
+ function __get_theme_admin_form(&$a, $theme) {
+ $orig_theme = $a->theme;
+ $orig_page = $a->page;
+ $orig_session_theme = $_SESSION['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)) $init($a);
+ if(function_exists("theme_admin")){
+ $admin_form = theme_admin($a);
+ }
+ $_SESSION['theme'] = $orig_session_theme;
+ $a->theme = $orig_theme;
+ $a->page = $orig_page;
+ return $admin_form;
+ }
+ $admin_form = __get_theme_admin_form($a, $theme);
}
$screenshot = array( get_theme_screenshot($theme), t('Screenshot'));
));
}
+
+ // reload active themes
+ if (x($_GET,"a") && $_GET['a']=="r"){
+ check_form_security_token_redirectOnErr($a->get_baseurl().'/admin/themes', 'admin_themes', 't');
+ if ($themes) {
+ foreach($themes as $th) {
+ if ($th['allowed']) {
+ uninstall_theme($th['name']);
+ install_theme($th['name']);
+ }
+ }
+ }
+ info("Themes reloaded");
+ goaway($a->get_baseurl().'/admin/themes');
+ }
+
/**
* List themes
*/
}
}
+
$t = get_markup_template("admin_plugins.tpl");
return replace_macros($t, array(
'$title' => t('Administration'),
'$page' => t('Themes'),
'$submit' => t('Save Settings'),
+ '$reload' => t('Reload active themes'),
'$baseurl' => $a->get_baseurl(true),
'$function' => 'themes',
'$plugins' => $xthemes,