mirror of
https://github.com/e107inc/e107.git
synced 2025-04-20 04:32:01 +02:00
This commit is contained in:
parent
4669285b6f
commit
50e0445807
@ -804,10 +804,14 @@ class theme_admin_ui extends e_admin_ui
|
||||
switch($type)
|
||||
{
|
||||
case "main/main":
|
||||
$text = "<b>".TPVLAN_56."</b><br />"; // Visbility Filter
|
||||
$text .= "<br />".$tp->toHTML(TPVLANHELP_03,true);
|
||||
$text .= "<ul style='padding-left:10px;margin-top:10px'><li>".$tp->toHTML(TPVLANHELP_04,true)."</li>";
|
||||
$text .= "<li>".$tp->toHTML(TPVLANHELP_05,true)."</li></ul>";
|
||||
$text = '<b>'.TPVLAN_56.'</b><br />'; // Visbility Filter
|
||||
$text .= '<br />'.$tp->toHTML(TPVLANHELP_03,true);
|
||||
$text .= '<ul style="padding-left:10px;margin-top:10px">
|
||||
<li>'.$tp->toHTML(TPVLANHELP_06,true).'</li>
|
||||
<li>'.$tp->toHTML(TPVLANHELP_04,true).'</li>
|
||||
<li>'.$tp->toHTML(TPVLANHELP_05,true).'</li>
|
||||
</ul>';
|
||||
|
||||
break;
|
||||
|
||||
case "label2":
|
||||
@ -815,7 +819,7 @@ class theme_admin_ui extends e_admin_ui
|
||||
break;
|
||||
|
||||
default:
|
||||
$text = TPVLANHELP_01."<br /><br />".TPVLANHELP_02;
|
||||
$text = TPVLANHELP_01.'<br /><br />'.TPVLANHELP_02;
|
||||
}
|
||||
|
||||
|
||||
|
@ -21,7 +21,9 @@ if(!defined('ADMIN_AREA'))
|
||||
define('ADMIN_AREA', false);
|
||||
}
|
||||
|
||||
e_theme::initThemeLayout();
|
||||
e107::getDebug()->logTime('(Header Top)');
|
||||
|
||||
e_theme::initThemeLayout(); // set THEME_LAYOUT
|
||||
|
||||
if(!isset($_E107['no_menus']))
|
||||
{
|
||||
@ -32,13 +34,13 @@ if(!isset($_E107['no_menus']))
|
||||
$e107 = e107::getInstance();
|
||||
$sql = e107::getDb();
|
||||
|
||||
e107::getDebug()->logTime('(Header Top)');
|
||||
|
||||
if($themeSC = e107::getScBatch('theme')) // init theme_shortcodes after THEME_LAYOUT is available.
|
||||
{
|
||||
$themeSC->init();
|
||||
unset($themeSC);
|
||||
}
|
||||
e107::getRender()->init();
|
||||
e107::getRender()->init(); // init 'theme' class.
|
||||
|
||||
|
||||
//e107::js('core', 'bootstrap/js/bootstrap-tooltip.js','jquery');
|
||||
|
@ -496,7 +496,7 @@ class e_theme
|
||||
* @param string $url
|
||||
* @return string
|
||||
*/
|
||||
private function filterTrackers($url)
|
||||
private static function filterTrackers($url)
|
||||
{
|
||||
if(strpos($url,'?') === false || empty($url))
|
||||
{
|
||||
@ -514,27 +514,26 @@ class e_theme
|
||||
|
||||
|
||||
/**
|
||||
* Calculate THEME_LAYOUT constant based on theme preferences and current URL.
|
||||
* Calculate THEME_LAYOUT constant based on theme preferences and current request. (url, script, route)
|
||||
*
|
||||
* @param array $cusPagePref
|
||||
* @param array $cusPagePref
|
||||
* @param string $defaultLayout
|
||||
* @param string $request_url (optional) defaults to e_REQUEST_URL
|
||||
* @param string $request_script $_SERVER['SCRIPT_FILENAME'];
|
||||
* @param array $request url => (optional) defaults to e_REQUEST_URL, 'script'=> $_SERVER['SCRIPT_FILENAME'], 'route' => e_ROUTE
|
||||
* @return int|string
|
||||
*/
|
||||
public function getThemeLayout($cusPagePref, $defaultLayout, $request_url = null, $request_script = null)
|
||||
public static function getThemeLayout($cusPagePref, $defaultLayout, $request)
|
||||
{
|
||||
$request_url = isset($request['url']) ? $request['url'] : null;
|
||||
$request_script = isset($request['script']) ? $request['script'] : null;
|
||||
|
||||
if($request_url === null)
|
||||
{
|
||||
$request_url = e_REQUEST_URL;
|
||||
}
|
||||
|
||||
|
||||
$def = ""; // no custom pages found yet.
|
||||
$matches = array();
|
||||
|
||||
|
||||
if(is_array($cusPagePref) && count($cusPagePref)>0) // check if we match a page in layout custompages.
|
||||
{
|
||||
//e_SELF.(e_QUERY ? '?'.e_QUERY : '');
|
||||
@ -542,7 +541,7 @@ class e_theme
|
||||
// FIX - check against urldecoded strings
|
||||
$c_url = rtrim(rawurldecode($c_url), '?');
|
||||
|
||||
$c_url = $this->filterTrackers($c_url);
|
||||
$c_url = self::filterTrackers($c_url);
|
||||
|
||||
// First check all layouts for exact matches - possible fix for future issues?.
|
||||
/*
|
||||
@ -565,13 +564,19 @@ class e_theme
|
||||
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'))
|
||||
if(in_array('FRONTPAGE', $cusPageArray) && ($c_url == SITEURL || rtrim($c_url, '/') === SITEURL.'index.php'))
|
||||
{
|
||||
return $lyout;
|
||||
}
|
||||
|
||||
foreach($cusPageArray as $kpage)
|
||||
{
|
||||
// e_ROUTE
|
||||
if(!empty($request['route']) && (strpos($kpage,':'.$request['route']) === 0))
|
||||
{
|
||||
return $lyout;
|
||||
}
|
||||
|
||||
$kpage = str_replace('$', '$', $kpage); // convert database encoding.
|
||||
|
||||
$lastChar = substr($kpage, -1);
|
||||
@ -585,8 +590,6 @@ class e_theme
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if($lastChar === '!')
|
||||
{
|
||||
|
||||
@ -1218,6 +1221,10 @@ class e_theme
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the THEME_STYLE constant
|
||||
* @param $pref
|
||||
*/
|
||||
public static function initThemeStyle($pref)
|
||||
{
|
||||
|
||||
@ -1240,21 +1247,35 @@ class e_theme
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* define the THEME_LAYOUT constant.
|
||||
* @return null
|
||||
*/
|
||||
public static function initThemeLayout()
|
||||
{
|
||||
if(!defined('THEME_LAYOUT'))
|
||||
if(defined('THEME_LAYOUT'))
|
||||
{
|
||||
$sitetheme_custompages = e107::getPref('sitetheme_custompages', array());
|
||||
$sitetheme_deflayout = e107::getPref('sitetheme_deflayout');
|
||||
|
||||
$user_pref = e107::getUser()->getPref();
|
||||
$cusPagePref = !empty($user_pref['sitetheme_custompages']) ? $user_pref['sitetheme_custompages'] : $sitetheme_custompages;
|
||||
$cusPageDef = !empty($user_pref['sitetheme_deflayout']) ? $user_pref['sitetheme_deflayout'] : $sitetheme_deflayout;
|
||||
$deflayout = e107::getTheme()->getThemeLayout($cusPagePref, $cusPageDef, e_REQUEST_URL, varset($_SERVER['SCRIPT_FILENAME']));
|
||||
define('THEME_LAYOUT',$deflayout);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
$sitetheme_custompages = e107::getPref('sitetheme_custompages', array());
|
||||
$sitetheme_deflayout = e107::getPref('sitetheme_deflayout');
|
||||
|
||||
$user_pref = e107::getUser()->getPref();
|
||||
$cusPagePref = !empty($user_pref['sitetheme_custompages']) ? $user_pref['sitetheme_custompages'] : $sitetheme_custompages;
|
||||
$cusPageDef = !empty($user_pref['sitetheme_deflayout']) ? $user_pref['sitetheme_deflayout'] : $sitetheme_deflayout;
|
||||
|
||||
$request = [
|
||||
'url' => e_REQUEST_URL,
|
||||
'script' => varset($_SERVER['SCRIPT_FILENAME'],null),
|
||||
'route' => deftrue('e_ROUTE', null),
|
||||
];
|
||||
|
||||
$deflayout = self::getThemeLayout($cusPagePref, $cusPageDef, $request);
|
||||
|
||||
define('THEME_LAYOUT',$deflayout);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -1317,7 +1338,7 @@ class e_theme
|
||||
define('THEME_LEGACY', false);
|
||||
define('USERTHEME', 'bootstrap3');
|
||||
define('BOOTSTRAP', 3);
|
||||
define('FONTAWESOME', 4);
|
||||
define('FONTAWESOME', 5);
|
||||
|
||||
if (ADMIN && (e_ADMIN_AREA !== true))
|
||||
{
|
||||
|
@ -139,4 +139,5 @@ define("TPVLANHELP_03", "By default, the visibility filter will change the theme
|
||||
define("TPVLANHELP_04", "End lines with a [b]![/b] to exactly match against the end of URL.");
|
||||
define("TPVLANHELP_05", "End lines with a [b]$[/b] to exactly match against the end of script path.");
|
||||
|
||||
define("TPVLANHELP_06", "Start lines with a [b]:[/b] to partially or fully match against the e_ROUTE constant.");
|
||||
define("TPVLAN_97", "This theme requires a newer version of e107.");
|
@ -452,6 +452,8 @@
|
||||
array (
|
||||
0 => 'forum',
|
||||
1 => 'user.php!', // <-- exact match of URL
|
||||
2 => ':forum/index',
|
||||
|
||||
// 2 => '/user', // <-- Expecting URL to match both user and usersetting since it contains no "!"
|
||||
),
|
||||
'jumbotron_sidebar_right' =>
|
||||
@ -469,6 +471,7 @@
|
||||
3 => '/user/settings?',
|
||||
4 => 'script.php$',
|
||||
5 => '/news/?bla',
|
||||
6 => ':news/view/index',
|
||||
),
|
||||
'script_match' =>
|
||||
array(
|
||||
@ -506,13 +509,17 @@
|
||||
22 => array('url' => SITEURL."news/my-news-title", 'script' => '/news.php', 'expected' => 'jumbotron_sidebar_right'),
|
||||
23 => array('url' => SITEURL."news/?bla", 'script' => '/news.php', 'expected' => 'other_layout'),
|
||||
|
||||
// Using e_ROUTE;
|
||||
24 => array('url' => 'whatever.php', 'script'=>'whatever.php', 'route'=> 'news/view/index', 'expected'=> 'other_layout'),
|
||||
25 => array('url' => 'whatever.php', 'script'=>'whatever.php', 'route'=> 'forum/index', 'expected'=> 'jumbotron_full'),
|
||||
|
||||
);
|
||||
|
||||
foreach($tests as $item=>$var)
|
||||
{
|
||||
$var['script'] = isset($var['script']) ? $var['script'] : null;
|
||||
|
||||
$result = $this->tm->getThemeLayout($pref, $defaultLayout, $var['url'], $var['script']);
|
||||
$result = $this->tm::getThemeLayout($pref, $defaultLayout, $var);
|
||||
$this->assertEquals($var['expected'],$result, "Wrong theme layout returned for item [".$item."] ".$var['url']);
|
||||
// echo $var['url']."\t\t\t".$result."\n\n";
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user