Suppress additional native browser title of smilies in editor tab
authorMatthias Schmidt <gravatronics@live.com>
Sun, 7 Apr 2019 14:41:45 +0000 (16:41 +0200)
committerMatthias Schmidt <gravatronics@live.com>
Sun, 7 Apr 2019 14:41:45 +0000 (16:41 +0200)
Prior to this change, both the `a` element and the `img` element have a `title` attribute with the `a` element being a JavaScript tooltip element. This caused a JavaScript tooltip and a native browser tooltip to be shown when hovering over a smiley in the smiley selection below the editor.

See #2220

com.woltlab.wcf/templates/__messageFormSmilies.tpl
wcfsetup/install/files/lib/data/smiley/Smiley.class.php

index bb49b5f545cf8588fdc869d6a45c5f296a1e7524..51e429a19391aee0da3d8447df06b91112e8e21d 100644 (file)
@@ -1,5 +1,5 @@
 <ul class="inlineList smileyList">
        {foreach from=$smilies item=smiley}
-               <li><a title="{lang}{$smiley->smileyTitle}{/lang}" class="jsTooltip jsSmiley">{@$smiley->getHtml()}</a></li>
+               <li><a class="jsSmiley">{@$smiley->getHtml('jsTooltip')}</a></li>
        {/foreach}
 </ul>
\ No newline at end of file
index 1c5c76a4c87fe7fd85b002a566dab9b5934c951d..154a4325fd66bcad91a991b14bbc0cc7811c374a 100644 (file)
@@ -81,12 +81,16 @@ class Smiley extends DatabaseObject {
        /**
         * Returns the html code to render the smiley.
         * 
+        * @param       string          $class  (additional) class(es) of the smiley element
         * @return      string
         */
-       public function getHtml() {
+       public function getHtml($class = '') {
                $srcset = ($this->smileyPath2x) ? ' srcset="' . StringUtil::encodeHTML($this->getURL2x()) . ' 2x"' : '';
                $height = ($this->getHeight()) ? ' height="' . $this->getHeight() . '"' : '';
+               if ($class !== '') {
+                       $class = ' ' . $class;
+               }
                
-               return '<img src="' . StringUtil::encodeHTML($this->getURL()) . '" alt="' . StringUtil::encodeHTML($this->smileyCode) . '" title="' . WCF::getLanguage()->get($this->smileyTitle) . '" class="smiley"' . $srcset . $height . '>';
+               return '<img src="' . StringUtil::encodeHTML($this->getURL()) . '" alt="' . StringUtil::encodeHTML($this->smileyCode) . '" title="' . WCF::getLanguage()->get($this->smileyTitle) . '" class="smiley' . $class . '"' . $srcset . $height . '>';
        }
 }