New Features and Improvements in Joomla! 3.6

New Features and Improvements in Joomla! 3.6

Stable Joomla 3.6 is now available for download and update, This new release features over 400 improvements to the popular CMS, including many features which make administration of Joomla! Web sites easier and more feature-rich, as well as many UX (user experience) improvements.

Here list of main new features and improvements:

1 - Allow Stream Connections To Support Proxies

If you needed to use a proxy to connect to the internet you can now use a stream socket as well as cURL when making http requests.

2 - Build More Complex Database Queries With New Database Query Classes!

New methods extendWhere, orWhere and andWhere in database query class. Improved database query “where” methods remove the restrictions for subsequent uses caused by the glue parameter.

Examples:

$query->where('( a.account_name LIKE ' . $search . ' )')
      ->orWhere('( a.account_number LIKE ' . $search . ' )', 'XOR')
      ->orWhere('( a.crm_id LIKE ' . $search . ' )', 'XOR');
$query->where('( a.account_name LIKE ' . $search . ' )')
    ->extendWhere('XOR','( a.account_number LIKE ' . $search . ' )')
    ->extendWhere('XOR','( a.crm_id LIKE ' . $search . ' )');

3 - Delete All Cache

The new Delete All button on the Clear Cache page allows you to delete all cache files at once. No more selecting all or several items that you want to delete from cache. It saves you time with one single click!

4 - Easier Template Development With Deeper JLayout Integrations

Joomla! 3.6 introduces JLayouts for more form fields. This abstraction makes it easier for template creators to overwrite the core output of fields.

5 - Htaccess Authentication For Calls

Adds the ability to provide login credentials for htaccess protected urls and directories when making HTTP requests.

Example:

$credentials = array('userauth' => 'htaccessuser', 'passwordauth' => 'htaccesspassword');
$options = new \Joomla\Registry\Registry($credentials);

$http = JHttpFactory::getHttp($options);

$url = 'http://your-url.tld';
$result = $http->get($url);

6 - Improved Storage Of Dynamic JavaScript Variables

New container improves JavaScript variable storage with a common interface for extensions.

Examples:

