2012-10-23 71 views
1

我想添加一个新的模板,所以我可以并排两个内容块。例如:content_left和content_right。问题是新的领域是空的,我无法得到任何东西出现在他们身上。目标是并排登录和创建帐户,每个帐户都有自己的块。Magento新页面模板

这里是新模板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'和其他已经使用的东西?请帮忙,我一整天都在这个页面。

回答

1

有几件事情你需要做的:

  1. 创建content_leftcontent_right块而不是引用它们。它们实际上并不存在于布局文件的任何位置,这就是为什么引用它们不起作用的原因。在添加其他块之前,需要完成此操作。
  2. 确保已创建块content_leftcontent_right块在正确的位置创建。通过简单地改变一个块的引用,你可以在与根块相同的级别创建它们......如果它们放置在这里,它们将不会渲染。所以你需要将它们添加到根块中。

这是我的布局能得到工作:

<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> 
+0

谢谢!这工作得很好。这是非常好的知道。 –

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'参考>。

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

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