画布是一个开发功能,用于替换用于创建、更新或显示对象(产品、合作方、联系人等)的表单。

例如,您可以替换“新建合作方”的输入表单,也可以替换合作方的编辑表单或显示表单。

条件

画布功能在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值对其进行重命名,然后根据需要对其进行编辑。

添加代码以管理新字段

  Page waiting to complete. To complete, create an account, go back and clic on "Modify".
  Page en attente d'être complété. Pour compléter, créez un compte, revenez et cliquez sur "Modifier".
  Página a completar. Para completarla, cree una cuenta, vuelva a la página y haga clic en "editar"
  Seite wartet auf Vervollständigung. Um zu helfen, erstelle ein Konto, gehe zurück und klicke auf "Bearbeiten".
  待完成,欲帮助完成,注册帐号,点击“编辑"
  ページは未完成の状态です。完成させるにはアカウントを作成し、ページに戻って“编集”をクリックして下さい。

参考外部模块 cabinetmed 。