FANDOM


EmoticonsWindow plugin adds a window with all emoticons listed. Users can select emoticons and they will be added to their text box.

This plugin is especially useful for wikis with lots of emoticons, so users don't need to remember all emoticons or use MediaWiki:Emoticons all the time.

Installation

Add this code to MediaWiki:Chat.js or Special:Mypage/chat.js

importArticles({
    type: 'script',
    articles: [
        // ...
        'u:kocka:MediaWiki:Emoticons/code.js',
        // ...
    ]
});
importArticles — Best Practices for installing JavaScript on FANDOM
The importArticles statement is designed to combine multiple HTTP requests into a single data transfer, allowing multiple scripts to load and execute faster. If you've been installing several different scripts, your JavaScript file has probably accumulated unnecessary import statements. Click "Expand" to learn how to efficiently batch import scripts to speed up performance and make your code look cleaner. One other approach is by using the MediaWiki:ImportJS.
If your JavaScript file has several lines of code that say importScript, importScriptPage, or importArticles, you may be able to combine them! By batch importing a collection of scripts with a single import, your JavaScript code will load faster and look cleaner. Consider the example below. On the left is an example of what your JavaScript file might currently look like. On the right is how you could improve that code.
Multiple imports — messy and slow One import — clean and efficient
importScriptPage('AjaxRC/code.js','dev');
 
importScript('MediaWiki:localScript.js');
 
importArticle({
  type: 'script',
  article: 'u:dev:FloatingToc/code.js'
});
 
importScriptPage('page1.js', 'wikiname');
 
importScriptPage('page2.js', 'wikiname');
importArticles({
    type: 'script',
    articles: [
        'u:dev:AjaxRC/code.js',
        'MediaWiki:localScript.js',
        'u:dev:FloatingToc/code.js',
        'u:wikiname:page1.js',
        'u:wikiname:page2.js'
    ]
});
Note: In this example, pay close attention to the placement of commas and other punctuation. For people who aren't familiar with programming (and even those who are!), a common mistake when writing code is to accidentally delete, forget, or misplace critical symbols like commas or quotation marks. This can cause a syntax error that breaks the code. Carefully follow the convention shown here when using importArticles.
But there's much more to importArticles than just this! For more examples and advanced usage, see the help page at Help:Including additional JavaScript and CSS.


Configuration

JS

Configuration is done through window.EmoticonsWindowConfig object, and the only available configuration option currently is chatOptionsIntegration, which allows the button to be placed below the ChatOptions button, along with the class chat-button. To enable it, use:

window.EmoticonsWindowConfig = {
    chatOptionsIntegration: true
};

Configuration of the text that appears in the script can be done by configuring properties of the window.EmoticonsWindowVocab object. Properties have their respective names as in the Translation section. For example, if you wanted to configure the help text that appears in the modal:

window.EmoticonsWindowVocab = {
    help: "Clicking an emoticon will make it appear in your text box. Poof!"
};

The above code is provided as an example configuration and isn't necessary for the script to work.

CSS

This configuration should go to your MediaWiki:Chat.css (wiki-wide use) or Special:Mypage/chat.css (personal use).

Option Description Default
.EmoticonsWindowIcon Square displaying the emoticon in the emoticons window.
width: 19px;
height: 19px;
border: 1px solid black;
padding: 10px;
border-radius: 5px;
background: #5F2C60;
On hovering
background: #823C83;
.EmoticonsWindowButton Button that is added to the title N/A
#EmoticonsWindowModal Window displaying the emoticons. N/A
#EmoticonsWindowList Contents of the emoticons window.
height: 400px;
overflow-y: auto;
(Default CSS for this element written by らり牛ちゃん)
#EmoticonsWindowClose "Close" button N/A
.EmoticonsWindowHelp Help text N/A

Example configuration:

#EmoticonsWindowList {
    height: 600px;
}
.EmoticonsWindowIcon {
    background: yellow;
}

Translation

This script can be translated to multiple languages by editing the internationalization data page with proper JSON markup of the translation, if you have the rights to edit it. However, if you don't, you could post the translation on this script's or KockaAdmiralac's talk page.

There are several strings that should be translated. Every string has it's code that is used to identify what is the string used for, so when translating these strings please supply the code of the string that you're translating along the string.

Code String Usage
help Choose an emoticon by clicking on it. Help text in the modal
emoticons Emoticons Emoticons button title
close Close Text on the modal button for closing

Changelog

v1.0
Initial revision
v1.1
Credits for suggesting fixes below to Dorumin
When hovering over an emoticon, it displays its name
When inserting an emoticon, a space is inserted in front of it
Help text is now fixed to the top
Added an exception for Steven Universe wiki
v1.2
Cached the modal content
Changed "kockaEmoticons" to "EmoticonsWindow" in CSS elements
v1.3
Updated the general layout of the script
Updated the internationalization system
The script now uses the same method as FANDOM does for parsing emoticons
Added full support for ChatOptions integration
v1.4
Updated the internationalization system again
v1.5
Reformatted the code again
Removed kockaEmoticons completely
Changed the button from an actual button element into a link with wikia-button class

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.