我正在尝试解决我的块的输出是空字符串的问题.
我将其追溯到我可以看到在模板文件中评估PHP语句的程度,但在toHtml()类内部Mage_Core_Block_Abstract,$html = $this->_toHtml();将空字符串赋值给$html.
我进一步挖掘它,并发现在里面fetchView(),$html = ob_get_clean();给它分配空字符串,即使模板被包含在这一行之上,我也可以看到它使用调试器进行评估.
从这里我对如何调试这一点毫无头绪,可能是我在模块中遗漏了一些错误(我是Magento的初学者).
以下是该模块的相关代码:
应用程序/代码/本地/ AnattaDesign/AbandonedCarts的/ etc/config.xml中
<config>
<global>
<blocks>
<anattadesign_abandonedcarts>
<class>AnattaDesign_AbandonedCarts_Block</class>
</anattadesign_abandonedcarts>
</blocks>
</global>
<adminhtml>
<layout>
<updates>
<anattadesign_abandonedcarts>
<file>layout.xml</file>
</anattadesign_abandonedcarts>
</updates>
</layout>
</adminhtml>
Run Code Online (Sandbox Code Playgroud)
应用程序/设计/ adminhtml /碱/默认/布局/ layout.xml
<?xml version="1.0" encoding="utf-8"?>
<layout>
<adminhtml_dashboard_index>
<reference name="head">
<action method="addCss">
<stylesheet>anattadesign/abandonedcarts/css/style.css</stylesheet>
</action>
<action method="addJs">
<script>anattadesign/abandonedcarts/zepto.js</script>
</action>
<action method="addJs">
<script>anattadesign/abandonedcarts/adminhack.js</script>
</action>
</reference>
</adminhtml_dashboard_index>
</layout>
Run Code Online (Sandbox Code Playgroud)
应用程序/代码/本地/ AnattaDesign/AbandonedCarts /控制器/ WidgetController.php
<?php
class AnattaDesign_AbandonedCarts_WidgetController extends Mage_Adminhtml_Controller_Action {
public function indexAction() {
echo "index action of widget controller";
die();
}
public function renderAction() {
$html = $this->getLayout()->createBlock( 'anattadesign_abandonedcarts/widget', 'root' )->setTemplate( 'anattadesign/abandonedcarts/widget.phtml' )->toHtml();
$this->getResponse()->setBody( $html );
die();
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序/代码/本地/ AnattaDesign/AbandonedCarts /座/ Widget.php
<?php
class AnattaDesign_AbandonedCarts_Block_Widget extends Mage_Core_Block_Template {
}
Run Code Online (Sandbox Code Playgroud)
我正在由一个管理员控制器运行它并解决问题renderAction().
删除方法renderAction()中的die()
class AnattaDesign_AbandonedCarts_WidgetController extends Mage_Adminhtml_Controller_Action {
....
public function renderAction() {
$html = $this->getLayout()->createBlock( 'anattadesign_abandonedcarts/widget')
->setTemplate( 'coming.phtml' )
->toHtml();
$this->getResponse()->setBody( $html );
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2350 次 |
| 最近记录: |