画布
画布是替换屏幕显示的开发功能。
以新窗体替换老窗体来创建、更新或查看记录(产品,第三方,联系人,…)。
例如,您可以替换掉系统自带的“新建第三方”的窗体,或者“修改第三方”的窗体,或者替换掉查看模板。
条件
画布功能于 Dolibarr 3.2 以后可用。
它只适用于:
- products, contacts 和 third parties 对象的新建 窗体
- products, contacts 和 third parties 对象的编辑 窗体
- products, contacts 和 third parties 对象的显示 选项卡。 多数情况下,是打开对象时的第一个选项卡。您可以查看新的模块创建文档: 模块开发#选项卡管理(可选) 了解如何管理选项卡。
用自己的模板替换创建表单
首先要找到要替换的标准创建表单的URL并添加参数: canvas=mycanvas@mymodule. 要找到URL,你可以在浏览器顶部找到URL。
例如,你想替换掉新建第三方的表单。URL有点像
http://mydomain/societe/card.php?action=create&leftmenu=
添加了画布参数后,URL看起来会像:
http://mydomain/societe/card.php?action=create&leftmenu=&canvas=mycanvas@mymodule
当你在“新建”页面增加了参数 canvas=mycanvas@mymodule , Dolibarr 将使用模板文件
/mymodule/canvas/mycanvas/tpl/tabname_create.tpl.php
在这里:
- mymodule 能找到画布参数的mymodule模块名(您选择此值并创建具有相同值的目录。使用小写值).
- mycanvas 画布参数的名称 (您选择此值并创建具有相同值的目录。使用小写值).
- tabname 存储初始表单的选项卡的名称。在大多数情况下,它的值是“card”。
例如,用值 "company@societe" 作为画布参数. 这个值,已经为第三方编写了演示模板。 不在Dolibarr的标准库中,而是做为"Demo"。使用这个替代模板创建URL是:
http://mydomain/societe/card.php?action=create&leftmenu=&canvas=company@societe
这意味着创建第三方的新建表单将载入模板文件:
/societe/canvas/company/tpl/card_create.tpl.php
使用自定义模板,只需选择值mymodule, mycanvas, 复制/粘贴一个Demo模板,新建目录,将粘贴的模板改名,然后修改模板内容。
- 模板包含了水平菜单以下,左侧菜单以右的所有部分。
- 可以改变显示,
- 字段顺序,
- 增加javescript控制,
- 移除或增加自定义字段。
- 唯一的要求是在提交页面时保留强制字段以避免错误。
- 不在模板中的字段将会填充为Null 或 0。
- 新字段被忽略。稍后会学习增加代码以保存新字段。
完成修改模板后,接下来将新的'创建URL'添加到Dolibarr菜单中,或者用新的菜单替换现有的URL。见 Menus_system.
注意,当使用画布保存记录时,画布名 mycanvas@mymodule 会存储于数据库中。因为,Dolibarr知道这条记录是一个画布创建的,因此,系统将只为这个记录使用专用的‘视图’或‘编辑’表单,并继续为其他记录使用标准表单。请参阅下一章。
用自定义模板替换'编辑'表单
使用自己的‘编辑’表单来编辑记录(使用自己的‘创建’表单保存的记录)只需添加一个文件:
/mymodule/canvas/mycanvas/tpl/tabname_edit.tpl
这里:
- mymodule 能找到画布参数的mymodule模块的目录名 (见前章).
- mycanvas 画布参数的名称(见前章).
- tabname 编辑记录的选项卡名称,大多数为 "card".
以演示画布 societe@company 为例, 编辑模板在文件:
/societe/canvas/company/tpl/card_edit.tpl
注意,对于'编辑'不需要更改URL。
Dolibarr可以检测你的记录是一个自定义的画布记录,并自动扫描这个模板文件来显示。如果没有发现模板,将使用标准模板。
因此,使用自己的编辑模板所需做的就是复制和粘贴现有的演示编辑模板文件,并用mymodule和mycanvas的正确值重命名它并编辑它以满足您的需要。 与创建一样,当提交表单以保存更改时,必须保留所有强制字段以避免错误。
用自定义模板替换‘显示’窗体
使用自定义的‘显示’窗体来显示记录(使用自己的创建窗体保存的记录),只需添加文件:
/mymodule/canvas/mycanvas/tpl/tabname_view.tpl
where
- mymodule directory is value mymodule you used as canvas parameter to create record (see previous chapter).
- mycanvas is value mycanvas you used as canvas parameter to create record (see previous chapter).
- tabname is name of tab or page to edit record. In most cases it is value "card".
以演示画布 societe@company 为例, 显示模板在文件:
/societe/canvas/company/tpl/card_view.tpl
注意,对于'显示',不需要更改URL。Dolibarr可以检测你的记录是一个自定义的画布记录,并自动扫描这个模板文件来显示记录。如果没有,将使用标准模板。因此,使用你自己的视图模板所要做的就是复制和粘贴一个现有的演示视图模板文件,并用mymodule和mycanvas的正确值重命名它并编辑它以满足您的需要。
添加代码管理新字段
Example into external module cabinetmed.