mirror of
https://github.com/e107inc/e107.git
synced 2025-08-07 07:06:30 +02:00
Made getThemeLayout() more flexible.
This commit is contained in:
98
class2.php
98
class2.php
@@ -1346,90 +1346,30 @@ $theme_pref = varset($pref['sitetheme_pref']);
|
||||
// --------------------------------------------------------------
|
||||
$sql->db_Mark_Time('Find/Load Theme-Layout'); // needs to run after checkvalidtheme() (for theme previewing).
|
||||
|
||||
if(deftrue('e_ADMIN_AREA'))
|
||||
{
|
||||
define("THEME_STYLE", $pref['admincss']);
|
||||
}
|
||||
elseif(varset($pref['themecss']) && file_exists(THEME.$pref['themecss']))
|
||||
{
|
||||
define("THEME_STYLE", $pref['themecss']);
|
||||
}
|
||||
else
|
||||
{
|
||||
define("THEME_STYLE", 'style.css');
|
||||
}
|
||||
|
||||
if(!defined("THEME_LAYOUT"))
|
||||
{
|
||||
/* $def = ""; // no custom pages found yet.
|
||||
$cusPagePref = (varset($user_pref['sitetheme_custompages'])) ? $user_pref['sitetheme_custompages'] : varset($pref['sitetheme_custompages']);
|
||||
$user_pref = e107::getUser()->getPref();
|
||||
$pref = e107::getPref();
|
||||
$cusPagePref = (varset($user_pref['sitetheme_custompages'])) ? $user_pref['sitetheme_custompages'] : varset($pref['sitetheme_custompages']);
|
||||
$cusPageDef = (!isset($user_pref['sitetheme_deflayout'])) ? varset($pref['sitetheme_deflayout']) : $user_pref['sitetheme_deflayout'];
|
||||
$deflayout = e107::getTheme()->getThemeLayout($cusPagePref, $cusPageDef);
|
||||
|
||||
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('&'), e_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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
/* 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)
|
||||
{
|
||||
$menus_equery = explode('.', e_QUERY);
|
||||
$def = $menus_equery[1];
|
||||
}
|
||||
*/
|
||||
|
||||
if(deftrue('e_ADMIN_AREA'))
|
||||
{
|
||||
define("THEME_STYLE", $pref['admincss']);
|
||||
}
|
||||
elseif(varset($pref['themecss']) && file_exists(THEME.$pref['themecss']))
|
||||
{
|
||||
define("THEME_STYLE", $pref['themecss']);
|
||||
}
|
||||
else
|
||||
{
|
||||
define("THEME_STYLE", 'style.css');
|
||||
}
|
||||
/*
|
||||
if($def) // custom-page layout.
|
||||
{
|
||||
define("THEME_LAYOUT",$def);
|
||||
}
|
||||
else // default layout.
|
||||
{
|
||||
$deflayout = (!isset($user_pref['sitetheme_deflayout'])) ? varset($pref['sitetheme_deflayout']) : $user_pref['sitetheme_deflayout'];
|
||||
|
||||
define("THEME_LAYOUT",$deflayout); // default layout.
|
||||
}*/
|
||||
|
||||
$deflayout = e107::getTheme()->getThemeLayout();
|
||||
define("THEME_LAYOUT",$deflayout);
|
||||
|
||||
unset($def,$lyout,$cusPagePref,$menus_equery,$deflayout);
|
||||
|
||||
unset($cusPageDef,$lyout,$cusPagePref,$menus_equery,$deflayout);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
@@ -488,7 +488,7 @@ class e_parse extends e_parser
|
||||
* @param boolean|string $mod [optional] model = admin-ui usage. The 'no_html' and 'no_php' modifiers blanket prevent HTML and PHP posting regardless of posting permissions. (used in logging)
|
||||
* The 'pReFs' value is for internal use only, when saving prefs, to prevent sanitisation of HTML.
|
||||
* @param mixed $parm [optional]
|
||||
* @return string
|
||||
* @return string|array
|
||||
* @todo complete the documentation of this essential method
|
||||
*/
|
||||
public function toDB($data, $nostrip =false, $no_encode = false, $mod = false, $parm = null)
|
||||
@@ -498,11 +498,13 @@ class e_parse extends e_parser
|
||||
if (is_array($data))
|
||||
{
|
||||
$ret = array();
|
||||
|
||||
foreach ($data as $key => $var)
|
||||
{
|
||||
//Fix - sanitize keys as well
|
||||
$ret[$this->toDB($key, $nostrip, $no_encode, $mod, $parm)] = $this->toDB($var, $nostrip, $no_encode, $mod, $parm);
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
@@ -1980,14 +1982,18 @@ class e_parse extends e_parser
|
||||
if(is_readable(e_PLUGIN.$hook."/e_tohtml.php"))
|
||||
{
|
||||
require_once(e_PLUGIN.$hook."/e_tohtml.php");
|
||||
|
||||
$hook_class = "e_tohtml_".$hook;
|
||||
|
||||
$this->e_hook[$hook] = new $hook_class;
|
||||
}
|
||||
}
|
||||
|
||||
if(is_object( $this->e_hook[$hook]))
|
||||
{
|
||||
$sub_blk = $this->e_hook[$hook]->to_html($sub_blk, $opts['context']);
|
||||
/** @var e_tohtml_linkwords $deprecatedHook */
|
||||
$deprecatedHook = $this->e_hook[$hook];
|
||||
$sub_blk = $deprecatedHook->to_html($sub_blk, $opts['context']);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3736,9 +3742,10 @@ class e_parse extends e_parser
|
||||
* Start Fresh and Build on it over time to become eventual replacement to e_parse.
|
||||
* Cameron's DOM-based parser.
|
||||
*
|
||||
* @method replaceConstants($file, $string)
|
||||
* @method replaceConstants($text, $mode = '', $all = false)
|
||||
* @method toAttribute($title)
|
||||
* @method thumbUrl($icon)
|
||||
* @method thumbDimensions()
|
||||
*/
|
||||
class e_parser
|
||||
{
|
||||
@@ -3884,11 +3891,11 @@ class e_parser
|
||||
* Add leading zeros to a number. eg. 3 might become 000003
|
||||
* @param $num integer
|
||||
* @param $numDigits - total number of digits
|
||||
* @return number with leading zeros.
|
||||
* @return string number with leading zeros.
|
||||
*/
|
||||
public function leadingZeros($num,$numDigits)
|
||||
{
|
||||
return sprintf("%0".$numDigits."d",$num);
|
||||
return (string) sprintf("%0".$numDigits."d",$num);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -5057,6 +5064,8 @@ return;
|
||||
|
||||
$html = $text;
|
||||
|
||||
$sql = e107::getDb();
|
||||
$tp = e107::getParser();
|
||||
|
||||
// $html = $this->getXss();
|
||||
|
||||
|
@@ -315,22 +315,22 @@ class e_theme
|
||||
|
||||
/**
|
||||
* Calculate THEME_LAYOUT constant based on theme preferences and current URL.
|
||||
* @param null $url
|
||||
* @return string
|
||||
*
|
||||
* @param array $cusPagePref
|
||||
* @param string $defaultLayout
|
||||
* @param string $request_url (optional) defaults to e_REQUEST_URL;
|
||||
* @return int|string
|
||||
*/
|
||||
public function getThemeLayout($request_url = null)
|
||||
public function getThemeLayout($cusPagePref, $defaultLayout, $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.
|
||||
{
|
||||
@@ -381,7 +381,7 @@ class e_theme
|
||||
}
|
||||
else // default layout.
|
||||
{
|
||||
$layout = (!isset($user_pref['sitetheme_deflayout'])) ? varset($pref['sitetheme_deflayout']) : $user_pref['sitetheme_deflayout'];
|
||||
$layout = $defaultLayout;
|
||||
}
|
||||
|
||||
return $layout;
|
||||
|
@@ -47,7 +47,7 @@ class _blank_dashboard // include plugin-folder in the name.
|
||||
|
||||
$label = date('M Y', $month_start)." - ".date('M Y', $month_end);
|
||||
|
||||
if(!$sql->gen("SELECT id,datestamp,referred FROM `#_blank` WHERE datestamp BETWEEN ".$month_start." AND ".$month_end))
|
||||
if(!$sql->gen("SELECT blank_id,blank_date,blank_folder FROM `#blank` WHERE blank_date BETWEEN ".$month_start." AND ".$month_end))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -55,9 +55,9 @@ class _blank_dashboard // include plugin-folder in the name.
|
||||
while($row = $sql->fetch())
|
||||
{
|
||||
|
||||
$key = date('Y-n-j', $row['datestamp']);
|
||||
$key = date('Y-n-j', $row['blank_date']);
|
||||
|
||||
switch($row['referred'])
|
||||
switch($row['blank_folder'])
|
||||
{
|
||||
case "Facebook":
|
||||
$amt[$key]['facebook'] += 1;
|
||||
@@ -80,7 +80,7 @@ class _blank_dashboard // include plugin-folder in the name.
|
||||
|
||||
}
|
||||
|
||||
$dateName[$key] = date('jS', $row['datestamp']);
|
||||
$dateName[$key] = date('jS', $row['blank_date']);
|
||||
}
|
||||
|
||||
$sum = array_sum($amt);
|
||||
@@ -147,4 +147,3 @@ class _blank_dashboard // include plugin-folder in the name.
|
||||
|
||||
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user