2013-07-23 50 views
1

瀏覽網絡超過一個小時後,我的問題依然存在。 什麼是在模塊中創建節點類型的「正確」方式。Drupal模塊節點類型創建.install和.module

.install:使用hook_node_info(),您可以添加節點類型 hook_install()使您能夠創建使用node_type_save()掛鉤node_types的可能性...

.module 。

什麼是那些2種方法親的利弊?其實是有不同的?卸載模塊時會發生什麼?在兩種情況下應該如何管理更新? Drupal的實況一直沒有真正的幫助對我來說:(

+0

最好的方法是使用hook_node_info。您可以在http://api.drupal.org上找到更多文檔。沒有其他辦法! –

+1

還有另一種方法。使用:https://api.drupal.org/api/drupal/modules!node!node.module/function/node_type_save/7 – Pinoniq

+0

其保存一個節點,您需要先定義類型!如果沒有定義類型,你會如何將一個節點與不存在的類型聯繫起來?你讀過這個:type:給出節點類型的機器名稱的字符串。如果你認爲它沒有定義節點類型,那你爲什麼不試一試呢?還請檢查該頁面上的「代碼」! –

回答

2

您可以創建使用兩種node_type_save()hook_node_info() node_types。

Drupal核心模塊的書在hook_install創建它。但它更常見的做法是這樣做的hook_node_info()或hook_entity_info()(節點模塊使用hook_entity_info())。

如果實現使用hook_node_info()你更投訴使用Drupal的工作方式。例如node_type_rebuild()將只在hook_node_info(),而不是定義的值工作node_type_save()

伊莫你應該使用hook_node_info()hook_entity_info(),讓Drupal核心處理其餘部分。

+0

不知道node_type_rebuild只有_node_info工作的()類型 – Pinoniq

+1

@Pinoniq它沒有,那個聲明是錯誤的 - 'node_types_build()'將爲** all **節點類型構建數據,而不僅僅是'hook_node_info()'中定義的那些數據。如果您需要證明,只需檢查['_node_types_build']的代碼和輸出(https://api.drupal.org/api/drupal/modules%21node%21node.module/function/_node_types_build/7)。它清楚地查詢'node_type'表中是否有'hook_node_info()'中未定義的內容類型。有使用'hook_node_info()'沒有被_'more符合方式的Drupal works'_問題,@ D34dman你有任何這些說法的來源,僅僅是不正確的 – Clive

+0

? (在hook_node_info()_中使用更常見的做法,_你更喜歡drupal的工作方式)?我一直在Drupal現在發展了幾年,我從來沒有看到或聽到任何遠程類似 – Clive