diff --git a/libraries/Util.class.php b/libraries/Util.class.php index 4e955fb76d..e869e47731 100644 --- a/libraries/Util.class.php +++ b/libraries/Util.class.php @@ -95,11 +95,13 @@ class PMA_Util * @param string $icon name of icon file * @param string $alternate alternate text * @param boolean $force_text whether to force alternate text to be displayed + * @param boolean $menu_icon whether this icon is for the menu bar or not * * @return string an html snippet */ - public static function getIcon($icon, $alternate = '', $force_text = false) - { + public static function getIcon($icon, $alternate = '', $force_text = false, + $menu_icon = false + ) { // $cfg['PropertiesIconic'] is true or both $include_icon = ($GLOBALS['cfg']['PropertiesIconic'] !== false); // $cfg['PropertiesIconic'] is false or both @@ -107,8 +109,9 @@ class PMA_Util $include_text = ($force_text || ($GLOBALS['cfg']['PropertiesIconic'] !== true)); - // Always use a span (we rely on this in js/sql.js) - $button = ''; + // Sometimes use a span (we rely on this in js/sql.js). But for menu bar + // we don't need a span + $button = $menu_icon ? '' : ''; if ($include_icon) { $button .= self::getImage($icon, $alternate); } @@ -118,7 +121,7 @@ class PMA_Util if ($include_text) { $button .= $alternate; } - $button .= ''; + $button .= $menu_icon ? '' : ''; return $button; } @@ -1803,8 +1806,7 @@ class PMA_Util // avoid generating an alt tag, because it only illustrates // the text that follows and if browser does not display // images, the text is duplicated - $tab['text'] = self::getImage(htmlentities($tab['icon'])) - . $tab['text']; + $tab['text'] = self::getIcon($tab['icon'], $tab['text'], false, true); } elseif (empty($tab['text'])) { // check to not display an empty link-text diff --git a/test/libraries/common/PMA_getIcon_test.php b/test/libraries/common/PMA_getIcon_test.php index bc3f0581ed..781af64532 100644 --- a/test/libraries/common/PMA_getIcon_test.php +++ b/test/libraries/common/PMA_getIcon_test.php @@ -57,10 +57,12 @@ class PMA_getIcon_test extends PHPUnit_Framework_TestCase $GLOBALS['cfg']['PropertiesIconic'] = true; $alternate_text = 'alt_str'; + // Here we are checking for an icon embeded inside a span (i.e not a menu + // bar icon $this->assertEquals( '' . $alternate_text
             . ' ' . $alternate_text . '', - PMA_Util::getIcon('b_comment.png', $alternate_text, true) + PMA_Util::getIcon('b_comment.png', $alternate_text, true, false) ); }