php - Magento 新的自定义 block 模块

标签 php xml magento

我使用的是 1.8.1.0.

Magento 版本

我正在尝试创建一个新的自定义 block 模块,我将使用它来创建一个新的主页。

  • 命名空间:十字军
  • 模块:CLHomePage
  • block 类型:crusaderhome
  • 类:Qwerty(目前正在测试)
  • 设计包:十字军
  • 主题:默认

这是我目前所拥有的:

\app\etc\modules\Crusader_All.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Crusader_CLHomePage>
            <active>true</active>
            <codePool>local</codePool>
        </Crusader_CLHomePage>
    </modules>
</config>

\app\code\local\Crusader\CLHomePage\etc\config.xml

<?xml version="1.0"?>
<config> 
    <modules>
        <Crusader_CLHomePage>
            <version>0.0.1</version>
        </Crusader_CLHomePage>
    </modules>
    <global>
        <blocks>
            <crusaderhome>
                <class>Crusader_CLHomePage_Block</class>
            </crusaderhome>
        </blocks>
    </global>
</config>

\app\code\local\Crusader\CLHomePage\Block\Qwerty.php

<?php
class Crusader_CLHomePage_Block_Qwerty extends Mage_Core_Block_Template
{
    // Methods (optional)
}
?>

\app\design\frontend\crusader\default\layout\local.xml

<?xml version="1.0" ?>
<layout>
    <cms_index_index>
        <reference name="content">
            <block type="core/template" name="homepage" template="crusader/home.phtml">
                <block type="crusaderhome/qwerty" name="homeads" as="homeads" template="crusader/homeads.phtml" />
            </block>
        </reference>
    </cms_index_index>
</layout>

\app\design\frontend\crusader\default\template\crusader\home.phtml

<div id="home">
<p>Home Wrapper</p>
<?php echo $this->getChildHtml('homeads'); ?>
</div>

\app\design\frontend\crusader\default\template\crusader\homeads.phtml

<p>Adverts</p>

现在,有了上面的内容,我的主页只显示“Home Wrapper”,因此显示了 home.phtml 的内容,但没有显示 homeads.phtml< 的内容.

如果我将 homeads 的 block 类型更改为 core/template,它会起作用,并且我会同时看到“Home Wrapper”和“Adverts”。所以我知道问题与对我的新 block 类型(称为 crusaderhome)的引用有关。

我在这里做错了什么......?

最佳答案

首先

\app\etc\modules\Crusader_All.xml 更改为

\app\etc\modules\Crusader_CLHomePage.xml

使用cLHomePage(检查命名约定。你应该像Clhomepage一样使用小写字母)而不是 block 类型的crusaderhome

<block type="crusaderhome/qwerty" name="homeads" as="homeads" template="crusader/homeads.phtml" />

关于php - Magento 新的自定义 block 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22958701/

相关文章:

c# - 如何查询xsi :type from an attribute using Linq to XML?

php - Paypal Pro 不在 magento 中显示运输方式

php - file_get_contents() 返回缓存的页面

c# - IDispatchMessageInspector 记录纯文本 SOAP 消息?

php - ip blocker 类阻止 "crawl-66-249-76-64.googlebot.com",这是正确的吗?

c# - List<Object> 的 XML 序列化

css - 链接样式被 magento 默认链接样式覆盖

php - magento 数据库导入语法错误

php - 如何从MySQL数据库中选择同一列中包含超过3个所需单词的行?

php - 使用 php 将视频转换为 flv 或 swf ?