in xf/ui/xf.ui.footer.js [17:88]
render : function (footer, options) {
var jQFooter = $(footer),
_self = this;
if (!footer || !(jQFooter instanceof $) || jQFooter.attr('data-skip-enhance') == 'true') {
return;
}
options.id = options.id || XF.utils.uniqueID();
jQFooter.attr({
'data-id': options.id,
'id': options.id,
'data-role' : 'footer',
'data-skip-enhance' : 'true'
});
// detect if data-fixed is true
options.fixed = options.fixed === true ? true : false;
options.buttons = options.buttons || [];
var parentPages = $(this.selector).parents('.xf-page'),
siblingPages = $(this.selector).siblings('.xf-page');
if (!_.isEmpty(parentPages) && options.isFixed) {
parentPages.addClass('xf-has-footer');
}
if (!_.isEmpty(siblingPages)) {
siblingPages.addClass('xf-has-footer');
}
// selects buttons inside of footer
var buttons = jQFooter.find(XF.ui.button.selector);
options.buttonsClass = 'xf-grid-unit-1of' + buttons.length;
for (var i = 0; i < buttons.length; ++i) {
var button = buttons.eq(i);
var butOpts = {
iconClass : button.attr('data-icon') ? 'xf-icon-' + button.attr('data-icon') : '',
dataHrefString : button.attr('data-href') ? button.attr('data-href') : '',
textClass : button.attr('data-text-class') ? button.attr('data-text-class') : '',
id : button.attr('data-id') ? button.attr('data-id') : options.id + '-item' + i,
text : button.val() || button.text() || ''
};
options.buttons.push(butOpts);
}
XF.router.on('route', function () {
XF.ui.footer.selectButton(jQFooter);
});
// Underscore template for footer
var _template = _.template(
'<div class="xf-footer <% if(fixed) { %> xf-footer-fixed <% } %>">' +
'<ul class="xf-nav">' +
'<% _.each(buttons, function(button) { %>' +
'<li class="xf-grid-unit <%= buttonsClass %>">' +
'<a data-href="<%= button.dataHrefString %>" class="xf-nav-item xf-iconpos-top" id="<%= button.id %>">' +
'<div class="xf-icon xf-icon-big <%= button.iconClass %>"></div>' +
'<div class="xf-nav-item-text <%= button.textClass %>"><%= button.text %></div>' +
'</a>' +
'</li>' +
'<% }); %>' +
'</ul>' +
'</div>'
);
jQFooter.html(_template(options));
XF.ui.footer.selectButton(jQFooter);
},