Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.967 diff -u -p -r1.967 node.module --- modules/node/node.module 26 May 2008 17:12:55 -0000 1.967 +++ modules/node/node.module 26 Jun 2008 14:45:06 -0000 @@ -441,6 +441,13 @@ function node_teaser($body, $format = NU */ function node_get_types($op = 'types', $node = NULL, $reset = FALSE) { static $_node_types, $_node_names; + global $language; + + if (!$reset && !isset($_node_types)) { + if ($node_types_cache = cache_get('node_types_'.$language->language, 'cache')) { + list($_node_types, $_node_names) = $node_types_cache->data; + } + } if ($reset || !isset($_node_types)) { list($_node_types, $_node_names) = _node_types_build(); @@ -570,7 +577,8 @@ function node_type_update_nodes($old_typ function _node_types_build() { $_node_types = array(); $_node_names = array(); - + global $language; + $info_array = module_invoke_all('node_info'); foreach ($info_array as $type => $info) { $info['type'] = $type; @@ -598,7 +606,9 @@ function _node_types_build() { } asort($_node_names); - + + cache_set('node_types_'.$language->language, array($_node_types, $_node_names), 'cache'); + return array($_node_types, $_node_names); }