Объект макета представляет собой набор блочных объектов. Блоки организованы в форме родительского/дочернего дерева.
Ваш макет состоит из одного блока. Вы не добавили к нему никаких дочерних блоков. Поэтому, когда шаблон вашего блока пытается отобразить дочерний элемент с помощью getChildHtml, он не может его найти, и никаких дополнительных выходных данных не создается.
Кроме того, блок topLinks по умолчанию ничего не отображает. В него нужно добавить ссылки. Обычно это делается с помощью других файлов layout.xml.
Наконец, вероятно, лучше начинать рендеринг с вызова
echo $block_header->toHtml();
Ниже приведен пример того, как вы можете правильно вкладывать блоки, а также вызывать методы их действий, чтобы вы могли отображать свои блоки вне обычной процедуры диспетчеризации. Он отличается от вашего тем, что мы создаем новый блок ссылок, добавляем в него ссылку и добавляем ее в ваш блок верхнего уровня.
require_once 'app/Mage.php';
umask(0);
Mage::app('default');
$layout = Mage::getSingleton('core/layout');
$block_header = $layout->createBlock('page/html_header')->setTemplate('page/html/header.phtml');
// <block type="" name="top.links" as="topLinks"/>
$block_links = $layout->createBlock('page/template_links','top.links')->setTemplate('page/template/links.phtml');
$block_header->setChild('topLinks',$block_links);
//<reference name="top.links">
// <action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>10</position></action>
//</reference>
$block_links->addLink('My Account','foo/baz/bar/','My Account','','',10);
echo $block_header->toHtml();
person
Alan Storm
schedule
02.01.2011