From 842cd17979d8ba62a19bf19062a85bef717a0330 Mon Sep 17 00:00:00 2001 From: psychobunny Date: Tue, 29 Oct 2013 12:34:41 -0400 Subject: [PATCH] themes - added ability to route custom templates --- src/meta.js | 5 ++--- src/webserver.js | 9 ++++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/meta.js b/src/meta.js index 771839e684..c2a1ee5cfa 100644 --- a/src/meta.js +++ b/src/meta.js @@ -120,9 +120,8 @@ var utils = require('./../public/src/utils.js'), }); }, function(config, next) { - if (config.staticDir) { - themeData['theme:staticDir'] = config.staticDir; - } + themeData['theme:staticDir'] = config.staticDir ? config.staticDir : false; + themeData['theme:templates'] = config.templates ? config.templates : false; RDB.hmset('config', themeData, next); } diff --git a/src/webserver.js b/src/webserver.js index c4502787f0..3b69aafb6d 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -165,7 +165,7 @@ var express = require('express'), }, function(next) { // Theme configuration - RDB.hmget('config', 'theme:type', 'theme:id', 'theme:staticDir', function(err, themeData) { + RDB.hmget('config', 'theme:type', 'theme:id', 'theme:staticDir', 'theme:templates', function(err, themeData) { var themeId = (themeData[1] || 'nodebb-theme-vanilla'); // Detect if a theme has been selected, and handle appropriately @@ -183,6 +183,13 @@ var express = require('express'), } } + if (themeData[3]) { + app.use('/templates', express.static(path.join(__dirname, '../node_modules', themeData[1], themeData[3]))); + if (process.env.NODE_ENV === 'development') { + winston.info('Custom templates directory routed for theme: ' + themeData[1]); + } + } + app.use(require('less-middleware')({ src: path.join(__dirname, '../node_modules/' + themeId), dest: path.join(__dirname, '../public/css'),