function hook_node_info
Define module-provided node types.
This hook allows a module to define one or more of its own node types. For example, the blog module uses it to define a blog node-type named "Blog entry." The name and attributes of each desired node type are specified in an array returned by the hook.
Only module-provided node types should be defined through this hook. User- provided (or 'custom') node types should be defined only in the 'node_type' database table, and should be maintained by using the node_type_save() and node_type_delete() functions.
Return value
An array of information defining the module's node types. The array contains a sub-array for each node type, with the machine-readable type name as the key. Each sub-array has up to 10 attributes. Possible attributes:
- name: (required) The human-readable name of the node type.
- base: (required) The base name for implementations of node-type-specific hooks that respond to this node type. Base is usually the name of the module or 'node_content', but not always. See Node API hooks for more information.
- description: (required) A brief description of the node type.
- help: (optional) Help information shown to the user when creating a node of this type.
- has_title: (optional) A Boolean indicating whether or not this node type has a title field.
- title_label: (optional) The label for the title field of this content type.
- locked: (optional) A Boolean indicating whether the administrator can change the machine name of this type. FALSE = changeable (not locked), TRUE = unchangeable (locked).
The machine name of a node type should contain only letters, numbers, and underscores. Underscores will be converted into hyphens for the purpose of constructing URLs.
All attributes of a node type that are defined through this hook (except for 'locked') can be edited by a site administrator. This includes the machine-readable name of a node type, if 'locked' is set to FALSE.
Related topics
3 functions implement hook_node_info()
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- blog_node_info in modules/
blog/ blog.module - Implements hook_node_info().
- forum_node_info in modules/
forum/ forum.module - Implements hook_node_info().
- poll_node_info in modules/
poll/ poll.module - Implements hook_node_info().
2 invocations of hook_node_info()
- node_type_reset in modules/
node/ content_types.inc - Resets relevant fields of a module-defined node type to their default values.
- _node_types_build in modules/
node/ node.module - Builds and returns the list of available node types.
File
-
modules/
node/ node.api.php, line 916
Code
function hook_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.'),
),
);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.