Ich schreibe ein benutzerdefiniertes Modul, das ich zuvor erstellt habe, aber dies ist das erste Mal, dass ich versucht habe, einen Inhaltstyp mit Feldern zu erstellen. Ich habe hook_node_info implementiert und der Inhaltstyp wird in der Liste der Inhaltstypen in der Dropdown-Liste von admin_menu angezeigt. Wenn ich jedoch zu admin/structure/types
ihm navigiere, wird er nicht aufgelistet.
Ich habe hook_install implementiert und mir einen Code geholt, den ich auf einer anderen SO-Frage gefunden habe. Ich habe den Code einige Debug-Informationen in mein Fehlerprotokoll drucken lassen und es sieht so aus, als ob alles funktioniert, aber wenn ich zum Strukturinhaltstyp navigiere, wird das von mir hinzugefügte Feld nicht angezeigt.
Hier sind Haken:
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));
}
Ich kann eine Tabelle field_data_field_mymod_myfile
in der Datenbank sehen, daher weiß ich, dass der erste Teil funktioniert hat. Die Tabelle ist jedoch leer.
Das Fehlerprotokoll zeigt die zurückgegebene field_create_instance()
Methode:
array (
'field_name' => 'field_mymod_myfile',
'entity_type' => 'mymod_content',
'bundle' => 'mymod_content',
'required' => true,
'field_id' => '5',
)
Warum wird mein Feld bei diesem Inhaltstyp nicht angezeigt?