theme dir, path configurable

This commit is contained in:
Evan Prodromou 2009-06-22 09:31:55 -07:00
parent 876ab05927
commit 7cf0a4c647
3 changed files with 43 additions and 12 deletions

13
README
View File

@ -1039,9 +1039,16 @@ theme
-----
server: Like avatars, you can speed up page loading by pointing the
theme file lookup to another server (virtual or real). The
theme server's root path should map to the Laconica "theme"
subdirectory. Defaults to NULL.
theme file lookup to another server (virtual or real).
Defaults to NULL, meaning to use the site server.
dir: Directory where theme files are stored. Used to determine
whether to show parts of a theme file. Defaults to the theme
subdirectory of the install directory.
path: Path part of theme URLs, before the theme name. Relative to the
theme server. It may make sense to change this path when upgrading,
(using version numbers as the path) to make sure that all files are
reloaded by caching clients or proxies. Defaults to null,
which means to use the site path + '/theme'.
xmpp
----

View File

@ -140,7 +140,9 @@ $config =
'blacklist' => array(),
'autosource' => array()),
'theme' =>
array('server' => null),
array('server' => null,
'dir' => null,
'path'=> null),
'throttle' =>
array('enabled' => false, // whether to throttle edits; false by default
'count' => 20, // number of allowed messages in timespan

View File

@ -43,10 +43,14 @@ if (!defined('LACONICA')) {
function theme_file($relative, $theme=null)
{
if (!$theme) {
if (empty($theme)) {
$theme = common_config('site', 'theme');
}
return INSTALLDIR.'/theme/'.$theme.'/'.$relative;
$dir = common_config('theme', 'dir');
if (empty($dir)) {
$dir = INSTALLDIR.'/theme';
}
return $dir.'/'.$theme.'/'.$relative;
}
/**
@ -60,13 +64,31 @@ function theme_file($relative, $theme=null)
function theme_path($relative, $theme=null)
{
if (!$theme) {
if (empty($theme)) {
$theme = common_config('site', 'theme');
}
$server = common_config('theme', 'server');
if ($server) {
return 'http://'.$server.'/'.$theme.'/'.$relative;
} else {
return common_path('theme/'.$theme.'/'.$relative);
$path = common_config('theme', 'path');
if (empty($path)) {
$path = common_config('site', 'path') . '/theme/';
}
if ($path[strlen($path)-1] != '/') {
$path .= '/';
}
if ($path[0] != '/') {
$path = '/'.$path;
}
$server = common_config('theme', 'server');
if (empty($server)) {
$server = common_config('site', 'server');
}
// XXX: protocol
return 'http://'.$server.$path.$theme.'/'.$relative;
}