Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.1001 diff -u -p -r1.1001 node.module --- modules/node/node.module 5 Dec 2008 22:18:45 -0000 1.1001 +++ modules/node/node.module 8 Dec 2008 18:02:41 -0000 @@ -445,6 +445,14 @@ function node_teaser($body, $format = NU function node_get_types($op = 'types', $node = NULL, $reset = FALSE) { static $_node_types, $_node_names; + if (!$reset && !isset($_node_types)) { + global $language; + + 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(); } @@ -582,6 +590,7 @@ 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) { @@ -612,6 +621,8 @@ 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); }