]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Configurable avatar directory
authorEvan Prodromou <evan@controlyourself.ca>
Mon, 15 Jun 2009 17:45:50 +0000 (10:45 -0700)
committerEvan Prodromou <evan@controlyourself.ca>
Mon, 15 Jun 2009 17:45:50 +0000 (10:45 -0700)
Avatar directory and path are configurable.

README
classes/Avatar.php
lib/common.php

diff --git a/README b/README
index 8fb4a941cf6c1555802eef2a8321297bf8f7ca69..5b6b847c89ca9773dcb23d77f906d719a49f02ea 100644 (file)
--- a/README
+++ b/README
@@ -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
index db9d78e47fc1e8f2c137ac6eb9a67d707b2a15fb..5e8b315fe6b419998b3617710d8f01baa8584651 100644 (file)
@@ -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;
         }
index b4e87445e6a476237a3d6057ed7ea484a277edfa..ab61c812f5e535fa685f15c8cece8e90db6eb81a 100644 (file)
@@ -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(),