2012-02-09 10 views
1

design/frontend/default/template/lookbook/lookbook.phtmlおよびlookbookpage.phtmlに2つのテンプレートファイルがあります。私はテンプレートをlookbookpage.phtmlするために行くことで書くことかわからない複数のテンプレートが1つのモジュールでマゼンタ

<h4><?php echo $this->__('Lookbook') ?></h4> 
<?php 
$lookbooks = Mage::getModel('manager/manager')->getCollection(); 
foreach ($lookbooks as $lookbook): ?> 
    <a href=""><?php echo $lookbook->getTitle(); ?></a><br /> 
<?php endforeach; ?> 

私はlookbook.phtml、のようなものからlookbookpage.phtmlテンプレートを呼び出したいです。 マイデザイン/フロントエンド/デフォルト/レイアウト/ lookbook.xmlは、次のようになります。

<layout version="0.1.0"> 
    <default> 
    </default> 
    <manager_index_index> 
     <reference name="content"> 
      <block type="manager/manager" name="manager" template="lookbook/lookbook.phtml" /> 
     </reference>   
    </manager_index_index> 
</layout> 

私は私が私のレイアウトxmlファイルに何をする必要があるか分かりません。私はちょうどスタートが必要です。

答えて

4
<?xml version="1.0"?> 
<layout> 
    <manager_index_index> 
     <reference name="content"> 
      <block type="manager/manager" name="manager" template="lookbook/lookbook.phtml"> 
       <block type="manager/manager" name="manager_page" template="lookbook/lookbookpage.phtml"> 
      </block> 
     </reference>   
    </manager_index_index> 
</layout> 

そして、あなたのlookbook.phtml使用<?php echo $this->getChildHtml('manager_page') ?>インチ

あなたが使用しているブロックの種類については不思議です。ブロックインスタンスを内部で使用することは非常に珍しいことです。単にテンプレートをレンダリングする必要がある場合は、、つまりtype="core/template"を使用してください。

+0

Thanks Ben ...しかし、lookbook.phtmlからlookbookpage.phtmlにidを渡すにはどうしたらいいですか? – Hum

+0

ああ、どこに行くのか分かります。ビュークラス(ブロック)がコレクションアイテムをループしてレンダリングする必要があります。例えば、 'checkout/cart.phtml'テンプレート - ' getItems() 'ループと、各製品をレンダリングするために内部で使用されるメソッドを探します。別のアプローチは 'catalog/product/list.phtml'テンプレートの場合のように子ブロックを使用しないことです。 – benmarks

+0

コレクション用のブロック関数を呼び出すことはできますが、htmlをレンダリングしてリンクを作成して、lookbook.phtmlからlookbookpageテンプレートを呼び出す方法を理解できていません – Hum

関連する問題