$doc = JFactory::getDocument();
$doc->addScriptOptions('myextension_name', array(
  'foo' =>  'blabla',
  'bar' => ['more', 'blabla']
));
/* JS Access to them */
console.log(Joomla.optionsStorage.myextension_name.foo);
console.log(Joomla.optionsStorage.myextension_name.bar);
/* another example /*
$options = $doc->getScriptOptions('myextension_name');
$options['foo'] = 'ue ue';
$doc->addScriptOptions('myextension_name', $options);

// or more easy:
$doc->addScriptOptions('myextension_name', array('foo' => 'ue ue')); 
// it will be merged, and old 'foo' changed

7 - Improved Validation Performance

Joomla! 3.6 considerably speeds up form validation. The improvement will be most visible on sites with forms containing large number of fields both in core Joomla! or any extension using JForm.

8 - JQuery Update

Update to latest version of jQuery and jQuery Migrate in the Joomla! Core.

9 - New “Showon” Option For Fieldsets In Component Config

Provides Extension Developers with the possibility to show or hide a fieldset depending on the value of another field.

Examples:

JYESJNO


Read more about it in joomla docs

10 - New Log Folder

The default logs folder moved inside the administration folder. This increases compatibility with some web hosts.

11 - New Position Settings For Bootstrap Tooltips Extended

Provides developers with the ability to change the standard positioning of Bootstrap tooltips in their extensions. The new settings also support RTL.

Examples:

// Load bootstrap-tooltip-extended plugin for additional tooltip positions in modal
 JHtml::_('bootstrap.tooltipExtended');
JHtml::_('bootstrap.tooltip', $selector, $params = array(), $extended = false);

12 - Protostar Adds A New Override For The Site Offline Page

New clean fresh design for the offline page via an override in the Protostar template.

13 - Reverse Caching Support

Joomla! 3.6 now supports reverse caching proxies like Varnish or an NGINX caching proxy. These help to provide increased speed, more performance and as a result better ranking in search engines.

14 - SASS & SCSS File Support In Joomla! Template Manager

Now you can edit sass/scss files directly from Joomla! Template Manager.

15 - Sub Form Field

Some extra additional functionality next to Repeatable fields was added. Now you can nest XML forms inside each other or reuse your existing forms inside your current form.

Example:

 

Attributes:

  • formsource - (required) The form source to be included. Path to xml file or the form name to search by JForm::getInstance().
  • multiple - The multiple state for the form field. Whether the field is repeatable or not.
  • min - Count of minimum repeating in multiple mode. Default 0.
  • max - Count of maximum repeating in multiple mode. Default 1000.
  • groupByFieldset - Whether group the subform fields by it`s fieldset (true or false).
  • buttons - Which buttons to show in multiple mode. Default add,remove,move.
  • layout - The layout name for render the field inputs. Available:
    • joomla.form.field.subform.default - Render the subform in div container, without support of repeating.
    • joomla.form.field.subform.repeatable - Render the subform in div container, recommended for multiple mode. Support groupByFieldset.
    • joomla.form.field.subform.repeatable-table - Render the subform as table, recommended for multiple mode. Support groupByFieldset. By default render each field as the table column, but if groupByFieldset=true then render each fieldset as the table column.

Learn more about repeatable field in joomla docs if you don't know it

16 - Updated Version Of The CodeMirror Editor

This update brings the latest version of CodeMirror to Joomla! The total supported fonts are now up to 17 with Roboto Mono and Rubik Mono One being added. Additionally you have a better overview thanks to the Highlight function, familiar from various “offline” Editors. The currently selected word is highlighted in the whole document.

17 - Writing Extension Installer Scripts Got Easier

This should make it easier for extension developers to write scripts to handle install/uninstall/update. This provides a base class for extension scripts and allows for updating parameters on extension update, CLI script placements, version checking and removal of outdated files during the extension installation process.

This is a helper for developers using install scripts in their extensions it allows you to:

  • Get and set parameters (method getParams and setParam available for this - you can also get all instances of a module with getInstances to help)
  • Stop users from downgrading versions (set allowDowngrades class var to true)
  • Move CLI scripts into the CLI folder (by putting the path to the cli scripts in the class var array)
  • Check for a minimum PHP and Joomla version (by setting the strings for the minimum versions in the relevant class var)
  • Remove out of date files and folders (by putting the path to the files in the class var array)

Here full code of this installer helper in github

18 - Create Categories On The Fly

It can get frustrating when you create a new item, and you realise that you haven’t created a category yet. Joomla! 3.6 now lets you create a category on the fly for articles, contacts, newsfeeds and banners.

19 - More Extension Details In Systeminfo

Provides a better overview of the enabled/disabled extensions for debugging and more possibilities for support.

20 - Richer Contact Category List Pages With Images

Now make your contact category list page look even more lively with a contact picture. A great way to put together that team page you always wanted to! Joomla! already supported uploading a contact picture and showing it on the details page of the contact. Now the category list page has it too!

21 - Delete And Rebuild Extension Update Sites

Previously, you could only disable an extension update site, now you can delete the update site completely or rebuild the correct update site and path from the XML of the extension.

22 - Implement Global Text Filter To TinyMCE

In former Joomla! versions the Settings from TinyMCE and text filter have been independent so forbidden Elements set in the textfilter could be still used in TinyMCE. Since Joomla! 3.6 TinyMCE uses the Textfilters set in Joomla! Core and offers an optional setting to ignore the own filter.

23 - Improved Joomla! Updates

This update adds an option for reinstalling Joomla’s core files at the click of a button, overwriting any modified file(s) and reverting them back to the default. The option to update Joomla! by uploading the update file has been restored, as it was requested by feedback that the Joomla! Production Leadership Team (PLT) received from the Joomla! community.

24 - Menu Type ACL

ACL in the backend did not exist at the menu level, now we have improved that. Give or block certain user groups access to a specific menu, and therefore also all menu items of that menu.

25 - Multilanguage ToS

When you have a multilingual website it is important that not only your content is available in all languages but also your Terms of Service when people are registering. With Joomla! 3.6 you can display your Terms of Service in multiple languages.

26 - See What's In Your Menus With All Menu Items

The new option to show all items from all menus gives you a quick overview of what is displayed where on your website. It has never been easier to spot duplicated links, missing menu items or just get an overview of every menu on your site.

27 - The Revolution In Joomla! UX Improvements

Joomla! 3.6 contains a lot of UX improvements. Now you can find your modules faster, have tasks done by dropdown, improved user management and so much more. Check all of the UX improvements in the full article.

JoomVideos Component Updated v1.1.9
JoomTestimonials Component Updated v1.1.4

Related Posts

 
Cron Job Starts

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok