畫布
畫布是一個開發功能,用於替換用於創建、更新或顯示對象(產品、合作方、聯繫人等)的表單。
例如,您可以替換「新建合作方」的輸入表單,也可以替換合作方的編輯表單或顯示錶單。
條件
畫布功能在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 。