Sigma и addBlockfile в одну переменную (placeholder)

SSSerj

Новичок
Sigma и addBlockfile в одну переменную (placeholder)

В руководстве рассмотрен пример 3 (слегка изменил, но суть таже):
PHP:
$tpl->addBlockfile('LEFT', 'added_block_file1', 'example_3_add_f1.html');
$tpl->setVariable('wer', '12');
$tpl->setCurrentBlock('added_block1');
foreach ($addBlockAry1 as $name1 => $desc1) {
	$tpl->setVariable(array(
	'func_name1'        => $name1,
	'func_description1' => $desc1
	));
	$tpl->parse('added_block1');
}

$tpl->addBlockfile('LEFT', 'added_block_file2', 'example_3_add_f2.html');
$tpl->setVariable('wer', '12');
$tpl->setCurrentBlock('added_block');
foreach ($addBlockAry2 as $name2 => $desc2) {
//здесь может быть и другая логика, но для простоты примера
оставил такую же, что и в блоке выше
$tpl->setVariable(array(
	'func_name2'        => $name,
	'func_description2' => $desc
	));
	$tpl->parse('added_block');
}
Я сознательно продублировал одну и туже операцию, но с разными файлами шаблона('example_3_add_f1.html', ''example_3_add_f2.html').

Не могу понять, каким образом, я могу добавить в одну и туже placeholder два и более блоков? Допустимо ли такая ситуация в Sigma?

-~{}~ 09.10.04 17:36:

PHP:
'func_name2'        => $name2, 
'func_description2' => $desc2
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Re: Sigma и addBlockfile в одну переменную (placeholder)

Автор оригинала: SSSerj
Не могу понять, каким образом, я могу добавить в одну и туже placeholder два и более блоков? Допустимо ли такая ситуация в Sigma?
конструкция
PHP:
$tpl->setErrorHandling(PEAR_ERROR_DIE);
в начале скрипта очень помогает от подобного рода вопросов. Ещё хорошо бы этот код хоть раз запустить до помещения в форум, чего явно сделано не было.
 

SSSerj

Новичок
Sad Spirit, извините, я просто спешил. Код конечно такой:
PHP:
$tpl->loadTemplateFile('example_3.html');
$tpl->setErrorHandling(PEAR_ERROR_DIE);
$tpl->addBlockfile('addblockfile', 'added_block_file1', 'example_3_add.html');
$tpl->setCurrentBlock('added_block_file');
$tpl->setVariable('wer', '12');
$tpl->setCurrentBlock('added_block');
foreach ($addBlockAry1 as $name => $desc) {
	$tpl->setVariable(array(
	'func_name'        => $name,
	'func_description' => $desc
	));
	$tpl->parse('added_block');
}
$tpl->parse('added_block_file');

$tpl->addBlockfile('addblockfile', 'added_block_file1', 'example_3_add.html');
$tpl->setCurrentBlock('added_block_file');
$tpl->setVariable('wer', '12');
$tpl->setCurrentBlock('added_block');
foreach ($addBlockAry1 as $name => $desc) {
	$tpl->setVariable(array(
	'func_name'        => $name,
	'func_description' => $desc
	));
	$tpl->parse('added_block');
}
$tpl->parse('added_block_file');
Результат: Block 'added_block_file1' already exists.
Решение: создаем 2 новых объекта HTML_TEMPLATE_SIGMA, а затем...
PHP:
$tpl->setVariable('addblockfile', $obj1->get().$obj2->get());
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
как вариант можно использовать ещё replaceBlockfile(), он позволяет сохранить предыдущее содержимое блока.

ну или добавлять в исходный шаблон 2 placeholder'а.
 

SSSerj

Новичок
Ок. Благодарю за совет, Sad Spirit!

p.s. еще раз на практике убеждаюсь, что в sigma есть все, что мне необходимо для реализации логики представления.
 
Сверху