This page summarizes all the changes you may find when you upgrade from Tiki15 'Long Term Support' (LTS) to Tiki18 LTS. You may also read the partial changes in each version: Tiki16, Tiki17 & Tiki18.
Tiki 18 was released in January 2018.
As it is a Long Term Support (LTS) version, it will be supported for 5 years.
New PHP minimum requirement for Tiki 16-17-18 is PHP 5.6. Tiki 18 also supports PHP 7.0 and is 99.9% ok for PHP 7.1/7.2 (please report any issues)
Tiki Annotations have been added and are powered by annotatorjs.org 1.x which is becoming Apache Annotator in the future. This is an optional replacement in Tiki18 for Inline Comments with a much nicer interface, and with more potential for expanding the feature set.
1.4. Browser Automation
Web Scraping with PhantomJS and CasperJS: PhantomJS is a headless WebKit with JavaScript API, and therefore, it is an optimal solution for fast headless testing, site scraping, pages capture, SVG renderer, network monitoring and many other use cases. CasperJS is a navigation scripting & testing utility for PhantomJS among others.
1.5.1. Self-subscribe to comments in trackers/articles/wiki pages/blog posts
The option to self-subscribe to comments to receive email notifications about replies has been extended to trackers, articles, wiki pages and blog posts. (r59950 & r59951)
1.5.2. E-mail notification of replies to non-registered users
Since Tiki 16.2, non-registered users (also known as "Anonymous" users in Tiki) that provided their emails in the corresponding field next to their comments can get notification emails of the replies to their comments. (r59950 & r59951)
You can install external packages in Tiki, with different copyright license or made optional since they are too big and maybe not intended for all use cases, through a new Control Panel in Tiki:
Now possible to trigger Web Cron from a URL or JavaScript.
Click to expand
1.8.2. Scheduler (cron jobs)
An internal scheduler is added to Tiki, so that only one cron job needs to be defined in the system crontab (or Windows Scheduled Tasks), and all actions to be run at scheduled times can then be defined from within the Tiki admin panel.
Unable to load the jQuery Sortable Tables feature.
1.9.2. CSS-only Masonry
Users can create simple CSS-only masonry grid layouts now for their content like pictures from File Gallery or "card-like" items results from Tracker data using LIST - the basic syntax is {DIV(class=masonry)}... list of direct child elements here ...{DIV}
Example:
Copy to clipboard
{DIV(class=masonry nogaps)}{img type="src" src="display1317" link="display1317" width="800" desc="Click to expand" rel="box[g]" imalign="center" styleimage="border" align="center" title="CSS-only Masonry Example from Tracker Data"}{img src=preview12}{img src=preview13}{DIV}
This will show previews of images from File Gallery in the masonry grid with no gaps between them.
And the following code would display items from Tracker 7 in Bootstrap styled default panels (feature logo and name with link in the header, plus the feature description in the body, for the items with logo provided - "NOT the empty ones") in the masonry grid:
The full URL to the Tiki base URL including protocol, domain and path (example: https://example.com/tiki/), used when the current URL can not be determined, example, when executing from the command line.')
1.13. Feedback system revamp
Thanks to lindon for all the hard work, more here Feedback
H5P allows to create, share and reuse interactive HTML5 content in your browser.
Tiki17 comes with the ability to display H5P objects, as well as an editor to create or modify them.
H5P was upgraded in Tiki18 from 0.12 to 0.16 (which is a major upgrade with lots of new features, and a database structure upgrade)
The login box in popup mode can now use a custom menu by using the menu_id parameter (mainly r64388)
1.23. Modern Favicons
Tiki now handles modern favicons for Android, iOS, Safari, Chrome and FireFox. Bookmarking, quick navigation screens and desktop links to tiki sites can now be displayed with handsome buttons that match the flavor of the device being used. Favicons are also now handled via tiki themes and can be overridden by the user and be included as part of a custom theme.
This feature checks a password against a list of the known most commonly used passwords in other places. It's a list that hackers use to try and brute force websites like Tiki.
It's estimated that something like 40% of all passwords used sit within the top 100 passwords. (estimates vary, but that's a reference number in some scenarios).
The benefits of this feature is preventing people from using passwords that are on hackers brute force lists.
1.30. Preferences in Control Panels: Slider to display Advanced
In Tiki16, and backported to Tiki15.3, a slider has been introduced to allow showing the advanced preferences in the Control Panels more easily. The funnel is shown only when the slider has been moved to show advanced preferences. If you want your preference to be permanent, you need to click as usual on the button "Set as my default":
A new option 'include-files' has been added to Export Profiles from command line, so that Files in the FileGallery can also get exported files (instead of only allow url references). In addition, it also allows local file import.
1.32.2. Profile Export: tracker items
A new option 'tracker-item' has been added to Export Profiles from command line so that tracker items can be also included in the exported local profile.
Format positive integers through smarty, similar to to that of the CSS list-stlye-type. Supported values include: decimal-leading-zero, lower-alpha, upper-alpham, lower-greek, upper-greek, lower-roman, upper-roman, hebrew, georgian, footnote, disc, circle, square, none.
Trackers had the ability to be filled in steps through multiple wiki pages, but they currently also have the chance to have the changes of all those pages committed only in the last step. This means that, before this Tiki version, each step (implemented manually with wiki pages and custom plugin tracker calls) was inserting or updating data to the tracker item.
1.38.3. Field conversion possible for certain fields
Since Tiki18, it's now possible to convert certain tracker fields:
dropdown, dropdown with other, radio buttons, email, text, url TO dropdown, dropdown with other, radio buttons, multiselect, email, text, text area, url
multiselect TO multiselect, email, text, text area, url
datetime and jscalendar TO each other
autoincrement, currency and numeric TO dropdown, dropdown with other, radio buttons, multiselect, text, text area, numeric, auto increment, currency
Location Tracker Field: Added address lookup options from other fields in the same tracker.
1.38.6. Field Item Link
Item link: Added the ability to display results in a table, and to select items from a list with checkboxes in order to have a Mathematical Calculation Tracker Field process some math out of some numeric fields provided in the linked items.
Since Tiki 16.2, new options have been added to tracker field "item link":
that tracker field can display items from the remote tracker which match the value of the common field between the two tracker plus those with a wildcard (asterisk, *) in that field.
An Update button is shown then below the table, which will proceed as follows:
all selected wildcard items are cloned and become linked items
all selected normal items stay the same
all unselected normal items are deleted
This allows users to make some selections, update, then edit as necessary. Cloned items are safe to edit (they no longer edit the wildcard item but the cloned one), and then save the whole form.
The Update button makes sure this works for new items when we still don't have the itemId to clone to, etc.
In addition, you can get sums of values of the linked tracker items in a mathematical calculation field in the same source tracker. See an example in the profile Work_Custom_Pricing
Enhanced. Since Tiki16.2, a new option in tracker field StaticText allows to use "pretty tracker" syntax in them to enable values from other fields in that tracker to be displayed per item.
It currently works with:
fieldId (e.g. {$f_42}), or
permName (e.g. {$f_exampleField},
plugin arguments (e.g. {img fileId="{$f_42}"}).
As of Tiki 16.2, it only gets id's for Categories and ItemLink fields, but it could be extended later.
Since Tiki 16.2, user selector tracker field alows selecting multiple users, and that selection can be on a full list of site users, of filterable by groups of users:
This is also useful for notifications to user creators/owners of a tracker item, to handle permissions per item when no full permissions are granted in the whole tracker level but only to the items that the user is set as creator/owner of the item.
Inaddition, since Tiki17, several users can be marked as ItemOwner to drive permissions
Added the ability to mark UserSelector tracker fields as ItemOwner, so they drive the permissions rather than the first ordered auto-assign field.
Since Tiki 16.2, the core tiki permission system has been extended to allow trackeritems inherit object permissions from parent trackers.
The side effect is that permission levels are now composed allowing for greater flexibility, i.e. object permissions are complemented with category permissions and then with global permissions, which in fact has been the expected behavior, but it was not always enforced in edge-case-usages of trackers.
1.38.11. Tracker field permissions
Since Tiki 16.2, a new case has been added: admin_editable_after: non-admins can insert but not update and still are able to see the field. Administrators can edit that field.
You can set a prefix in each tracker configuration to get prepended to the Permanent Names automatically generated for its tracker fields. This helps the process to have all tracker fields have consistant names with a common prefix corresponding to the tracker where they belong to, and facilitates using the right field in advanced setups with PluginList, PluginListExecute, PluginPivotTable, PluginTrackerCalendar, PluginMap, etc.
In Tiki 17, the new css param was added to Raw page display to allow usage of a wiki page as a CSS file download resource with MIME type text/css. This can be useful if you have more sub-sites sharing the same CSS customizations. You do not need to copy-paste them (and keep track of changes) into the Custom CSS anymore. You can just put a stylesheet @import there or link to the one page using Look & Feel → Customization → Custom HTML <head> Content on all of them. When the page changes it will update on all the sites sharing the CSS code. It has also benefits of keeping the history of changes on that CSS code, locking or removing the edit permissions on that page and collaborative editing possibility. See this page as an example.
Since Tiki 18, an HTTP redirection can be set when renaming a page and when removing a duplicate page. Previously, any time a Wiki page was renamed or deleted, access to existing addresses (URL-s) via bookmarks or search engines would fail. To prevent that, it’s now possible to indicate a new page, to which an SEO-friendly, automatic redirect from the old page name is created.
Click to expand
1.43. Wiki Plugins
New or improved plugins, as well as generic improvements to many of them at once:
1.43.1. Filter UI in any plugin using unified search index
Since Tiki 16.2, any plugin using unified index search formatter and wikibuilder (aka filter, output, display, format, etc. wiki syntax, such as PluginList, PluginPivottable, etc) now accepts {filter field=... editable=...} syntax to allow user enter a search value instead of hard-coding it. This means a trackerfilter-like functionality for unified index-based plugins.
You can see this feature in action if you apply profile Bug_Tracker_16
Click to expand
1.43.2. PluginArchiveBuilder
Enhanced plugin. Since Tiki 16.2, it can work with files in file galleries also; i.e. it can collect all files, from the file gallery, on a tracker item and store them in folders.
New wiki plugin to allow using "CasperJS" in Tiki, which is a navigation scripting & testing utility for PhantomJS and SlimerJS (still experimental). It eases the process of defining a full navigation scenario and provides useful high-level functions, methods & syntactic sugar for doing common tasks.
New wiki plugin to create a Bootstrap responsive grid (see https://getbootstrap.com/examples/grid/) in Tiki's wiki text areas. That is, rows and columns of text, images, etc. can be created that will be arranged horizontally in wide screens but will respond dynamically in smaller screens so that good visibility of content is maintained.
This is a modern, "best practices" alternative to using the Split plugin, which creates a table for content layout, a deprecated method.
New wiki plugin to create, share and reuse interactive html5 content in your browser. Tiki17 comes with the ability to display H5P objects, as well as an editor to create or modify them.
New param tohead was added to the HTML wiki-plugin to allow insertion of the HTML tags to the HTML <head> instead of rendering them in the content of the page.
Enhanced plugin. Added responsive-embed option by default. See PluginIframe.
Related commits: 59375
1.43.12. Plugin Img
Enhanced plugin. A new option called 'retina' was added. If you have a fixed width image, it will pull up a 2x version of the image for users with retina display (and 1x for users who don't). Note: source needs to be at least 2x the size of the width of the image being displayed.
Enhanced plugin. Added format=categorylist in the subplugin display, to display category names instead of category id's. It can have an option parameter: separator=" "; otherwise, the default separator is comma (,).
See PluginList display control block
LIST can now return only a given set of values, which is useful to filter the results or return results in a specific order.
Enhanced plugin. Added OUTPUT option, same syntax as LIST - OUTPUT command, which also allows for context filtering and inline edition of records before mass execution of actions on groups of items.
Added Calculations calculations as ListExecute actions
Since Tiki 16.2, two new actions have been added: filegal_rename and filegal_image_overlay, and it can currently also be run from console.php.
The EmailAction gets extended to be able to send pdf versions of wiki pages (new option pdf_page_attachment)
Beginnings of a Graphical User Interface for plugin list. Experimental so far and needs to be enabled on admin/textarea/plugins. A start of a documentation page can be found at PluginList - Graphical User Interface
1.43.16. Plugin MetaTag
New plugin. It allows to insert one or more custom <meta> tags in the HTML <head> of the page where the plugin is present.
This is useful when you want to provide custom meta tags per page, e.g. for sharing with a specific image on Social Networks.
As the meta tags are invisible and could be misused to provide false information about the shared page and also the body (data) of the plugin can be provided as raw HTML it always requires plugin approval by trusted site Admin/Editor on each edit.
New plugin, introduced in Tiki 16.2. It allows creating summary tables or charts using tracker data through the unified search index to produce the pivottable report of your choice. Results for the variables of interest (tracker fields, as well as creation_date, modification_date and tracker_status of the items) are aggregated by some criteria selected by the user.
Since Tiki18, new renderers were added to allow displaying subtotal sums for rows in the table, through the addition of subtotal.js to the plugin.
Enhanced plugin. Added: mindepth parameter to display the structure sub-items from any level and not only from top level.
Added: Alphabetic sorting
See toc
1.43.23. PluginTracker
Enhanced plugin. Added showcomments option, enabled by default for backwards-compatibility. If you set it to "n", then the column about comments count and/or last author wil be hidden even if it is enabled in the tracker level.
Additionally, in 16.3, email recipients option allows to set fieldId of a UserSelector (including multiple users selected) and GroupSelector.
1.44.1. Multilevel style numbering for ordered lists
New preference "Multilevel style numbering for ordered lists" was added to "Editing & Plugins" control panel which allows to have Multilevel style numbering on ordered lists set globally (disabled by default).
Uploading of custom translations has been changed to use JSON formatted text files, also options are added to manage different processing types of uploaded files (eg: merge with existing, replace, etc)
It is also possible to download translations as custom.php and custom.json from the user interface.
1.47. Webservices
Numerous fixes and updates including: support for JSON "post body" content type, direct indexing of webservices so the results available in list plugins etc (using the index and mindex output type of webservice "template"), moved management of web services to tiki-admin_webservices.php. General reliability and performance improvements.
1.48. Upgrading
New PHP minimum requirement for Tiki 16.x is PHP 5.6
Note for SVN users: due to several changes in the file structure of Tiki for version 17+ you may find these notes helpful when doing svn switch.
If you are upgrading from Elasticsearch 2 to 5: Since ES automatically updates 2.x index to 5.x first time it starts - you can see some errors then. First time it rebuilds index might also show errors due to the automatic upgrade problems. However, once it builds the index on 5.x, then further rebuilds must not have errors. So, 2 index rebuilds after upgrade is the safest path to go.
1.48.2. Downgrades
Note that if you use a Tiki 16+ database on an older version of Tiki you will probably not be able to log in and will get an error message saying Unknown password format.
1.48.3. Backwards-incompatible changes
1.48.3.1. Favicons
Favicons have undergone a fundamental change in the way they are handled. When upgrading, you will need to move your favicons into /themes/yourtheme/favicons. Renaming your favicons may also be necessary. Browse to /themes/base_files/favicons to see the file names you may override with custom favicons. Using a custom named favicon-16x16.png will prevent any of the tiki favicons from displaying on your website, so upgrades should be easy. You may also choose to upgrade your favicons. Generating new modern favicons takes 5 minutes at http://realfavicongenerator.net
1.48.3.2. File Whitelisting
Tiki now uses file whitelisting as an extra security precaution. This will affect Tiki subdirectories. If you have added additional files into the Tiki directory structure, you may not be able to browse to them any longer.
Whitelisting is based on file types, so adding a similarly named file should be ok. e.g. files used for themes won't be affected in the themes directory etc.
Files in the tiki root directory will not be affected.
Any custom subdirectory placed within the home directory will not be affected.
Files uploaded to the file gallery will not be affected.
Only browser access to these files will be affected, so PHP access to these files remains unchanged.
We recommend that you place all your theme related files in your theme folder, and any additional files within a custom directory placed in the web root.
You may whitelist more files by modifying the htaccess file (or equivalent server file) located in the directory of the files you need to whitelist.
1.48.3.3. Image Redirects from Tiki 9 Disabled
For the release of Tiki 9, many of locations of images in tiki changed. We have until now redirected those images from the old location to the new location. We have disabled those redirects in Tiki 17. If you have a theme or otherwise use these pre-tiki 9 image locations, they will stop working. You are urged to update the image locations within your code. Alternatively, you may re-enable the image redirection by uncommenting them from your htaccess file.
1.48.3.4. Plugin TopFriends removed
PluginTopFriends was removed (because it had been broken for a while, and not worth fixing).
1.48.3.6. Webservices tracker field with ElasticSearch
A minor change was added to Webservices Field with ElasticSearch:
For advanced use with custom smarty templates
The fieldname_json data is now indexed differently for elastic search, because storing json as plain text (with some values) prevents the item from being stored in the index.
N.B. This will require changes to custom templates using these values, i.e. from
{$jsondata = $row.tracker_field_webserviceField_json|json_decode:true} to
{$jsondata = $row.tracker_field_webserviceField_json|json_encode|json_decode:true} (the extra encode then decode is to change from objects to associative arrays for use in smarty)
We updated our YAML parsing library and the parser is now more strict so you need to be aware of some formerly valid invalid syntax which is not accepted as valid anymore with the new library:
if you have foo:bar as your key: value pair in your Profiles you need to update the code to contain a space after the colon otherwise loading of the profile will fail (most of the Tiki official profiles fixed now), e.g. foo: bar or allow: [] will be correct
if you have some tracker item values defined as empty (null) in your profile, instead of letting a position of the array empty, you need to add null explicitly (or ~ should work also as null).
Example of a profile affected by this issue which has been fixed here.
1.48.4. Known Issues
1.48.4.1. H5P not compatible with "Inline comments (annotations)"
For 17.0 at least H5P plugin content will not be shown properly if the feature_inline_comments pref is enabled. This will be resolved in future releases (by upgrading the annotator.js library)