Odoo开发文档-教程-主题教程

更多Odoo专题教程已转移至:https://www.zhihu.com/people/suodoo

Odoo崇尚自由,基于自身需求,设计者拥有更长足的自由,而用户拥有任意定制的自由。

准备好创建您自己的主题了吗?好的,这里是一些开始前您必须要了解的内容。这个教程是创建一个Odoo主题的向导。

Odoo开发文档-教程-主题教程_第1张图片

 

给网页设计者的介绍

如果您是一个第一次使用Odoo的网页设计者,您来对地方了。这个介绍将概述Odoo主题的基本创建。

Odoo团队已经创建了一个强大和易用的框架。不需要了解特殊的语法就可以使用这套工具。

从常用的CMS到Odoo

如果您总是使用同一种方式思考和工作,您可能会得到同一种结果。如果您想得到全新的结果,那么请尝试一种不同的方法。

我的header.php文件在哪里?

这是一个习惯于使用Wordpress或者Joomla的网页设计者第一次转到Odoo时通常会问的问题。

 Odoo开发文档-教程-主题教程_第2张图片

 

实际上,当使用常规的CMS时,为了创建一个您网站的基本框架,您需要对几个文件进行编码(例如header.php, page.php, post.php等等)。在那些系统中,这些基本框架作为设计的基础,您必须随着时间推移来更新,以确保与您CMS的兼容性。因此,即使您花了数小时对文件进行编码,还没有开始真正的设计。

这些在创建Odoo主题中并不需要。

我们认为主题的设计应该是简单(而且强大)的。当我们创建网站构建器时,我们决定从头开始,而不是依赖于已有的内容。这个方式给予我们更大的自由来专注于对设计者更重要的东西:样式、内容和它们背后的逻辑。不再为技术层面的东西纠结和挣扎。

 

Odoo默认的主题结构Odoo开发文档-教程-主题教程_第3张图片

 

Odoo从一个默认的主题结构而来。它是一个提供了最小化结构和布局的“主题”。当您创建了一个新的主题,您实际上已经扩展了它。确实,它总是在您的设置中启用,除了您不需要创建和维护它之外,它的确很像我们上面提到的CMS的基本结构。它总是随着您的Odoo安装和自动更新,因为它包含在网站构建器模块中,所有东西都按默认平滑的集成了。

因此,您完全可以自由的专注于设计,这个框架提供了集成和功能的工作。

 

主要特性:

  • 页面、博客和电商的基本布局
  • 网站构建器集成
  • 基本区块
  • 自动Less/Sass 编译
  • 自动Js和CSS最小化和组合

主要技术:

  • Twitter Bootstrap
  • jQuery
  • jQuery UI
  • underscore.js

 

“模块化”思想

Odoo主题不是一个包含了HTML或者PHP文件的目录,它是一个用XML编写的模块化框架。从来没有使用过XML文件?别担心,学完教程之后,您将可以只使用基本的HTML知识来创建您的第一个主题。

使用经典的网页设计流程,您通常会对整体网页的布局进行编码。其结果是一个“静态的”网页。您当然可以更新内容,但是您的客户会需要您做更基础的修改。

为Odoo创建主题是一个完全的视角的改变。替代为一个页面定义完整的布局,您可以创建区块,让用户选择“拖拽”区块元素,自己创建页面的布局。我们把之称为模块化设计。

把一个Odoo主题想象为一个您要创建的元素、选项、样式的“列表”。作为一个设计者,您的目标是样式化这些元素,来达到一个完美的效果,不管最终用户会把它们放置到任何位置。

让我们来看看我们的“列表”元素:

Odoo开发文档-教程-主题教程_第4张图片 Odoo开发文档-教程-主题教程_第5张图片

区块(或者构建区块)

一段HTML代码。用户可以使用我们內建的网站构建界面拖拽,修改和组合它们。您可以为每个区块定义选项和样式的集合。用户可以根据需要从中选择。

页面

这些是普通的网页页面,它们除了可以被最终用户编辑,也可以定义一个空的区域,让用户可以拖拽区块“填充”到其中。

Odoo开发文档-教程-主题教程_第6张图片

Odoo开发文档-教程-主题教程_第7张图片

 

样式

样式使用标准CSS文件(或者Less/Sass)来定义。您可以定义一个默认或者可选的样式。默认样式在您的主体中总是有效,可选样式可以由用户启用和禁用。

 

功能

感谢Odoo的模块化机制,所有内容都可以做更多的自定义。这意味着您的创造力会有无限的可能。添加功能非常方便,向最终用户提供自定义选项也非常简单。

 
 

Odoo的XML文件概览

任何Odoo的XML文件始于一个编码的规范。之后,您必须在标签中编写您的代码。

1 [XML]
2 xml version="1.0" encoding="utf-8" ?>
3 <odoo>
4  
5     ## YOUR CODE HERE
6  
7 odoo>

 

您创建的几乎所有的元素和选项必须放置在一个