Smart Shoutbox
Full-featured Joomla chat, which can be used as local or external shoutbox for cross-site chatting. Supports multiple categories (chat rooms), files uploading, multiple chat instances and rich filtering. Comes with tons of different options and expandable functionality.
Features
Flexible template with full support of mobile devices and easy styling via CSS. Tons of different options, customizable editor buttons, rich permission set. Unlimited categories, unlimited modules, unlimited members in chat. Images and videos automatically replaced with lightbox and player. Supports social components like JomSocial, CommunityBuilder etc. Smileys, likes, archive, flood control, file uploading and much, much more.
Compatibility: Joomla 3.0+
Current version: 3.0.6
Why Smart Shoutbox?
First of all, there's no much chat solutions for Joomla and existing ones are either too simple and ugly or overloaded with JavaScript and useless features. Smart Shoutbox is a balanced chat component with neat layout and a fairly enough scripts and features to work smoothly and almost faultlessly. We always monitoring chat and our customers' feature requests, but add only vital and really cool stuff, which will make Smart Shoutbox even better keeping it balanced. Try it for yourself and you will see, that this all is true.
Full list of features
- Supports multiple shoutbox instances, each with separate options and setup.
- Can handle unlimited number or categories (chat rooms).
- Functionality can be extended indefinitely via plugins.
- Supports cross-site chatting with External Database feature.
- Full support of modern mobile devices.
- Rich permissions set to restrict shoutbox usage to desired user groups.
- Shouts can be refreshed manually or automatically in given period of time.
- You can select resizable textarea or WSYWIG editor as shout input field (per instance).
- Profiles can be taken from different social components: JomSocial, Kunena, Community Builder etc.
- Automatically replaces image links with thumbs and video links with embedded player.
- File uploading with options. You can limit number of files, file types and user groups.
- Flexible template, which can be easily adjusted to your site's layout via CSS.
- Tons of options to tune Smart Shoutbox according to your needs.
Screenshots
Demo
You can see the component demonstration on chat page and module in footer of any other page.
To see the backend demo of click the button below and login (username: demo, password: demo).
Available Plugins
All plugins require an active Smart Shoutbox license. If you have an active license, please, login to buy or download the desired plugin.
If you can't find desired plugin in the list, send us a request, and we will create it for you!
Chat Button
Adds chat button to Smart Shoutbox module with link to Chat page. Works only with modules.
Current version: 3.0.5
Read Button
Adds Read button to Smart Shoutbox component and module to quickly toggle reading mode.
Current version: 3.0.5
Link Parser
Adds link parsing functionality to Smart Shoutbox. Works for all kinds of links: image, video, email etc.
Current version: 3.0.6
Words Filter
Adds word filtering functionality to Smart Shoutbox. Can be used, for example, as generic profanity filter.
Current version: 3.0.5
Auto Shouter
Adds predefined shouts from particular user to database, which will be later displayed in shoutbox as normal shouts.
Current version: 3.0.5
Cron Alternative
Can be used as an alternative to cron service. Do NOT use this plugin, if you have cron service on your server!
Current version: 3.0.5
Reply Column
Adds Reply column to Smart Shoutbox shouts list to quickly add shout author name and reply to him.
Current version: 3.0.5
Change Log
3.1.0 (Upcoming)
- ADDED: Author Actions menu with different actions: Reply Author, Mute Author and Send Privately.
- CHANGED: Ban/Unban button moved to Author Actions menu.
- CHANGED: When switching between categories, shout list is now scrolled to the latest message.
- FIXED: Links are not properly processed on some systems.
- FIXED: Clicking shout menu button repeatedly leads to improper shout actions.
- Minor bug fixes and improvements.
3.0.6
- FIXED: Links are not properly processed on some systems.
- FIXED: Clicking shout menu button repeatedly leads to improper shout actions.
- Minor improvements.
3.0.5
- FIXED: Shouts with attached files, but empty text, can not be submitted.
- FIXED: Links with space are not properly processed.
- FIXED: Attachments are not removed, when deleting shout.
- CHANGED: If Allow HTML option is set to No and Allowed Tags is empty, editor is completely disabled.
- Minor bug fixes and improvements.
3.0.4
- Font Awesome updated to version 5. Icon declaration and some icon names have changed!
- ADDED: Toggle button to collapse or expand shout window.
- CHANGED: Editor SVG icons replaced with Font Awesome.
- Updated all 3rd party jQuery plugins.
- Minor bug fixes and improvements.
3.0.3
- System files were changed. Update all plugins after extension upgrade!
- FIXED: Attachments list not displayed on shout editing page in admin.
- FIXED: Impossible to remove last attachment from shout in admin.
- FIXED: Avatars not properly displayed, when Joomla installed in subfolder.
- FIXED: Category description is displayed, even if it's empty.
- FIXED: Reply Column stylesheet is not loaded, when shout list is empty.
- FIXED: Wrong path to author avatar, when Joomla installed in subdirectory.
- FIXED: "Empty string passed to getElementById()" warning in admin.
- Submit button is now disabled, when shouts are refreshed (both manually and automatically).
- Slightly improved admin interface.
- Minor bug fixes and improvements.
3.0.2
- ADDED: Read Button to quickly toggle automatic refresh and simply read shouts.
- ADDED: Sounds for different events: toggle, click and submit.
- FIXED: Empty HREF attribute in A tag, if custom button doesn't have any link set.
- FIXED: Custom button events (click, blur etc) don't work properly.
- FIXED: Duplicated shouts displayed sometimes, when submitting new shout, if Automatic Refresh value is too low.
- Minor bug fixes and improvements.
3.0.1
- FIXED: Input values are not properly filtered, when Filters are submitted.
- FIXED: Redirection loop, when one of the smiley folders is empty.
- FIXED: "No shouts were added" message remains after autorefresh, when shouts were added remotely.
- FIXED: "No shouts were added" message is not displayed, when last shout is deleted from category.
- Last category shouts introduced for improved functionality of all actions with shouts.
- Improved smileys scanning.
- Minor bug fixes and improvements.
3.0.0
HIGHLIGHTS
- IPS Shoutbox support completely replaced with Joomla external database. Farewell, old friend!
- A lot of options were removed, renamed or added. Update your settings after upgrade!
- Shout text is now saved as is and all parsing is made on display. Only basic cleaning is made on save.
- Archive functionality replaced by Filters, which are only available on Chat page.
- Reworked layout with more space for everything: message, name, buttons.
- Shout input field replaced with textarea, which can be resized automatically or manually.
- Full RTL (right-to-left) support for applicable languages.
- Events support for custom layout and functionality (see details below).
ADDED
- Custom text parsers and filtering support via plugins. Words Filter is added via plugin as an example.
- Custom window buttons support via plugins. Chat Button is added via plugin as an example.
- Custom columns support via plugins. Reply Column is added via plugin as an example.
- Scrollbar for smileys tooltip, which is now smaller and shows only first few smileys at once, not all of them.
- Icon option for categories to display Font Awesome icon near the title.
- Ordering option for categories to sort them in the shoutbox on front-end.
- Categories can now be made available to selected user groups only.
- Improved IP-address detection.
- Submit With option to select, how you want to submit shouts: with Enter or Ctrl + Enter.
- Show Filters option for Archive to show or hide search filters.
- Support for K2 Users in User Profiles option.
- Submit With option to submit shouts with ENTER or CTRL + ENTER.
- Feedback option to limit shoutbox system messages display.
- Custom limit and ordering options via Filters. When set on Chat page will work for all module instances as well.
FIXED
- Descending shout ordering is not working on refresh.
- Non-Latin characters are saved as entities in database, which returns improper search results.
- Submitted links with non-Latin characters are cut in the middle.
- Delete Own permission is not checked properly, when deleting multiple shouts at once.
- Last shout is not updated, when deleting multiple shouts.
- Video and image links are not shortened, if URL shortener is defined.
- Uploaded files are not attached, when editing shout on front-end.
- Shout length is not checked, when editing shout on front-end.
- HTML shouts are truncated improperly (tag structure may become broken).
- Likes are not deleted, when old shouts removed via cron.
- Check, if current user is banned, sometimes returns improper result.
- Category tabs are not displayed properly, when window was previously resized and category menu clicked.
CHANGED
- Some options are now per shoutbox instance: displayed shouts, window height, announcement, categories and more.
- Removed confirmation dialog window, all actions with shouts were simplified.
- Autoshouter plugin now has a nice editor and user selection dropdown field for easier setup.
- Smileys tooltip is now smaller, displays only first few smileys and scrollable.
- Date format options replaced with language strings.
- Attachments option minimum value is now 1 and excluded from all checks.
- Old smiley sets removed, two new sets added: new default and flat smileys.
- Banning action is now available only for registered users regardless the permissions for Public or Guest groups.
OTHER
- Improved link parsing algorithm with better output.
- Improved word filtering algorithm with white list to avoid filtering of nice words.
- Improved feedback with additional messages.
- Improved workflow with multiple shoutbox instances on one page.
- Better functionality and layout on mobile devices.
- A lot of language strings were changed, removed or added. Don't forget to update your localization!
- Greatly optimized code.
- Countless minor bug fixes and improvements.
- All jQuery plugins were updated to the their latest versions.
2.9.5
- ADDED: Scroll Top option to turn on/off scrolling to the top of the window after submitted shout.
- ADDED: rel="noopener noreferrer" attribute to all external links for increased security.
- ADDED: Support for Joomla Update system.
- FIXED: Shout input field not displayed on page reload, when window width is too small.
- FIXED: All non-active categories sometimes highlighted on refresh, when one of them has new shouts.
- FIXED: Extension's version is checked on every page in admin (should be only checked on Home).
- Minor bug fixes and improvements.
2.9.4
- ADDED: Allow Duplicates option to allow or restrict users from adding the same shouts successively.
- ADDED: Avoid Flood Control option to disable shouting interval for certain user groups.
- FIXED: Uploaded files are being uploaded with every shout until page is reloaded.
- FIXED: When shout is added, timer is not reset in case of any error.
2.9.3
- ADDED: Combine Shouts option to combine consequent shouts from the same user.
- ADDED: Archive Ordering option to define shout ordering in archive separately from chat.
- FIXED: Announcement with quotes and apostrophes produces an error.
- FIXED: Mobile Width set in percent produces an error.
- FIXED: Ascending shout order is double reversed and displayed incorrectly.
- Added a workaround for shouts, assigned to deleted users.
- Minor improvements.
2.9.2
- Improved admin interface with several new options. Go to Options, check and save them after update!
- ADDED: Cron plugin to execute cron task, when cron service is not available.
- ADDED: Short Date Format option to set date format for mobile/sidebar layout.
- ADDED: Send Report option to send cron job report to admin email.
- FIXED: Shouts between submitted and latest shout for current member not displayed until refresh.
- FIXED: On global chat page editor is not replaced with input in mobile/sidebar layout.
- FIXED: Kunena avatar not properly displayed.
- FIXED: All editor buttons are always displayed, no matter the settings.
- FIXED: Some language strings are not properly displayed on front-end.
- FIXED: Attached Files section duplicated on shout edit.
- FIXED: Shout list is empty, when catid parameter in URL is present and doesn't belong to Smart Shoutbox.
- FIXED: Smileys and attachments are not properly processed in shout list on back-end.
- Some language strings were removed, added or changed.
- Minor bug fixes and improvements.
2.9.1
- ADDED: Manage Options permission to allow or deny change and save extension's settings.
- ADDED: Autoscan for smileys on fresh installation of Smart Shoutbox.
- FIXED: Smiley saving is not working properly.
- FIXED: Menu link search generates error, when Joomla, Community Builder or Kunena selected.
- Upgrade strings resorted to ensure smooth upgrades in the future.
- Slightly improved admin UI.
2.9.0
HIGHLIGHTS
Joomla 2.5
We removed Joomla 2.5 support once and for all. Joomla 2.5 is a VERY old framework and not supported even by its developers. If you want to upgrade Smart Shoutbox and use its great new features, you should update your Joomla to the latest version.
IP.Shoutbox
This is the last version, that still supports IP.Shoutbox. In version 3.0 it'll be replaced with external database feature, which will allow you to use Smart Shoutbox across multiple sites. However you will be able to import all your IP.Shoutbox shouts and migrate to Smart Shoutbox.
What next?
In the next major release we're going to optimize the code and even rewrite it, if needed. Version 3.0 will be lighter, faster and more stable. All operations will be executed in a more simple way to ensure 100% functionality in most environments. We will also try to improve mobile template and add some related settings for seamless work on all mobile devices.
And, of course, a long promised External Database support will be added for cross-site chatting. Another great feature to come — import from other chatting extensions and not only for Joomla.
If you have any issues with Smart Shoutbox or ideas you want to share, this is the time to write us!
MAJOR CHANGES
- New slick admin UI. Some options added some changed. Open your settings and update!
- All permission names changed. You MUST set them again after upgrade!
ADDED
- Debug optionto trace issues with shouts.
- Filter Words option to define a list of bad words, you want to hide in shouts.
- Word Mask option to replace bad words with defined mask.
- Columns selection options for categories, shouts, banned users and smileys lists.
- You can now change category creation date on category editing page.
- Window Height option in extension and module settings to define shout window height for global chat and each module separately.
- Maximum Width option to define maximum width for mobile template.
FIXED
- Shouts with not closed tags or special characters displayed as empty due to error.
- Names still generated, when Generate Names option is set to No.
- Categories and Shouts are not properly opened by Edit button.
- First shout not displayed after submit, if no categories created.
- Path to avatar is incomplete sometimes and image not displayed.
- Uncategorized shouts are not displayed in the module, if other categories exist.
- Smiley title improperly processed, producing broken HTML.
- Category ID is not passed on refresh.
- Embedded videos become broken, when shout is edited.
- Images displayed in original size and don't use lightbox on back-end.
- Files with non-Latin names uploaded incorrectly.
OTHER
- Slightly improved mobile/sidebar template.
- Improved Smileys page on back-end with new Scan option, searching and sorting functionality.
- System messages now displayed above shouts list and more mobile friendly.
- External plugins and libraries updated to their latest versions (where applicable).
- Some language stings changed or added.
- A lot of minor bug fixes and improvements.
2.0.0
- Completely new extension concept: now it's a component with lots of options, not just a module.
1.0.0
- Initial release as a simple module, which mirrored IP.Shoutbox contents to Joomla.
Documentation
Installation
Go to Extensions -> Manage -> Install page, upload distribution package you've previously downloaded and click Install. Before you enable extension you must setup it first.
For plugins: Go to Extensions -> Plugins, find the desired plugin and open its settings. Setup accordingly and only then enable.
For modules: Go to Extensions -> Modules, find the desired module and open its settings. Setup accordingly and only then enable.
For components: Hover your mouse over Components menu item, find the desired component and go to Options page. Setup everything accordingly and don't forget to check Permissions tab.
License ID: Enter anything in License ID field, if it is present in extension options.
NOTE: Smart Shoutbox has rich permissions set, which you MUST adjust accordingly for all desired user groups, otherwise extension will not work properly.
Basic usage
To display shoutbox either assign a menu item (Chat page) or install and enable Smart Shoutbox module. Both Chat page and module instances have some options, which affect only selected instance, but work and look absolutely the same. The only difference is Filters section on Chat page.
Filters allow you to quickly filter shouts by date, author name and text, as well as modify shout ordering and number of shouts in the list. When set, filters will work for particular user and be kept until reset.
Announcements
You can display short announcements at the top of each shoutbox instance. Announcements work for assigned instance only, but you can override them with Global Announcement (see Core Options section below.
Styling shoutbox
By default we offer basic neutral template, which will fit most layouts. However shoutbox layout is highly customizable via CSS, you can do virtually anything with it. You can colorize any element, hide it, make larger or smaller and make your shoutbox visually a part of your template.
Core options
There're lots of different options in Smart Shoutbox. Each option has a hint with short description of what this option does.
General
Basic shoutbox settings for all instances.
- Global announce - Global announcement, which will override announcements for ALL instances, when set.
- Editor groups - Button groups (styles, links, colors etc.), which you want to be displayed in WYSIWYG editor.
- Chat buttons - Core chat buttons you want to be displayed in shoutbox window.
- Data source - Has two values: Local - everything is saved and taken from local database, External - most data is taken from external database, excluding options and permissions.
- Feedback - Displays feedback messages after different actions on front-end - all messages, only errors or none.
- Enable sounds - Turns on/off sounds on front-end.
- Mobile width - Minimum width for mobile/sidebar layout in pixels (without px).
- Automatic refresh - In how many seconds shouts list should be refreshed automatically. It is not recommended to set to low value for this option.
- Shouting interval - In how many seconds next shout can be submitted. Useful to avoid spamming.
- Show category description - Display category description for active tab. Description will be automatically hidden in 10 seconds.
- Smileys folder - Default smileys folder for front-end display.
- Submit with - Keyboard shortcut for submitting shouts (Enter or Ctrl + Enter).
- Attachments - How many files can be attached to a single shout.
- File types - List of file extensions, which are allowed to be attached.
Shouts
Settings related to shouts only. Some of them (shouts displayed, shout ordering etc) can be overridden on front-end or by particular instance settings.
- User profiles - Source of user profiles for shout authors: Joomla, JomSocial, Community Builder, Kunena etc.
- Shouts displayed - How many shouts to be displayed in shoutbox window. Works per category.
- Shout ordering - Default shout ordering: ascending or descending.
- Combine shouts - Combines consecutive shouts from the same user in one.
- Allow duplicates - Allows or disallows users to submit same shouts consequently.
- Shout length - Maximum shout length (unlimited, if not set).
- Author names - Display user names or display names for registered users.
- Generate names - Automatically generates names for chat members. If not set, generic Guest name will be used.
- Truncate names - Maximum name length (unlimited, if not set).
- Allow HTML - Allow HTML in chats. If set to No, shouts will be completely stripped from any tags.
- Allowed tags - List of allowed HTML tags (<a><u><p> etc) to partially allow HTML usage.
External
External database settings for cross-site chatting. Don't forget to set Data Source option to External in General settings tab.
- Database driver - Your external database driver (mysqli by default)
- Database server - Your external database server. Can be localhost, domain name or IP address.
- Database Username - Your external database username.
- Database Password - Your external database password.
- Database name - Your external database name.
- Database port - Your external database port (empty in most cases).
- Database socket - Your external database socket (empty in most cases).
- Table prefix - Your external database prefix. Can differ from your local database prefix, so be careful.
- External URL - Your external site's base URL for profile links, avatars etc.
NOTE: In External mode shoutbox works more like a slave instance. All shouts and profiles are taken from external database, but settings and permissions must be defined locally.
Admin
- Display messages - Displays feedback messages after different actions on back-end - all messages, only errors or none.
- Categories columns - Allows to select only desired columns for Categories page list.
- Shouts columns - Allows to select only desired columns for Categories list.
- Banned columns - Allows to select only desired columns for Banned Users list.
- Smiley columns - Allows to select only desired columns for Smileys list.
- Delete shouts - If set to yes, shouts will be deleted as well, when deleting a category. Otherwise they will be marked as Uncategorized.
- Action secret - Secret key for cron job to increase security.
- Action link - Action link for cron command.
- Shout life - Shouts older than given days will be deleted by cron job.
- Delete orphans - Orphaned files not assigned to any shout will be deleted by cron job.
- Check version - Displays current version information. Disable this option, if Options page opens slowly.
- Send report - After each cron run a report will be sent to admin email.
- Debug - When enabled, every shout will be saved in a raw formal in log file, which can be found in a root folder.
Manage content
Smart Shoutbox admin section contains several pages, where you can manage all available content.
Categories
On this page you can create, publish or delete your categories. Shoutbox categories are something like chat rooms, but work more similar to browser tabs, allowing your visitors to discuss different topics without mixing them.
You can create as many categories as you like and limit access to them by user groups. For example, you can create General group for all users and Admin Talk for your site admins only. Every category can be selected for every shoutbox instance separately, have distinctive icon and even colored via CSS.
Shouts
Shouts Journal is your main place to manage all shouts. Here you can edit or remove selected shouts or clean shout database completely. Nothing complex here: just choose the desired option and do what you want.
Banned
Banned users list has only purpose: to quickly view list of banned users and remove some of them (or all). You can also unban users one by one right from the shoutbox at front-end.
Smileys
You can add as much smiley sets as you want. Just create a folder in /components/com_smartshoutbox/asses/smileys and copy some files there (JPG, PNG or GIF). To remove smileys from the list use Smileys page in admin or simply delete them using FTP. To add smileys to desired set, copy new files to corresponding folder and they'll be automatically inserted in database next time you visit Smileys page.
HINT: For better compatibility and easier access give all your smiley images simple names according to their emotions: angry.png, smile.png, sad.png etc. Filename will be taken as basic smiley placeholder: :angry:, :smile:, :sad: etc. For each smiley you will also be able to set 2 custom placeholders.
NOTE: If you see placeholders instead of smileys, go to extension's settings and open Smileys page at least once. This will add default smileys to the database.
Autodelete old shouts
If you want to automatically delete shouts in given days, you must set up a cron job, using action link from extension options (Admin tab). Additionally you can choose to remove orphaned files, which were occasionally uploaded to your server via shoutbox. This will save you some space on the server.
If you don't know, how to setup cron, please, contact your hosting provider. Cron command may differ from server to server, but mostly it's either "lynx" or "wget" command.
Plugins
Smart Shoutbox supports different plugins, which allow you to expand its functionality. You can add columns to shouts list or buttons to shoutbox window, parse shout text using custom rules or automatically clean database and remove orphaned files.
Core plugins
AutoShouter
Use AutoShouter plugin to add predefined shouts in given period of time. Number of shouts is not limited and you can also use HTML to empathize certain parts of the shout.
Cron
If you don't have access to cron on your server, you can use this plugin to clean shouts and orphaned files. DO NOT use it, if you have cron service and already setup cron command!
Plugin events
Currently the following events under "smartshoutbox" group are supported:
onGetWindowButtons(&$buttons)
Allows you to add a button to core buttons (Refresh, Smileys etc). $buttons variable is a buttons array; you can add your button in any place of it.
NOTE: Use Chat Button plugin as an example for your custom button extension.
onGetShoutColumns(&$columns), onGetColumnContent (&$content, $column, $shout, $profile)
These two events must be used together in one plugin. Using them separately has no sense.
onGetShoutColumns adds a custom column to shouts list (for example, country or favorite team flag). $columns variable is a columns array; you can add your column in any place of it.
onGetColumnContent returns actual column content. $content - returned column content in HTML or plain text. $column - column name to check for. $shout - current shout data. $profile - current user profile with permissions.
NOTE: Use Reply Column plugin as an example for your custom column extension.
onParseShoutText(&$text)
Allows you to parse shout text, using your own rules (for example, remove unwanted data or add advertisements to every shout). $text - current shout text, which already undergone some basic cleaning and parsing.
NOTE: Use Links Parser or Words Filter plugins as an example for your custom text parsing extension.