0

我对此完全陌生,我只是无法弄清楚。这是代码:

页面.xml

<layout version="0.1.0">
    <default translate="label" module="page">
        <label>All Pages</label>
        <block type="page/html" name="root" output="toHtml" template="page/pd-1column.phtml">

            <!-- Add Styles to Head -->
            <block type="page/html_head" name="head" as="head">
                <action method="addCss"><stylesheet>css/style.css</stylesheet></action>
            </block>

            <!-- Our Header -->
            <block type="page/html_header" name="header" as="header" translate="label">
                <label>Header</label>
            </block>


            <!-- Background -->
            <block type="page/html_background" name="background" as="background" translate="label">
                <label>Background</label>
            </block>

            <!-- The Footer -->
            <block type="page/html_footer" name="footer" as="footer" template="page/html/footer.phtml">
                <label>Footer</label>
            </block>
        </block>
    </default>
</layout>

pd-1column.phtml

<!DOCTYPE html>
<head>
    <?php echo $this->getChildHtml('head'); ?>
</head>
<body>
    <div id="wrapper">
            <?php echo $this->getChildHtml('header'); ?>      
            <?php echo $this->getChildHtml('background'); ?>      
            <?php echo $this->getChildHtml('footer'); ?>
    </div>
</body>
</html>

文件名:header.phtml、background.phtml、footer.phtml

我究竟做错了什么?

编辑:解决方案是将 page.xml 文件修改为

<block type="page/html_header" name="background" as="background" template="page/html/background.phtml">
            <label>Background</label>
 </block>
4

1 回答 1

1
 <block type="page/html_header" name="header" as="header" translate="label">

page/html_header类型对应于存在于的块类文件

app/code/core/Mage/Page/Block/Html/Header.php

这是 Magento 的核心块类。每个块类型都指向一个特定的类文件。所以你的头模板可以访问所有这些方法Header.php

同样Background.php块不存在于路径中app/code/core/Mage/Page/Block/Html/

块在这里更好地解释

于 2012-07-20T01:39:36.457 回答