2016-09-21 26 views
0

我试图在list.phtml文件中使用$this->getChildHtml()app/design/frontend/[custom]/[theme]/template/catalog/product处插入div

在做<?php var_dump($this->getChildHtml('odoo'))?>我得到string(0) ""

我在app/code/local/[Company]/[Module]创建一个模块并创建了​​3210文件:

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <Company_Module> 
      <version>1.0.0</version> 
     </Company_Module> 
    </modules> 
    <frontend> 
     <rwd> 
      <company> 
       <layout> 
        <odoo> 
         <file>odoo.xml</file> 
        </odoo> 
       </layout> 
      </company> 
     </rwd> 
    </frontend> 
</config> 

然后,里面app/design/frontend/[custom]/[theme]/layout/odoo

<?xml version="1.0"?> 

<layout version="0.1.0"> 
     <reference name="content"> 
       <block type="core/template" name="odoo" template="catalog/product/odoo.phtml" as="odoo" /> 
     </reference> 
</layout> 

odoo.phtml代码:

<div>Hello world</div> 

list.phtml

<?php var_dump($this->getChildHtml('odoo'))?> 

我已清除缓存,并手动删除的full_page_cache内容,但我认为我做somethign错误的。我对Magento没有多少经验,只是编辑前端的mostry,所以我在这里有点迷路。

+0

你可以var_dump高一级?看起来'$ this'的getChildHtml'属性没有'odoo'标签。 –

+0

var_dump($ this) –

+0

@phillipstack结果是一个空白页。看起来它产生了一个恐惧,但看着system.log,没有错误。 – aerojun

回答

0

已解决。

<block type="core/template" name="odoo" template="catalog/product/odoo.phtml" as="odoo" />添加到page.xml布局。

0

尝试使用可以看到的html包装var_dump()。然后使用您的浏览器并检查元素。内容可能在里面。如果你var_dump()的HTML。您将看不到html的字符串表示形式。 html只是您正在查看的页面的一部分。

试试这个。

<div style="background-color: blue; height:30px;"/> 
    <?php var_dump($this) ?> 
<div style="background-color: blue; height:30px;"/> 

如果你右击并检查元素,并通过在调试器的HTML浏览,你会发现$this内容。然后,您应该能够确定您正在查找的标签是否在里面。

0

你可以试试下面我希望它为你工作。

<?xml version="1.0"?> 

    <layout version="0.1.0"> 
    <catalog_product_view translate="label"> 
      <reference name="product.info"> 
        <block type="core/template" name="odoo" template="catalog/product/odoo.phtml" as="odoo" /> 
      </reference> 
    </catalog_product_view> 
</layout> 

此外,如果仍呈现空,那么试着改变块从核心/模板键入您的块名称。