|
@@ -146,8 +146,8 @@ $theme = array();
|
|
$theme[0]['PATH'] = SM_PATH . 'themes/default_theme.php';
|
|
$theme[0]['PATH'] = SM_PATH . 'themes/default_theme.php';
|
|
$theme[0]['NAME'] = 'Default';
|
|
$theme[0]['NAME'] = 'Default';
|
|
$aTemplateSet = array();
|
|
$aTemplateSet = array();
|
|
-$aTemplateSet[0]['PATH'] = SM_PATH . 'templates/default/';
|
|
|
|
-$aTemplateSet[0]['NAME'] = 'Default template';
|
|
|
|
|
|
+$aTemplateSet[0]['ID'] = 'default';
|
|
|
|
+$aTemplateSet[0]['NAME'] = 'Default';
|
|
/* load site configuration */
|
|
/* load site configuration */
|
|
require(SM_PATH . 'config/config.php');
|
|
require(SM_PATH . 'config/config.php');
|
|
/* load local configuration overrides */
|
|
/* load local configuration overrides */
|
|
@@ -215,6 +215,9 @@ ini_set('session.name' , $session_name);
|
|
session_set_cookie_params (0, $base_uri);
|
|
session_set_cookie_params (0, $base_uri);
|
|
sqsession_is_active();
|
|
sqsession_is_active();
|
|
|
|
|
|
|
|
+include_once(SM_PATH . 'plugins/multilogin/functions.php');
|
|
|
|
+multilogin_sqoverride_config_do();
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* DISABLED.
|
|
* DISABLED.
|
|
* Remove globalized session data in rg=on setups
|
|
* Remove globalized session data in rg=on setups
|
|
@@ -297,16 +300,34 @@ switch ($sInitLocation) {
|
|
case 'style':
|
|
case 'style':
|
|
|
|
|
|
// need to get the right template set up
|
|
// need to get the right template set up
|
|
- sqGetGlobalVar('templatedir', $templatedir, SQ_GET);
|
|
|
|
|
|
+ //
|
|
|
|
+ sqGetGlobalVar('templateid', $templateid, SQ_GET);
|
|
|
|
|
|
// sanitize just in case...
|
|
// sanitize just in case...
|
|
- $templatedir = preg_replace('/(\.\.\/){1,}/', '', $templatedir);
|
|
|
|
-
|
|
|
|
- // could also conceivably make sure given templatedir is in $aTemplateSet
|
|
|
|
|
|
+ //
|
|
|
|
+ $templateid = preg_replace('/(\.\.\/){1,}/', '', $templateid);
|
|
|
|
+
|
|
|
|
+ // make sure given template actually is available
|
|
|
|
+ //
|
|
|
|
+ $aTemplateSet = (!isset($aTemplateSet) || !is_array($aTemplateSet)
|
|
|
|
+ ? array() : $aTemplateSet);
|
|
|
|
+ $templateset_default = (!isset($templateset_default) ? 0 : $templateset_default);
|
|
|
|
+ $found_templateset = false;
|
|
|
|
+ for ($i = 0; $i < count($aTemplateSet); ++$i) {
|
|
|
|
+ if ($aTemplateSet[$i]['ID'] == $templateid) {
|
|
|
|
+ $found_templateset = true;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- // set template directory only if what was given is valid
|
|
|
|
- if (is_dir(SM_PATH . 'templates/' . $templatedir . '/')) {
|
|
|
|
- $sTplDir = SM_PATH . 'templates/' . $templatedir . '/';
|
|
|
|
|
|
+// FIXME: do we need/want to check here for actual presence of template sets?
|
|
|
|
+ // selected template not available, fall back to default template
|
|
|
|
+ //
|
|
|
|
+ if (!$found_templateset) {
|
|
|
|
+ $sTemplateID = (!isset($aTemplateSet[$templateset_default]['ID'])
|
|
|
|
+ ? 'default' : $aTemplateSet[$templateset_default]['ID']);
|
|
|
|
+ } else {
|
|
|
|
+ $sTemplateID = $templateid;
|
|
}
|
|
}
|
|
|
|
|
|
session_write_close();
|
|
session_write_close();
|
|
@@ -382,19 +403,19 @@ switch ($sInitLocation) {
|
|
/**
|
|
/**
|
|
* Initialize the template object (logout_error uses it)
|
|
* Initialize the template object (logout_error uses it)
|
|
*/
|
|
*/
|
|
- require(SM_PATH . 'class/template/template.class.php');
|
|
|
|
|
|
+ require(SM_PATH . 'class/template/Template.class.php');
|
|
/*
|
|
/*
|
|
- * $sTplDir is not initialized when a user is not logged in, so we will use
|
|
|
|
- * the config file defaults here. If the neccesary variables are net set,
|
|
|
|
- * force a default value.
|
|
|
|
|
|
+ * $sTemplateID is not initialized when a user is not logged in, so we
|
|
|
|
+ * will use the config file defaults here. If the neccesary variables
|
|
|
|
+ * are net set, force a default value.
|
|
*/
|
|
*/
|
|
- $aTemplateSet = ( !isset($aTemplateSet) ? array() : $aTemplateSet );
|
|
|
|
|
|
+ $aTemplateSet = (!isset($aTemplateSet) || !is_array($aTemplateSet)
|
|
|
|
+ ? array() : $aTemplateSet);
|
|
$templateset_default = ( !isset($templateset_default) ? 0 : $templateset_default );
|
|
$templateset_default = ( !isset($templateset_default) ? 0 : $templateset_default );
|
|
|
|
|
|
- $sTplDir = ( !isset($aTemplateSet[$templateset_default]['PATH']) ?
|
|
|
|
- SM_PATH . 'templates/default/' :
|
|
|
|
- $aTemplateSet[$templateset_default]['PATH'] );
|
|
|
|
- $oTemplate = new Template($sTplDir);
|
|
|
|
|
|
+ $sTemplateID = ( !isset($aTemplateSet[$templateset_default]['ID']) ?
|
|
|
|
+ 'default' : $aTemplateSet[$templateset_default]['ID'] );
|
|
|
|
+ $oTemplate = Template::construct_template($sTemplateID);
|
|
|
|
|
|
set_up_language($squirrelmail_language, true);
|
|
set_up_language($squirrelmail_language, true);
|
|
logout_error( _("You must be logged in to access this page.") );
|
|
logout_error( _("You must be logged in to access this page.") );
|
|
@@ -515,27 +536,28 @@ switch ($sInitLocation) {
|
|
/**
|
|
/**
|
|
* Initialize the template object
|
|
* Initialize the template object
|
|
*/
|
|
*/
|
|
-require(SM_PATH . 'class/template/template.class.php');
|
|
|
|
|
|
+require(SM_PATH . 'class/template/Template.class.php');
|
|
|
|
|
|
/*
|
|
/*
|
|
- * $sTplDir is not initialized when a user is not logged in, so we will use
|
|
|
|
- * the config file defaults here. If the neccesary variables are not set,
|
|
|
|
- * force a default value.
|
|
|
|
|
|
+ * $sTemplateID is not initialized when a user is not logged in, so we
|
|
|
|
+ * will use the config file defaults here. If the neccesary variables
|
|
|
|
+ * are not set, force a default value.
|
|
*
|
|
*
|
|
- * If the user is logged in, $sTplDir will be set in load_prefs.php, so we
|
|
|
|
- * shouldn't change it here.
|
|
|
|
|
|
+ * If the user is logged in, $sTemplateID will be set in load_prefs.php,
|
|
|
|
+ * so we shouldn't change it here.
|
|
*/
|
|
*/
|
|
-if (!isset($sTplDir)) {
|
|
|
|
- $aTemplateSet = ( !isset($aTemplateSet) ? array() : $aTemplateSet );
|
|
|
|
|
|
+if (!isset($sTemplateID)) {
|
|
|
|
+ $aTemplateSet = (!isset($aTemplateSet) || !is_array($aTemplateSet)
|
|
|
|
+ ? array() : $aTemplateSet);
|
|
$templateset_default = ( !isset($templateset_default) ? 0 : $templateset_default );
|
|
$templateset_default = ( !isset($templateset_default) ? 0 : $templateset_default );
|
|
|
|
|
|
- $sTplDir = !isset($aTemplateSet[$templateset_default]['PATH']) ? SM_PATH . 'templates/default/' : $aTemplateSet[$templateset_default]['PATH'];
|
|
|
|
- $icon_theme_path = !$use_icons ? NULL : $sTplDir . 'images/';
|
|
|
|
|
|
+ $sTemplateID = !isset($aTemplateSet[$templateset_default]['ID']) ? 'default' : $aTemplateSet[$templateset_default]['ID'];
|
|
|
|
+ $icon_theme_path = !$use_icons ? NULL : Template::calculate_template_images_directory($sTemplateID);
|
|
}
|
|
}
|
|
-$oTemplate = new Template($sTplDir);
|
|
|
|
|
|
+$oTemplate = Template::construct_template($sTemplateID);
|
|
|
|
|
|
// We want some variables to always be available to the template
|
|
// We want some variables to always be available to the template
|
|
-$always_include = array('sTplDir', 'icon_theme_path');
|
|
|
|
|
|
+$always_include = array('sTemplateID', 'icon_theme_path');
|
|
foreach ($always_include as $var) {
|
|
foreach ($always_include as $var) {
|
|
$oTemplate->assign($var, (isset($$var) ? $$var : NULL));
|
|
$oTemplate->assign($var, (isset($$var) ? $$var : NULL));
|
|
}
|
|
}
|