We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 7cf0a4c6 authored by Evan Prodromou's avatar Evan Prodromou

theme dir, path configurable

parent 876ab059
...@@ -1039,9 +1039,16 @@ theme ...@@ -1039,9 +1039,16 @@ theme
----- -----
server: Like avatars, you can speed up page loading by pointing the server: Like avatars, you can speed up page loading by pointing the
theme file lookup to another server (virtual or real). The theme file lookup to another server (virtual or real).
theme server's root path should map to the Laconica "theme" Defaults to NULL, meaning to use the site server.
subdirectory. Defaults to NULL. 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 xmpp
---- ----
......
...@@ -140,7 +140,9 @@ $config = ...@@ -140,7 +140,9 @@ $config =
'blacklist' => array(), 'blacklist' => array(),
'autosource' => array()), 'autosource' => array()),
'theme' => 'theme' =>
array('server' => null), array('server' => null,
'dir' => null,
'path'=> null),
'throttle' => 'throttle' =>
array('enabled' => false, // whether to throttle edits; false by default array('enabled' => false, // whether to throttle edits; false by default
'count' => 20, // number of allowed messages in timespan 'count' => 20, // number of allowed messages in timespan
......
...@@ -43,10 +43,14 @@ if (!defined('LACONICA')) { ...@@ -43,10 +43,14 @@ if (!defined('LACONICA')) {
function theme_file($relative, $theme=null) function theme_file($relative, $theme=null)
{ {
if (!$theme) { if (empty($theme)) {
$theme = common_config('site', '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) ...@@ -60,13 +64,31 @@ function theme_file($relative, $theme=null)
function theme_path($relative, $theme=null) function theme_path($relative, $theme=null)
{ {
if (!$theme) { if (empty($theme)) {
$theme = common_config('site', 'theme'); $theme = common_config('site', 'theme');
} }
$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'); $server = common_config('theme', 'server');
if ($server) {
return 'http://'.$server.'/'.$theme.'/'.$relative; if (empty($server)) {
} else { $server = common_config('site', 'server');
return common_path('theme/'.$theme.'/'.$relative);
} }
// XXX: protocol
return 'http://'.$server.$path.$theme.'/'.$relative;
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment