Я использую следующий SQL для получения позиций для контента.Борьба с формированием и идентификацией результата
$leftBlock ='l';
$rightBlock ='r';
$topBlock = 'c';
$bottomBlock = 'd';
$blockposition = array();
$result2 = $db->sql_query("SELECT bposition FROM {$prefix}_blocks_manager WHERE module_title ='$name'");
while($row2 = $db->sql_fetchrow($result2)) {
$blockposition[] = $row2['bposition'];
}
$blockposition2 = array_unique($blockposition);//remove duplicates becouse db output can be like:lllrrrd
if (in_array($leftBlock, $blockposition2) AND in_array($rightBlock, $blockposition2)) {
$mytestresult = "We go use a template with left and right blocks";
}
if (in_array($leftBlock, $blockposition2) AND !in_array($rightBlock, $blockposition2)) {
$mytestresult = "We go use a template with just left blocks";
}
if (!in_array($leftBlock, $blockposition2) AND in_array($rightBlock, $blockposition2)) {
$mytestresult = "We go use a template with just right blocks";
}
if (!in_array($leftBlock, $blockposition2) AND !in_array($rightBlock, $blockposition2)) {
$mytestresult = "We go use a template with just content";
}
The $name
представляет страницу, где я смотрю.
$mytestresult
пойдет сказать Twig, чтобы загрузить конкретный шаблон:
$template = $twig->loadTemplate('mytestresult_file.phtml');
Но для каждого шаблона выше я могу создать контент, который добавляет новое содержание выше или ниже существующего контента.
$topBlock
и $bottomBlock
Внутри моего сценария я загрузить все левый/правый/верхний/нижний блоки в функции blocks($side) { .....
blocks('l') blocks('r') blocks('c') blocks('d')
Мне нужен способ, чтобы сказать прутик, как сделать, если один из 4 шаблонов выше также содержит $topBlocks
и/или $bottomBlock
s.
По умолчанию и не загружать любой из 4 шаблонов выше я сделать так:
// render template
echo $template->render(array (
'title' => $title1,
'metaDesc' => $metaDesc,
'metaKeywords' => $metaKeywords,
'navContent' => $navContent,
'leftContent' => $leftContent,
'defaultContent' => $module_content,
'rightContent' => $rightContent,
'footerContent' => $copyright
));
Но веточка оказывает в этом случае HTML, для rightContent, даже если там не содержание.
Это: http://twig.sensiolabs.org/doc/recipes.html? – hakre
Не жалко, это не то, что я имел в виду. Я просто хочу сказать TWIG, какой шаблон он должен загрузить. Я не хочу говорить об этом в TWIG. – HenryW
Ну прямо сейчас, в вашем коде, вы не загружаете * любой * шаблон вообще. Вы действительно знаете, как загрузить конкретный шаблон? – hakre