2016-10-05 73 views
1

基本上,我想知道是否有辦法繼承website.footer_default以將部分內容包裝在div中。Odoo:繼承網站頁腳以包裝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

我發現了一種方法來實現這一點,而不必重寫所有內容,但有一個限制:它只能在Web模板上工作。

解決方案使用javascript(以及Odoo網站捆綁jquery的事實)在運行時打包元素。

這裏是如何看起來codewise:

<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> 
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> 
+0

感謝您的建議,但這需要重寫全部代碼的DIV中,而這正是我想避免的。複製/粘貼所有舊內容需要爲每個版本的網站插件創建一個版本,該版本具有不同的頁腳。我的老闆不接受。 –