Magento为类别使用添加​​了新的页面布局

时间:2013-03-05 11:39:07

标签: xml magento-1.7

我的商店中有一个类别,需要与标准Magento布局完全不同的布局。所以我创建了1column.phtml的新副本并对其进行了修改并进行了一项小改动以进行测试:

前端/测试/默认/模板/页/ 1column-lookbook.phtml

    <?php
/**
 * Template for Mage_Page_Block_Html
 */
?>
<!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="container">
    <?php echo $this->getChildHtml('global_notices') ?>
    <div class="page">
        <?php echo $this->getChildHtml('header') ?>
        <div class="page_content">
            <div class="row">
                <div class="sixcol">
                    <?php echo $this->getChildHtml('breadcrumbs') ?>
                </div>
                <div class="sixcol last">

                </div>
            </div>
            <div class="row"><h3>Filter here</h3></div>
            <div class="row"><h3>Scrolling content</h3></div>
            <div class="row">
                <div class="main-content">
                    <?php echo $this->getChildHtml('global_messages') ?>
                    <?php echo $this->getChildHtml('content') ?>
                </div>
            </div>
            <?php echo $this->getChildHtml('footer') ?>
            <?php echo $this->getChildHtml('before_body_end') ?>
        </div>
    </div>
</div>
<?php echo $this->getAbsoluteFooter() ?>
</body>
</html>

我似乎无法通过我的类别看到这一点,我尝试在page.xml和layout.xml文件中添加对它的引用。但无论我尝试过什么,我似乎无法将其显示在我的类别的页面布局下拉列表中。

4 个答案:

答案 0 :(得分:2)

当您在magento中搜索&#34; 1column.phtml&#34;你会发现的字符串:

应用/代码/核心/法师/页的/ etc / config.xml中
在第45行,您将找到所需的配置

现在您可以将相同的配置结构放在您自己的模块中,如下所示:

<global>
    <page>
        <layouts>
            <test module="page" translate="label">
                <label>The test</label>
                <template>page/test.phtml</template>
                <layout_handle>page_test</layout_handle>
            </test>
        </layouts>
    </page>
</global>

刷新magento缓存并转到类别编辑屏幕=&gt;自定义设计=&gt;页面布局,然后在下拉列表中选择刚刚添加的模板。

希望这有帮助。

答案 1 :(得分:1)

Magento Module for new CMS layout, but in version 1.7.0.2

http://www.magentocommerce.com/boards/viewthread/285425/#t400446

在那里有很多......

在自定义模块XML配置中添加一些条目以添加新布局

<config>
    <modules>
        <My_Module>
            <version>0.0.0.1</version>
        </My_Module>
    </modules>
    <global>
    <page>
        <layouts>
            <my_layout module="page" translate="label">
                <label>My Layout</label>
                <template>page/mylayout.phtml</template>
                <layout_handle>my_layout</layout_handle>
            </my_layout>
        ....

不要忘记在

之后刷新缓存

答案 2 :(得分:0)

查找:/App/etc/local.xml

</global>标记之前,添加额外的页面布局配置。

<page>
  <layouts>
    <lookbook module="page" translate="label">
      <label>LOOK BOOK</label>
        <template>page/1column-lookbook.phtml</template>
      <layout_handle>page_lookbook</layout_handle>
    </lookbook>
  </layouts>
</page>

Thats'it。 :)

答案 3 :(得分:-1)

创建新布局的方式更好。

http://www.sundataplus.com/adding-a-new-page-layout-to-magento-1-x/

可以编辑文件:app / code / core / Mage / Page / etc / config.xml 在...和其他布局之间添加新行。

<page>
        <layouts>
.
.
        <home module="page" translate="label">
            <label>Home</label>
            <template>page/home.phtml</template>
            <layout_handle>page_home</layout_handle>
        </home>
.
.
        </layouts>
</page>

创建新文件:template / page / home.phtml以及1column.phtml,2columns-left.phtml等。您可以复制home.phtml中其中一个列布局phtml的现有代码。根据需要修改home.phtml中的代码。