Drupal base install uses this configuration to create the basic page
content type. Try to modify the custom
value just like the example underneath:
$type = array(
'type' => 'page',
'name' => st('Basic page'),
'base' => 'node_content',
'description' => st("Use <em>basic pages</em> for your static content, such as an 'About us' page."),
'custom' => true,
'locked' => true,
'modified' => true,
'disabled' => false,
);
Edit
I've just checked the code of some Drupal core modules how they manage the creation of content types within code.
The Blog
module defines the content type within the HOOK_node_info
(just like you did). This to notify Drupal about the new type. The HOOK_install
only add fields to the content type. The module also implement the HOOK_form
for the content creation form and HOOK_view
for the rendering.
// blog.install
function blog_install() {
// Ensure the blog node type is available.
node_types_rebuild();
$types = node_type_get_types();
node_add_body_field($types['blog']);
}
// blog.module
function blog_node_info() {
return array(
'blog' => array(
'name' => t('Blog entry'),
'base' => 'blog',
'description' => t('Use for multi-user blogs. Every user gets a personal blog.'),
)
);
}
}