yvExtensions  English  Polish    Donate  Forum   


Download yvSmiley   v.2.0.0, (0.03Mb) last changed: February 11, 2011. What's New, For Developers 
Download yvSmiley: JoomlaCode, local file (unzip before install).

Short description

yvSmiley is a Smiley (Emoticon) extension for Joomla! 1.6
For "Joomla! 1.5" please download yvSmileyPlugin v.1. package, the latest one is v.1.03.001.

It may show smileys in your Articles (working as content plugin), on the whole page (so, you will have smileys everywhere), or it may be used by any Joomla! extension (as an example, it is integrated into my yvComment extension already).

yvSmiley ships with two ready to use "Smiley sets" (from TinyMCE and phpBB), that you may customize, and it also supports aMSN (Alvaro's Messenger) skins, so you may choose from many existing "Smiley sets", that are part of these skins, and use them without any modification (download the skins from http://www.amsn-project.net/skins.php).

yvSmiley is written from scratch specifically for Joomla! 1.5, and it is not compatible with previous versions of Joomla!/Mambo. So it is free to use most advanced features of Joomla! 1.5.

...Smileys are means of nonverbal online communication .


1. To install yvSmiley, you MUST have at least Joomla! 1.5 build 8688 (RC2 dated 2007-08-31) or newer (see the tip). yvSmiley is a "system plugin".
2. yvSmiley distribution package contains English language files only. If you need additional language(s), download yvSmileyLanguagePacks from JoomlaCode and install. (yvSmileyLanguagePacks do not need to be enabled!)

In a case of any problem, please refer to the Troubleshooting section below.

Smiley sets

"Smiley set" is a group of smileys (images, e.g. ), their codes (e.g. ;-) ) and their descriptions (e.g. "Wink"). More, than one code may have the same smiley (e.g. ;-) and ;) ). But when yvSmiley lists all smileys (presents clickable table of smileys), it shows only first code for each smiley.

"Smiley sets" are stored in text files, so it is very easy to customize them and exchange them. Of cause, "Smiley set" file doesn't contain smileys themselfs: it contains URLs (file names) of smiley images.

yvSmiley supports two formats of 'Smiley set' file:


Administration, configuration and customization

All configuration setting of this extension are set in "yvSmiley Plugin parameters" (Administrator interface->Extensions->gin Manager->yvsmiley).

yvSmiley parameters 

Smiley set settings

You have four main options to select your "Smiley set", that you select from  "'Smiley set' file (and format)" list:

two predefined sets:

and two options for custom Smiley sets:

For the last two options you have to fill 'Path to the Custom 'Smiley set' file' parameter, typing path, relative from the site root (starting with '/') or full path. It is recommended (or in the case of to 'aMSN skin format' required) to use relative path, so URLs of images, stored in the 'Smiley set' file, may be relative also.

E.g. you may test 'Custom "Smiley set" file in CSV format' option, typing this 'custom' path:


Of cause, you may create your own folder for smileys, e.g. '/templates/smileys/' and put your custom 'Smiley set' files there.

As an example:

  1. I've downloaded aMSN distribution package,
  2. Eextracted its default skin (whole folder "skins/default" with subfolders) to my templates folder "/templates/yvjoomla/yvsmiley/aMSN"
  3. In yvSmiley plugin parameters set "'Smiley set' file (and format)"= "Custom "Smiley set" file in aMSN skin format"
  4. Set "Path to the Custom 'Smiley set' file" parameter = '/templates/yvjoomla/yvsmiley/aMSN/default/settings.xml'

And I have this Smiley set:
  Smiley set from default aMSN skin, used in yvComment extension

Smileys for Articles

yvSmiley may show smileys in your Articles (working as content plugin). This option ('Enable Smileys for the text of Articles') is disabled by default, but you may decide to enable it (change to 'Yes').

You may restrict work of this plugin for Articles, that belong to only some Sections. To do this, type comma (,) separated list of IDs of Sections in the "SectionIDs of Articles" parameter. Leave the field blank to allow replacement of smiley codes with smileys (images) for Articles of any Section.

