mirror of
https://github.com/e107inc/e107.git
synced 2025-07-26 01:11:28 +02:00
Moved THEME_LAYOUT calculation out of class2.php and into theme_handler.php
This commit is contained in:
17
class2.php
17
class2.php
@@ -1321,7 +1321,7 @@ $sql->db_Mark_Time('Find/Load Theme-Layout'); // needs to run after checkvalidth
|
|||||||
|
|
||||||
if(!defined("THEME_LAYOUT"))
|
if(!defined("THEME_LAYOUT"))
|
||||||
{
|
{
|
||||||
$def = ""; // no custom pages found yet.
|
/* $def = ""; // no custom pages found yet.
|
||||||
$cusPagePref = (varset($user_pref['sitetheme_custompages'])) ? $user_pref['sitetheme_custompages'] : varset($pref['sitetheme_custompages']);
|
$cusPagePref = (varset($user_pref['sitetheme_custompages'])) ? $user_pref['sitetheme_custompages'] : varset($pref['sitetheme_custompages']);
|
||||||
|
|
||||||
if(is_array($cusPagePref) && count($cusPagePref)>0) // check if we match a page in layout custompages.
|
if(is_array($cusPagePref) && count($cusPagePref)>0) // check if we match a page in layout custompages.
|
||||||
@@ -1330,6 +1330,8 @@ if(!defined("THEME_LAYOUT"))
|
|||||||
$c_url = str_replace(array('&'), array('&'), e_REQUEST_URL);//.(e_QUERY ? '?'.e_QUERY : '');// mod_rewrite support
|
$c_url = str_replace(array('&'), array('&'), e_REQUEST_URL);//.(e_QUERY ? '?'.e_QUERY : '');// mod_rewrite support
|
||||||
// FIX - check against urldecoded strings
|
// FIX - check against urldecoded strings
|
||||||
$c_url = rtrim(rawurldecode($c_url), '?');
|
$c_url = rtrim(rawurldecode($c_url), '?');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach($cusPagePref as $lyout=>$cusPageArray)
|
foreach($cusPagePref as $lyout=>$cusPageArray)
|
||||||
{
|
{
|
||||||
@@ -1362,7 +1364,7 @@ if(!defined("THEME_LAYOUT"))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
/* Done via e_IFRAME and USER_AREA force combination, check moved to menu.php
|
/* Done via e_IFRAME and USER_AREA force combination, check moved to menu.php
|
||||||
if(strpos(e_SELF.'?'.e_QUERY, $ADMIN_DIRECTORY. 'menus.php?configure')!==FALSE)
|
if(strpos(e_SELF.'?'.e_QUERY, $ADMIN_DIRECTORY. 'menus.php?configure')!==FALSE)
|
||||||
@@ -1384,7 +1386,7 @@ if(!defined("THEME_LAYOUT"))
|
|||||||
{
|
{
|
||||||
define("THEME_STYLE", 'style.css');
|
define("THEME_STYLE", 'style.css');
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
if($def) // custom-page layout.
|
if($def) // custom-page layout.
|
||||||
{
|
{
|
||||||
define("THEME_LAYOUT",$def);
|
define("THEME_LAYOUT",$def);
|
||||||
@@ -1392,11 +1394,12 @@ if(!defined("THEME_LAYOUT"))
|
|||||||
else // default layout.
|
else // default layout.
|
||||||
{
|
{
|
||||||
$deflayout = (!isset($user_pref['sitetheme_deflayout'])) ? varset($pref['sitetheme_deflayout']) : $user_pref['sitetheme_deflayout'];
|
$deflayout = (!isset($user_pref['sitetheme_deflayout'])) ? varset($pref['sitetheme_deflayout']) : $user_pref['sitetheme_deflayout'];
|
||||||
/**
|
|
||||||
* @ignore
|
|
||||||
*/
|
|
||||||
define("THEME_LAYOUT",$deflayout); // default layout.
|
define("THEME_LAYOUT",$deflayout); // default layout.
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
$deflayout = e107::getTheme()->getThemeLayout();
|
||||||
|
define("THEME_LAYOUT",$deflayout);
|
||||||
|
|
||||||
unset($def,$lyout,$cusPagePref,$menus_equery,$deflayout);
|
unset($def,$lyout,$cusPagePref,$menus_equery,$deflayout);
|
||||||
|
|
||||||
|
@@ -24,7 +24,7 @@ $sql = e107::getDb();
|
|||||||
$sql->db_Mark_Time('(Header Top)');
|
$sql->db_Mark_Time('(Header Top)');
|
||||||
|
|
||||||
// Load library dependencies.
|
// Load library dependencies.
|
||||||
e107::getTheme('current', true)->loadLibrary();
|
e107::getTheme('current')->loadLibrary();
|
||||||
|
|
||||||
//e107::js('core', 'bootstrap/js/bootstrap-tooltip.js','jquery');
|
//e107::js('core', 'bootstrap/js/bootstrap-tooltip.js','jquery');
|
||||||
// e107::css('core', 'bootstrap/css/tooltip.css','jquery');
|
// e107::css('core', 'bootstrap/css/tooltip.css','jquery');
|
||||||
|
@@ -625,7 +625,7 @@ class e_admin_log
|
|||||||
/**
|
/**
|
||||||
* Add a message to the queue
|
* Add a message to the queue
|
||||||
*
|
*
|
||||||
* @param string $text - the message text for logging/display
|
* @param string|array $text - the message text for logging/display
|
||||||
* @param int $type - the 'importance' of the message. E_MESSAGE_SUCCESS|E_MESSAGE_ERROR|E_MESSAGE_INFO|E_MESSAGE_DEBUG|E_MESSAGE_NODISPLAY
|
* @param int $type - the 'importance' of the message. E_MESSAGE_SUCCESS|E_MESSAGE_ERROR|E_MESSAGE_INFO|E_MESSAGE_DEBUG|E_MESSAGE_NODISPLAY
|
||||||
* (Values as used in message handler, apart from the last, which causes the message to not be passed to the message handler
|
* (Values as used in message handler, apart from the last, which causes the message to not be passed to the message handler
|
||||||
* @param boolean|int $logLevel - TRUE to give same importance as for message display. FALSE to not log.
|
* @param boolean|int $logLevel - TRUE to give same importance as for message display. FALSE to not log.
|
||||||
@@ -685,7 +685,7 @@ class e_admin_log
|
|||||||
/**
|
/**
|
||||||
* Add a success message to the log queue
|
* Add a success message to the log queue
|
||||||
*
|
*
|
||||||
* @param string $text
|
* @param string|array $text
|
||||||
* @param boolean $message if true - register with eMessage handler
|
* @param boolean $message if true - register with eMessage handler
|
||||||
* @param boolean $session add session message
|
* @param boolean $session add session message
|
||||||
* @return e_admin_log
|
* @return e_admin_log
|
||||||
|
@@ -1523,7 +1523,16 @@ class e107
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return self::getSingleton('e_theme', true, null, array('themedir'=> $themedir, 'force'=> $clearCache));
|
// e107::getDb()->db_Mark_time('start e_theme');
|
||||||
|
/** @var e_theme $ret */
|
||||||
|
$ret = self::getSingleton('e_theme', true, null, array('themedir'=> $themedir, 'force'=> $clearCache));
|
||||||
|
|
||||||
|
// e107::getDb()->db_Mark_time('end e_theme');
|
||||||
|
/* echo "<pre>";
|
||||||
|
debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
|
||||||
|
echo "</pre>";*/
|
||||||
|
|
||||||
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -2066,7 +2066,7 @@ class e_library_manager
|
|||||||
{
|
{
|
||||||
$excludedLibraries = array();
|
$excludedLibraries = array();
|
||||||
|
|
||||||
$exclude = e107::getTheme('current', true)->cssAttribute('auto', 'exclude');
|
$exclude = e107::getTheme('current', false)->cssAttribute('auto', 'exclude');
|
||||||
|
|
||||||
if($exclude)
|
if($exclude)
|
||||||
{
|
{
|
||||||
|
@@ -71,7 +71,6 @@ class e_theme
|
|||||||
|
|
||||||
if(empty($this->_data) || $options['force'] === true)
|
if(empty($this->_data) || $options['force'] === true)
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->load($options['force']);
|
$this->load($options['force']);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -280,6 +279,85 @@ class e_theme
|
|||||||
return isset($this->_data[$this->_current][$var]) ? $this->_data[$this->_current][$var] : false;
|
return isset($this->_data[$this->_current][$var]) ? $this->_data[$this->_current][$var] : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculate THEME_LAYOUT constant based on theme preferences and current URL.
|
||||||
|
* @param null $url
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getThemeLayout($request_url = null)
|
||||||
|
{
|
||||||
|
if($request_url === null)
|
||||||
|
{
|
||||||
|
$request_url = e_REQUEST_URL;
|
||||||
|
}
|
||||||
|
|
||||||
|
$user_pref = e107::getUser()->getPref();
|
||||||
|
$pref = e107::getPref();
|
||||||
|
|
||||||
|
|
||||||
|
$def = ""; // no custom pages found yet.
|
||||||
|
$cusPagePref = (varset($user_pref['sitetheme_custompages'])) ? $user_pref['sitetheme_custompages'] : varset($pref['sitetheme_custompages']);
|
||||||
|
|
||||||
|
if(is_array($cusPagePref) && count($cusPagePref)>0) // check if we match a page in layout custompages.
|
||||||
|
{
|
||||||
|
//e_SELF.(e_QUERY ? '?'.e_QUERY : '');
|
||||||
|
$c_url = str_replace(array('&'), array('&'), $request_url);//.(e_QUERY ? '?'.e_QUERY : '');// mod_rewrite support
|
||||||
|
// FIX - check against urldecoded strings
|
||||||
|
$c_url = rtrim(rawurldecode($c_url), '?');
|
||||||
|
|
||||||
|
foreach($cusPagePref as $lyout=>$cusPageArray)
|
||||||
|
{
|
||||||
|
if(!is_array($cusPageArray)) { continue; }
|
||||||
|
|
||||||
|
// NEW - Front page template check - early
|
||||||
|
if(in_array('FRONTPAGE', $cusPageArray) && ($c_url == SITEURL || rtrim($c_url, '/') == SITEURL.'index.php'))
|
||||||
|
{
|
||||||
|
$def = $lyout;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
foreach($cusPageArray as $kpage)
|
||||||
|
{
|
||||||
|
if(substr($kpage, -1) === '!' )
|
||||||
|
{
|
||||||
|
$kpage = rtrim($kpage, '!');
|
||||||
|
if(substr($c_url, - strlen($kpage)) === $kpage)
|
||||||
|
{
|
||||||
|
$def = $lyout;
|
||||||
|
break 2;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($kpage && ($kpage == defset('e_PAGE') || strpos($c_url, $kpage) !== false))
|
||||||
|
{
|
||||||
|
// $def = ($lyout) ? $lyout : "legacyCustom";
|
||||||
|
$def = $lyout;
|
||||||
|
break 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if($def) // custom-page layout.
|
||||||
|
{
|
||||||
|
$layout = $def;
|
||||||
|
}
|
||||||
|
else // default layout.
|
||||||
|
{
|
||||||
|
$layout = (!isset($user_pref['sitetheme_deflayout'])) ? varset($pref['sitetheme_deflayout']) : $user_pref['sitetheme_deflayout'];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $layout;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a list of all local themes in various formats.
|
* Return a list of all local themes in various formats.
|
||||||
* Replaces getThemeList
|
* Replaces getThemeList
|
||||||
|
Reference in New Issue
Block a user