画布: Difference between revisions
| Line 58: | Line 58: | ||
请注意,当使用画布保存记录时,画布名称 mycanvas@mymodule 也会存储在数据库中。这一点很重要,因为这意味着Dolibarr将能够知道这一记录是哪个画布保存的,而不是由另一个画布保存的。因此,它可以建议仅用于此记录的视图或修改表单,并继续对其他记录使用标准表单。请参阅以下章节。 | 请注意,当使用画布保存记录时,画布名称 mycanvas@mymodule 也会存储在数据库中。这一点很重要,因为这意味着Dolibarr将能够知道这一记录是哪个画布保存的,而不是由另一个画布保存的。因此,它可以建议仅用于此记录的视图或修改表单,并继续对其他记录使用标准表单。请参阅以下章节。 | ||
= | =将编辑表单替换为您自己的模板= | ||
对使用您自己的创建表单保存的记录,使用您自己的编辑表单来编辑,非常简单,只需添加一个文件: | |||
'''/mymodule/canvas/mycanvas/tpl/tabname_edit.tpl''' | '''/mymodule/canvas/mycanvas/tpl/tabname_edit.tpl.php''' | ||
其中: | |||
*'''mymodule''' | *'''mymodule''' 目录是用作创建记录的工作区参数的mymodule值(请参阅上一章)。 | ||
*'''mycanvas''' | *'''mycanvas''' 是用于创建记录的 canvas 参数的mycanvas值(请参阅上一章)。 | ||
*'''tabname''' | *'''tabname''' 是要编辑记录的选项卡或页面的名称。在大多数情况下,它的值是“card”。 | ||
通过我们的 company@societe 画布演示,模板文件是: | |||
'''/societe/canvas/company/tpl/card_edit.tpl.php''' | |||
请注意,对于编辑来说,不需要更改URL。Dolibarr可以检测到您的记录是自定义画布保存的,并自动扫描此模板文件以显示它(如果找到)。否则,将使用标准表单。因此,要使用自己的编辑模板,您只需复制并粘贴现有的编辑模板文件,并使用正确的mymodule和mycanvas值对其进行重命名,然后根据需要对其进行编辑。与创建一样,必须保留所有必填字段,以避免在提交表单以保存变更时出错。 | |||
=用自定义模板替换‘显示’窗体= | =用自定义模板替换‘显示’窗体= | ||
Revision as of 06:29, 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
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.