git.gnu.io has moved to IP address 209.51.188.249 -- please double check where you are logging in.

Commit c077ad07 authored by Evan Prodromou's avatar Evan Prodromou

Configurable avatar directory

Avatar directory and path are configurable.
parent eb6a60ef
......@@ -1008,6 +1008,12 @@ avatar
For configuring avatar access.
dir: Directory to look for avatar files and to put them into.
Defaults to avatar subdirectory of install directory; if
you change it, make sure to change path, too.
path: Path to avatars. Defaults to path for avatar subdirectory,
but you can change it if you wish. Note that this will
be included with the avatar server, too.
server: If set, defines another server where avatars are stored in the
root directory. Note that the 'avatar' subdir still has to be
writeable. You'd typically use this to split HTTP requests on
......
......@@ -55,19 +55,43 @@ class Avatar extends Memcached_DataObject
static function path($filename)
{
return INSTALLDIR . '/avatar/' . $filename;
$dir = common_config('avatar', 'dir');
if ($dir[strlen($dir)-1] != '/') {
$dir .= '/';
}
return $dir . $filename;
}
static function url($filename)
{
return common_path('avatar/'.$filename);
$path = common_config('avatar', 'path');
if ($path[strlen($path)-1] != '/') {
$path .= '/';
}
if ($path[0] != '/') {
$path = '/'.$path;
}
$server = common_config('avatar', 'server');
if (empty($server)) {
$server = common_config('site', 'server');
}
// XXX: protocol
return 'http://'.$server.$path.$filename;
}
function displayUrl()
{
$server = common_config('avatar', 'server');
if ($server) {
return 'http://'.$server.'/'.$this->filename;
return Avatar::url($this->filename);
} else {
return $this->url;
}
......
......@@ -108,7 +108,9 @@ $config =
'profile' =>
array('banned' => array()),
'avatar' =>
array('server' => null),
array('server' => null,
'dir' => INSTALLDIR . '/avatar/',
'path' => $_path . '/avatar/'),
'public' =>
array('localonly' => true,
'blacklist' => array(),
......
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