Community Documentation

node_get_types

5 node.module node_get_types($op = 'types', $node = NULL, $reset = FALSE)
6 node.module node_get_types($op = 'types', $node = NULL, $reset = FALSE)

Builds a list of available node types, and returns all or part of this list.

Parameters

$op: The format in which to return the list: 'type', 'types', 'module', 'name', or 'names'. See return value section below for details.

$node: A node object, an array representation of a node object, or a node type name string. See return value section below for details.

$reset: Whether or not to reset this function's internal cache (defaults to FALSE).

Return value

If $node is supplied and it doesn't correspond to a known node type, or if $op is 'type', 'name', or 'module' and $node is not given, the function returns FALSE. Otherwise, the return value depends on the value of $op:

  • 'types': An array of all available node type objects, keyed by machine name.
  • 'type': The single node type object indicated by $node.
  • 'names': An array of the display names of all available node types, keyed by machine name and sorted by display name.
  • 'name': The single node type display name indicated by $node.
  • 'module': The name of the node type module indicated by $node.

▾ 52 functions call node_get_types()

blogapi_admin_settings in modules/blogapi/blogapi.module
blog_form in modules/blog/blog.module
Implementation of hook_form().
book_admin_settings in modules/book/book.admin.inc
Builds and returns the book settings form.
comment_update_6002 in modules/comment/comment.install
Changed comment settings from global to per-node -- copy global settings to all node types.
forum_form in modules/forum/forum.module
Implementation of hook_form().
hook_form in developer/hooks/node.php
Display a node editing form.
hook_mail in developer/hooks/core.php
Prepare a message based on parameters; called from drupal_mail().
hook_search in developer/hooks/core.php
Define a custom search routine.
locale_uninstall in modules/locale/locale.install
Implementation of hook_uninstall().
locale_update_6005 in modules/locale/locale.install
Change language setting variable of content types.
node_access in modules/node/node.module
Determine whether the current user may perform the given operation on the specified node.
node_add in modules/node/node.pages.inc
Present a node submission form or a set of links to such forms.
node_admin_nodes in modules/node/node.admin.inc
Form builder: Builds the node administration overview.
node_assign_owner_action in modules/node/node.module
Implementation of a configurable Drupal action. Assigns ownership of a node to a user.
node_content_form in modules/node/node.module
Implementation of hook_form().
node_delete in modules/node/node.module
Delete a node.
node_filters in modules/node/node.admin.inc
List node administration filters that can be applied.
node_forms in modules/node/node.module
Implementation of hook_forms(). All node forms share the same form handler
node_form_alter in modules/node/node.module
Implementation of hook_form_alter().
node_form_submit in modules/node/node.pages.inc
node_help in modules/node/node.module
Implementation of hook_help().
node_hook in modules/node/node.module
Determine whether a node hook exists.
node_invoke in modules/node/node.module
Invoke a node hook.
node_make_sticky_action in modules/node/node.module
Implementation of a Drupal action. Sets the sticky-at-top-of-list property of a node to 1.
node_make_unsticky_action in modules/node/node.module
Implementation of a Drupal action. Sets the sticky-at-top-of-list property of a node to 0.
node_menu in modules/node/node.module
Implementation of hook_menu().
node_overview_types in modules/node/content_types.inc
Displays the content type admin overview page.
node_perm in modules/node/node.module
Implementation of hook_perm().
node_promote_action in modules/node/node.module
Implementation of a Drupal action. Sets the promote property of a node to 1.
node_publish_action in modules/node/node.module
Implementation of a Drupal action. Sets the status of a node to 1, meaning published.
node_revision_delete_confirm_submit in modules/node/node.pages.inc
node_revision_revert_confirm_submit in modules/node/node.pages.inc
node_save_action in modules/node/node.module
Implementation of a Drupal action. Saves a node.
node_search in modules/node/node.module
Implementation of hook_search().
node_types_rebuild in modules/node/node.module
Resets the database cache of node types, and saves all new or non-modified module-defined node types to the database.
node_type_delete in modules/node/node.module
Deletes a node type from the database.
node_type_form_validate in modules/node/content_types.inc
Validates the content type submission form generated by node_type_form().
node_unpromote_action in modules/node/node.module
Implementation of a Drupal action. Sets the promote property of a node to 0.
node_unpublish_action in modules/node/node.module
Implementation of a Drupal action. Sets the status of a node to 0, meaning unpublished.
node_unpublish_by_keyword_action in modules/node/node.module
Implementation of a configurable Drupal action. Unpublish a node if it contains a certain string.
node_validate in modules/node/node.module
Perform validation checks on the given node.
poll_form in modules/poll/poll.module
Implementation of hook_form().
system_mail in modules/system/system.module
Implementation of hook_mail().
system_message_action in modules/system/system.module
A configurable Drupal action. Sends a message to the current user's screen.
system_theme_settings in modules/system/system.admin.inc
Form builder; display theme configuration for entire site and individual themes.
taxonomy_form_vocabulary in modules/taxonomy/taxonomy.admin.inc
Display form for adding and editing vocabularies.
taxonomy_overview_vocabularies in modules/taxonomy/taxonomy.admin.inc
Form builder to list and manage vocabularies.
template_preprocess_forums in modules/forum/forum.module
Process variables for forums.tpl.php
theme_get_settings in includes/theme.inc
Retrieve an associative array containing the settings for a theme.
tracker_page in modules/tracker/tracker.pages.inc
Menu callback. Prints a listing of active nodes on the site.
_blogapi_get_node_types in modules/blogapi/blogapi.module
_node_add_access in modules/node/node.module

