画布: Difference between revisions

(Created page with "{{TemplateDocDevEn}} {{Template用户手册}} {{TemplateMainPageZh}} 画布是替换屏幕显示的开发功能。 以新窗体替换老窗体来创建、更新或查看记录...")
 
No edit summary
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{TemplateDocDevEn}}
<!-- BEGIN interlang links -->
{{Template用户手册}}
<!-- Do NOT edit this section
{{TemplateMainPageZh}}
    Links below are automatically managed by PolyglotBot
    You can edit links on the English source page : Canvas_development -->
[[en:Canvas_development]]
[[fr:Développement_Canvas]]
[[es:Desarrollo_Canvas]]
<!-- END interlang links -->


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


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


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


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


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


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


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


'''http://mydomain/societe/soc.php?action=create&leftmenu=customers'''
例如,假设您希望用自己的表单替换新建合作方表单。URL类似于:


添加了画布参数后,URL看起来会像:
'''http://mydomain/societe/card.php?action=create&leftmenu='''


'''http://mydomain/societe/soc.php?action=create&leftmenu=customers&canvas=mycanvas@mymodule'''
添加canvas参数后,URL将如下所示:


当你在“新建”页面增加了参数 canvas=mycanvas@mymodule , Dolibarr 将使用模板文件
'''http://mydomain/societe/card.php?action=create&leftmenu=&canvas=mycanvas@mymodule'''


'''/''mymodule''/canvas/''mycanvas''/tpl/''tabname''_create.tpl'''
当您在创建页面上添加了参数 canvas=mycanvas@mymodule,Dolibarr将使用htdocs中的模板文件,该文件名为:


在这里:
'''/''mymodule''/canvas/''mycanvas''/tpl/''tabname''_create.tpl.php'''
* '''mymodule''' 目录能找到画布参数的mymodule模块名(您选择此值并创建具有相同值的目录。使用小写值).
* '''mycanvas''' is value mycanvas found into canvas parameter (you choose this value and create directory with same value. use lower case value).
* '''tabname''' 存储初始表单的选项卡的名称。在大多数情况下,它是价值的“card”。


For example, we will use value "'''company@societe'''" for canvas parameter. This is a value of an already coded demo canvas template for third parties, not used in a standard usage of Dolibarr but provided as "demo". So URL to create a third party using this alternative template is now:
其中:


'''http://mydomain/societe/soc.php?action=create&leftmenu=customers&canvas=societe@company'''
*mymodule目录是在canvas参数中找到的mymodule值(选择此值并创建具有相同值的目录;请使用小写)。
*mycanvas目录是在canvas参数中找到的mycanvas值(选择此值并创建具有相同值的目录;请使用小写)。
*tablename是存储初始表单的选项卡或页面的名称。在大多数情况下,它的值是“card”。


This means the form to create the third party will be found into template file:
例如,我们使用“company@societe”作为canvas参数。这是一个已经为合作方编码的演示画布模板的值,在Dolibarr的标准使用中未使用,而是作为“演示”提供。因此,使用此替代模板创建合作方的URL现在是:


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


So to use you own template, just choose a value for '''mymodule''', '''mycanvas''', copy and paste a demo template found into Dolibarr directories with new directory and new file name and then edit the template like you want. Template contains all the part under the top menu and at right of left menu. You can change look, field order, add your javascript controls, remove or add your own fields. The only requirement is to keep mandatory fields with same name to avoid errors when you will submit the page. Fields removed will be filled with null or 0 into database. New fields for the moment are ignored. We will see later how we can add code to save them.
这意味着用于创建合作方的表单将在此模板文件中找到:


Once this is done, you must now add the new create URL into Dolibarr menus or replace the existing one with new one. For this take a look at page [[Menus_system]].
'''/societe/canvas/company/tpl/card_create.tpl.php'''


