Saya menulis modul khusus, yang telah saya lakukan sebelumnya, tetapi ini adalah pertama kalinya saya mencoba membuat jenis konten dengan bidang. Saya menerapkan hook_node_info dan Tipe Konten muncul di daftar tipe Konten di dropdown dari admin_menu, namun, ketika saya menjelajahinya admin/structure/types
tidak terdaftar.
Saya menerapkan hook_install dan mengambil beberapa kode yang saya temukan pada pertanyaan SO lainnya. Saya memiliki kode untuk mencetak beberapa informasi debug ke log kesalahan saya dan sepertinya semuanya berfungsi, tetapi ketika saya telusuri ke Tipe Konten Struktur, kode itu tidak menampilkan bidang yang saya tambahkan.
Di sini adalah kait:
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));
}
Saya bisa melihat tabel yang disebut field_data_field_mymod_myfile
dalam database, jadi saya tahu bagian pertama berfungsi. Namun, tabelnya kosong.
Log kesalahan menunjukkan field_create_instance()
metode mengembalikan ini:
array (
'field_name' => 'field_mymod_myfile',
'entity_type' => 'mymod_content',
'bundle' => 'mymod_content',
'required' => true,
'field_id' => '5',
)
Mengapa bidang saya tidak muncul di tipe konten ini?