Мой вопрос по возможности дизейбла наследования проигнорили, делаю вывод что подобного функционала там нет.
Отсюда возникает другой вопрос, к фанатам наследования шаблонов, как будет решаться следующая задача:
допустим вы сделали крупный проект используя это самое наследование, по прошествии какого то времени заказчик обращается к вам с просьбой полностью перевести всю навигацию на аякс.
Самое простое решение задействовать перехват кликов по ссылкам, и направлять на аякс + history.pushState() ну что то типа такого
$(document).on('click', 'a', function(e) {
var href = this.href;
if(this.host != window.location.host ||
(href.split('#')[0] == window.location.href.split('#')[0] && this.hash == '') ||
this.target != '' ||
!window.history.pushState
)
return;
show_loading();
$.ajax(
href,
{
dataType: 'json',
success: function(data) {
hide_loading();
window.history.pushState(null, data.title, href);
document.title = data.title;
for (var k in data.html)
$('#' + k).html(data.html[k]);
},
error: function(xhr, status, error) {
hide_loading();
alert('Cannot load page: ' + href + '. Try again later.'+"\nstatus: "+status+"\nerror message: "+error);
}
}
);
e.preventDefault();
})
то есть сервер должен обрабатывать запрос с учетом контекста. Если прямой переход (переход из поисковика, индексирование сайта ботами и т.п.) то отдавать нужно полный html как обычно, если запрос отправлен через XMLHttpRequest, соответственно отдаём json с измененными кусками хтмл-я.
Вот собственно вопрос, как такое реализовать, если в каждом шаблоне воткнут extends? Плодить дубли шаблонов для аякса, и при каждой правке верстки помнить, что нужно делать её параллельно в двух местах?