如何将我的Magento迷你搜索表单移动到我的模板标题中的另一个位置?

时间:2012-08-29 15:51:22

标签: magento search themes magento-1.7

我正在构建我的第一个自定义Magento主题。它进展缓慢,但 正在进行中。我摆脱了最初在主页上保存迷你搜索表单的栏,而是想把搜索表单放在我的新标题中。

以下是header.phtml中标题的代码:

<div id="header">
<a href="<?php echo $this->getUrl('') ?>" title="<?php echo $this->getLogoAlt() ?>" class="logo"><img src="<?php echo $this->getLogoSrc() ?>" alt="<?php echo $this->getLogoAlt() ?>" /></a>
    <div id="header-top">
    <?php echo $this->getChildHtml('topSearch') ?>
    <?php echo $this->getChildHtml('topLinks') ?>
    </div>
    <?php echo $this->getChildHtml('topMenu') ?>
</div>

但搜索表单不呈现。这是有问题的网站:

http://s1.mynewsitereview.com/

非常感谢!

2 个答案:

答案 0 :(得分:6)

首先需要创建或更新local.xml文件如果没有local.xml文件,可以在

中创建一个

app-&gt; frontend-&gt; [包名称] - &gt; [主题名称] - &gt; layout-&gt; local.xml

创建完成后,您可以将此帖中的内容完全复制到该文件中,以便开始使用。

通过LOCAL.XML文件进行所有更新,而不是通过catalog.xml !!这将使得后来的升级变得更加容易。此外,您还可以在一个文件中快速查看对站点所做的所有更改。

以下示例将其添加到根引用名称,该名称将在所有页面上提供,但可以在template-&gt; page-&gt; 1column.phtml或2column-left.phtml 3column.phtml等中轻松调用。

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <default>
        <reference name="root">
            <block type="core/template" name="top.search" as="topSearch" template="catalogsearch/form.mini.phtml"/>
        </reference>
   </default>
</layout>

然后使用您当前使用的方式调用它。

<?php echo $this->getChildHtml(‘topSearch’) ?>

现在您可以使用“参考名称”和“as”名称,如上一节所述。例如,您可以使用下面的类似设置来引用页脚块以添加搜索功能。对于教育,“as”名称是.phtml文件中使用的名称。和“name”是在xml文件中引用块的方式。所以在上面的例子中。我将搜索字段添加到根内容区域,然后在我的.phtml文件中使用“as”名称“topSearch”调用它

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <default>
        <reference name="footer">
            <block type="core/template" name="footer.search" as="footerSearch" template="catalogsearch/form.mini.phtml"/>
        </reference>
    </default>
</layout>

然后使用

在footer.phtml中调用它
<?php echo $this->getChildHtml('footerSearch') ?>

答案 1 :(得分:4)

我知道这个问题已经很老了,但我会发布我的答案,希望能帮助其他人解决同样的问题

在我的情况下,我需要在我的页脚上添加另一个搜索表单,所以我打开了

应用程序/德兴/前端/碱/默认/布局/ catalogsearch.xml

并复制:

<reference name="header">
        <block type="core/template" name="top.search" as="topSearch" template="catalogsearch/form.mini.phtml"/>
    </reference>

到:默认标签内的app / desing / frontend / my-theme / my-theme / layout / local.xml

<reference name="header">
        <block type="core/template" name="top.search" as="topSearch" template="catalogsearch/form.mini.phtml"/>
    </reference>
</default><!-- just to give a idea of the position of where you should paste this code -->

然后我将其更改为:

<reference name="footer">
        <block type="core/template" name="footer.search" as="footerSearch" template="catalogsearch/form.mini.phtml"/>
    </reference>
</default>

然后在我的页脚文件中,我打电话给:

<?php echo $this->getChildHtml('footerSearch') ?>

基本上你必须告诉你的主题需要使用本地xml来获取'footerSearch',然后你可以把它称为php。