J'écris un module personnalisé, ce que j'ai fait auparavant, mais c'est la première fois que j'essaie de créer un type de contenu avec des champs. J'ai implémenté hook_node_info et le type de contenu apparaît dans la liste des types de contenu dans la liste déroulante de admin_menu, cependant, lorsque je le navigue, admin/structure/types
il n'est pas répertorié.
J'ai implémenté hook_install et récupéré du code que j'ai trouvé sur une autre question SO. J'ai le code imprimer des informations de débogage dans mon journal d'erreurs et il semble que tout fonctionne, mais lorsque je navigue vers le type de contenu de la structure, il n'affiche pas le champ que j'ai ajouté.
Voici des crochets:
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));
}
Je peux voir un tableau appelé field_data_field_mymod_myfile
dans la base de données, donc je sais que la première partie a fonctionné. Cependant, la table est vide.
Le journal des erreurs montre la field_create_instance()
méthode retournée ceci:
array (
'field_name' => 'field_mymod_myfile',
'entity_type' => 'mymod_content',
'bundle' => 'mymod_content',
'required' => true,
'field_id' => '5',
)
Pourquoi mon champ n'apparaît-il pas sur ce type de contenu?