sheercms
Version:
Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.
44 lines (39 loc) • 1.32 kB
JavaScript
var logger = require('../logger');
var api = require('../api');
var S = require('string');
/*
callback is used to send the html back so it can be cached if applicable
*/
module.exports.index = function(req, res, info, item, callback) {
try {
if (item.branch === "media") {
var media = api.plugins.get('media');
if (!media)
throw new Error('media plugin not installed.');
media.renderMedia(req, res, item);
}
else {
var model = {
"info": info,
"item": item
};
if (!item.template || S(item.template.key).isEmpty())
throw new Error("The page has an invalid template: " + item.contentId);
//render the page using the template view text and model
api.templates.render(item.template.key, model, function(err, html) {
if (err) {
if (callback) callback(err);
res.send(err.message);
}
else {
if (callback) callback(null, html);
res.send(html);
}
});
}
}
catch(e) {
logger.error(e);
res.send(500, 'Error rendering the content for this URL.');
}
};