2010-11-18 4 views
1
<block type="catalog/product_compare_sidebar" before="cart_sidebar" name="catalog.compare.sidebar" template="catalog/product/compare/sidebar.phtml"/> 
<block type="catalog/product_list"...> 

私はhttp://magebase.com/magento-tutorials/demystifying-magentos-layout-xml-part-1/を研究しました。これはブロッククラス名を定義するtype属性です。Magento - レイアウト

上記のコードでは、catalog/product_compare_sidebarとcatalog/product_listはブロッククラスである必要があります。したがって、これらのブロックを宣言したphpファイルの場所はどこですか(「catalog/product_compare_sidebar」および「catalog/product_list ")?

多くのブロックタイプがあります。どのブロックタイプが使用可能か、どのブロックタイプが既存のブロックに適しているかをどのように知ることができますか?ここ

おかげさま

答えて

2

は協会です:

catalog/product_compare_sidebar => /app/code/core/Mage/Catalog/Block/Product/Compare/Sidebar.php 
catalog/product_list => app/code/core/Mage/Catalog/Block/Product/List.php 

あなたは日食PDTを使用している場合は、単にCtrlキー + Shiftキー + Tと型押し: *カタログ* Product_Compare_Sidebarにします最初のクラスを見つける。

更新:「クラスブロック」を検索すると、利用可能なすべてのブロックタイプが表示されます。 あなたは日食PDTを使用している場合は、単にはCtrl +Shiftキー + Tと型押し: ブロックを。 あなたのリンクの最後の段落は、最も重要なものをかなりよく説明しています。 Personnaly、私は自分の型を作成し、Mage_Core_Block_Templateから継承するか、直接使用します。

UPDATE_2:Mage_Core_Block_Abstractでは、あなたがこの方法

を見ることができる私はそれがどこかに、各XML属性に呼ばれなければならないと思います。どこにブレークポイントを置くか、ここで死んでスタックトレースを見てください。

+0

どうもありがとうございます。「ブロックタイプが多いのですが、どのブロックタイプが使用可能か、どのブロックタイプを既存のブロックに適したものにするかをどのように知ることができますか? –

+0

@Charles Yeung:上記の更新を参照してください – greg0ire

+0

ありがとう、もう1つあります "{{block type =" catalog/product_list "category_id =" 5 "template =" catalog/product/list.phtml "}}" category_id属性がありますか? –

関連する問題