templates.js - if custom theme is missing a template, render default template

v1.18.x
psychobunny 11 years ago
parent b8d858ccca
commit 05edfdc9c1

@ -62,12 +62,13 @@
function loadTemplates(templatesToLoad, customTemplateDir) { function loadTemplates(templatesToLoad, customTemplateDir) {
function loadServer() { function loadServer() {
var loaded = templatesToLoad.length; var loaded = templatesToLoad.length,
templatesPath = __dirname + '/../templates';
function getTemplates(directory) { function getTemplates(directory) {
for (var t in templatesToLoad) { for (var t in templatesToLoad) {
(function (file) { (function (file) {
fs.readFile(directory + '/' + file + '.tpl', function (err, html) { function loadFile(html) {
var template = function () { var template = function () {
this.toString = function () { this.toString = function () {
return this.html; return this.html;
@ -84,17 +85,27 @@
if (loaded === 0) { if (loaded === 0) {
templates.ready(); templates.ready();
} }
}
fs.readFile(directory + '/' + file + '.tpl', function (err, html) {
if (err && directory !== templatesPath) {
fs.readFile(templatesPath + '/' + file + '.tpl', function (err, html) {
loadFile(html);
});
} else {
loadFile(html);
}
}); });
}(templatesToLoad[t])); }(templatesToLoad[t]));
} }
} }
if (customTemplateDir) { if (customTemplateDir) {
fs.exists(customTemplateDir, function (exists) { fs.exists(customTemplateDir, function (exists) {
var directory = (exists ? customTemplateDir : __dirname + '/../templates'); var directory = (exists ? customTemplateDir : templatesPath);
getTemplates(directory); getTemplates(directory);
}); });
} else { } else {
getTemplates(__dirname + '/../templates'); getTemplates(templatesPath);
} }
} }
@ -113,6 +124,7 @@
templates.init = function (templates_to_load, custom_templates) { templates.init = function (templates_to_load, custom_templates) {
console.log(templates_to_load, custom_templates);
loadTemplates(templates_to_load || [], custom_templates || false); loadTemplates(templates_to_load || [], custom_templates || false);
} }

Loading…
Cancel
Save