Index: includes/common.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/common.inc,v retrieving revision 1.971 diff -u -r1.971 common.inc --- includes/common.inc 24 Aug 2009 00:14:18 -0000 1.971 +++ includes/common.inc 24 Aug 2009 20:01:02 -0000 @@ -4257,7 +4257,7 @@ 'arguments' => array('display' => NULL), ), 'links' => array( - 'arguments' => array('links' => NULL, 'attributes' => array('class' => array('links'))), + 'arguments' => array('links' => NULL, 'attributes' => array('class' => array('links')), 'heading' => array()), ), 'image' => array( 'arguments' => array('path' => NULL, 'alt' => '', 'title' => '', 'attributes' => array(), 'getsize' => TRUE), Index: includes/theme.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/theme.inc,v retrieving revision 1.514 diff -u -r1.514 theme.inc --- includes/theme.inc 24 Aug 2009 00:34:11 -0000 1.514 +++ includes/theme.inc 24 Aug 2009 20:01:03 -0000 @@ -1383,11 +1383,13 @@ * - href: the link URL. If omitted, the 'title' is shown as a plain text item in the links list. * - html: (optional) set this to TRUE if 'title' is HTML so it will be escaped. * Array items are passed on to the l() function's $options parameter when creating the link. + * @param $attributes + * A keyed array of attributes. * @param $heading * An optional keyed array for a heading to precede the links: * - text: the heading text * - level: the heading level (e.g. 'h2', 'h3') - * - class: (optional) space-separated classes for the heading + * - class: (optional) an array of the CSS classes for the heading * Headings should be used on navigation menus and any list of links that * consistently appears on multiple pages. To make the heading invisible * use class => 'element-invisible'. Do not use 'display:none', which @@ -1395,22 +1397,24 @@ * screen-reader and keyboard only users to navigate to or skip the links. * See http://juicystudio.com/article/screen-readers-display-none.php * and http://www.w3.org/TR/WCAG-TECHS/H42.html for more information. - * @param $attributes - * A keyed array of attributes. * @return * A string containing an unordered list of links. */ -function theme_links($links, $heading = array(), $attributes = array('class' => array('links'))) { +function theme_links($links, $attributes = array('class' => array('links')), $heading = array()) { global $language; $output = ''; if (count($links) > 0) { $output = ''; + + // Treat the heading first if it is present to prepend it to the + // list of links. if (!empty($heading['text']) && !empty($heading['level'])) { - $output .= '<' . $heading['level'] . (!empty($heading['class']) ? - drupal_attributes(array('class' => $heading['class'])) : '') . '>'; - $output .= check_plain($heading['text']); - $output .= '' . $heading['level'] . '>'; + $output .= '<' . $heading['level']; + if (!empty($heading['class'])) { + $output .= ' ' . drupal_attributes(array('class' => $heading['class'])); + } + $output .= '>' . check_plain($heading['text']) . '' . $heading['level'] . '>'; } $output .= '