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']);
|
e_theme::initTheme($pref['admintheme']);
|
||||||
}
|
}
|
||||||
elseif (USERTHEME !== false && e_ADMIN_AREA === false)
|
elseif (deftrue('USERTHEME') && e_ADMIN_AREA === false)
|
||||||
{
|
{
|
||||||
e_theme::initTheme(USERTHEME);
|
e_theme::initTheme(USERTHEME);
|
||||||
}
|
}
|
||||||
|
@@ -826,10 +826,9 @@ e107::getDebug()->logTime('Render Other');
|
|||||||
echo e107::getParser()->parseTemplate("{ALERTS}");
|
echo e107::getParser()->parseTemplate("{ALERTS}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(defined("PREVIEWTHEME"))
|
if(defined("PREVIEWTHEME"))
|
||||||
{
|
{
|
||||||
themeHandler::showPreview();
|
e_theme::showPreview();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1617,6 +1617,10 @@ class e107
|
|||||||
{
|
{
|
||||||
$themedir = self::getPref('admintheme');
|
$themedir = self::getPref('admintheme');
|
||||||
}
|
}
|
||||||
|
elseif(defined('PREVIEWTHEME'))
|
||||||
|
{
|
||||||
|
$themedir = PREVIEWTHEME;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$themedir= deftrue('USERTHEME', self::getPref('sitetheme'));
|
$themedir= deftrue('USERTHEME', self::getPref('sitetheme'));
|
||||||
|
@@ -368,15 +368,16 @@ class e_menu
|
|||||||
private function getDataLegacy()
|
private function getDataLegacy()
|
||||||
{
|
{
|
||||||
$sql = e107::getDb();
|
$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.
|
// 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.
|
//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));
|
$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);
|
$menu_data = e107::unserialize($cacheData);
|
||||||
|
}
|
||||||
|
|
||||||
$eMenuArea = array();
|
$eMenuArea = array();
|
||||||
// $eMenuList = array();
|
// $eMenuList = array();
|
||||||
@@ -385,7 +386,9 @@ class e_menu
|
|||||||
|
|
||||||
if(empty($menu_data) || !is_array($menu_data))
|
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))
|
if($sql->gen($menu_qry))
|
||||||
{
|
{
|
||||||
|
@@ -90,8 +90,16 @@ class e_theme
|
|||||||
if($theme === null)
|
if($theme === null)
|
||||||
{
|
{
|
||||||
$theme = deftrue('USERTHEME', e107::pref('core','sitetheme'));
|
$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"))
|
if(!is_readable(e_THEME.$theme."/layouts/".$key."_layout.html") || !is_readable(e_THEME.$theme."/theme.html"))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@@ -122,6 +130,25 @@ class e_theme
|
|||||||
return $LAYOUT;
|
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.
|
* Load library dependencies.
|
||||||
@@ -1050,24 +1077,33 @@ class e_theme
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function initThemePreview($id)
|
private static function initThemePreview($themeDir)
|
||||||
{
|
{
|
||||||
$themeobj = new themeHandler;
|
$themeDir = filter_var($themeDir);
|
||||||
$themeArray = e107::getTheme()->getList('id');
|
$themeDir = basename($themeDir);
|
||||||
$id = (int) $id;
|
|
||||||
|
|
||||||
$themeDef = $themeobj->findDefault($themeArray[$id]);
|
$themeobj = new themeHandler;
|
||||||
|
$themeDef = $themeobj->findDefault($themeDir);
|
||||||
|
|
||||||
define('THEME_LAYOUT', $themeDef);
|
define('THEME_LAYOUT', $themeDef);
|
||||||
define('PREVIEWTHEME', e_THEME . $themeArray[$id] . '/');
|
define('PREVIEWTHEME', $themeDir);
|
||||||
define('PREVIEWTHEMENAME', $themeArray[$id]);
|
|
||||||
define('THEME', e_THEME . $themeArray[$id] . '/');
|
|
||||||
define('THEME_ABS', e_THEME_ABS . $themeArray[$id] . '/');
|
|
||||||
|
|
||||||
$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);
|
define('THEME_LEGACY', $legacy);
|
||||||
unset($action);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1117,10 +1153,9 @@ class e_theme
|
|||||||
e107::getDebug()->logTime('Theme Check');
|
e107::getDebug()->logTime('Theme Check');
|
||||||
|
|
||||||
// e_QUERY not set when in single entry mod
|
// 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($_GET['themepreview']);
|
||||||
self::initThemePreview($id);
|
|
||||||
self::initThemeLayout($pref);
|
self::initThemeLayout($pref);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2989,22 +3024,6 @@ class themeHandler
|
|||||||
exit;
|
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.
|
* Set Theme as Main Theme.
|
||||||
@@ -3178,9 +3197,9 @@ class themeHandler
|
|||||||
return e107::getParser()->filter($_POST['layout_default'], 'w');
|
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);
|
$l = e107::getTheme($theme)->get(); // $this->getThemeInfo($theme);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user