? .install.php.swp ? drushrc.php ? includes/.install.inc.swp ? includes/.module.inc.swp ? modules/simpletest/tests/.module.test.swp ? modules/system/.system.api.php.swp ? sites/head.dev ? sites/default/files Index: install.php =================================================================== RCS file: /cvs/drupal/drupal/install.php,v retrieving revision 1.184 diff -u -r1.184 install.php --- install.php 15 Jul 2009 02:08:40 -0000 1.184 +++ install.php 15 Jul 2009 12:02:14 -0000 @@ -972,8 +972,10 @@ // Add tasks defined by the profile. if ($profile) { $info = install_profile_info($profile); - if (array_key_exists('tasks', $info)) { - $tasks += $info['tasks']; + if (isset($info['tasks'])) { + foreach ($info['tasks'] as $task => $title) { + $tasks[$task] = st($title); + } } } Index: includes/install.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/install.inc,v retrieving revision 1.96 diff -u -r1.96 install.inc --- includes/install.inc 15 Jul 2009 02:08:41 -0000 1.96 +++ includes/install.inc 15 Jul 2009 12:02:16 -0000 @@ -977,23 +977,50 @@ /** * Retrieve info about an install profile from its .info file. + * + * Information stored in the profile.info file: + * - name: The real name of the install profile for display purposes. + * - description: A brief description of the profile. + * - dependencies: An array of shortnames of other modules this install profile requires. + * - tasks: An associative array of tasks and the page title of each task that need to be + * completed for installation. + * + * Example of .info file: + * @verbatim + * name = Drupal (minimal) + * description = Create a Drupal site with only required modules enabled. + * version = VERSION + * dependencies[] = block + * dependencies[] = dblog + * @endverbatim + * + * @param profile + * Name of profile. + * @param locale + * Name of locale used (if any). + * @return + * The info array. */ function install_profile_info($profile, $locale = 'en') { - $cache =& drupal_static('install_profile_info', array(), TRUE); - // Set defaults for module info. - $defaults = array( - 'dependencies' => array(), - 'tasks' => array(), - 'description' => '', - 'version' => NULL, - 'php' => DRUPAL_MINIMUM_PHP, - ); - $info = drupal_parse_info_file(sprintf('profiles/%s/%s.info', $profile, $profile)) + $defaults; - $info['dependencies'] = array_unique(array_merge( - drupal_required_modules(), - $info['dependencies'], - ($locale != 'en' && !empty($locale) ? array('locale') : array())) - ); - return $info; + $cache =& drupal_static('install_profile_info', array()); + + if (!isset($cache[$profile])) { + // Set defaults for module info. + $defaults = array( + 'dependencies' => array(), + 'tasks' => array(), + 'description' => '', + 'version' => NULL, + 'php' => DRUPAL_MINIMUM_PHP, + ); + $info = drupal_parse_info_file('profiles/'.$profile.'/'.$profile.'.info') + $defaults; + $info['dependencies'] = array_unique(array_merge( + drupal_required_modules(), + $info['dependencies'], + ($locale != 'en' && !empty($locale) ? array('locale') : array())) + ); + $cache[$profile] = $info; + } + return $cache[$profile]; } Index: modules/simpletest/tests/module.test =================================================================== RCS file: /cvs/drupal/drupal/modules/simpletest/tests/module.test,v retrieving revision 1.8 diff -u -r1.8 module.test --- modules/simpletest/tests/module.test 13 Jul 2009 21:51:41 -0000 1.8 +++ modules/simpletest/tests/module.test 15 Jul 2009 12:02:18 -0000 @@ -23,7 +23,8 @@ */ function testModuleList() { // Build a list of modules, sorted alphabetically. - $module_list = drupal_get_profile_modules('default', 'en'); + $profile_info = install_profile_info('default', 'en'); + $module_list = $profile_info['dependencies']; sort($module_list); // Compare this list to the one returned by module_list(). We expect them // to match, since all default profile modules have a weight equal to 0