closes #783, support for array.length

v1.18.x
psychobunny 11 years ago
parent efa45ad907
commit 0cca8e0bcf

@ -323,6 +323,33 @@
template = ''; template = '';
} }
function checkConditional(key, value) {
var conditional = makeConditionalRegex(key),
matches = template.match(conditional);
if (matches !== null) {
for (var i = 0, ii = matches.length; i < ii; i++) {
var conditionalBlock = matches[i].split(/<!-- ELSE -->/);
if (conditionalBlock[1]) {
// there is an else statement
if (!value) {
template = template.replace(matches[i], conditionalBlock[1].replace(/<!-- ((\IF\b)|(\bENDIF\b))([^@]*?)-->/gi, ''));
} else {
template = template.replace(matches[i], conditionalBlock[0].replace(/<!-- ((\IF\b)|(\bENDIF\b))([^@]*?)-->/gi, ''));
}
} else {
// regular if statement
if (!value) {
template = template.replace(matches[i], '');
} else {
template = template.replace(matches[i], matches[i].replace(/<!-- ((\IF\b)|(\bENDIF\b))([^@]*?)-->/gi, ''));
}
}
}
}
}
for (var d in data) { for (var d in data) {
if (data.hasOwnProperty(d)) { if (data.hasOwnProperty(d)) {
if (typeof data[d] === 'undefined') { if (typeof data[d] === 'undefined') {
@ -330,6 +357,8 @@
} else if (data[d] === null) { } else if (data[d] === null) {
template = replace(namespace + d, '', template); template = replace(namespace + d, '', template);
} else if (data[d].constructor == Array) { } else if (data[d].constructor == Array) {
checkConditional(namespace + d + '.length', data[d].length);
namespace += d + '.'; namespace += d + '.';
var regex = makeRegex(d), var regex = makeRegex(d),
@ -353,33 +382,6 @@
} else if (data[d] instanceof Object) { } else if (data[d] instanceof Object) {
template = parse(data[d], d + '.', template); template = parse(data[d], d + '.', template);
} else { } else {
function checkConditional(key, value) {
var conditional = makeConditionalRegex(key),
matches = template.match(conditional);
if (matches !== null) {
for (var i = 0, ii = matches.length; i < ii; i++) {
var conditionalBlock = matches[i].split(/<!-- ELSE -->/);
if (conditionalBlock[1]) {
// there is an else statement
if (!value) {
template = template.replace(matches[i], conditionalBlock[1].replace(/<!-- ((\IF\b)|(\bENDIF\b))([^@]*?)-->/gi, ''));
} else {
template = template.replace(matches[i], conditionalBlock[0].replace(/<!-- ((\IF\b)|(\bENDIF\b))([^@]*?)-->/gi, ''));
}
} else {
// regular if statement
if (!value) {
template = template.replace(matches[i], '');
} else {
template = template.replace(matches[i], matches[i].replace(/<!-- ((\IF\b)|(\bENDIF\b))([^@]*?)-->/gi, ''));
}
}
}
}
}
checkConditional(namespace + d, data[d]); checkConditional(namespace + d, data[d]);
checkConditional('!' + namespace + d, !data[d]); checkConditional('!' + namespace + d, !data[d]);

@ -112,6 +112,7 @@
<li><a href="{relative_path}/admin/events"><i class="fa fa-fw fa-calendar-o"></i> Events</a></li> <li><a href="{relative_path}/admin/events"><i class="fa fa-fw fa-calendar-o"></i> Events</a></li>
</ul> </ul>
</div> </div>
<!-- IF authentication.length -->
<div class="well sidebar-nav"> <div class="well sidebar-nav">
<ul class="nav nav-list"> <ul class="nav nav-list">
<li class="nav-header">Social Authentication</li> <li class="nav-header">Social Authentication</li>
@ -122,6 +123,7 @@
<!-- END authentication --> <!-- END authentication -->
</ul> </ul>
</div> </div>
<!-- ENDIF authentication.length -->
<div class="well sidebar-nav"> <div class="well sidebar-nav">
<ul class="nav nav-list"> <ul class="nav nav-list">
<li class="nav-header">Plugins</li> <li class="nav-header">Plugins</li>

Loading…
Cancel
Save