レイアウトオブジェクトはブロックオブジェクトの集合です。ブロックは、親子ツリー形式で編成されています。
レイアウトには1つのブロックがあります。子ブロックを追加していません。したがって、ブロックのテンプレートが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();
アランはかなりよく質問に答えのように私には見える:あなたはあまりにもそれをチェックアウトしてみたいと思うかもしれません。それはあなたが望むように問題を解決していないかもしれませんが、私はそれが正しいとマークすることをお勧めします。 – shaune
マゼンタのヘッダーとフッターをサードパーティのCMS /アプリケーションなどの外部に含める場合は、次の記事を参照してください。
http://www.blog.magepsycho.com/using -magento-header-footer-magentoの外/ハッピーEコマース!! – MagePsycho