File

modules/node/node.module, line 425
The core that allows content to be submitted to the site. Modules and scripts may programmatically submit nodes using the usual form API pattern.

Code

<?php
function node_get_types($op = 'types', $node = NULL, $reset = FALSE) {
  static $_node_types, $_node_names;

  if ($reset || !isset($_node_types)) {
    list($_node_types, $_node_names) = _node_types_build();
  }

  if ($node) {
    if (is_array($node)) {
      $type = $node['type'];
    }
    elseif (is_object($node)) {
      $type = $node->type;
    }
    elseif (is_string($node)) {
      $type = $node;
    }
    if (!isset($_node_types[$type])) {
      return FALSE;
    }
  }
  switch ($op) {
    case 'types':
      return $_node_types;
    case 'type':
      return isset($_node_types[$type]) ? $_node_types[$type] : FALSE;
    case 'module':
      return isset($_node_types[$type]->module) ? $_node_types[$type]->module : FALSE;
    case 'names':
      return $_node_names;
    case 'name':
      return isset($_node_names[$type]) ? $_node_names[$type] : FALSE;
  }
}
?>

Comments

Just a quick reference to

Just a quick reference to what the different options output.

<?php
// call
print_r(node_get_types() );
print_r(node_get_types('types') );
// output
array(
'node_type' => array(
   
'name' => 'Human Readable name',
   
'module' => 'node',
     ...
  )
);
// call
print_r(node_get_types('names'));
// output
array(
 
'node_type' => 'Human readable name', // name not sanitized!
);
// call
print_r(node_get_types('name', 'node_type') );
// output
"Human readable name"
// call
print_r(node_get_types('module', 'node_type') );
// output
node (or whatever module is).
?>

Finally, to get an simple array of node types

<?php
array_keys
(node_get_types());
array_keys(node_get_types('types'));
array_keys(node_get_types('names'));
?>

To get a /sanitized/ array of node types names suitable for fapi checkboxes/select

<?php
array_map
('check_plain', node_get_types('names'));
?>

Close but no cigar

Hefox's example output indicates that an array of arrays is returned by this function, but it actually returns an array of objects.

// Output
array(
  'story' => stdClass(
    name
    module
    ...
  )
);

Suppose you have a $node object and you want to get the human-readable name for this node type, you would use:

<?php
  $node
= node_load(1);
 
$types = node_get_types();
 
$human_readable = $types[$node->type]->name;
?>

I want to retrieve all nodes

I want to retreive all nodes of type forum. Then what will be the code?

Be interested to see if this

Be interested to see if this can be done with a drupal function, however your best bet is to create a View then use views_get_view_result('view_name') to return a PHP array of objects, each one representing a row and its fields in your view.

In Drupal 7, you'll need to

In Drupal 7, you'll need to use :

<?php
$types
= _node_types_build()->types;
?>

Thanks
Arshad

Use node_type_get_types()

Use node_type_get_types() instead.

Login or register to post comments