diff --git a/class2.php b/class2.php
index 00d7dc641..946348c07 100755
--- a/class2.php
+++ b/class2.php
@@ -1377,7 +1377,7 @@ if(!defined('THEME'))
{
e_theme::initTheme($pref['admintheme']);
}
- elseif (USERTHEME !== false && e_ADMIN_AREA === false)
+ elseif (deftrue('USERTHEME') && e_ADMIN_AREA === false)
{
e_theme::initTheme(USERTHEME);
}
diff --git a/e107_core/templates/header_default.php b/e107_core/templates/header_default.php
index a617bc132..ac5c77654 100644
--- a/e107_core/templates/header_default.php
+++ b/e107_core/templates/header_default.php
@@ -826,10 +826,9 @@ e107::getDebug()->logTime('Render Other');
echo e107::getParser()->parseTemplate("{ALERTS}");
}
-
- if(defined("PREVIEWTHEME"))
+ if(defined("PREVIEWTHEME"))
{
- themeHandler::showPreview();
+ e_theme::showPreview();
}
diff --git a/e107_handlers/e107_class.php b/e107_handlers/e107_class.php
index e02fc66ad..2d59dd1b2 100644
--- a/e107_handlers/e107_class.php
+++ b/e107_handlers/e107_class.php
@@ -1617,6 +1617,10 @@ class e107
{
$themedir = self::getPref('admintheme');
}
+ elseif(defined('PREVIEWTHEME'))
+ {
+ $themedir = PREVIEWTHEME;
+ }
else
{
$themedir= deftrue('USERTHEME', self::getPref('sitetheme'));
diff --git a/e107_handlers/menu_class.php b/e107_handlers/menu_class.php
index c052e7d2e..51363daf8 100644
--- a/e107_handlers/menu_class.php
+++ b/e107_handlers/menu_class.php
@@ -368,15 +368,16 @@ class e_menu
private function getDataLegacy()
{
$sql = e107::getDb();
- $menu_layout_field = THEME_LAYOUT!=e107::getPref('sitetheme_deflayout') ? THEME_LAYOUT : "";
+ $menu_layout_field = THEME_LAYOUT != e107::getPref('sitetheme_deflayout') ? THEME_LAYOUT : "";
// e107::getCache()->CachePageMD5 = md5(e_LANGUAGE.$menu_layout_field); // Disabled by line 93 of Cache class.
//FIXME add a function to the cache class for this.
- $cacheData = e107::getCache()->retrieve_sys("menus_".USERCLASS_LIST."_".md5(e_LANGUAGE.$menu_layout_field));
-
- // $menu_data = json_decode($cacheData,true);
- $menu_data = e107::unserialize($cacheData);
+ if(!defined('PREVIEWTHEME'))
+ {
+ $cacheData = e107::getCache()->retrieve_sys("menus_".USERCLASS_LIST."_".md5(e_LANGUAGE.$menu_layout_field));
+ $menu_data = e107::unserialize($cacheData);
+ }
$eMenuArea = array();
// $eMenuList = array();
@@ -385,7 +386,9 @@ class e_menu
if(empty($menu_data) || !is_array($menu_data))
{
- $menu_qry = 'SELECT * FROM #menus WHERE menu_location > 0 AND menu_class IN ('.USERCLASS_LIST.') AND menu_layout = "'.$menu_layout_field.'" ORDER BY menu_location,menu_order';
+ $menu_qry = 'SELECT * FROM #menus WHERE menu_location > 0 AND menu_class IN ('.USERCLASS_LIST.') ';
+ $menu_qry .= !defined('PREVIEWTHEME') ? 'AND menu_layout = "'.$menu_layout_field.'" ' : '';
+ $menu_qry .= 'ORDER BY menu_location,menu_order';
if($sql->gen($menu_qry))
{
diff --git a/e107_handlers/theme_handler.php b/e107_handlers/theme_handler.php
index b92feeba7..0a6e75e0a 100644
--- a/e107_handlers/theme_handler.php
+++ b/e107_handlers/theme_handler.php
@@ -90,8 +90,16 @@ class e_theme
if($theme === null)
{
$theme = deftrue('USERTHEME', e107::pref('core','sitetheme'));
+
+ if(defined('PREVIEWTHEME'))
+ {
+ $theme = PREVIEWTHEME;
+ }
+
}
+
+
if(!is_readable(e_THEME.$theme."/layouts/".$key."_layout.html") || !is_readable(e_THEME.$theme."/theme.html"))
{
return false;
@@ -122,6 +130,25 @@ class e_theme
return $LAYOUT;
}
+ public static function showPreview()
+ {
+
+ /*
+ e107::includeLan(e_LANGUAGEDIR.e_LANGUAGE."/admin/lan_theme.php");
+ $text = "