Tiki27

Tiki 27.0 LTS was released on July 1st 2024. Release announcement: https://tiki.org/article512-Tiki-27-0-LTS-A-Leap-Forward-for-Collaborative-Software

It is a Long Term Support (LTS) version and will be supported until July 2029 as per the Tiki lifecycle policy.

Usually, LTS versions like this are more about refining features than major changes. However, this release is an exception as the Tiki developers wanted major changes to be part of this LTS, notably Smarty 5, and the new npm based build system. After this release, there will be yet more major changes in Tiki28.

Supported PHP versions: PHP 8.1, 8.2 and 8.3, MariaDB 10.5+, MySQL 8+

You can see the development page at : https://dev.tiki.org/Tiki27 and all the code commits here: https://gitlab.com/tikiwiki/tiki/-/commits/27.x/ once it will be created (in 2024-03).

1. Infrastructure

(alphabetically sorted)

1.1. Error reporting

Errors and warnings are more strictly reported. This can be caused by:

  • A Tiki bug: the bug can be old but the error/warning messages were previously not exposed. It could also be a new bug...
  • Data inconstency. Ex.: A tracker field is deleted but it is still called in a calculation or a Pretty Tracker
  • etc.


See discussion between Victor and Benoit. Also, work has been done to try to avoid that these errors block the process to Rebuild Unified Index.

This increased strictness will facilitate upcoming enhancements (increase performance, etc.)

1.2. PHPUnit

Tiki was upgraded to use version 10 of PHPUnit (the de-facto standard for testing PHP-based software)

PHPUnit 10 is the most significant release in the history of the PHPUnit project (which began 23 years ago).


This required multiple code commits as many updates were required by various dependencies. Here is the last commit: https://gitlab.com/tikiwiki/tiki/-/merge_requests/4643

1.3. Smarty 5

1.4. Tiki 27+ Build System - for VCS (git) installations

 Major change when installing for VCS (git)
With the new Tiki 27+ Build System node.js is now required to run setup.sh and install a new Tiki or update.

See https://dev.tiki.org/The-Tiki-27-plus-Build-System

2. Enhancements

(alphabetically sorted)

2.1. API enhancements

Several enhancements and improvements made to the Tiki API functionality, particularly to support Tiki deployments to provide data and system management for Internet of Things (IoT) networks.

More detail on IoT usage can be seen at the development page https://dev.tiki.org/Internet-of-Things

2.2. Calendars

Major change for calendar event handling in Tiki - CRUD operations of events now go through the built-in caldav server with the help of internal method invocation (not through the webdav protocol to skip authentication phase). This has the desired consequences of event scheduling, iTIP message generation and other active plugin taking care of corresponding functionality when events are created, updated, deleted.

Several major updates to calendar functionality:

  • Recurring events extended to support almost all of supported RFC5545 RRULE definition: https://datatracker.ietf.org/doc/html/rfc5545#section-3.8.5.3. Most obvious one - repeat in X amount of days, weeks, months, years but also other possibilities like monthly repetition every last Friday and similar.
  • Definition and storage of availability blocks per user in caldav user's inbox property storage (implemented in Tiki caldav server). This allows specifying periods of availability when all other time is considered busy. This affects free-busy reports by caldav server and also 'check availability' button in Tiki when creating events.
  • Appointment slots: Availability blocks can be converted to appointment slots when you choose the calendar to store appointments to and the slot duration. Each such availability block has a settings "Schedule" link where you can see available slots in the future, choose a date, click on a slot and create an event with participants (the user owning the appointment slot and yourself). If calendar has anonymous permission to add events, anonymous users can request appointments as well. This page can also be embedded in an external site via iframe with corresponding code provided in the Tiki interface.


MR: https://gitlab.com/tikiwiki/tiki/-/merge_requests/3534

Private calendars: new permission (-+tiki_p_admin_private_calendar+-) and ability to create personal private calendars that will be visible only to the user creating them and calendar admins; make sure all operations and CalDAV support + permissions continue to work in the same way as before with public calendars and new private calendars
https://gitlab.com/tikiwiki/tiki/-/commit/7261fa544d7f433b9fbda5ce4c74f472c1be0ada

2.3. Console

New Console commands:

  • reportcache:clear to clear the user reports cache
  • tracker:convert-attachments to convert tracker attachments (the ones that are global for the tracker) to attachments as a tracker file field type
  • dev:buildwsconfs to check and generate index.php and .htaccess files

2.4. Contacts

Added support for personal and work emails
https://gitlab.com/tikiwiki/tiki/-/merge_requests/4399

2.5. Markdown + TOAST UI

Many bug fixes and enhancements have happened in Tiki27 which resulted in a more user-friendly Markdown editing experience without sacrificing functionality or compatibility with traditional Tiki syntax

  • Enhanced the UX of the text editor when in Markdown mode.
  • Improved UX for Markdown mode and TOAST UI editor across all modes.

https://gitlab.com/tikiwiki/tiki/-/commits/master?search=markdown

2.6. PDF

New permission (-+tiki_p_export_pdf+-) to restrict who can generate a PDF. Useful to remove PDF generation capacity from anonymous users because bots will sometimes abuse this.

2.7. PluginList Sublist

Added facet output to the table template in https://gitlab.com/tikiwiki/tiki/-/merge_requests/4552 for use in PluginList and PluginCustomSearch

2.9. Search index: multi-sort

2.11. URL Fragment format

A preference that provides you with the ability to change anchor format.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/2907

2.12. User mentions

User mentions feature has been improved

2.13. Webmail

Cypht was upgraded from version 1.4.x to 2.0.x which comes with numerous enhancements. See Webmail and https://github.com/cypht-org/cypht/releases/tag/v2.0.0

2.14. WikiPlugin Survey

Several enhancements have been added to Plugin Survey:

    • Display all users associated to a choice and change stats rendering
    • Plugin Survey : Restrict admin users to one vote
    • Add a restriction option to prevent admin users from voting more than once

https://gitlab.com/tikiwiki/tiki/-/merge_requests/3592

2.15. WikiPlugin Tour

The Tour plugin has been updated to use driver.js instead of Bootstrap tour, which has restored its functionality following its disruption in Tiki 25.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/4232

3. Removed