Daha önce yaptığım özel bir modül yazıyorum, ancak ilk kez alanları olan bir içerik türü oluşturmaya çalıştım. Ben hayata hook_node_info ben göz ne zaman ve İçerik Türü admin_menu gelen açılır listede İçerik türleri listesinde gösterildiğini, ancak, admin/structure/types
bunun listede yok.
Ben hayata hook_install ve başka SO soru üzerine bulunan bazı kod yakaladı. Kod hata günlüğüme bazı hata ayıklama bilgileri yazdırmak ve tüm çalışır gibi görünüyor, ama Yapı İçerik Türü göz attığınızda eklediğim alanı göstermez.
İşte kancalar:
function mymod_node_info() {
return array(
'mymod_content' => array(
'name' => t('My Mod'),
'base' => 'mymod_content',
'description' => t('A Description'),
)
);
}
function mymod_install() {
error_log('mymod_install');
$types = node_type_get_types();
if ( ! field_info_field('field_mymod_myfile') ) {
$field = array(
'field_name' => 'field_mymod_myfile',
'type' => 'file',
);
$created_field = field_create_field($field);
error_log('---- field_create_field -----');
error_log(var_export($created_field, true));
}
$instance = array(
'field_name' => 'field_mymod_myfile',
'entity_type' => 'mymod_content',
'bundle' => 'mymod_content',
'required' => TRUE,
);
$created_instance = field_create_instance($instance);
error_log('---- field_create_instance -----');
error_log(var_export($created_instance, true));
}
Ben field_data_field_mymod_myfile
veritabanında denilen bir tablo görebilirsiniz , bu yüzden ilk bölüm çalıştı biliyorum. Ancak, tablo boş.
Hata günlüğü, bunu field_create_instance()
döndüren yöntemi gösterir :
array (
'field_name' => 'field_mymod_myfile',
'entity_type' => 'mymod_content',
'bundle' => 'mymod_content',
'required' => true,
'field_id' => '5',
)
Alanım neden bu içerik türünde görünmüyor?