1

我的商店中有一个类别需要与标准 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

4 回答 4

2

当您在 magento 中搜索“1column.phtml”字符串时,您会发现:

App/code/core/Mage/Page/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缓存并转到您的类别编辑屏幕=>自定义设计=>页面布局并选择您刚刚在下拉列表中添加的模板。

希望这可以帮助。

于 2013-03-06T20:37:19.590 回答
1

用于新 CMS 布局的 Magento 模块,但版本为 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>
        ....

之后不要忘记刷新缓存

于 2013-03-05T14:44:39.177 回答
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>

就是这样。:)

于 2013-11-28T17:56:36.310 回答
-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 中的代码。

于 2016-02-15T06:41:28.170 回答