Szablon strony

Budowanie szablonów (theme) jest w Odoo wyjątkowo łatwe. Nie trzeba nawet kompilować styli (css) - wystarczy zbudować ich opis w języku Less. Aby otrzymać nowy wygląd stron, trzeba zmienić dwa szablony:

  • website.assets_frontend - dołączane do strony (w nagłówku) arkusze i skrypty
  • website.layout - właściwy opis strony

Można je modyfikować fragmentami. Na przykład dołączamy tylko swój arkusz styli:

<template id="demo_assets_common" name="demo assets" inherit_id="website.assets_frontend">
  <xpath expr="." position="inside">
   <link rel="stylesheet"  href="/my_theme/static/src/css/my_theme.less" 
    type="text/css" media="all"></link>
  </xpath>
</template>

Wprowadzenie własnej stopki:

<template id="website.layout_footer_demo" inherit_id="website.layout" name="Footer">
<xpath expr="//footer" position="replace">
  <footer style="background-color:#cfd2d6">
     <div class="container">
          <div class="pull-left text-muted">
Moja stopka
          </div>
      </div>
    </footer>
  </xpath>
</template>

Dodane nagłówka strony:

<template id="demo_top" name="demo_top" inherit_id="website.layout">
  <xpath expr="//div[@id='wrapwrap']" position="before">
   <div id="toolbar" class="toolbar">
      <div class="container">
        <div class="row">
          <div class="col-sm-12">
            <div class="toolbar-container">
              <aside id="text-2" class="widget widget_text">
                <div class="textwidget">
                  <div class="thim-have-any-question">Napisz do nas                             
                    <div class="mobile">
                      <i class="fa fa-phone"></i>
                      <a href="http://www.galicea.org" class="value">Funacja Galicea</a>
                    </div>
                    <div class="email">
                      <i class="fa fa-envelope"></i>
                      <a href="mailto:demo@galicea.org">demo@galicea.org</a>
                    </div>
                  </div>
                  <div class="thim-have-any-question pull-right">DEMO</div>
                </div>
              </aside>
            </div>
          </div>
        </div>
      </div>
    </div>
  </xpath>
</template>

Oczywiście zamiast position="before" możemy wpisać position="replace" i zmienić wszystko!