1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-08 23:56:58 +02:00

Code cleanup. Moved checkvalidtheme() out of class2.php and into e_theme as initTheme()

This commit is contained in:
Cameron
2020-12-21 17:46:32 -08:00
parent 92504acfdd
commit 812b7cbcb3
8 changed files with 303 additions and 294 deletions

View File

@@ -832,103 +832,6 @@ if(!defined('USERTHEME'))
define('USERTHEME', (e107::getUser()->getPref('sitetheme') && file_exists(e_THEME.e107::getUser()->getPref('sitetheme'). '/theme.php') ? e107::getUser()->getPref('sitetheme') : false));
}
//########### Module redefinable functions ###############
if (!function_exists('checkvalidtheme'))
{
function checkvalidtheme($theme_check)
{
// arg1 = theme to check
//global $ADMIN_DIRECTORY, $tp, $e107;
// global $sql;
$sql = e107::getDb();
$e107 = e107::getInstance();
$tp = e107::getParser();
$ADMIN_DIRECTORY = $e107->getFolder('admin');
// e_QUERY not set when in single entry mod
if (ADMIN && strpos($_SERVER['QUERY_STRING'], 'themepreview') !== false)
{
list($action, $id) = explode('.', $_SERVER['QUERY_STRING']);
require_once(e_HANDLER.'theme_handler.php');
$themeobj = new themeHandler;
$themeArray = $themeobj->getThemes('id');
$id = (int) $id;
$themeDef = $themeobj->findDefault($themeArray[$id]);
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].'/');
$legacy = (file_exists( e_THEME_ABS.$themeArray[$id].'/theme.xml') === false);
define('THEME_LEGACY',$legacy);
unset($action);
return;
}
e107::getDebug()->logTime('Theme Check');
if (@fopen(e_THEME.$theme_check.'/theme.php', 'r'))
// if (is_readable(e_THEME.$theme_check.'/theme.php'))
{
define('THEME', e_THEME.$theme_check.'/');
define('THEME_ABS', e_THEME_ABS.$theme_check.'/');
$legacy = (file_exists(e_THEME.$theme_check.'/theme.xml') === false);
define('THEME_LEGACY',$legacy);
$e107->site_theme = $theme_check;
}
else
{
function search_validtheme()
{
$e107 = e107::getInstance();
$th = substr(e_THEME, 0, -1);
$handle = opendir($th);
while ($file = readdir($handle))
{
if (is_dir(e_THEME.$file) && is_readable(e_THEME.$file.'/theme.php'))
{
closedir($handle);
$e107->site_theme = $file;
return $file;
}
}
closedir($handle);
return null;
}
$e107tmp_theme = 'bootstrap3'; // set to bootstrap3 by default. search_validtheme();
define('THEME', e_THEME.$e107tmp_theme.'/');
define('THEME_ABS', e_THEME_ABS.$e107tmp_theme.'/');
if (ADMIN && strpos(e_SELF, $ADMIN_DIRECTORY) === false)
{
echo '<script>alert("'.$tp->toJS(CORE_LAN1).'")</script>';
$tm = e107::getSingleton('themeHandler');
$tm->setTheme($e107tmp_theme);
// $config = e107::getConfig();
// $config->set('sitetheme','core');
}
}
e107::getDebug()->logTime('Theme Check End');
$themes_dir = $e107->getFolder('themes');
$e107->http_theme_dir = "{$e107->server_path}{$themes_dir}{$e107->site_theme}/";
unset($sql);
}
}
//
// Q: ALL OTHER SETUP CODE
@@ -1346,7 +1249,7 @@ if (($_SERVER['QUERY_STRING'] === 'logout')/* || (($pref['user_tracking'] == 'se
}
}
// $ip = e107::getIPHandler()->getIP(FALSE); Appears to not be used, so removed
// $ip = e107::getIPHandler()->getIP(false); Appears to not be used, so removed
$udata = (USER === true ? USERID.'.'.USERNAME : '0');
// TODO - should be done inside online handler, more core areas need it (session handler for example)
@@ -1481,22 +1384,15 @@ if(!defined('THEME'))
if (e_ADMIN_AREA && vartrue($pref['admintheme']))
{
//We have now e_IFRAME mod and USER_AREA force
// && (strpos(e_SELF.'?'.e_QUERY, 'menus.php?configure') === FALSE)
/* if (strpos(e_SELF, "newspost.php") !== FALSE)
{
define("MAINTHEME", e_THEME.$pref['sitetheme']."/"); MAINTHEME no longer used in core distribution
} */
checkvalidtheme($pref['admintheme']);
e_theme::initTheme($pref['admintheme']);
}
elseif (USERTHEME !== false/* && USERTHEME != 'USERTHEME'*/ && !e_ADMIN_AREA)
elseif (USERTHEME !== false && !e_ADMIN_AREA)
{
checkvalidtheme(USERTHEME);
e_theme::initTheme(USERTHEME);
}
else
{
checkvalidtheme($pref['sitetheme']);
e_theme::initTheme($pref['sitetheme']);
}
@@ -1504,33 +1400,7 @@ if(!defined('THEME'))
$theme_pref = varset($pref['sitetheme_pref']);
// --------------------------------------------------------------
$dbg->logTime('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'))
{
$user_pref = e107::getUser()->getPref();
$pref = e107::getPref();
$cusPagePref = (!empty($user_pref['sitetheme_custompages'])) ? $user_pref['sitetheme_custompages'] : varset($pref['sitetheme_custompages'],array());
$cusPageDef = (empty($user_pref['sitetheme_deflayout'])) ? varset($pref['sitetheme_deflayout']) : $user_pref['sitetheme_deflayout'];
$deflayout = e107::getTheme()->getThemeLayout($cusPagePref, $cusPageDef, e_REQUEST_URL, varset($_SERVER['SCRIPT_FILENAME']));
define('THEME_LAYOUT',$deflayout);
unset($cusPageDef,$lyout,$cusPagePref,$menus_equery,$deflayout);
}
// Load library dependencies.
$dbg->logTime('Load Libraries');
@@ -1580,28 +1450,6 @@ else
$dbg->logTime("Init Theme Class");
e107::getRender()->init(); // initialize theme class.
//----------------------------
// Load shortcode handler
//----------------------------
// ********* This is probably a bodge! Work out what to do properly. Has to be done when $pref valid
//FIXED - undefined $register_sc
//$tp->sch_load(); - will be auto-initialized by first $tp->e_sc call - see e_parse->__get()
/*
$exclude_lan = array('lan_signup.php'); // required for multi-language.
if ($inAdminDir)
{
e107_include_once(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_'.e_PAGE);
e107_include_once(e_LANGUAGEDIR.'English/admin/lan_'.e_PAGE);
}
elseif (!in_array('lan_'.e_PAGE,$exclude_lan) && !$isPluginDir)
{
e107_include_once(e_LANGUAGEDIR.e_LANGUAGE.'/lan_'.e_PAGE);
e107_include_once(e_LANGUAGEDIR.'English/lan_'.e_PAGE);
}
*/
if ($pref['anon_post'])
{
define('ANON', true);
@@ -1622,7 +1470,7 @@ else
if (!empty($pref['antiflood1']) && !defined('FLOODPROTECT'))
{
define('FLOODPROTECT', TRUE);
define('FLOODPROTECT', true);
define('FLOODTIMEOUT', max(varset($pref['antiflood_timeout'], 10), 3));
}
else
@@ -1630,7 +1478,7 @@ else
/**
* @ignore
*/
define('FLOODPROTECT', FALSE);
define('FLOODPROTECT', false);
}
$layout = isset($layout) ? $layout : '_default';
@@ -1664,20 +1512,18 @@ else
/**
* @ignore
*/
define('e_REFERER_SELF', FALSE);
define('e_REFERER_SELF', false);
}
//BC, DEPRECATED - use e107::getDateConvert(), catched by __autoload as well
/*if (!class_exists('convert'))
{
require_once(e_HANDLER.'date_handler.php');
}*/
//@require_once(e_HANDLER."IPB_int.php");
//@require_once(e_HANDLER."debug_handler.php");
//-------------------------------------------------------------------------------------------------------------------------------------------
/**
* @deprecated Use e107::getRedirect()->go($url) instead.
* @param $qry
*/
function js_location($qry)
{
trigger_error('<b>js_location() is deprecated.</b> e107::getRedirect()->go($url) instead.', E_USER_DEPRECATED); // NO LAN
global $error_handler;
if (count($error_handler->errors))
{
@@ -1716,8 +1562,8 @@ function check_email($email)
/**
* @param mixed $var is a single class number or name, or a comma-separated list of the same.
* @param mixed $userclass a custom list of userclasses or leave blank for the current user's permissions.
* If a class is prefixed with '-' this means 'exclude' - returns FALSE if the user is in this class (overrides 'includes').
* Otherwise returns TRUE if the user is in any of the classes listed in $var.
* If a class is prefixed with '-' this means 'exclude' - returns false if the user is in this class (overrides 'includes').
* Otherwise returns true if the user is in any of the classes listed in $var.
* @param int $uid
* @return bool
*/
@@ -1767,7 +1613,7 @@ function check_class($var, $userclass = USERCLASS_LIST, $uid = 0)
if ($v[0] === '-')
{
$invert = TRUE;
$invert = true;
$v = substr($v, 1);
}
$v = $e107->user_class->ucGetClassIDFromName($v);
@@ -1777,7 +1623,7 @@ function check_class($var, $userclass = USERCLASS_LIST, $uid = 0)
$invert = true;
$v = -$v;
}
if ($v !== FALSE)
if ($v !== false)
{
// var_dump($v);
// Ignore non-valid userclass names
@@ -1787,7 +1633,7 @@ function check_class($var, $userclass = USERCLASS_LIST, $uid = 0)
{
return false;
}
$latchedAccess = TRUE;
$latchedAccess = true;
}
elseif ($invert && count($varList) == 1)
{
@@ -1839,7 +1685,7 @@ function getperms($arg, $ap = ADMINPERMS)
$ap_array = explode('.',$ap);
if (in_array($arg,$ap_array,FALSE))
if (in_array($arg,$ap_array,false))
{
return true;
}
@@ -2025,7 +1871,7 @@ class floodprotect
return ($row[$orderfield] <= (time() - FLOODTIMEOUT));
}
return TRUE;
return true;
}
}
@@ -2252,7 +2098,7 @@ $dbg->logTime('(After Go online)');
*/
function cookie($name, $value, $expire=0, $path = e_HTTP, $domain = '', $secure = 0)
{
if(!e_SUBDOMAIN || (defined('MULTILANG_SUBDOMAIN') && MULTILANG_SUBDOMAIN === TRUE))
if(!e_SUBDOMAIN || (defined('MULTILANG_SUBDOMAIN') && MULTILANG_SUBDOMAIN === true))
{
$domain = (e_DOMAIN !== false) ? ".".e_DOMAIN : "";
}
@@ -2270,9 +2116,9 @@ function session_set($name, $value, $expire='', $path = e_HTTP, $domain = '', $s
}
else
{
if((empty($domain) && !e_SUBDOMAIN) || (defined('MULTILANG_SUBDOMAIN') && MULTILANG_SUBDOMAIN === TRUE))
if((empty($domain) && !e_SUBDOMAIN) || (defined('MULTILANG_SUBDOMAIN') && MULTILANG_SUBDOMAIN === true))
{
$domain = (e_DOMAIN !== FALSE) ? ".".e_DOMAIN : "";
$domain = (e_DOMAIN !== false) ? ".".e_DOMAIN : "";
}
if(defined('e_MULTISITE_MATCH'))
@@ -2317,9 +2163,9 @@ function table_exists($check)
foreach ($GLOBALS['mySQLtablelist'] as $lang)
{
if (strpos($lang, $mltable) !== FALSE)
if (strpos($lang, $mltable) !== false)
{
return TRUE;
return true;
}
}
}
@@ -2408,13 +2254,13 @@ function include_lan($path, $force = false)
// 'admin' - the standard admin language file for a plugin
// 'theme' - the standard language file for a plugin (these are usually pretty small, so one is enough)
// Otherwise, $type is treated as part of a filename within the plugin's language directory, prefixed with the current language
// Returns FALSE on failure (not found).
// Returns false on failure (not found).
// Returns the include_once error return if there is one
// Otherwise returns an empty string.
// Note - if the code knows precisely where the language file is located, use include_lan()
// $pref['noLanguageSubs'] can be set TRUE to prevent searching for the English files if the files for the current site language don't exist.
// $pref['noLanguageSubs'] can be set true to prevent searching for the English files if the files for the current site language don't exist.
//DEPRECATED - use e107::loadLanFiles();
/**
* @deprecated - use e107::loadLanFiles();
@@ -2438,13 +2284,13 @@ function loadLanFiles($unitName, $type='runtime')
/**
* Check that all required user fields (including extended fields) are valid.
* @param array $currentUser - data for user
* @return boolean TRUE if update required
* @return boolean true if update required
*/
function force_userupdate($currentUser)
{
if (e_PAGE == 'usersettings.php' || (defined('FORCE_USERUPDATE') && (FORCE_USERUPDATE == FALSE)) || strpos(e_SELF, ADMINDIR) == TRUE )
if (e_PAGE == 'usersettings.php' || (defined('FORCE_USERUPDATE') && (FORCE_USERUPDATE == false)) || strpos(e_SELF, ADMINDIR) == true )
{
return FALSE;
return false;
}
$signup_option_names = array('realname', 'signature', 'image', 'timezone', 'class');
@@ -2457,7 +2303,7 @@ function force_userupdate($currentUser)
}
}
if (!e107::getPref('disable_emailcheck',TRUE) && !trim($currentUser['user_email'])) return TRUE;
if (!e107::getPref('disable_emailcheck',true) && !trim($currentUser['user_email'])) return true;
if(e107::getDb()->select('user_extended_struct', 'user_extended_struct_applicable, user_extended_struct_write, user_extended_struct_name, user_extended_struct_type', 'user_extended_struct_required = 1 AND user_extended_struct_applicable != '.e_UC_NOBODY))
{
@@ -2468,17 +2314,17 @@ function force_userupdate($currentUser)
$user_extended_struct_name = "user_{$row['user_extended_struct_name']}";
if (!isset($currentUser[$user_extended_struct_name]))
{
//e107::admin_log->addEvent(4, __FILE__."|".__FUNCTION__."@".__LINE__, 'FORCE', 'Force User update', 'Trigger field: '.$user_extended_struct_name, FALSE, LOG_TO_ROLLING);
return TRUE;
//e107::admin_log->addEvent(4, __FILE__."|".__FUNCTION__."@".__LINE__, 'FORCE', 'Force User update', 'Trigger field: '.$user_extended_struct_name, false, LOG_TO_ROLLING);
return true;
}
if (($row['user_extended_struct_type'] == 7) && ($currentUser[$user_extended_struct_name] == '0000-00-00'))
{
//e107::admin_log->addEvent(4, __FILE__."|".__FUNCTION__."@".__LINE__, 'FORCE', 'Force User update', 'Trigger field: '.$user_extended_struct_name, FALSE, LOG_TO_ROLLING);
return TRUE;
//e107::admin_log->addEvent(4, __FILE__."|".__FUNCTION__."@".__LINE__, 'FORCE', 'Force User update', 'Trigger field: '.$user_extended_struct_name, false, LOG_TO_ROLLING);
return true;
}
}
}
return FALSE;
return false;
}
@@ -2692,7 +2538,7 @@ class error_handler
}
}
return ($ret) ? "<table class='table table-condensed'>\n".$ret."</table>" : FALSE;
return ($ret) ? "<table class='table table-condensed'>\n".$ret."</table>" : false;
}
/**
@@ -2959,22 +2805,25 @@ class e_http_header
}
}
/**
* @deprecated Use ini_set() directly.
* @param $var
* @param $value
* @return false|string
*/
function e107_ini_set($var, $value)
{
trigger_error('<b>e107_ini_set() is deprecated.</b> Use ini_set() instead.', E_USER_DEPRECATED); // NO LAN
if (function_exists('ini_set'))
{
return ini_set($var, $value);
}
return FALSE;
return false;
}
// Return true if specified plugin installed, false if not