if ( !sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION) ) {
global $base_uri;
}
- global $theme_css, $custom_css, $pageheader_sent, $theme, $theme_default, $text_direction,
- $default_fontset, $chosen_fontset, $default_fontsize, $chosen_fontsize, $chosen_theme;
+ global $custom_css, $pageheader_sent, $theme, $theme_default, $text_direction,
+ $default_fontset, $chosen_fontset, $default_fontsize, $chosen_fontsize,
+ $chosen_theme, $chosen_theme_path, $user_themes, $user_theme_default;
/* add no cache headers here */
//FIXME: should change all header() calls in SM core to use $oTemplate->header()!!
$used_fontset = (!empty($chosen_fontset) ? $chosen_fontset : $default_fontset);
$used_fontsize = (!empty($chosen_fontsize) ? $chosen_fontsize : $default_fontsize);
- $used_theme = basename((!empty($chosen_theme) ? $chosen_theme : $theme[$theme_default]['PATH']),'.php');
-
+ $used_theme = !isset($chosen_theme) && $user_theme_default != 'none' ? 'u_'.$user_themes[$user_theme_default]['PATH'] : $chosen_theme_path;
+
/**
* Stylesheets are loaded in the following order:
* 1) All stylesheets provided by the template. Normally, these are
- * stylsheets in $sTplDir/css/. This is accomplished by calling
+ * stylsheets in templates/<template>/css/. This is accomplished by calling
* $oTemplate->fetch_standard_stylesheet_links().
* 2) An optional user-defined stylesheet. This is set in the Display
* Preferences.
* 3) src/style.php which sets some basic font prefs.
* 4) If we are dealing with an RTL language, we load rtl.css from the
* template set.
- **/
-
+ */
+
// 1. Stylesheets from the template.
$header_tags .= $oTemplate->fetch_standard_stylesheet_links();
$aUserStyles = array();
+
// 2. Option user-defined stylesheet from preferences.
// FIXME: the following user pref ("sUserStyle"; rename as necessary) will have to be populated by the display prefs screen from a widget similar to the color themes widget (which it replaces) where its values should be full relative paths (from SM_PATH) to the selected css "themes" (either in template css/alternates dir or SM_PATH/css/alternates dir)
// FIXME: uhhh, getPref() is not available yet here. (at least on login page) Ugh. Nor has load_prefs been included yet -- how do we fix this?
// $aUserStyles[] = getPref($data_dir, $username, 'sUserStyle', '');
- if (!empty($chosen_theme) && substr($chosen_theme, 0, 2) == 'u_') {
- $aUserStyles[] = substr($chosen_theme, 2) .'default.css';
+// Steve, can you please document what u_ means? Will it work with the
+// new template inheritance system and auto-detection of alternate sheets?
+/**
+ * Stylesheets beginning with a "u_" == user provided stylesheets, e.g. those
+ * in SM_PATH/css/. Template provided stylesheets (TEMPLATE_DIR/css/alternatives/)
+ * should begin with 't_'. This was the initial path I took to get it working
+ * since I wasn't sure what mods to the Template class would be used to handle
+ * template-provided alt stylesheets.
+ *
+ * TODO: Re-evaluate this naming convetion.
+ */
+# var_dump($used_theme);
+ if (!empty($used_theme)) {
+ if (substr($used_theme, 0, 2) == 'u_') {
+ $aUserStyles[] = substr($used_theme, 2) .'/default.css';
+ } elseif (substr($used_theme, 0, 2) == 't_') {
+ $aUserStyles[] = SM_PATH . $oTemplate->get_template_file_directory().'css/alternates/'.substr($used_theme, 2);
+# $aUserStyles[] = substr($used_theme, 2);
+ }
}
// 3. src/style.php
$aUserStyles[] = $base_uri .'src/style.php?'
. (!empty($used_fontset) ? '&fontset='.$used_fontset : '')
. (!empty($used_fontsize) ? '&fontsize='.$used_fontsize : '');
+
+ // 3.1. Load the stylesheets we have already
$header_tags .= $oTemplate->fetch_external_stylesheet_links($aUserStyles);
// 4. Optional rtl.css stylesheet