2011-10-14 57 views

回答

6

在Drupal 7的您有實體和領域;字段附加到實體。節點是一個實體的實現(節點模塊實現hook_entity_info()和其他這樣的鉤子),所以它可以有字段。

所有字段/實體關係數據都存儲在表field_data_field_xfield_revision_field_x或其他類似的表中(如果啓用了節點修訂版,後者可能會存儲字段數據的修訂版)。

這些表中的entity_id列是節點的ID,bundle是節點的內容類型。 revision_id是節點的修訂版本ID,如果啓用了節點修訂版本,那麼它也是非常有用的。

UPDATE

在Drupal的術語內容類型是bundlebundle s的附着到實體(在這種情況下node實體)。當您創建一個新的內容類型時,它將被存儲在node_type表中,並且當清除緩存(在所有模塊上調用hook_entity_info)時,node_entity_info()函數會根據內容類型建立一個捆綁列表(查看位該功能開始foreach (node_type_get_names() as $type => $name) {,node_type_get_names獲取所有內容類型的列表)。上述字段討論

如可以附着到實體,所以字段可以的bundle被附接到與增量節點(如果你喜歡)。

+0

那如何獲取的GUI創建的內容類型實現hook_entity_info?我瞭解字段數據如何存儲,但表單如何創建? –

+1

是否field_config_instance定義哪些字段與什麼? –

+0

@ChrisMuench:我已經更新了答案讓我知道如果你需要任何澄清,這是相當複雜的,如果你還沒有圍繞核心模塊內部之前鑽研! – Clive