Духовность™
Продвинутый новичок
причем тут я? где методы? нет никаких методов.
Тем. что все общее лежит в одном месте, все индивидуальное -- в индивидуальных. Если ты индивидулаьные данные тащишь в общий шаблон с if'ами, или наоборот общее копипастишь в каждом отдельном шаблоне, то ты сам себе враг.Чем это лучше чем тупо прописать тоже самое в шаблоне-скелете конкретной страницы?
{if $GlobalConfig.client}<link rel="stylesheet" href="/new_css/{if $GlobalConfig.client}.css" type="text/css">{/if}
{if $GlobalDisplay.rel_image}
<link rel="image_src" href="{$rel_image.src}" />
<meta property="og:image" content="{$rel_image.src}" />
<meta property="og:title" content="{$rel_image.content}" />
<meta property="og:description" content="{$rel_image.description}" />
{/if}
Если это просто вставка, то её можно вынести в отдельный блок и просто инклюдить.В общих скелетах начинаются вот такие пляски:
потому, что это никто не будет делать. я работаю в команде с проектом, который никто толком не знает из-за его объема. и никто не возьмет ответственность ради красоты делать такую группировку.почему не сократить дублирующиеся блоки до одного?
можно и нужно. но на практике легче это всунуть непосредственно в общий шаблон.Если это просто вставка, то её можно вынести в отдельный блок и просто инклюдить.
1. дизайны сайтов меняются не частоНо самое главное, чего я не могу понять в теории множественных скелетов - что делать, когда поменялся дизайн сайта?
идти делать одинаковые правки в сотнях скелетов?
{if $GlobalConfig.iphone}
меняем на массивы
{foreach from=$config.js item="css"}<link rel="stylesheet" href="{$css}" type="text/css">{/foreach}
в экшине или глобально для контроллера
$this->addCss('iphone');
для блока такой же форич и $this->addBlock('iphone');
После такого верстальщика придется подключать программиста для монтажа шаблона на этой "верстке". Что не сможет не сказаться на уровне зарплаты верстальщика...Верстальщик не програмист - ему наследование не интересно.
По факту, во всех известных мне компаниях так и происходит: шаблоны делает программист из хтмл-а, нарезанного верстальщиком.После такого верстальщика придется подключать программиста для монтажа шаблона на этой "верстке".
Да ладно уже гнать на верстальщиков. Не надо думать, что они хуже сервер-сайд программистов. У них просто другие задачи.Что не сможет не сказаться на уровне зарплаты верстальщика...
{% extends "base.html" %}
{% block title %}Index{% endblock %}
{% block head %}
{{ parent() }}
<style type="text/css">
.important { color: #336699; }
</style>
{% endblock %}
{% block content %}
<h1>Index</h1>
<p class="important">
Welcome on my awesome homepage.
</p>
{% endblock %}
{% block sidebar %}
<h3>Table Of Contents</h3>
...
{{ parent() }}
{% endblock %}
духовное дублирование
Но ведь альтернатива - куча ифов в основном шаблоне - тоже не фонтан.как-то странно, что шаблон знает куда его вставляют. Мне удобнее наоборот.