Our new major release, Zenario 8, is now publicly available! This includes several big new features.
The admin toolbar is now responsive, allowing use on mobile devices. Also if you have a small browser window it changes size to be more friendly.
Many standard-definition icons have been replaced by high-res versions for "retina" screens.
Shortcuts to some commonly used buttons have been added on the right of the toolbar.
You can now click on the title of a content item or menu node on the toolbar to change it.
We've added the ability to immediately republish a hidden content item. We've also made a few tweaks to the buttons on the Admin Toolbar to make how to do this more clear.
When you create a new content item and press Save, Zenario will take you to that item's Edit tab. It will automatically add a <h1> pre-populated the content item's title if there is a WYSIWYG editor placed on the layout.
Aliases for content items now support both lower and upper-case characters.
We've added the ability to exclude a content item from the XML site map. There is now support for gated content (a visitor must fill in a form in order to see a gated page or document) and you can use this feature to tell search engines not to index the gated content item.
When duplicating a content item, Zenario now asks you what you wish to do with any plugins from the library that have been placed on the content item. You can either keep the same ones, or create copies.
You can now change a plugin's name whilst editing its settings. If you attempt to change a plugin's name, an option will appear to save a copy of the plugin instead of saving over the existing one.
The drop-down menus for managing slots will now always appear when on the Edit Plugin and Layout tabs of the admin toolbar. (Previously, the drop-downs used to appear conditionally, which could cause some confusion.)
We've tweaked which options appear in the drop-down menus and when, to make things easier to find.
We've added shortcut buttons next to each plugin in a nest that lets you quickly edit the options for that plugin.
When a user fills in a Zenario Form and makes an incorrect entry, the relevant field(s) are now highlighted, so the user can more easily amend his input.
The admin permissions for managing layouts, users and contacts have been reorganized to be a little more friendly to set up.
In this version we've dropped support for the older, slower, "Tribiq" framework system. All of our plugin frameworks have been rewritten to use Twig.
Twig is more familiar to web developers, and offers several features that the old "Tribiq" framework system did not, including the ability to cache frameworks for a faster run-time.
All core libraries in Zenario now use Composer's autoloader. This means that libraries can be selectively loaded for smaller memory footprint.
Extranet user password can no longer be stored in plain-text. If you were still using this plain-text passwords, any such passwords will be automatically encrypted and hashed when you next apply database updates.
We've removed the Password Reminder module. If you were still using this plugin on your site, you should install the Password Reset module instead.
We've added a warning on the diagnostics page if you're using the Extranet Login plugin but are not using SSL.
If you wish to download a backup of the site, you must now re-enter your administrator password before you can download the backup.
Zenario 8 includes some new features that designers can take advantage of:
In Zenario 8 there are now new CSS classes that you can add to your HTML to automatically set elements to the same height, for example:
<div class="setmychildren">
<ul>
<li class="tothesameheight"></li>
<li class="tothesameheight"></li>
</ul>
</div>
You can also set this differently on a responsive site, e.g.:
<div class="setmychildren">
<ul>
<li class="tothesameheight"></li>
<li class="tothesameheight ondesktop"></li>
<li class="tothesameheight onmobile"></li>
</ul>
</div>
Grid Maker now has two custom break points, that designers can use when styling their plugins. This avoids a designer having to hardcode the values of custom break points in their CSS code.
You can use them as follows:
body.overBP1 div.my_class {
/* Some CSS if wider than breakpoint 1 */
}
body.underBP1 div.my_class {
/* Some CSS if smaller than breakpoint 1 */
}
body.overBP2 div.my_class {
/* Some CSS if wider than breakpoint 2 */
}
body.underBP2 div.my_class {
/* Some CSS if smaller than breakpoint 2 */
}
Zenario now allows designers to add custom logic for devices with (or without) touch screens.
You can add different styles in your CSS code as follows:
body.touch .my_class {
/* Rules for touch screens */
}
body.no_touching .my_class {
/* Rules for devices without touch screens */
}
There is also a new JavaScript function, zenario.isTouchScreen(), that you can call to check this.
You can use the callScript function to call any JavaScript library function from your Twig Framework.
For example, if your module has the following function definition in it's plugin.js file:
my_module.setInfo = function(selector, title, message) {
$(selector).tooltip({
items: "*",
content:
'<h2>' + zenario.htmlspecialchars(title) + '</h2>'
+ '<p>' + zenario.htmlspecialchars(message) + '</p>'
});
}
Then you can call this from your Twig Framework:
<a id="info_{{containerId}}">info</a>
{% set title = 'Information' | trans %}
{% set message = 'Here is some information' | trans %}
{% do this.callScript('my_module', 'setInfo', '#info_' ~ containerId, title, message) %}
If your Twig framework needs a JavaScript library to function, you can use the requireJsLib() function to automatically include the library if it's not already on the page, e.g.:
{% do this.requireJsLib('zenario/libs/unmanaged/mit/jquery/jquery-ui.button.min.js') %}
{% do this.requireJsLib('zenario/libs/unmanaged/mit/jquery/jquery-ui.spinner.min.js') %}
If you are using a jQuery library, then you , and use the new jQuery() function to apply it to elements in your framework, e.g.:
<input type="text" class="example" value="10" />
<input type="text" class="example" value="20" />
{% do this.jQuery('#' ~ containerId ~ ' input.example', 'spinner', {step: 10}) %}
Version 8 of Zenario includes some compatibility-breaking changes from version 7:
All support for the old "Tribiq" framework system has been removed.
Where you have used one of these frameworks, you will need to rewrite it as a Twig framework.
Where possible, we now use either the bower or composer package managers to manage our third libraries.
As a result, we've reorganized our libraries/ directory.
If you linked to anything in the libraries/ directory, you may need to adjust your links as the paths have changed.
As all of our core library of functions now use composer, any PHP code you've written that calls them will need to be rewritten to adjust to their new names.
A tool has been added at zenar.io/php-functions-zenario-8 that allows you to search for the old names of the functions to find out what they have been renamed to.
Many of our core library functions can now be called from inside Twig frameworks.
The documentation at zenar.io/php-functions-zenario-8 will tell you which ones, and how to call them.