Additional parameter: "Exclude Sections, selected above (No - include)" helps you to make this list shorter. If you don't want to have Smileys for only a small number of Sections: set this parameter to "Yes" (i.e. "exclude"), and type (in the "SectionIDs of Articles" parameter) only IDs of Sections to be excluded.

See, as an example, how yvSmiley changes articles, when aMSN default skin is used:
  yvSmiley changed this Article just like it changed comments on the examples above

- as you may see, yvSmiley changed this Article just like it changed comments on the examples above.

So, there is a reason to 'Enable Smileys for the text of Articles' at least for the Section, where Comments live .

Smileys for the whole page

  yvSmiley can make Smiley replacements for the whole page ("Enable Smiley replacements for the whole page" option). Thanks to louis.landry for this idea!
  yvSmiley can make Smiley replacements for the whole page

As you can see on the picture above, you may have smileys everywhere on the page: in the menu items, in the titles of Articles etc.)! So you may have smileys even in those extensions, that know nothing about yvSmiley.

Other settings

By default, yvSmiley uses simple CSS file (/plugins/system/yvsmiley/default.css), that is intended to be used as a start point for customization. If you made your customized css in your template, your have to change setting of "Use default CSS file" parameter to "No".


Currently yvSmiley is translated into these languages: German, English, French, Polish, Russian, Turkish.


Good luck!


Your feedback is greatly appreciated!

Future plans and thoughts (ToDo)

History of changes

v.2.0.0 (February 11, 2011)

  1. Modified by Bart Jochems (info@batjo.nl) and yvolk to run on Joomla! 1.6
  2. Parameters that mention 'SectionIDs of Articles' were renamed to 'CategoryIDs...' because there are no 'Sections' in Joomla! 1.6

v.1.3.0 (June 8, 2008)

  1. All translations were removed from main yvSmiley packages. Now yvSmiley Plugin package contain English language files only. All 4 translations were moved to 4 yvSmileyLanguagePacks, that may be downloaded from JoomlaCode and installed separately.
    There is also special, 'English language pack', that is template package to be used by translators to create additional language packs for yvSmiley extension.
    For information, why this was done, please see the discussion in the forum: How to create language pack for Joomla! 1.5 extension.
  2. yvSmiley's interface was extended: the third optional parameter: '$id_of_smiley_form', - was added to the onSmiley_RenderForm. When this parameter is not empty, yvSmiley adds 'id' attribute to the generated 'div', and so the div with smileys may be accessed through script (e.g. to hide or show smileys).

v.1.2.4 (February 23, 2008)

  1. Code refactored to better avoid "forbidden" places, when replacing smiley's code on the whole page.
  2. Error handling improved, including smart recovery from wrong 'Smiley set' files.
  3. Added translation: German (Thanks to RePa). 

v.1.2 (September 12, 2007)

  1. Fixed to work with Joomla! 1.5 RC2. Got rig of old ways to do things... so now yvSmiley is not compatible with Joomla! 1.5 builds < 8688 (before RC2).

Information for Developers

yvSmiley is written from scratch specifically for Joomla! 1.5 and it is not compatible with previous versions of Joomla!/Mambo. So it is free to use most advanced features of Joomla! 1.5.

My intention is to build extension, that is as much "natural" to Joomla, and that uses as much built-in features, as possible.

To use yvSmiley, other extensions don't need to refer to it in any way: they just trigger events, that are intercepted by yvSmiley (if its installed and enabled). If yvSmiley is not installed or is disabled, this doesn't lead to any errors!

yvSmiley always registers itself for two events:

$Form = '';
$mainframe->triggerEvent('onSmiley_RenderForm', array('document.forms.yvCommentForm.fulltext', &$Form) );
echo $Form;
$fulltext = 'Some Text To Be Rendered :-)';
$mainframe->triggerEvent('onSmiley_RenderText', array (& $fulltext) ); 
echo $fulltext;

As you may see, it is VERY easy to use yvSmiley in other extensions.

You may see example of yvSmiley usage in the yvComment extension.

The license

GPL. Freeware, i.e. at no cost. If you like this extension, please consider donating.

The Joomla! extension is distributed "as is", without any warranties explicit or implied.

(c) 2007-2009 Yuri Volkov, Moscow, Russia