畫布是一個開發功能,用於替換用於創建、更新或顯示對象(產品、合作方、聯繫人等)的表單。

例如,您可以替換「新建合作方」的輸入表單,也可以替換合作方的編輯表單或顯示錶單。

條件

畫布功能在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 。