diff --git a/file/js/be.bastelstu.WCF.Chat.coffee b/file/js/be.bastelstu.WCF.Chat.coffee index 74c2061..50c229f 100644 --- a/file/js/be.bastelstu.WCF.Chat.coffee +++ b/file/js/be.bastelstu.WCF.Chat.coffee @@ -113,7 +113,7 @@ window.console ?= , @ # Insert a smiley - $('.jsSmiley').click $.proxy (event) -> + $('#smilies').on 'click', 'img', $.proxy (event) -> @insertText ' ' + $(event.target).attr('alt') + ' ' , @ diff --git a/file/lib/page/ChatPage.class.php b/file/lib/page/ChatPage.class.php index d3ae064..80dffec 100644 --- a/file/lib/page/ChatPage.class.php +++ b/file/lib/page/ChatPage.class.php @@ -65,7 +65,15 @@ class ChatPage extends AbstractPage { * @var array<\wcf\data\smiley\Smiley> * @see \wcf\data\smiley\SmileyCache */ - public $smilies = array(); + public $defaultSmilies = array(); + + /** + * List of all smiley categories. + * + * @var array<\wcf\data\smiley\SmileyCategory> + * @see \wcf\data\smiley\SmileyCache + */ + public $smileyCategories = array(); /** * Values read from the UserStorage of the current user. @@ -79,14 +87,15 @@ class ChatPage extends AbstractPage { */ public function assignVariables() { parent::assignVariables(); - + WCF::getTPL()->assign(array( 'chatVersion' => $this->chatVersion, 'newestMessages' => $this->newestMessages, 'room' => $this->room, 'roomID' => $this->roomID, 'rooms' => $this->rooms, - 'smilies' => $this->smilies + 'defaultSmilies' => $this->defaultSmilies, + 'smileyCategories' => $this->smileyCategories )); } @@ -146,7 +155,13 @@ public function readData() { \wcf\util\ChatUtil::writeUserData(array('lastSeen' => 0)); } - $this->smilies = \wcf\data\smiley\SmileyCache::getInstance()->getCategorySmilies(); + $smileyCategories = \wcf\data\smiley\SmileyCache::getInstance()->getCategories(); + + foreach($smileyCategories as $category) { + if(!$category->disabled) $this->smileyCategories[] = $category; + } + + $this->defaultSmilies = \wcf\data\smiley\SmileyCache::getInstance()->getCategorySmilies(); $this->readChatVersion(); } diff --git a/file/style/be.bastelstu.wcf.chat.scss b/file/style/be.bastelstu.wcf.chat.scss index 0c24dd6..832fb86 100644 --- a/file/style/be.bastelstu.wcf.chat.scss +++ b/file/style/be.bastelstu.wcf.chat.scss @@ -36,7 +36,7 @@ .sidebar { } } -#timsChatTopic, #smileyList { +#timsChatTopic { padding: 5px; } @@ -47,11 +47,21 @@ .timsChatMessageContainer { padding-left: 7px !important; } -#smileyList .smilies { - li { - display: inline; - margin: 5px 5px 0 0; - } +#smilies { + padding: 14px 21px 7px; + border-bottom-right-radius: 0px; + + > div { + li { + display: inline; + margin: 5px 5px 0 0; + + .icon24 { + //width: 16px; + //height: 16px; + } + } + } } #timsChatForm { @@ -72,9 +82,10 @@ #timsChatControls { } #timsChatOptions { - bottom: -28px; + top: -1px; + right: 1px; margin-left: 0; - position: absolute; + position: relative; width: 100%; > ul { diff --git a/template/chat.tpl b/template/chat.tpl index 57c6b56..0ca3e86 100644 --- a/template/chat.tpl +++ b/template/chat.tpl @@ -72,16 +72,33 @@ -
+
{if MODULE_SMILEY} -
-
    - {foreach from=$smilies item='smiley'} -
  • - {$smiley->smileyCode} -
  • - {/foreach} -
+ {capture assign=__defaultSmilies} + {include file='__messageFormSmilies' smilies=$defaultSmilies} + {/capture} + +
+ {if $smileyCategories|count} + + + + + {foreach from=$smileyCategories item='smileyCategory'} + + {/foreach} + {else} + {@$__defaultSmilies} + {/if}
{/if}