Tiki27

Tiki 27.0 LTS will be released in May or June 2024.

It is a Long Term Support (LTS) version and will be supported until May or June 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 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

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. 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.2. Smarty 5

1.3. Tiki 27 plus Build System - VCS (git) installation

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

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

2. Enhancement

(alphabetically sorted)

2.1. 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 affect 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.2. 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.3. Contacts

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

2.4. Markdown + TOAST UI

Many bug fixes and enhancement 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.5. 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.7. Search index: multi-sort

2.9. URL Fragment format

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

2.10. User mentions

User mentions feature has been improved

2.11. Webmail

Cypht is upgraded from version 1.4.x to 2.0.x which comes with numerous enhancements. See Webmail.
https://github.com/cypht-org/cypht/commits/master/

2.12. 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.13. 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