Magento新页面模板

时间:2012-10-23 22:03:14

标签: templates magento

我正在尝试添加新模板,以便我可以并排放置两个内容块。例如:content_left和content_right。问题是新字段是空的,我无法在其中显示任何内容。目标是并排创建登录和帐户,每个都在自己的块中。

这是新模板2columns.phtml(修剪一些):

<?php echo $this->getChildHtml('head') ?>
</head>
<body<?php echo $this->getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>>
<?php echo $this->getChildHtml('after_body_start') ?>
<div class="wrapper">
    <?php echo $this->getChildHtml('global_notices') ?>
    <div class="page">
        <?php echo $this->getChildHtml('header') ?>
        <div class="main-container col2-right-layout">
            <div class="main">
                <?php echo $this->getChildHtml('breadcrumbs') ?>
                <div class="col-main1">
                    <?php echo $this->getChildHtml('global_messages') ?>
                    <?php echo $this->getChildHtml('content_left') ?>
                </div>
                <div class="col-main2"><?php echo $this->getChildHtml('content_right') ?></div>
            </div>
        </div>
        <?php echo $this->getChildHtml('footer') ?>
        <?php echo $this->getChildHtml('before_body_end') ?>
    </div>
</div>
<?php echo $this->getAbsoluteFooter() ?>

这是我正在尝试使用它的XML:

<customer_account_login translate="label">
        <label>Customer Account Login Form</label>
        <!-- Mage_Customer -->
        <remove name="right"/>
        <remove name="left"/>

        <reference name="root">
            <action method="setTemplate"><template>page/2columns.phtml</template></action>
       </reference>
        <reference name="content_left">
            <block type="customer/form_register" name="customer_form_register" template="customer/form/register.phtml">
                <block type="page/html_wrapper" name="customer.form.register.fields.before" as="form_fields_before" translate="label">
                    <label>Form Fields Before</label>
                </block>
            </block>
       </reference>
        <reference name="content_right">
            <block type="customer/form_login" name="customer_form_login" template="customer/form/login.phtml" />
        </reference>
    </customer_account_login>

除了content_left和content_right之外,一切似乎都有效。不幸的是,这需要显示一切重要的东西。我试图更新CSS,我在模块中定义了它。问题是使用'content_left / right'而不仅仅是'content'和其他已经使用过的东西?请帮忙,我一整天都在这个页面。

2 个答案:

答案 0 :(得分:1)

您需要做几件事:

  1. 创建 content_left content_right 块,而不是引用它们。它们实际上并不存在于布局文件中的任何位置,这就是为什么引用它们不起作用的原因。这需要在您向其添加其他块之前完成。
  2. 确保在正确的位置创建创建的 content_left content_right 块。通过简单地更改对块的引用,您将在与根块相同的级别创建它们......如果将它们放在此处,它们将无法呈现。所以你需要将它们添加到根块中。
  3. 这是我能够工作的布局:

    <customer_account_login translate="label">
        <label>Customer Account Login Form</label>
        <!-- Mage_Customer -->
        <remove name="right"/>
        <remove name="left"/>
    
        <reference name="root">
            <action method="setTemplate"><template>page/2column-contact.phtml</template></action>
    
            <block type="core/text_list" name="content_left" as="content_left" translate="label">
                <block type="customer/form_register" name="customer_form_register" template="customer/form/register.phtml">
                    <block type="page/html_wrapper" name="customer.form.register.fields.before" as="form_fields_before" translate="label">
                        <label>Form Fields Before</label>
                    </block>
                </block>
            </block>
    
            <block type="core/text_list" name="content_right" as="content_right" translate="label">
                <block type="customer/form_login" name="customer_form_login" template="customer/form/login.phtml" />
            </block>
        </reference>
    </customer_account_login>
    

答案 1 :(得分:0)

您遇到此问题的原因是您需要添加“阻止”而不是“参考”。

阻止

这附在每个模板上,为其提供了完成工作所需的功能。

<强>参考

这是一种将块(或其他规则)附加到特定页面的方法(例如,在产品视图页面中添加特殊块)。

要解决此问题,请替换此行:

<reference name="content_left">

使用:

<block type="catalog/product" template="path/to/your/template.phtml">

如果在手上,你的意图是把所有内容都放在一列 - (即你想输出'customer_form_register','customer.form.register.fields.before'到一列,'' customer_form_login'进入另一列)

然后执行以下操作:

1)删除2'参考&gt;你添加了。

2)在phtml文件中创建一个div(对于你想要的每个部分)。

3)回显这些div中的块名称(即customer_form_login)并添加必要的CSS规则。