基本上,我想知道是否有办法继承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的方式继承这个模板,但代码似乎没有被执行。
有什么想法吗?
答案 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(搜索替换内容)