【问题标题】:Magento: Layout Changes using LOCAL XML ONLYMagento:仅使用本地 XML 进行布局更改
【发布时间】:2023-03-17 08:31:01
【问题描述】:

我对 magento 很陌生,我想自定义商店前端。

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

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

我希望能够做到的一个简单示例是: 我想将目录搜索放在我的 html 的另一部分,而不是像今天这样放在 .所以我想把它从 top-bar 中删除并放在另一个 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吗?

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

【问题讨论】:

    标签: magento magento-1.4


    【解决方案1】:

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

    您想做的事情在理论上是可行的,尽管需要完成的工作量和价值值得商榷。

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

    理论上可以

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

    同样,一切皆有可能,但价值值得怀疑。

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

    【讨论】:

    • 太棒了。谢谢你的回答。我相信这是正确的做法,因此升级是透明的并且没有问题。但似乎我仍然必须更改 phtml 以进行结构性 html 更改。 :)
    • 当论坛(等)上的人们谈论它时,他们有时会让人觉得有可能 100% 升级证明 - 我认为这是幻想,除非有最小变化的特殊情况正在完成。
    • 并且只是为了提供一个(通用)解决方案......除了 local.xml 方法之外,我从不接触股票 phtml 文件,而是将它们复制并放入我自己的主题文件夹进行修改。这样就很容易通过差异查看我对默认值所做的更改。此外,当我升级到下一个版本的 magento 时,我可以查看默认主题中更新了哪些 phtml 文件,并与我自定义的 phtml 文件进行比较。 (我的方法假设某种类型的 scm,比如 mercurial/git/etc 能够做差异)
    猜你喜欢
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多