Odoo:继承网站页脚以将内容包装在div中

时间:2016-10-05 10:22:13

标签: xml openerp

基本上,我想知道是否有办法继承website.footer_default来包装div中的部分内容。

举一个简短的例子,如果初始模板如下所示:

<template name="website.footer_default">
    <div id="footer">
        <content>
    </div>
</template>

我想用以下代码替换它:

<template name="website.footer_default">
    <div id="footer">
        <div class="mynewdiv">
            <content>
        </div>
    </div>
</template>

有没有办法实现这一点而无需复制/粘贴xpath中的所有内容?

我也尝试以qweb的方式继承这个模板,但代码似乎没有被执行。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

我找到了一种实现这一目标的方法,而不必重写所有内容,只有一个限制:它只适用于网页模板。

该解决方案使用javascript(以及Odoo网站与jquery捆绑在一起的事实)在运行时包装元素。

以下是代码化的方式:

<template name="new_footer_default" inherit_id="website.footer_default">
    <div id="footer" position="before">
        <script>
            $(document).ready(function(){
                $('#footer>*').wrapAll('<div class='mynewdiv'/>');
            });
        </script>
    </div>
</template>

答案 1 :(得分:0)

这对我有用。访问包含页脚的父项,并将其替换为包装原始代码的代码。

<openerp>
    <data>
        <template id="new_footer" inherit_id="website.layout">

            <xpath expr="//footer" position="replace">
                <footer>
                    <div class="mynewdiv">
                        <div id="footer_container">
                        </div>
                    </div>
                </footer>
            </xpath>

        </template>
    </data>
</openerp>

答案 2 :(得分:0)

在Odoo 11中,您可以执行以下操作:

{{1}}

$ 0是添加替换节点内容的标记。它必须用作仅包含$ 0(没有空格或其他文本)的文本节点

请参见https://www.odoo.com/documentation/11.0/reference/views.html(搜索替换内容)