Magento createBlock需要什么

Magento createBlock需要什么,magento,Magento,我想创建一个块,并通过 $this->_addContent($this->getLayout()->createBlock("device/device")) 现在,它没有显示任何内容 为了渲染我的块,需要注意哪些点?需要注意哪些文件 注: COMPANY NAME: Abc MODULE NAME: Device 此外,createBlockdevice/device返回false传递给createBlock的设备/设备字符串是类别名。类别名为Magento开发人员

我想创建一个块,并通过

$this->_addContent($this->getLayout()->createBlock("device/device"))
现在,它没有显示任何内容

为了渲染我的块,需要注意哪些点?需要注意哪些文件

注:

 COMPANY NAME: Abc
 MODULE NAME: Device
此外,createBlockdevice/device返回false

传递给createBlock的设备/设备字符串是类别名。类别名为Magento开发人员提供了一种引用类的方法,而无需使用实际的类名。这种间接寻址允许用Magento术语替换或重写一个类,而无需更改实例化和使用该类的任何代码

首先,在模块的config.xml文件中定义类的前缀,如下所示注意:将此代码添加到任何现有标记中,而不仅仅是将其放在config.xml的底部:

在为块构建类名时,xml的部分是别名中/之前的部分,在生成类名时替换为标记的内容。然后将/替换为u,并将类别名的剩余部分追加到类名中。因此,通过类别名device/device和上面的XML,下面的类名将被构建为Abc_device_Block_device,Magento希望在Abc/device/Block/device.php中找到它。它将按照include_路径中指定的顺序搜索文件夹,通常是app/code/local,然后是app/code/community,然后是app/code/core,最后是'lib'

同样的基本逻辑也适用于模型类和辅助类

不可或缺的扩展有一个很好的工具,可以测试模型/块/辅助类别名在类名和文件位置方面映射到什么

此方法上的其他参数包括可用于引用块并从布局XML文件修改块的名称,以及可在布局XML中找到的其他属性数组。

传递给createBlock的设备/设备字符串是类别名。类别名为Magento开发人员提供了一种引用类的方法,而无需使用实际的类名。这种间接寻址允许用Magento术语替换或重写一个类,而无需更改实例化和使用该类的任何代码

首先,在模块的config.xml文件中定义类的前缀,如下所示注意:将此代码添加到任何现有标记中,而不仅仅是将其放在config.xml的底部:

在为块构建类名时,xml的部分是别名中/之前的部分,在生成类名时替换为标记的内容。然后将/替换为u,并将类别名的剩余部分追加到类名中。因此,通过类别名device/device和上面的XML,下面的类名将被构建为Abc_device_Block_device,Magento希望在Abc/device/Block/device.php中找到它。它将按照include_路径中指定的顺序搜索文件夹,通常是app/code/local,然后是app/code/community,然后是app/code/core,最后是'lib'

同样的基本逻辑也适用于模型类和辅助类

不可或缺的扩展有一个很好的工具,可以测试模型/块/辅助类别名在类名和文件位置方面映射到什么


此方法的其他参数包括可用于引用块并从布局XML文件修改块的名称,以及可在布局XML中找到的其他属性数组。

这是一个很好的答案。添加一个点,优先级是

地方的 社区,然后就来了 如果我没有错的话。
那是一个极好的回答,吉姆。添加一个点,优先级是

地方的 社区,然后就来了 如果我没有错的话。
谢谢你的详细答复。帮助很大!如果我要做你上面说的一切,并且我仍然需要在我的布局/device.XML中放入任何提到块的内容?现在的问题是,我的类Abc_device_block_device存在于Abc/device/block/device.php中,而类Abc_device_block_device扩展了Mage_Core_block_模板,我在类中没有方法。虽然当我使用createBlockdevice/设备时。它只返回一个“false”。我会做错什么?谢谢你!修好了。问题在于我的config.xml。再次感谢!哇,我刚才还在看这个。感谢您的详细回复。帮助很大!如果我要做你上面说的一切,并且我仍然需要在我的布局/device.XML中放入任何提到块的内容?现在的问题是,我的类Abc_device_block_device存在于Abc/device/block/device.php中,而类Abc_device_block_device扩展了Mage_Core_block_模板,我在类中没有方法。虽然当我做createBlock时
设备/设备。它只返回一个“false”。我会做错什么?谢谢你!修好了。问题在于我的config.xml。再次感谢!哇,我刚才还在看这个。1+表示答案正确
<config>
    <global>
        <blocks>
            <device>
                <class>Abc_Device_Block</class>
            </devicer>
        </blocks>
    </global>
</config>