簡體   English   中英

magento的產品列表頁面(類別view.phtml / product list.phtml)中的getChildHtml()方法不起作用

[英]getChildHtml() method not working in product list page (category view.phtml/ product list.phtml) in magento

我在getToolbarHtml()之后在list.phtml文件中調用我新創建的引用。 但是它什么也沒顯示。 我的catalog.xml文件如下所示:

<reference name="content">
            <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
                <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
                    <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
                        <block type="page/html_pager" name="product_list_toolbar_pager"/>

                        <!-- The following code shows how to set your own pager increments -->
                        <!--
                            <action method="setDefaultListPerPage"><limit>4</limit></action>
                            <action method="setDefaultGridPerPage"><limit>9</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>2</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>4</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>6</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>8</limit></action>
                            <action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action>
                        -->
                    </block>
                    <reference name="newreference">
                        <block type="core/template" name="newreferenceblock" template="newreference.phtml" />
                    </reference>

                    <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
                    <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>

                </block>
                    </block>

我在引用內部調用引用,問題是我想創建自己的側邊欄。 那么,這有什么問題呢? 在list.phtml中,我通過以下方式致電我的參考:

<?php echo $this->getChildHtml('newreference') ?>

請幫我。

請使用以下方法(記住要在內容下的catelog.xml中更新您的xml):

<?php echo $this->getLayout()->getBlock('yourblockname')->toHtml(); ?> 

更換:

<reference name="newreference">
    <block type="core/template" name="newreferenceblock" template="newreference.phtml" />
</reference>

與:

<block type="core/template" name="newreferenceblock" template="newreference.phtml" />

然后使用“ newreferenceblock”作為模塊名稱在模板中調用您的模塊:

<?php echo $this->getChildHtml('newreferenceblock') ?>

將您的newreference塊放在內容塊的外面。

<?php echo $this->getChildHtml('newreference') ?> call this block in one of your layout file something like below its for 2columns-right layout

<div class="main-container col2-right-layout">
        <div class="main">
            <?php echo $this->getChildHtml('breadcrumbs') ?>
            <div class="col-main">
                <?php echo $this->getChildHtml('global_messages') ?>
                <?php echo $this->getChildHtml('content') ?>
            </div>
            <div class="col-right sidebar"><?php echo $this->getChildHtml('right') ?></div>
        </div>
        <div><?php echo $this->getChildHtml('newreference') ?></div>
    </div>
<reference name="content">
            <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
                <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">

                     <block type="core/text_list" name="left_custompage" as="left_custompage">
                        <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>
                     </block>
                    <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
                        <block type="page/html_pager" name="product_list_toolbar_pager"/>
                        <!-- The following code shows how to set your own pager increments -->
                        <!--
                            <action method="setDefaultListPerPage"><limit>10</limit></action>
                            <action method="setDefaultGridPerPage"><limit>8</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>10</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>20</limit></action>
                            <action method="addPagerLimit"><mode>list</mode><limit>30</limit></action>
                            <action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>8</limit></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>16</limit></action>
                            <action method="addPagerLimit"><mode>grid</mode><limit>24</limit></action>
                            <action method="addPagerLimit" translate="label"><mode>grid</mode><limit>all</limit><label>All</label></action>
                        -->
                    </block>
                    <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
                    <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
                    <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
                </block>
            </block>

其中custompage是我的自定義塊,我將其用作側邊欄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM