画布: Difference between revisions

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
m (Import interlang links (links to translated versions of this page in other languages) from origin English page "Canvas_development".)
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 8: Line 8:
<!-- END interlang links -->
<!-- END interlang links -->


{{Template用户手册}}
{{Template开发文档}}
{{Template开发文档}}
{{TemplateMainPageZh}}
画布是替换屏幕显示的开发功能。


以新窗体替换老窗体来创建、更新或查看记录(产品,第三方,联系人,…)。
画布是一个开发功能,用于替换用于创建、更新或显示对象(产品、合作方、联系人等)的表单。


例如,您可以替换掉系统自带的“新建第三方”的窗体,或者“修改第三方”的窗体,或者替换掉查看模板。
例如,您可以替换“新建合作方”的输入表单,也可以替换合作方的编辑表单或显示表单。


= 条件 =
=条件=
画布功能于 Dolibarr 3.2 以后可用。
画布功能在3.2或更高版本中可用。


它只适用于:
它目前可用于以下对象:
* '''products''', '''contacts''' 和 '''third parties''' 对象的'''新建''' 窗体
* '''products''', '''contacts''' 和 '''third parties''' 对象的'''编辑''' 窗体
* '''products''', '''contacts''' 和 '''third parties''' 对象的'''显示''' 选项卡。 多数情况下,是打开对象时的第一个选项卡。您可以查看新的模块创建文档: [[模块开发#选项卡管理(可选)]] 了解如何管理选项卡。


= 用自己的模板替换创建表单 =
*'''创建产品、联系人和合作方'''的表单
首先要找到要替换的标准创建表单的URL并添加参数: '''canvas=mycanvas@mymodule'''. 要找到URL,你可以在浏览器顶部找到URL。
*'''编辑产品、联系人和合作方'''的表单
*'''显示产品、联系人和合作方'''的tab选项卡。在大多数情况下,这只是查看受支持对象时的第一个选项卡。但是,如果您真的想干预其他选项卡,您也可以查看  [[模块开发]]  页面,了解如何禁用或添加选项卡。


例如,你想替换掉新建第三方的表单。URL有点像
=将创建表单替换为画布页面=
首先要找到要替换的标准创建表单的URL,并添加参数 canvas=mycanvas@mymodule。要查找URL,您可以进入页面并在浏览器顶部找到URL。
 
例如,假设您希望用自己的表单替换新建合作方表单。URL类似于:


'''http://mydomain/societe/card.php?action=create&leftmenu='''
'''http://mydomain/societe/card.php?action=create&leftmenu='''


添加了画布参数后,URL看起来会像:
添加canvas参数后,URL将如下所示:


'''http://mydomain/societe/card.php?action=create&leftmenu=&canvas=mycanvas@mymodule'''
'''http://mydomain/societe/card.php?action=create&leftmenu=&canvas=mycanvas@mymodule'''


当你在“新建”页面增加了参数 canvas=mycanvas@mymodule , Dolibarr 将使用模板文件
当您在创建页面上添加了参数 canvas=mycanvas@mymodule,Dolibarr将使用htdocs中的模板文件,该文件名为:


'''/''mymodule''/canvas/''mycanvas''/tpl/''tabname''_create.tpl.php'''
'''/''mymodule''/canvas/''mycanvas''/tpl/''tabname''_create.tpl.php'''


在这里:
其中:
* '''mymodule''' 能找到画布参数的mymodule模块名(您选择此值并创建具有相同值的目录。使用小写值).
* '''mycanvas''' 画布参数的名称 (您选择此值并创建具有相同值的目录。使用小写值).
* '''tabname''' 存储初始表单的选项卡的名称。在大多数情况下,它的值是“card”。


例如,用值 "'''company@societe'''" 作为画布参数. 这个值,已经为第三方编写了演示模板。 不在Dolibarr的标准库中,而是做为"Demo"。使用这个替代模板创建URL是:
*mymodule目录是在canvas参数中找到的mymodule值(选择此值并创建具有相同值的目录;请使用小写)。
*mycanvas目录是在canvas参数中找到的mycanvas值(选择此值并创建具有相同值的目录;请使用小写)。
*tablename是存储初始表单的选项卡或页面的名称。在大多数情况下,它的值是“card”。
 
例如,我们使用“company@societe”作为canvas参数。这是一个已经为合作方编码的演示画布模板的值,在Dolibarr的标准使用中未使用,而是作为“演示”提供。因此,使用此替代模板创建合作方的URL现在是:


'''http://mydomain/societe/card.php?action=create&leftmenu=&canvas=company@societe'''
'''http://mydomain/societe/card.php?action=create&leftmenu=&canvas=company@societe'''


这意味着创建第三方的新建表单将载入模板文件:
这意味着用于创建合作方的表单将在此模板文件中找到:


'''/societe/canvas/company/tpl/card_create.tpl.php'''
'''/societe/canvas/company/tpl/card_create.tpl.php'''


使用自定义模板,只需选择值'''mymodule''', '''mycanvas''', 复制/粘贴一个Demo模板,新建目录,将粘贴的模板改名,然后修改模板内容。
因此,要使用您自己的模板,只需为mymodule、mycanvas选择一个值,使用新目录和文件名复制并粘贴Dolibarr目录中的演示模板,然后根据需要修改模板。模板包含顶部菜单下方和左侧菜单右侧的整个部分。您可以更改字段的外观、顺序、添加JavaScript控件、删除或添加自己的字段。唯一的要求是保持必填字段具有相同的名称,以避免在发送页面时出错。已删除的字段将在数据库中填充NULL或0。当前新字段被忽略。稍后我们将看到如何添加代码来保存它们。


* 模板包含了水平菜单以下,左侧菜单以右的所有部分。
完成后,您现在需要在Dolibarr菜单中添加新的创建URL,或将现有URL替换为新URL。要执行此操作,请参阅 [[菜单|菜单系统]] 页面。
* 可以改变显示,
* 字段顺序,
* 增加javescript控制,
* 移除或增加自定义字段。
* 唯一的要求是在提交页面时保留'''强制字段'''以避免错误。
* 不在模板中的字段将会填充为Null 或 0。
* 新字段被忽略。稍后会学习增加代码以保存新字段。


完成修改模板后,接下来将新的'创建URL'添加到Dolibarr菜单中,或者用新的菜单替换现有的URL。见 [[Menus_system]].
请注意,当使用画布保存记录时,画布名称 mycanvas@mymodule 也会存储在数据库中。这一点很重要,因为这意味着Dolibarr将能够知道这一记录是哪个画布保存的,而不是由另一个画布保存的。因此,它可以建议仅用于此记录的视图或修改表单,并继续对其他记录使用标准表单。请参阅以下章节。


注意,当使用画布保存记录时,画布名 '''mycanvas@mymodule''' 会存储于数据库中。因为,Dolibarr知道这条记录是一个画布创建的,因此,系统将只为这个记录使用专用的‘视图’或‘编辑’表单,并继续为其他记录使用标准表单。请参阅下一章。
=将编辑表单替换为您自己的模板=
对使用您自己的创建表单保存的记录,使用您自己的编辑表单来编辑,非常简单,只需添加一个文件:


= 用自定义模板替换'编辑'表单 =
'''/mymodule/canvas/mycanvas/tpl/tabname_edit.tpl.php'''
使用自己的‘编辑’表单来编辑记录(使用自己的‘创建’表单保存的记录)只需添加一个文件:


'''/mymodule/canvas/mycanvas/tpl/tabname_edit.tpl'''
其中:


这里:
*'''mymodule''' 目录是用作创建记录的工作区参数的mymodule值(请参阅上一章)。
* '''mymodule''' 能找到画布参数的mymodule模块的目录名 (见前章).
*'''mycanvas''' 是用于创建记录的 canvas 参数的mycanvas值(请参阅上一章)。
* '''mycanvas''' 画布参数的名称(见前章).
*'''tabname''' 是要编辑记录的选项卡或页面的名称。在大多数情况下,它的值是“card”。
* '''tabname''' 编辑记录的选项卡名称,大多数为 "card".


以演示画布 societe@company 为例, 编辑模板在文件:
在我们的 company@societe 画布演示种,模板文件是:
 
'''/societe/canvas/company/tpl/card_edit.tpl'''


注意,'''对于'编辑'不需要更改URL'''。
'''/societe/canvas/company/tpl/card_edit.tpl.php'''


Dolibarr可以检测你的记录是一个自定义的画布记录,并自动扫描这个模板文件来显示。如果没有发现模板,将使用标准模板。
请注意,对于编辑来说,不需要更改URL。Dolibarr可以检测到您的记录是自定义画布保存的,并自动扫描此模板文件以显示它(如果找到)。否则,将使用标准表单。因此,要使用自己的编辑模板,您只需复制并粘贴现有的编辑模板文件,并使用正确的mymodule和mycanvas值对其进行重命名,然后根据需要对其进行编辑。与创建一样,必须保留所有必填字段,以避免在提交表单以保存变更时出错。


因此,使用自己的编辑模板所需做的就是复制和粘贴现有的演示编辑模板文件,并用mymodule和mycanvas的正确值重命名它并编辑它以满足您的需要。
=将视图表单替换为您自己的模板=
与创建一样,当提交表单以保存更改时,必须保留所有强制字段以避免错误。
对使用您自己的创建表单保存的记录,使用您自己的视图表单来显示,非常简单,只需添加一个文件:


= 用自定义模板替换‘显示’窗体 =
'''/mymodule/canvas/mycanvas/tpl/tabname_view.tpl.php'''
使用自定义的‘显示’窗体来显示记录(使用自己的创建窗体保存的记录),只需添加文件:


'''/mymodule/canvas/mycanvas/tpl/tabname_view.tpl'''
其中:


where
*'''mymodule''' 目录是用作创建记录的工作区参数的mymodule值(请参阅上一章)。
* '''mymodule''' directory is value mymodule you used as canvas parameter to create record (see previous chapter).
*'''mycanvas''' 是用于创建记录的 canvas 参数的mycanvas值(请参阅上一章)。
* '''mycanvas''' is value mycanvas you used as canvas parameter to create record (see previous chapter).
*'''tabname''' 是要显示记录的选项卡或页面的名称。在大多数情况下,它的值是“card”。
* '''tabname''' is name of tab or page to edit record. In most cases it is value "card".


以演示画布 societe@company 为例, 显示模板在文件:
在我们的 company@societe 画布演示种,模板文件是:
    
    
'''/societe/canvas/company/tpl/card_view.tpl'''
'''/societe/canvas/company/tpl/card_view.tpl.php'''


注意,对于'显示',不需要更改URL。Dolibarr可以检测你的记录是一个自定义的画布记录,并自动扫描这个模板文件来显示记录。如果没有,将使用标准模板。因此,使用你自己的视图模板所要做的就是复制和粘贴一个现有的演示视图模板文件,并用mymodule和mycanvas的正确值重命名它并编辑它以满足您的需要。
请注意,对于显示来说,不需要更改URL。Dolibarr可以检测到您的记录是自定义画布保存的,并自动扫描此模板文件以显示它(如果找到)。否则,将使用标准表单。因此,要使用自己的视图模板,只需复制并粘贴现有的演示视图模板文件,并使用正确的mymodule和mycanvas值对其进行重命名,然后根据需要对其进行编辑。


= 添加代码管理新字段 =
=添加代码以管理新字段=
{{ToComplete}}
{{ToComplete}}
Example into external module cabinetmed.
参考外部模块 cabinetmed 。
[[Category:开发]]

Latest revision as of 06:45, 27 September 2023


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

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

条件

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

添加代码以管理新字段

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

参考外部模块 cabinetmed 。