|
|
@ -15,6 +15,7 @@ var navigation = require('../navigation');
|
|
|
|
var translator = require('../translator');
|
|
|
|
var translator = require('../translator');
|
|
|
|
var privileges = require('../privileges');
|
|
|
|
var privileges = require('../privileges');
|
|
|
|
var utils = require('../utils');
|
|
|
|
var utils = require('../utils');
|
|
|
|
|
|
|
|
var cache = require('../cache');
|
|
|
|
|
|
|
|
|
|
|
|
var controllers = {
|
|
|
|
var controllers = {
|
|
|
|
api: require('../controllers/api'),
|
|
|
|
api: require('../controllers/api'),
|
|
|
@ -22,7 +23,7 @@ var controllers = {
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = function (middleware) {
|
|
|
|
module.exports = function (middleware) {
|
|
|
|
middleware.buildHeader = function (req, res, next) {
|
|
|
|
middleware.buildHeader = function buildHeader(req, res, next) {
|
|
|
|
res.locals.renderHeader = true;
|
|
|
|
res.locals.renderHeader = true;
|
|
|
|
res.locals.isAPI = false;
|
|
|
|
res.locals.isAPI = false;
|
|
|
|
async.waterfall([
|
|
|
|
async.waterfall([
|
|
|
@ -50,7 +51,7 @@ module.exports = function (middleware) {
|
|
|
|
], next);
|
|
|
|
], next);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
middleware.generateHeader = function (req, res, data, callback) {
|
|
|
|
middleware.generateHeader = function generateHeader(req, res, data, callback) {
|
|
|
|
var registrationType = meta.config.registrationType || 'normal';
|
|
|
|
var registrationType = meta.config.registrationType || 'normal';
|
|
|
|
res.locals.config = res.locals.config || {};
|
|
|
|
res.locals.config = res.locals.config || {};
|
|
|
|
var templateValues = {
|
|
|
|
var templateValues = {
|
|
|
@ -214,12 +215,25 @@ module.exports = function (middleware) {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
middleware.renderHeader = function (req, res, data, callback) {
|
|
|
|
middleware.renderHeader = function renderHeader(req, res, data, callback) {
|
|
|
|
|
|
|
|
if (req.uid <= 0) {
|
|
|
|
|
|
|
|
const headerHtml = cache.get('uid:' + req.uid + ':header');
|
|
|
|
|
|
|
|
if (headerHtml) {
|
|
|
|
|
|
|
|
return setImmediate(callback, null, headerHtml);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
async.waterfall([
|
|
|
|
async.waterfall([
|
|
|
|
async.apply(middleware.generateHeader, req, res, data),
|
|
|
|
async.apply(middleware.generateHeader, req, res, data),
|
|
|
|
function (templateValues, next) {
|
|
|
|
function (templateValues, next) {
|
|
|
|
req.app.render('header', templateValues, next);
|
|
|
|
req.app.render('header', templateValues, next);
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
function (html, next) {
|
|
|
|
|
|
|
|
if (req.uid <= 0) {
|
|
|
|
|
|
|
|
cache.set('uid:' + req.uid + ':header', html, 1000 * 60 * 60);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
next(null, html);
|
|
|
|
|
|
|
|
},
|
|
|
|
], callback);
|
|
|
|
], callback);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
@ -228,7 +242,13 @@ module.exports = function (middleware) {
|
|
|
|
scripts.push({ src: nconf.get('relative_path') + '/assets/vendor/jquery/timeago/locales/jquery.timeago.' + languageCode + '.js' });
|
|
|
|
scripts.push({ src: nconf.get('relative_path') + '/assets/vendor/jquery/timeago/locales/jquery.timeago.' + languageCode + '.js' });
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
middleware.renderFooter = function (req, res, data, callback) {
|
|
|
|
middleware.renderFooter = function renderFooter(req, res, data, callback) {
|
|
|
|
|
|
|
|
if (req.uid <= 0) {
|
|
|
|
|
|
|
|
const footerHtml = cache.get('uid:' + req.uid + ':footer');
|
|
|
|
|
|
|
|
if (footerHtml) {
|
|
|
|
|
|
|
|
return setImmediate(callback, null, footerHtml);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
async.waterfall([
|
|
|
|
async.waterfall([
|
|
|
|
function (next) {
|
|
|
|
function (next) {
|
|
|
|
plugins.fireHook('filter:middleware.renderFooter', {
|
|
|
|
plugins.fireHook('filter:middleware.renderFooter', {
|
|
|
@ -255,6 +275,13 @@ module.exports = function (middleware) {
|
|
|
|
data.templateValues.isSpider = req.uid === -1;
|
|
|
|
data.templateValues.isSpider = req.uid === -1;
|
|
|
|
req.app.render('footer', data.templateValues, next);
|
|
|
|
req.app.render('footer', data.templateValues, next);
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
function (html, next) {
|
|
|
|
|
|
|
|
if (req.uid <= 0) {
|
|
|
|
|
|
|
|
cache.set('uid:' + req.uid + ':footer', html, 1000 * 60 * 60);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
next(null, html);
|
|
|
|
|
|
|
|
},
|
|
|
|
], callback);
|
|
|
|
], callback);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|