Note that when a record is saved using a canvas, the canvas name '''mycanvas@mymodule''' is also stored into database. This is important because this means, Dolibarr will be able to know that this record is a canvas and not the other so it will be able to them suggest a view or edit form dedicated for this record only and keep using standard forms for other records. See next chapters.
因此,要使用您自己的模板,只需为mymodule、mycanvas选择一个值,使用新目录和文件名复制并粘贴Dolibarr目录中的演示模板,然后根据需要修改模板。模板包含顶部菜单下方和左侧菜单右侧的整个部分。您可以更改字段的外观、顺序、添加JavaScript控件、删除或添加自己的字段。唯一的要求是保持必填字段具有相同的名称,以避免在发送页面时出错。已删除的字段将在数据库中填充NULL或0。当前新字段被忽略。稍后我们将看到如何添加代码来保存它们。


= Replace an edit form with your own template =
完成后,您现在需要在Dolibarr菜单中添加新的创建URL,或将现有URL替换为新URL。要执行此操作,请参阅 [[菜单|菜单系统]] 页面。
Using your own edit form for a record saved using your own create form is as simple as adding a file called


'''/mymodule/canvas/mycanvas/tpl/tabname_edit.tpl'''
请注意,当使用画布保存记录时,画布名称 mycanvas@mymodule 也会存储在数据库中。这一点很重要,因为这意味着Dolibarr将能够知道这一记录是哪个画布保存的,而不是由另一个画布保存的。因此,它可以建议仅用于此记录的视图或修改表单,并继续对其他记录使用标准表单。请参阅以下章节。


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".


With our canvas demo societe@company, edit template will be into file
'''/mymodule/canvas/mycanvas/tpl/tabname_edit.tpl.php'''
 
 
'''/societe/canvas/company/tpl/card_edit.tpl'''
其中:
 
*'''mymodule''' 目录是用作创建记录的工作区参数的mymodule值(请参阅上一章)。
*'''mycanvas''' 是用于创建记录的 canvas 参数的mycanvas值(请参阅上一章)。
*'''tabname''' 是要编辑记录的选项卡或页面的名称。在大多数情况下,它的值是“card”。
 
在我们的 company@societe 画布演示种,模板文件是:
 
'''/societe/canvas/company/tpl/card_edit.tpl.php'''
 
请注意,对于编辑来说,不需要更改URL。Dolibarr可以检测到您的记录是自定义画布保存的,并自动扫描此模板文件以显示它(如果找到)。否则,将使用标准表单。因此,要使用自己的编辑模板,您只需复制并粘贴现有的编辑模板文件,并使用正确的mymodule和mycanvas值对其进行重命名,然后根据需要对其进行编辑。与创建一样,必须保留所有必填字段,以避免在提交表单以保存变更时出错。


Note that for edit, changing URL is not necessarly required. Dolibarr can detect your record is a personalized canvas record and automatically scan for this template file to show it if found. If not, standard form will be used. So all you have to do to use your own edit template is copy and paste an existing demo edit template file and rename it with correct value of mymodule and mycanvas and edit it to match your need.
=将视图表单替换为您自己的模板=
Like for creation, all mandatory fields must be kept to avoid errors when submitting the form to save change.
对使用您自己的创建表单保存的记录,使用您自己的视图表单来显示,非常简单,只需添加一个文件:


= Replace a view form with your own template =
'''/mymodule/canvas/mycanvas/tpl/tabname_view.tpl.php'''
Using your own view form for a record saved using your own create form is as simple as adding a file called


'''/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".


With our canvas demo societe@company, view template will be into file
在我们的 company@societe 画布演示种,模板文件是:
    
    
'''/societe/canvas/company/tpl/card_view.tpl'''
'''/societe/canvas/company/tpl/card_view.tpl.php'''


Note that for view, changing URL is not necessarly required. Dolibarr can detect your record is a personalized canvas record and automatically scan for this template file to show it if found. If not, standard form will be used. So all you have to do to use your own view template is copy and paste an existing demo view template file and rename it with correct value of mymodule and mycanvas and edit it to match your need.
请注意,对于显示来说,不需要更改URL。Dolibarr可以检测到您的记录是自定义画布保存的,并自动扫描此模板文件以显示它(如果找到)。否则,将使用标准表单。因此,要使用自己的视图模板,只需复制并粘贴现有的演示视图模板文件,并使用正确的mymodule和mycanvas值对其进行重命名,然后根据需要对其进行编辑。


= Add code to manage new fields =
=添加代码以管理新字段=
{{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值对其进行重命名,然后根据需要对其进行编辑。

添加代码以管理新字段

  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 。