画布
画布是一个开发功能,用于替换用于创建、更新或显示对象(产品、合作方、联系人等)的表单。
例如,您可以替换“新建合作方”的输入表单,也可以替换合作方的编辑表单或显示表单。
条件
画布功能在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.php
其中:
- mymodule 目录是用作创建记录的工作区参数的mymodule值(请参阅上一章)。
- mycanvas 是用于创建记录的 canvas 参数的mycanvas值(请参阅上一章)。
- tabname 是要编辑记录的选项卡或页面的名称。在大多数情况下,它的值是“card”。
在我们的 company@societe 画布演示种,模板文件是:
/societe/canvas/company/tpl/card_edit.tpl.php
请注意,对于编辑来说,不需要更改URL。Dolibarr可以检测到您的记录是自定义画布保存的,并自动扫描此模板文件以显示它(如果找到)。否则,将使用标准表单。因此,要使用自己的编辑模板,您只需复制并粘贴现有的编辑模板文件,并使用正确的mymodule和mycanvas值对其进行重命名,然后根据需要对其进行编辑。与创建一样,必须保留所有必填字段,以避免在提交表单以保存变更时出错。
将视图表单替换为您自己的模板
对使用您自己的创建表单保存的记录,使用您自己的视图表单来显示,非常简单,只需添加一个文件:
/mymodule/canvas/mycanvas/tpl/tabname_view.tpl.php
其中:
- mymodule 目录是用作创建记录的工作区参数的mymodule值(请参阅上一章)。
- mycanvas 是用于创建记录的 canvas 参数的mycanvas值(请参阅上一章)。
- tabname 是要显示记录的选项卡或页面的名称。在大多数情况下,它的值是“card”。
在我们的 company@societe 画布演示种,模板文件是:
/societe/canvas/company/tpl/card_view.tpl.php
请注意,对于显示来说,不需要更改URL。Dolibarr可以检测到您的记录是自定义画布保存的,并自动扫描此模板文件以显示它(如果找到)。否则,将使用标准表单。因此,要使用自己的视图模板,只需复制并粘贴现有的演示视图模板文件,并使用正确的mymodule和mycanvas值对其进行重命名,然后根据需要对其进行编辑。
添加代码以管理新字段
参考外部模块 cabinetmed 。