Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento:仅使用本地XML更改布局_Magento_Magento 1.4 - Fatal编程技术网

Magento:仅使用本地XML更改布局

Magento:仅使用本地XML更改布局,magento,magento-1.4,Magento,Magento 1.4,我是magento的新手,我想定制商店的前端 我正在使用Magento 1.4.1,并计划对新模板的local.xml进行所有设计修改 我的疑问是,是否可以仅使用local.xml更改布局结构。我的意思是不改变phtml文件 我希望能够做到的一个简单例子是: 我想把目录搜索放在html的另一部分,而不是像今天这样放在。所以,我想把它从顶部的酒吧,并把它放在另一个div <div class="top-bar"> <div class="breadcrumbs">

我是magento的新手,我想定制商店的前端

我正在使用Magento 1.4.1,并计划对新模板的local.xml进行所有设计修改

我的疑问是,是否可以仅使用local.xml更改布局结构。我的意思是不改变phtml文件

我希望能够做到的一个简单例子是: 我想把目录搜索放在html的另一部分,而不是像今天这样放在。所以,我想把它从顶部的酒吧,并把它放在另一个div

<div class="top-bar">
<div class="breadcrumbs">
    <ul>
                    <li class="home">
                            <a href="http://www.domain.com/magento/" title="Ir para página principal">Principal</a>
                                        <span>/ </span>
                        </li>
                    <li class="category9">
                            <strong>Product Category</strong>
                                    </li>
            </ul>
</div><!--breadcrumbs-->
<form id="search_mini_form" action="http://www.domain.com/magento/catalogsearch/result/" method="get">
    <div class="form-search">
        <label for="search">Pesquisar</label>
        <input id="search" type="text" name="q" value="" class="input-text" />
        <button type="submit" title="Ir" class="button"><span><span>Ir</span></span></button>
        <div id="search_autocomplete" class="search-autocomplete"></div>
        <script type="text/javascript">
        //<![CDATA[
            var searchForm = new Varien.searchForm('search_mini_form', 'search', 'Procurar em toda a loja...');
            searchForm.initAutocomplete('http://www.domain.com/magento/catalogsearch/ajax/suggest/', 'search_autocomplete');
        //]]>
        </script>
    </div>
</form>
</div>   <!--top bar-->

  • /
  • 产品类别
佩斯奎萨尔 红外光谱 //
我如何做到这一点?是否可以只使用local.xml

提前感谢并致以最诚挚的问候

实际的回答是“不,你不能那样做”

你想做的在理论上是可能的,尽管需要做的工作量和价值是值得怀疑的。

您可以使用local.xml添加、删除块以及与块交互。每个phtml文件都有一个父块,对应于布局中的某些内容。不能通过布局XML更改phtml块的呈现方式,除非块和phtml包含允许此操作的逻辑

理论上,你可以

  • 确定负责呈现特定模板的类
  • 创建扩展该类的新块类(非替代)
  • 更改local.xml中的add code以替换块类
  • 在新块类中,重写视图渲染方法,使其调用父视图渲染方法,然后在返回其值之前尝试更改返回字符串的结果
  • 同样,这一切都是可能的,但价值值得怀疑


    为什么要犹豫将默认主题中的phtml文件替换为您自己主题中的phtml文件?

    太好了。谢谢你,安瑟。我认为这是正确的做法,因此升级是透明的,没有问题。但似乎我仍然必须更改phtml以进行结构html更改。:)当人们在论坛(等)上谈论它时,有时他们会让它看起来像是100%的升级证明-我认为这是幻想,除了在特殊情况下,有最小的变化正在进行。只是为了提供一个(通用)解决方案。。。。除了local.xml方法之外,我从来没有接触过stock phtml文件,而是复制它们并将它们放入我自己的主题文件夹中进行修改。通过这种方式,可以很容易地看到我对默认主题所做的不同更改。此外,当我升级到下一个版本的magento时,我可以看到哪些phtml文件在默认主题中更新,并与自定义的phtml文件进行比较。(我的方法假设某种类型的scm,如mercurial/git/etc,能够进行差异化处理)