Magento:仅使用LOCAL XML进行布局更改

时间:2010-11-29 20:32:06

标签: magento magento-1.4

我对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?

提前致谢并提出最好的问候

1 个答案:

答案 0 :(得分:3)

实际答案是“不,你不能那样做”。

您想要做的事情在理论上是可行的,尽管需要完成的工作量及其价值是值得怀疑的。

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

理论上,你可以

  1. 确定负责呈现特定模板的类
  2. 创建一个扩展此类(不覆盖)的新Block类
  3. 更改local.xml中的添加代码以替换块类
  4. 在新的块类中覆盖视图呈现方法,以便它调用父视图呈现方法,然后在返回其值之前尝试更改返回的字符串的结果
  5. 同样,所有可能,但值得怀疑。

    为什么犹豫是否使用您自己主题中的phtml文件替换默认主题中的phtml文件?