mirror of
https://github.com/e107inc/e107.git
synced 2025-08-04 05:37:32 +02:00
Theme Preview working again. Use ?themepreview=themeDir
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
@@ -826,10 +826,9 @@ e107::getDebug()->logTime('Render Other');
|
||||
echo e107::getParser()->parseTemplate("{ALERTS}");
|
||||
}
|
||||
|
||||
|
||||
if(defined("PREVIEWTHEME"))
|
||||
{
|
||||
themeHandler::showPreview();
|
||||
e_theme::showPreview();
|
||||
}
|
||||
|
||||
|
||||
|
@@ -1617,6 +1617,10 @@ class e107
|
||||
{
|
||||
$themedir = self::getPref('admintheme');
|
||||
}
|
||||
elseif(defined('PREVIEWTHEME'))
|
||||
{
|
||||
$themedir = PREVIEWTHEME;
|
||||
}
|
||||
else
|
||||
{
|
||||
$themedir= deftrue('USERTHEME', self::getPref('sitetheme'));
|
||||
|
@@ -373,10 +373,11 @@ class e_menu
|
||||
// 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.
|
||||
|
||||
if(!defined('PREVIEWTHEME'))
|
||||
{
|
||||
$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);
|
||||
}
|
||||
|
||||
$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))
|
||||
{
|
||||
|
@@ -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 = "<br /><div class='indent'>".TPVLAN_1.".</div><br />";
|
||||
|
||||
$srch = array(
|
||||
'{PREVIEWTHEMENAME}' => PREVIEWTHEME,
|
||||
'{e_ADMIN}' => e_ADMIN
|
||||
);*/
|
||||
|
||||
// $text = str_replace(array_keys($srch),$srch,$text);
|
||||
echo "<div class='alert alert-warning alert-block'>Theme Preview Mode: <b>" . PREVIEWTHEME . "</b></div>";
|
||||
|
||||
// global $ns;
|
||||
// $ns->tablerender(TPVLAN_2, $text);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Load library dependencies.
|
||||
@@ -1050,24 +1077,33 @@ class e_theme
|
||||
|
||||
}
|
||||
|
||||
private static function initThemePreview($id)
|
||||
private static function initThemePreview($themeDir)
|
||||
{
|
||||
$themeobj = new themeHandler;
|
||||
$themeArray = e107::getTheme()->getList('id');
|
||||
$id = (int) $id;
|
||||
$themeDir = filter_var($themeDir);
|
||||
$themeDir = basename($themeDir);
|
||||
|
||||
$themeDef = $themeobj->findDefault($themeArray[$id]);
|
||||
$themeobj = new themeHandler;
|
||||
$themeDef = $themeobj->findDefault($themeDir);
|
||||
|
||||
define('THEME_LAYOUT', $themeDef);
|
||||
define('PREVIEWTHEME', e_THEME . $themeArray[$id] . '/');
|
||||
define('PREVIEWTHEMENAME', $themeArray[$id]);
|
||||
define('THEME', e_THEME . $themeArray[$id] . '/');
|
||||
define('THEME_ABS', e_THEME_ABS . $themeArray[$id] . '/');
|
||||
define('PREVIEWTHEME', $themeDir);
|
||||
|
||||
$legacy = (file_exists(e_THEME_ABS . $themeArray[$id] . '/theme.xml') === false);
|
||||
define('THEME', e_THEME . $themeDir . '/');
|
||||
define('THEME_ABS', e_THEME_ABS . $themeDir . '/');
|
||||
|
||||
$legacy = (file_exists(e_THEME . $themeDir . '/theme.xml') === false);
|
||||
|
||||
if($legacy === true)
|
||||
{
|
||||
$version = 1.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$version = (file_exists(e_THEME . $themeDir . '/theme.html')) ? 2.3 : 2.0;
|
||||
}
|
||||
|
||||
define('THEME_VERSION', $version);
|
||||
define('THEME_LEGACY', $legacy);
|
||||
unset($action);
|
||||
|
||||
}
|
||||
|
||||
@@ -1117,10 +1153,9 @@ class e_theme
|
||||
e107::getDebug()->logTime('Theme Check');
|
||||
|
||||
// e_QUERY not set when in single entry mod
|
||||
if (ADMIN && strpos($_SERVER['QUERY_STRING'], 'themepreview') !== false)
|
||||
if (getperms('0') && !empty($_GET['themepreview']))
|
||||
{
|
||||
list($action, $id) = explode('.', $_SERVER['QUERY_STRING']);
|
||||
self::initThemePreview($id);
|
||||
self::initThemePreview($_GET['themepreview']);
|
||||
self::initThemeLayout($pref);
|
||||
return;
|
||||
}
|
||||
@@ -2989,22 +3024,6 @@ class themeHandler
|
||||
exit;
|
||||
}
|
||||
|
||||
static function showPreview()
|
||||
{
|
||||
e107::includeLan(e_LANGUAGEDIR.e_LANGUAGE."/admin/lan_theme.php");
|
||||
$text = "<br /><div class='indent'>".TPVLAN_1.".</div><br />";
|
||||
|
||||
$srch = array(
|
||||
'{PREVIEWTHEMENAME}' => PREVIEWTHEMENAME,
|
||||
'{e_ADMIN}' => e_ADMIN
|
||||
);
|
||||
|
||||
$text = str_replace(array_keys($srch),$srch,$text);
|
||||
|
||||
global $ns;
|
||||
$ns->tablerender(TPVLAN_2, $text);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set Theme as Main Theme.
|
||||
@@ -3178,9 +3197,9 @@ class themeHandler
|
||||
return e107::getParser()->filter($_POST['layout_default'], 'w');
|
||||
}
|
||||
|
||||
$l = $this->themeArray[$theme];
|
||||
// $l = $this->themeArray[$theme];
|
||||
|
||||
if(!$l)
|
||||
// if(!$l)
|
||||
{
|
||||
$l = e107::getTheme($theme)->get(); // $this->getThemeInfo($theme);
|
||||
}
|
||||
|
Reference in New Issue
Block a user