gpt4 book ai didi

php - 如何从 magento 1 模板调用 block 方法

转载 作者:可可西里 更新时间:2023-10-31 22:11:22 26 4
gpt4 key购买 nike

我是 magento 的新手,总是遇到问题。

现在,我设法添加了订阅弹出消息,并想向我的主 block 添加一个子 block 。

代码:(我的自定义模块是My_Module)

<reference name="before_body_end">
<block type="newsletter/subscribe" name="newsletter_popup" as="newsletter_popup" template="popup/subscribe.phtml">
<block type="Module/popup_newsletter" name="newsletter11" />
</block>
</reference name="before_body_end">

subscribe.phtml 中,我尝试以下操作:

var_dump($this->getChildHtml('newsletter11'))

但结果是:

string(0)""

我也尝试以这种方式从模板加载 block :

var_dump($this->getLayout()->createBlock('module/popup_newsletter'));

但结果是boolean(false)。

我想做的是从子 block (Newsletter.php) 调用一个方法,然后输出一些文本,这个 block 现在有这两个方法:

puplic function test(){
return 'this is test';
}

public function _toHtml()
{
return test();
}

我看不出是我的错。

谢天谢地,任何人都可以帮助我,我不知道您是否需要更多代码来发布。如果你需要,请告诉我

提前致谢。

更新:config.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<My_Module>
<version>1.0.1</version>
</My_Module>
</modules>

<global>
<models>
<my_module>
<class>My_Module_Model</class>
</my_module>
</models>
<helpers>
<my_module>
<class>My_Module_Helper</class>
</my_module>
</helpers>
<blocks>
<my_module>
<class>My_Module_Block</class>
</my_module>
</blocks>
</global>
<frontend>
<routers>
<My_Module>
<use>standard</use>
<args>
<module>My_Module</module>
<frontName>my</frontName>
</args>
</My_Module>
</routers>
</frontend>

最佳答案

在模板 (phmtl) 文件中为 block 创建对象。试试下面的代码

$customBlock = $this->getLayout()->getBlock('block_name'); // You can use newsletter11 in that block_name

调用 block 函数

echo $customBlock->test();

关于php - 如何从 magento 1 模板调用 block 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25034283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com