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

Cyn*_*hia 3 search themes magento 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>
Run Code Online (Sandbox Code Playgroud)

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

http://s1.mynewsitereview.com/

非常感谢!

Rob*_*Rob 6

首先,您需要创建或更新local.xml文件如果您没有local.xml文件,则可以在其中创建一个

app-> frontend - > [Package Name] - > [Theme Name] - > layout-> local.xml

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

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

下面的示例将它添加到根引用名称,该名称将在所有页面上可用,但可以在template-> page-> 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>
Run Code Online (Sandbox Code Playgroud)

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

<?php echo $this->getChildHtml(‘topSearch’) ?>
Run Code Online (Sandbox Code Playgroud)

现在您可以使用"参考名称"和"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>
Run Code Online (Sandbox Code Playgroud)

然后用footer.phtml调用它

<?php echo $this->getChildHtml('footerSearch') ?>
Run Code Online (Sandbox Code Playgroud)