2

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

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

4

1 回答 1

3

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

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

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

理论上,你可以

  1. 识别负责呈现特定模板的类
  2. 创建一个扩展此类的新 Block 类(不覆盖)
  3. 更改 local.xml 中的添加代码以替换块类 
  4. 在您的新块类中覆盖视图渲染方法,以便它调用父视图渲染方法,然后在返回其值之前尝试更改返回字符串的结果

再次,所有可能的,但值得怀疑的价值。

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

于 2010-11-29T20:52:04.487 回答