在magento中向cms页面添加模板

时间:2014-03-01 05:00:08

标签: module magento-1.8 magento

我希望有人可以帮助我。在向magento添加CMS页面时,我一直在尝试将自定义模板添加到可用布局列表中。我跟着这个tutorial

但是,我的自定义模板未显示在可用布局列表中。我已经能够通过破解该文章末尾所描述的磁芯文件来成功地做到这一点,但我更愿意将其作为一个模块。

我创建了以下文件

应用程序/代码/本地/ mycustom /模板/ config.xml中

<?xml version="1.0"?>
<config>
    <modules>
       <mycustom_template>
           <version>0.1.0</version>
       </mycustom_template>
    </modules>
    <global>
       <page>
          <layouts>
            <home translate="label">
               <label>Home Page</label>
               <template>page/home.phtml</template>
               <layout_handle>custom_homepage</layout_handle>
            </home>
          </layouts>
        </page>
    </global>
</config>

和app / etc / modules / mycustom_template.xml

<?xml version="1.0"?>
<config>
  <modules>
    <mycustom_template>
      <active>true</active>
      <codePool>local</codePool>
      <depends>
        <Mage_Page />
      </depends>
    </mycustom_template>
  </modules>
</config>

2 个答案:

答案 0 :(得分:1)

创建文件app / etc / modules / Easylife_Layout.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Layout>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Page />
            </depends>
        </Easylife_Layout>
    </modules>
</config>

还创建app / code / local / Easylife / Layout / etc / config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Layout>
            <version>0.0.1</version>
        </Easylife_Layout>
    </modules>
    <global>
        <page>
            <layouts>
                <custom_layout module="page" translate="label">
                    <label>Custom layout</label>
                    <template>page/custom_layout.phtml</template>
                    <layout_handle>custom_layout</layout_handle>
                </custom_layout>
            </layouts>
        </page>
    </global>
    <frontend>
        <layout>
            <updates>
                <easylife_layout>
                    <file>easylife_layout.xml</file>
                </easylife_layout>
            </updates>
        </layout>
    </frontend>
</config>

创建app / design / frontend / your package / yourtheme / layout / easylife_layout.xml

<?xml version="1.0"?>
<layout>
    <custom_layout translate="label">
        <label>Custom layout</label>
        <reference name="root">
            <action method="setTemplate"><template>page/custom_layout.phtml</template></action>
            <action method="setIsHandle"><applied>1</applied></action>
        </reference>
    </custom_layout>
</layout>

最后创建app / design / frontend /你的包/ yourtheme / template / page / custom_layout.phtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->getLang() ?>" lang="<?php echo $this->getLang() ?>">
<head>
<?php echo $this->getChildHtml('head') ?>
</head>
<body<?php echo $this->getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>>
<?php echo $this->getChildHtml('after_body_start') ?>
<div class="wrapper custom-layout">
    <?php echo $this->getChildHtml('global_notices') ?>
    <div class="page">
        <?php echo $this->getChildHtml('header') ?>
        <div class="main-container custom-layout-container">
            <div class="main">
                <?php echo $this->getChildHtml('breadcrumbs') ?>
                <div class="col-main">
                    <?php echo $this->getChildHtml('global_messages') ?>
                    <?php echo $this->getChildHtml('content') ?>
                </div>
            </div>
        </div>
        <?php echo $this->getChildHtml('footer') ?>
        <?php echo $this->getChildHtml('before_body_end') ?>
    </div>
</div>
<?php echo $this->getAbsoluteFooter() ?>
</body>
</html>

我希望它会对你有所帮助。

答案 1 :(得分:0)

看看/app/code/core/Mage/Page/etc/config.xml,您将看到需要添加到自己的xml文件中的内容。

<global>
    <page>
        <layouts>
            ...
        </layouts>
    </page>
</global>