]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
theme dir, path configurable
authorEvan Prodromou <evan@controlyourself.ca>
Mon, 22 Jun 2009 16:31:55 +0000 (09:31 -0700)
committerEvan Prodromou <evan@controlyourself.ca>
Mon, 22 Jun 2009 16:31:55 +0000 (09:31 -0700)
README
lib/common.php
lib/theme.php

diff --git a/README b/README
index 0c500acb863dae2677384bf391f324e190dea79e..cd663d931b97f4bc6653f71adf78de418894c427 100644 (file)
--- a/README
+++ b/README
@@ -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
 ----
index 14f5c7a7f1262a941c56693c5f8afb60c6fee71f..0333030e1d8753025a92e46c0cc5bc4fa1e4b121 100644 (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
index 0d882482279f6bfe934450c5d165e85bf1f58d23..2fe6ab69b7799cc19fd683a5e6c27adbfb2f96ad 100644 (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');
     }
+
+    $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 ($server) {
-        return 'http://'.$server.'/'.$theme.'/'.$relative;
-    } else {
-        return common_path('theme/'.$theme.'/'.$relative);
+
+    if (empty($server)) {
+        $server = common_config('site', 'server');
     }
+
+    // XXX: protocol
+
+    return 'http://'.$server.$path.$theme.'/'.$relative;
 }