Index: advanced_help.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/advanced_help/advanced_help.module,v retrieving revision 1.20 diff -u -r1.20 advanced_help.module --- advanced_help.module 30 May 2008 18:55:44 -0000 1.20 +++ advanced_help.module 12 Sep 2008 16:18:10 -0000 @@ -190,7 +190,16 @@ $items = array(); foreach ($modules as $module => $module_name) { if (!empty($topics[$module])) { - $items[] = advanced_help_l($module_name, "admin/advanced_help/$module"); + if (isset($settings[$module]['index_name'])) { + $name = $settings[$module]['index_name']; + } + elseif (isset($settings[$module]['name'])) { + $name = $settings[$module]['name']; + } + else { + $name = t($module_name); + } + $items[] = advanced_help_l($name, "admin/advanced_help/$module"); } } @@ -309,9 +318,16 @@ * Small helper function to get a module's proper name. */ function advanced_help_get_module_name($module) { - $info = db_fetch_object(db_query("SELECT * FROM {system} WHERE name = '%s'", $module)); - $info = unserialize($info->info); - return t($info['name']); + $settings = advanced_help_get_settings(); + if (isset($settings[$module]['name'])) { + $name = $settings[$module]['name']; + } + else { + $info = db_fetch_object(db_query("SELECT * FROM {system} WHERE name = '%s'", $module)); + $info = unserialize($info->info); + $name = t($info['name']); + } + return $name; } /** @@ -575,7 +591,19 @@ * Search the system for all available help topics. */ function advanced_help_get_topics() { + list ($topics, ) = _advanced_help_parse_ini(); + return $topics; +} + +function advanced_help_get_settings() { + list (, $settings) = _advanced_help_parse_ini(); + return $settings; +} + +function _advanced_help_parse_ini() { static $topics = NULL; + static $settings = NULL; + if (!isset($topics)) { $topics = array(); $help_path = drupal_get_path('module', 'advanced_help') . '/modules'; @@ -596,9 +624,9 @@ if (file_exists("$module_path/translations/help/$language->language/$module.help.ini")) { $translation = parse_ini_file("$module_path/translations/help/$language->language/$module.help.ini", TRUE); } - $settings = array(); + $settings[$module] = array(); if (!empty($info['advanced help settings'])) { - $settings = $info['advanced help settings']; + $settings[$module] = $info['advanced help settings']; unset($info['advanced help settings']); } @@ -612,15 +640,15 @@ 'parent' => isset($topic['parent']) ? $topic['parent'] : 0, 'file' => $file . '.html', // require extension 'path' => $path, // not in .ini file - 'line break' => isset($topic['line break']) ? $topic['line break'] : (isset($settings['line break']) ? $settings['line break'] : FALSE), - 'navigation' => isset($topic['navigation']) ? $topic['navigation'] : (isset($settings['navigation']) ? $settings['navigation'] : TRUE), - 'css' => isset($topic['css']) ? $topic['css'] : (isset($settings['css']) ? $settings['css'] : NULL), + 'line break' => isset($topic['line break']) ? $topic['line break'] : (isset($settings[$module]['line break']) ? $settings[$module]['line break'] : FALSE), + 'navigation' => isset($topic['navigation']) ? $topic['navigation'] : (isset($settings[$module]['navigation']) ? $settings[$module]['navigation'] : TRUE), + 'css' => isset($topic['css']) ? $topic['css'] : (isset($settings[$module]['css']) ? $settings[$module]['css'] : NULL), ); } } } } - return $topics; + return array($topics, $settings); } /**