global widget areas (sidebar/footer) - closes #1097

v1.18.x
psychobunny 11 years ago
parent ed3a1b47bd
commit 576246c315

@ -13,7 +13,7 @@
};
ajaxify.widgets.render = function(tpl_url, url, callback) {
var widgetLocations = [], numLocations;
var widgetLocations = ['sidebar', 'footer'], numLocations;
$('#content [widget-area]').each(function() {
widgetLocations.push($(this).attr('widget-area'));
@ -28,6 +28,17 @@
function renderWidgets(location) {
var area = $('#content [widget-area="' + location + '"]');
if (!area.length && window.location.pathname.indexOf('/admin') === -1) {
if (location === 'footer') {
$('#content').append($('<div class="col-xs-12"><div widget-area="footer"></div></div>'));
} else if (location === 'sidebar') {
$('#content > *').wrapAll($('<div class="col-xs-9"></div>'));
$('#content').append($('<div class="col-xs-3"><div widget-area="sidebar"></div></div>'));
}
area = $('#content [widget-area="' + location + '"]');
}
socket.emit('widgets.render', {template: tpl_url + '.tpl', url: url, location: location}, function(err, renderedWidgets) {
var html = '';

@ -109,7 +109,12 @@ adminController.logger.get = function(req, res, next) {
adminController.themes.get = function(req, res, next) {
async.parallel({
areas: function(next) {
plugins.fireHook('filter:widgets.getAreas', [], next);
var defaultAreas = [
{ name: 'Global Sidebar', template: 'global', location: 'sidebar' },
{ name: 'Global Footer', template: 'global', location: 'footer' },
];
plugins.fireHook('filter:widgets.getAreas', defaultAreas, next);
},
widgets: function(next) {
plugins.fireHook('filter:widgets.getWidgets', [], next);

@ -18,7 +18,16 @@ var async = require('async'),
var rendered = [];
Widgets.getArea(area.template, area.location, function(err, widgets) {
async.parallel({
global: function(next) {
Widgets.getArea('global', area.location, next);
},
local: function(next) {
Widgets.getArea(area.template, area.location, next);
}
}, function(err, data) {
var widgets = data.global.concat(data.local);
async.eachSeries(widgets, function(widget, next) {
plugins.fireHook('filter:widget.render:' + widget.widget, {
uid: uid,

Loading…
Cancel
Save