$themesuri = $GLOBALS['registry']->get('themesuri', 'ansel');
$themesfs = $GLOBALS['registry']->get('themesfs', 'ansel');
$css = array();
+
if (!empty($GLOBALS['ansel_stylesheets'])) {
foreach ($GLOBALS['ansel_stylesheets'] as $css_file) {
- $css[] = array('u' => Horde::url($themesuri . '/' . $css_file, true),
- 'f' => $themesfs . '/' . $css_file);
+ $css[$themesfs . '/' . $css_file] = Horde::url($themesuri . '/' . $css_file, true);
}
}
/* Use Horde's stylesheet code if we aren't ouputting css directly */
if (!$custom_only) {
- Horde_Themes::includeStylesheetFiles(array('additional' => $css));
+ foreach ($css as $f => $u) {
+ Horde_Themes::addStylesheetFile($f, $u);
+ }
+ Horde_Themes::includeStylesheetFiles();
} else {
- foreach ($css as $file) {
- echo '<link href="' . $file['u']
- . '" rel="stylesheet" type="text/css"'
- . (isset($file['m']) ? ' media="' . $file['m'] . '"' : '')
- . ' />' . "\n";
+ foreach ($css as $u) {
+ echo '<link href="' . $u . '" rel="stylesheet" type="text/css" />' . "\n";
}
}
}
$sh_js_fs = $this->getConfigParam('registry')->get('jsfs', 'horde') . '/syntaxhighlighter/styles/';
$sh_js_uri = Horde::url($this->getConfigParam('registry')->get('jsuri', 'horde'), false, -1) . '/syntaxhighlighter/styles/';
- Horde_Themes::includeStylesheetFiles(array('additional' => array(
- array('f' => $sh_js_fs . 'shCoreEclipse.css', 'u' => $sh_js_uri . 'shCoreEclipse.css'),
- array('f' => $sh_js_fs . 'shThemeEclipse.css', 'u' => $sh_js_uri . 'shThemeEclipse.css'),
- )));
+
+ Horde_Themes::addStylesheetFile($sh_js_fs . 'shCoreEclipse.css', $sh_js_uri . 'shCoreEclipse.css');
+ Horde_Themes::addStylesheetFile($sh_js_fs . 'shThemeEclipse.css', $sh_js_uri . 'shThemeEclipse.css');
}
+
if (empty(self::$_shBrushes[$brush])) {
Horde::addScriptFile('syntaxhighlighter/scripts/shBrush' . $brush . '.js', 'horde', true);
self::$_shBrushes[$brush] = true;
class Horde_Themes
{
/**
+ * A list of additional stylesheet files to add to the output.
+ *
+ * @var array
+ */
+ static protected $_cssFiles = array();
+
+ /**
+ * Adds an external stylesheet to the output.
+ *
+ * @param string $file
+ */
+ static public function addStylesheet($file, $url)
+ {
+ $this->_cssFiles[$file] = $url;
+ }
+
+ /**
* Outputs the necessary style tags, honoring configuration choices as
* to stylesheet caching.
*
* @param array $options Additional options:
* <pre>
- * 'additional' - (array) TODO
* 'nohorde' - (boolean) If true, don't load files from Horde.
* 'sub' - (string) A subdirectory containing additional CSS files to
* load as an overlay to the base CSS files.
$css = self::getStylesheets(isset($options['theme']) ? $options['theme'] : $prefs->getValue('theme'), $options);
$css_out = array();
- if (!empty($options['additional'])) {
- $css = array_merge($css, $options['additional']);
- }
-
$cache_type = empty($conf['cachecss'])
? 'none'
: $conf['cachecssparams']['driver'];
/**
* Return the list of base stylesheets to display.
- * Callback for includeStylesheetFiles() to convert images to base64
- * data strings.
*
* @param mixed $theme The theme to use; specify an empty value to
* retrieve the theme from user preferences, and
}
}
+ /* Add additional stylesheets added by code. */
+ $css = array_merge($css, $this->_cssFiles);
+
/* Add user-defined additional stylesheets. */
try {
$css = array_merge($css, Horde::callHook('cssfiles', array($theme), 'horde'));
Horde::url('services/portal/index.php', true));
$layout_html = $view->toHtml();
-$horde_css_stylesheets = array();
foreach ($view->getApplications() as $app) {
- $horde_css_stylesheets = array_merge($horde_css_stylesheets, Horde_Themes::getStylesheets('', array('app' => $app)));
+ foreach (Horde_Themes::getStylesheets('', array('app' => $app)) as $f => $u) {
+ Horde_Themes::addStylesheetFile($f, $u);
+ }
}
$linkTags = $view->getLinkTags();
<?php if (!$GLOBALS['browser']->isMobile()): ?>
<link href="<?php echo Horde_Themes::img('favicon.ico', array('nohorde' => true)) ?>" rel="SHORTCUT ICON" />
<?php
-echo Horde_Themes::includeStylesheetFiles(array('additional' => Horde_Util::nonInputVar('horde_css_stylesheets', array())));
+echo Horde_Themes::includeStylesheetFiles();
echo Horde::includeScriptFiles();
echo implode("\n", Horde_Util::nonInputVar('linkTags', array()));
Horde::outputInlineScript();
switch ($imp_view) {
case 'dimp':
- Horde_Themes::includeStylesheetFiles(array('sub' => 'dimp'));
+ Horde_Themes::includeStylesheetFiles(array(
+ 'sub' => 'dimp'
+ ));
if (!in_array(basename($_SERVER['PHP_SELF']), array('compose-dimp.php', 'index-dimp.php', 'message-dimp.php'))) {
Horde::includeScriptFiles();
Horde::outputInlineScript();
$sh_js_fs = $GLOBALS['registry']->get('jsfs', 'horde') . '/syntaxhighlighter/styles/';
$sh_js_uri = Horde::url($GLOBALS['registry']->get('jsuri', 'horde'), false, -1) . '/syntaxhighlighter/styles/';
- Horde_Themes::includeStylesheetFiles(array('additional' => array(
- array('f' => $sh_js_fs . 'shCoreEclipse.css', 'u' => $sh_js_uri . 'shCoreEclipse.css'),
- array('f' => $sh_js_fs . 'shThemeEclipse.css', 'u' => $sh_js_uri . 'shThemeEclipse.css'),
- )));
+
+ Horde_Themes::addStylesheetFile($sh_js_fs . 'shCoreEclipse.css', $sh_js_uri . 'shCoreEclipse.css');
+ Horde_Themes::addStylesheetFile($sh_js_fs . 'shThemeEclipse.css', $sh_js_uri . 'shThemeEclipse.css');
$driver = $GLOBALS['injector']->getInstance('Jonah_Driver');
try {
Horde::outputMetaTags();
Horde::includeScriptFiles();
+Horde::addStylesheetFile($registry->get('themesfs') . '/categoryCSS.php', $registry->get('themesuri') . '/categoryCSS.php');
+
$bc = $prefs->getValue('show_panel')
? 'rightPanel'
: '';
<title><?php echo htmlspecialchars($page_title) ?></title>
<link href="<?php echo Horde_Themes::img('favicon.ico', array('nohorde' => true)) ?>" rel="SHORTCUT ICON" />
<?php Horde_Themes::includeStylesheetFiles() ?>
-<link href="<?php echo Horde::url('themes/categoryCSS.php') ?>" rel="stylesheet" type="text/css" />
</head>
<body<?php if ($bc) echo ' class="' . $bc . '"' ?><?php if ($bi = Horde_Util::nonInputVar('bodyId')) echo ' id="' . $bi . '"'; ?>>
Horde::outputMetaTags();
Horde::includeScriptFiles();
+Horde::addStylesheetFile($registry->get('themesfs') . '/categoryCSS.php', $registry->get('themesuri') . '/categoryCSS.php');
+
$bc = $prefs->getValue('show_panel')
? 'rightPanel'
: '';
<title><?php echo htmlspecialchars($page_title) ?></title>
<link href="<?php echo Horde_Themes::img('favicon.ico', array('nohorde' => true)) ?>" rel="SHORTCUT ICON" />
<?php Horde_Themes::includeStylesheetFiles() ?>
-<link href="<?php echo Horde::url('themes/categoryCSS.php') ?>" rel="stylesheet" type="text/css" />
<script type="text/javascript">
var Nag = {};
</script>
Horde::outputMetaTags();
Horde::includeScriptFiles();
+Horde_Themes::addStylesheetFile($registry->get('themesfs') . '/grids-min.css', $registry->get('themesuri') . '/grids-min.css');
+
$rss = Horde::url('rss.php', true, -1);
if (Horde_Util::getFormData('f')) {
$rss = Horde_Util::addParameter($rss, 'f', Horde_Util::getFormData('f'), false);
<title><?php echo htmlspecialchars($page_title) ?></title>
<link href="<?php echo Horde_Themes::img('favicon.ico', array('nohorde' => true)) ?>" rel="SHORTCUT ICON" />
<?php Horde_Themes::includeStylesheetFiles() ?>
-<link rel="stylesheet" href="<?php echo $registry->get('themesuri') ?>/grids-min.css" type="text/css" />
</head>
<body<?php if ($bc) echo ' class="' . $bc . '"' ?><?php if ($bi = Horde_Util::nonInputVar('bodyId')) echo ' id="' . $bi . '"'; ?>>