我們將我們的會計系統銷售訂單導入到Drupal 6站點。如何將自定義表單插入Drupal節點視圖並處理提交的節點數據?
我們設置了一個名爲orders的內容類型。
我想爲我們的運輸供應商建立一個運輸模塊(沒有沒有一個)。
我明白如何構建「塊」模塊和「內容」模塊。
什麼是構建一個將出現在我們的訂單節點的呈現,他們需要完成(這反過來將處理運費)
如果可能的話,我想一個表格底部的模塊的最佳方法如果您想自定義窗體附加到每個節點做到這一點,而無需創建一個不同的內容類型
我們將我們的會計系統銷售訂單導入到Drupal 6站點。如何將自定義表單插入Drupal節點視圖並處理提交的節點數據?
我們設置了一個名爲orders的內容類型。
我想爲我們的運輸供應商建立一個運輸模塊(沒有沒有一個)。
我明白如何構建「塊」模塊和「內容」模塊。
什麼是構建一個將出現在我們的訂單節點的呈現,他們需要完成(這反過來將處理運費)
如果可能的話,我想一個表格底部的模塊的最佳方法如果您想自定義窗體附加到每個節點做到這一點,而無需創建一個不同的內容類型
,首先你需要(你的模塊中)到:
$node
作爲參數。然後,您必須決定如何將表單插入到節點頁面(或者正在查看節點),並且有幾種方法可以解決這個問題,其中包括:
$op == 'view'
),你可以讓你的表格,並把它添加到$node->content
。MYMODULE_preprocess_node(&$vars)
),以便您可以將其放置在自定義node.tpl.php中的任何位置。我想還有更多的方法可以解決這個問題(讓你的模塊生成一個包含表單的模塊等),這取決於你特別需要什麼。
無論你選擇,你會得到的加價自定義窗體的方法是:
<?php
// something like this for hook_nodeapi() way.
$node->content['body']['value']] .= drupal_get_form('my_custom_form_generating_function', $node);
// or something like this for the hook_preprocess_node() way.
$vars['my_custom_form'] = drupal_get_form('my_custom_form_generating_function', $vars['node']);
如果表單生成功能確實會接受$節點作爲參數,則要麼需要使用PHP的func_get_args()或顯式聲明$node
參數中的簽名:
<?php
function my_custom_form_generating_function($form_state, $node) { }
而且是明確的:
...建立一個模塊將出現在我們的底...
Drupal模塊都沒有的東西,「出現」。模塊是擴展,可爲您的Drupal站點提供額外的功能。他們可以實現掛鉤,這可能會或可能不會生成將出現在您的網站上的標記。
關於「內容模塊」和「模塊組件」:雖然我已經看到的,術語「節點模塊」來指代提供新的內容類型的模塊,任何模塊可以實現任何鉤,並因此提供塊,內容類型等
另外我知道的Ubercart與運輸模塊等,我們將在某些時候使用它,但它不符合目前需要什麼 – Tim
我可能知道關於「塊」模塊和「內容」模塊請 – ArK
所以我猜我可以使用hook_nodeapi但不知道如何我可以添加一個新的形式到節點的輸出 – Tim