画布
画布是一个开发功能,用于替换用于创建、更新或显示对象(产品、合作方、联系人等)的表单。
例如,您可以替换“新建合作方”的输入表单,也可以替换合作方的编辑表单或查看表单。
条件
画布功能在3.2或更高版本中可用。
它目前可用于以下对象:
- 创建产品、联系人和合作方的表单
- 编辑产品、联系人和合作方的表单
- 查看产品、联系人和合作方的tab选项卡。在大多数情况下,这只是查看受支持对象时的第一个选项卡。但是,如果您真的想干预其他选项卡,您也可以查看 模块开发 页面,了解如何禁用或添加选项卡。
将创建表单替换为画布页面
首先要找到要替换的标准创建表单的URL,并添加参数 canvas=mycanvas@mymodule。要查找URL,您可以进入页面并在浏览器顶部找到URL。
例如,假设您希望用自己的表单替换新建合作方表单。URL类似于:
http://mydomain/societe/card.php?action=create&leftmenu=
添加canvas参数后,URL将如下所示:
http://mydomain/societe/card.php?action=create&leftmenu=&canvas=mycanvas@mymodule
当您在创建页面上添加了参数 canvas=mycanvas@mymodule,Dolibarr将使用htdocs中的模板文件,该文件名为:
/mymodule/canvas/mycanvas/tpl/tabname_create.tpl.php
其中:
- mymodule目录是在canvas参数中找到的mymodule值(选择此值并创建具有相同值的目录;请使用小写)。
- mycanvas目录是在canvas参数中找到的mycanvas值(选择此值并创建具有相同值的目录;请使用小写)。
- tablename是存储初始表单的选项卡或页面的名称。在大多数情况下,它的值是“card”。
例如,我们使用“company@societe”作为canvas参数。这是一个已经为合作方编码的演示画布模板的值,在Dolibarr的标准使用中未使用,而是作为“演示”提供。因此,使用此替代模板创建合作方的URL现在是:
http://mydomain/societe/card.php?action=create&leftmenu=&canvas=company@societe
这意味着用于创建合作方的表单将在此模板文件中找到:
/societe/canvas/company/tpl/card_create.tpl.php
因此,要使用您自己的模板,只需为mymodule、mycanvas选择一个值,使用新目录和文件名复制并粘贴Dolibarr目录中的演示模板,然后根据需要修改模板。模板包含顶部菜单下方和左侧菜单右侧的整个部分。您可以更改字段的外观、顺序、添加JavaScript控件、删除或添加自己的字段。唯一的要求是保持必填字段具有相同的名称,以避免在发送页面时出错。已删除的字段将在数据库中填充NULL或0。当前新字段被忽略。稍后我们将看到如何添加代码来保存它们。
完成后,您现在需要在Dolibarr菜单中添加新的创建URL,或将现有URL替换为新URL。要执行此操作,请参阅 菜单系统 页面。
请注意,当使用画布保存记录时,画布名称 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.