我正在尝试添加新模板,以便我可以并排放置两个内容块。例如: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'和其他已经使用过的东西?请帮忙,我一整天都在这个页面。
答案 0 :(得分:1)
您需要做几件事:
这是我能够工作的布局:
<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规则。