=== modified file 'sites/all/modules/drupalorg/drupalorg_crosssite/drupalorg_crosssite.module' --- sites/all/modules/drupalorg/drupalorg_crosssite/drupalorg_crosssite.module 2011-04-28 22:34:46 +0000 +++ sites/all/modules/drupalorg/drupalorg_crosssite/drupalorg_crosssite.module 2011-07-01 23:35:15 +0000 @@ -183,7 +183,7 @@ elseif (drupalorg_crosssite_child_of('main', 'node/179723') || (drupalorg_crosssite_child_of('main', 'project/drupal.org projects') && !drupalorg_crosssite_child_of('main', 'node/' . DRUPALORG_CORE_NID))) { $section = 'drupalorg'; } - elseif (drupalorg_crosssite_menu_path('main', '^(project|download)(/|$)') || drupalorg_crosssite_menu_path('main', '^node/\d+/(release|committers|maintainers)') || drupalorg_crosssite_menu_path('main', '^node/add/project-issue') || drupalorg_crosssite_menu_type('main', array('project_project', 'project_issue', 'project_release')) || drupalorg_crosssite_menu_site('localize')) { + elseif (drupalorg_crosssite_menu_path('main', '^(project|download|list-changes|list-change-updates)(/|$)') || drupalorg_crosssite_menu_path('main', '^node/\d+/(release|committers|maintainers)') || drupalorg_crosssite_menu_path('main', '^node/add/project-issue') || drupalorg_crosssite_menu_type('main', array('project_project', 'project_issue', 'project_release', 'changenotice')) || drupalorg_crosssite_menu_site('localize')) { $section = 'downloads'; } elseif (drupalorg_crosssite_menu_path('main', '^security(|/contrib|/psa)$') || drupalorg_crosssite_menu_term('main', array(1852, 44, 1856))) { @@ -896,3 +896,23 @@ return $user->uid; } } + +/** + * Implements hook_views_pre_render(). + * + * Sets the breadcrumb up for project navigation for the change records views. + */ +function drupalorg_crosssite_views_pre_render(&$view) { + switch ($view->name) { + case 'change_records': + if (count($view->args) > 0) { + // Note: this returns FALSE if it isn't a project node. + $proj_node = project_node_load($view->args[0]); + if ($proj_node) { + $extra[] = l($proj_node->title, 'node/' . $proj_node->nid); + project_project_set_breadcrumb($proj_node, $extra); + } + } + break; + } +} === modified file 'sites/all/modules/drupalorg/drupalorg_project/drupalorg_project.module' --- sites/all/modules/drupalorg/drupalorg_project/drupalorg_project.module 2011-05-12 02:57:15 +0000 +++ sites/all/modules/drupalorg/drupalorg_project/drupalorg_project.module 2011-07-01 00:01:05 +0000 @@ -463,6 +463,11 @@ // Link to security handbook page. $links['development']['links']['report_security_issue'] = l(t('Report a security issue'), 'security-team'); + // Link to change records page. + if (!empty($node->project['uri'])) { + $links['development']['links']['change_records'] = l(t('View change records'), 'list-changes/' . $node->project['uri']); + } + // Link to translation downloads. $translation_download = ''; if (is_array($node->taxonomy) && isset($node->taxonomy[DRUPALORG_TRANSLATION_TID])) { @@ -583,6 +588,19 @@ } } } + + // Add a breadcrumb to API Change nodes. + if ($op == 'alter' && !$teaser && $page && $node->type == 'changenotice') { + if (isset($node->field_project[0]['nid'])) { + $proj_nid = $node->field_project[0]['nid']; + $proj_node = node_load($proj_nid); + $proj_shortcode = $proj_node->project['uri']; + $extra = array(); + $extra[] = l($node->field_project[0]['safe']['title'], 'node/' . $proj_nid); + $extra[] = l(t('Change records'), 'list-changes/' . $proj_shortcode); + project_project_set_breadcrumb($proj_node, $extra); + } + } } /**