Tiki29 | |
Tiki 29.0 will be released in September 2025. It is a Standard Term Support (STS) version and will be supported until Tiki 30.1 is released as per the Tiki lifecycle policy You can see the development page at : https://dev.tiki.org/Tiki29 and all the code commits here: https://gitlab.com/tikiwiki/tiki/-/commits/29.x/ If you use the WYSIWYG, please do extensive testing before you upgrade because https://github.com/summernote/summernote has replaced https://github.com/ckeditor/ckeditor4 (which is no longer Open Source) The Cookie Consent Management for User Privacy Compliance has done undergone an overhaul so please also do extensive testing here. |
1. Infrastructure | |
(alphabetically sorted) |
1.1. Avatar Generation with DiceBear | |
Adds automatic avatar generation using DiceBear SVG-based styles when users have no custom avatar uploaded.
|
1.2. Menus: “Add as a Module” Action | |
Adds a new action in Admin Menus to convert a menu directly into a module with prefilled assignment, streamlining navigation setup and reducing context switching.
|
1.3. Migration Away from composer.tiki.org | |
|
1.4. Forum Email Retrieval switched from POP3 to IMAP | |
Forum mail-in now uses IMAP (with TLS) instead of the legacy POP3 protocol for retrieving posts from mailboxes. This improves security, works with modern email providers, and ensures encrypted access. POP3 support has been removed. Admins should review mailbox retention settings, as IMAP does not delete messages by default. |
1.5. Swiper | |
The Swiper package has been upgraded from version 3 to 11 and its installation has been migrated to npm modules. |
1.6. Symfony Mailer (Migration from Laminas Mail) | |
The abandoned laminas/mail and laminas/mime packages have been replaced with the modern and actively maintained symfony/mailer ecosystem. This major migration improves long-term stability, modernizes email sending in Tiki, and introduces better compatibility with transactional email providers. |
1.7. Tiki 27+ Build System | |
|
1.8. UI-predicate | |
UI-predicate library used in Tiki Tracker Rules to Vue 3 has been upgraded, completing the migration of all Vue.js components within Tiki to Vue 3. |
1.9. Composer / Dependency Configuration | |
|
1.10. Dependency Upgrades | |
As part of a broader Composer cleanup and modernization effort, several third-party libraries have been upgraded to ensure compatibility with modern PHP versions, reduce technical debt, and improve security.|
|
2. Enhancements | |
(alphabetically sorted) |
2.1. Attribute Controller | |
Extended the Attribute Controller with new actions to set, get, and search attributes more effectively, including support for comments. |
2.2. "Back to Top" button | |
adds a floating “Back to Top” button using an Element Plus Vue component, which appears when users scroll down. Optionally customizable tooltip via the title attribute. Assignable via the Admin Modules panel. |
2.3. Calculations Improvements | |
The `if` function in Mathematical Calculation Tracker Fields now supports `elseif` and `else`, enabling clearer and more maintainable formulas without excessive nesting. |
2.4. Calendar | |
|
2.5. Changes Wizard | |
In Tiki28, the Changes Wizard was modified to be hidden on new installations while remaining visible during upgrades. However, it's been found out that this change would lead to issues, so in Tiki 29, the Changes Wizard behavior has been reverted to its original state — meaning it will once again appear for both new installations and upgrades. |
2.6. Console | |
New Console commands: |
2.6.1. Administration Enhancements | |
Adds a new command |
2.6.2. Calendar Migration from tiki-minical | |
A new console command —
|
2.6.3. Create Subgalleries and Migrate Files Field Content | |
A new CLI command |
2.6.4. Database Engine Convert | |
A new command — |
2.7. Cookie Consent Management for User Privacy Compliance | |
Tiki now includes a built-in cookie consent system that aligns with privacy regulations such as GDPR.
|
2.8. Directory Upload | |
Enhance the Tiki uploader interface, used in File Tracker fields, now supports drag-and-drop of entire folders or directories onto the upload area. When a directory is dropped, Tiki recursively uploads all files it contains and automatically creates the corresponding file gallery hierarchy. |
2.9. Element Plus | |
|
2.9.1. Element Plus Message Component | |
This update replaces the legacy jQuery $.notify notification system with the modern and visually consistent Element Plus ElMessage component across the Tiki interface. |
2.9.2. Element Plus Upload Component | |
blueimp/jQuery-File-Upload has been replaced with the modern Element Plus Upload component for a more efficient and user-friendly file upload experience. |
2.10. Expand/Collapse All Content with One Click | |
A new preference to expand or collapse all collapsible sections on a page with a single click has been added. Previously, content had to be manually toggled section by section, making navigation cumbersome—especially when searching for specific information. |
2.10.1. File Gallery Per Item | |
A new option has been added to the Files tracker field type to allow automatic creation of a dedicated File Gallery per tracker item.
|
2.11. Headless Chrome Integration | |
PhantomJS and CasperJS have been replaced with the Chrome-php library for headless browsing, improving performance, security, and maintainability while keeping CasperJS as a fallback. A new preference — Headless Browser Integration Type — allows switching between Chrome-php (default) and CasperJS. Key features like Wiki Diagrams export, search snapshots, and ChartJS export have been updated to use Chrome-php. Additionally, a configurable Chrome binary path has been introduced, and the implementation has been refactored for better maintainability. |
2.12. High Efficiency Image File Format | |
Tiki now supports High Efficiency Image Format (HEIF/HEIC) by automatically converting HEIC files to JPEG. This allows users to upload HEIC images from modern devices, ensuring compatibility with Tiki's existing image processing system. |
2.13. Hold-to-Reveal Password Fields | |
A new feature has been added to enhance password input fields with a hold-to-reveal mechanism. This UX-friendly enhancement introduces a subtle icon next to password fields (only when a value is entered), allowing users to temporarily reveal their password by pressing and holding the icon—ideal for preventing accidental exposure, especially during presentations or screen sharing. |
2.14. Lazy Loading for userSelector & itemLink Tracker Fields | |
A new lazyload option has been added to the userSelector and itemLink tracker fields. When enabled, the list of options is loaded dynamically based on user input—greatly improving performance for fields with large datasets (e.g., 10,000+ items). |
2.15. Login Module (login_box) | |
|
2.16. Logging | |
|
2.17. Maps – configurable marker popups in SearchLayer | |
Now you can specify which fields appear in marker popups and define custom HTML popup templates using field tags. Provides cleaner, context-specific displays when clicking on map markers. |
2.18. Media Recorder Preview and Close Button | |
The media recording tool has been improved to provide a preview before upload option. This allows users to review their recordings before submitting them, helping avoid accidental uploads and enhancing usability. A close button was also added for better interface control. |
2.19. Meta Tags | |
Pages blocked in robots.txt now include a noindex meta tag, improving alignment with modern SEO practices.
|
2.20. Minutes hold warning message | |
A new preference checks when the scheduler last ran and displays a visual warning if it hasn’t run recently. |
2.21. Password History Management | |
Tiki now includes a password history management feature to enhance security by determining the number of password resets associated with a user account before the password can be reused. |
2.22. PluginAnimeOnScroll | |
Animate on Scroll Using anime.js
|
2.23. PluginConvene | |
Default Users, Groups, and Dates Pre-Filling.
|
2.24. PluginFancyTable | |
Custom class option to PluginFancyTable, allowing users to apply their own CSS classes for better styling flexibility. This enhancement ensures that tables can be customized to match specific design requirements. |
2.25. PluginListExecute | |
PluginListExecute received various fixes and enhancements including: |
2.25.1. Partial Reload Stability Improvements | |
This update refines how PluginListExecute handles partial reloads to make it more stable and reliable |
2.26. PluginTrackerFilter | |
Add truncateTextLength Parameter:
|
2.26.1. Correctly Mark Plugins After Parser Option Changes | |
This fix improves stability when using ListExecute inside templates or dynamically parsed content. |
2.26.2. Warnings for Missing fallbackBaseUrl in Console and Scheduler | |
To help prevent incorrect URL generation in scheduled or console-executed tasks, a warning is now displayed if fallbackBaseUrl is not set:
|
2.27. PluginListPages | |
PluginListPages now includes a |
2.28. PluginMediaPlayer | |
The PluginMediaPlayer now supports rendering text files directly within the media player interface. This expands the plugin’s functionality beyond audio and video playback, enabling users to view text-based content. |
2.29. PluginMermaid | |
A new plugin PluginMermaid has been added to support rendering diagrams using Mermaid syntax directly within Tiki. This enables users to securely visualize structured diagrams (like ER diagrams) without needing to rely on external tools like mermaid.live, making it ideal for working with confidential data. |
2.30. PluginOEmbed | |
Tiki 29 introduces OEmbed support, allowing seamless integration of videos and media from platforms like PeerTube, Vimeo, and YouTube. This enables users to embed content effortlessly using the OEmbed protocol without manually copying iframe embed codes.
|
2.31. PluginRSS | |
PluginRSS now supports direct URL configuration in wiki pages — no admin permissions required!
This allows more flexible, user-friendly integration of dynamic RSS content |
2.32. PluginTracker | |
PluginTracker has been improved to allow making a previously non-mandatory field mandatory based on evolving business needs. This update introduces the requiredFields attribute, ensuring that fields can be enforced dynamically during different stages of form submission. |
2.33. PluginVue | |
Tiki has upgraded the PluginVue implementation to support Vue.js 3 and Single File Components (SFCs). This update allows users to leverage the latest Vue.js features while maintaining seamless integration with Tiki. |
2.34. Preference Warning System | |
Introduced a new mechanism to warn users when a preference is set to a value that causes conflicts.
|
2.35. Search & Indexing Improvements | |
|
2.36. Show rules for password creation | |
Tiki now provides users with a clear view of password creation rules when they set or change their passwords. This ensures that users can easily comply with security requirements, reducing frustration and failed attempts. |
2.37. Switch User | |
Administrators can now seamlessly switch between multiple users without needing to return to their admin account each time. |
2.38. Tiki Share | |
|
2.39. Trackers | |
Several bug fixes and enhancements have been added to Trackers such as: |
2.39.1. Barcode/QR Code field type | |
Adds a tracker field for scanning and generating 1D and 2D barcodes (including QR codes), useful for logistics, inventory, attendance, and similar systems. |
2.39.2. Tracker Fields: Prevent Empty or Duplicate Permanent Names Across Trackers | |
Improves validation for tracker fields by preventing empty permanent names and showing a warning when a permanent name is already used in another tracker. This helps maintain consistency and avoid conflicts across trackers. |
2.39.3. Tracker Field: Support for Email Folders per Item | |
The EmailFolder tracker field now allows setting email folders at the item level rather than globally.
|
2.39.4. Trackers – drag‑and‑drop file rename | |
When uploading via drag‑and‑drop into a Files Tracker field, users can now rename the file before selecting it—improving usability and file organization. |
2.39.5. Tracker Usability Improvements | |
|
2.39.6. Tracker Inline Editing: Per-Tracker Configuration | |
Adds an “Allow Inline Editing” setting in individual tracker admin panels, enabling or disabling inline editing per tracker.
|
2.39.7. Tracker Audio Comments | |
Audio recording features have been enhanced to improve usability and integration within tracker items.
|
2.39.8. Usability and Internationalization | |
Better output for simple list and table templates. The actions are now translatable + new param |
2.40. Userlist Search Formatter | |
A new userlist search formatter has been introduced to better handle UserSelector fields that store real names separated by a custom string. This formatter automatically splits the values into a proper array of users, enabling cleaner display and easier filtering in search results. |
2.40.1. Webmail: Auto-Suggest Moving Sent Emails to Tracker Items | |
Adds smart integration between Cypht Webmail and Tracker items by auto-suggesting relevant tracker items when sending emails.
|
2.41. WebAuthn Authentication Support | |
Tiki29 introduces WebAuthn as a modern and secure authentication method.
|
2.42. Wiki Page “Duplicate” Action | |
Adds a “Duplicate” option to the “More” dropdown in individual wiki pages.
|
2.43. wiki_page_actions_groups | |
A new admin setting, wiki_page_actions_groups, allows you to control the visibility of the Wiki Page Actions button by user group. This gives more flexibility in managing the editing interface—showing the button only to relevant users and keeping the UI clean for others. |
2.44. WikiPlugins | |
|
2.45. WYSIWYG Editor | |
Tiki29 introduces Summernote as the new WYSIWYG editor in Tiki, replacing CKEditor 4. Summernote offers a Bootstrap-based, themable editor with a customizable toolbar, rich formatting tools, and functional CodeMirror integration.
Additionally, paste behavior in the HTML editor has been improved: styled content (e.g., bold, colored, or formatted text) now retains its formatting when converted into Tiki page, minimizing manual cleanup and improving compatibility with content pasted from word processors or web pages. |
3. Removals | |
3.1. Accounting module | |
The legacy Tiki Accounting feature and related code, templates, preferences, and permissions have been fully removed. It was unmaintained, underused, and relied on obsolete dependencies. Existing data is preserved in the database and can be exported manually. Users are encouraged to use Dolibarr, which is actively maintained and part of the WikiSuite ecosystem. |
3.2. ADOdb – Migrated Fully to PDO | |
Completely removes ADOdb support in favor of PHP PDO for all database interactions.
|
3.3. composer.tiki.org and legacy vendor packages. | |
3.4. Edit Templates and CSS Editing Preferences | |
Removes preferences feature_view_tpl, feature_edit_templates, and feature_editcss, which allowed viewing/editing templates and CSS via the web UI.
|
3.5. Expiration Date article | |
This was part of the article features and practically it's not needed |
3.6. jQuery UI | |
As part of deprecating jQuery UI in Tiki, this change removes unused references to feature_jquery_ui. jQuery UI will be retained only where it's still required (e.g., elFinder), but all other dependencies are being phased out. |
3.6.1. feature_jquery_ui | |
3.6.2. blueimp/jQuery-File-Upload | |
3.6.3. jquery/photoswipe | |
3.6.4. jQuery Colorbox | |
Replaced with GLightbox |
3.7. Laminas | |
3.7.1. laminas/mail and laminas/mime | |
3.7.2. Laminas Log | |
Logging migrated to Monolog |
3.8. nestedSortable | |
Replaced with sortablejs |
3.9. Pear/db Dependency | |
Removes legacy PHP package pear/db from Tiki’s co |
3.10. POP3 | |
Forum Email Retrieval now uses IMAP |
3.11. Rangy library | |
3.12. Rubix/extras package | |
The "rubix/extras" repository has been archived (as of March 27, 2025) and was not used anywhere in Tiki. All its valuable features are now consolidated into RubixML, so the package has been removed. |
3.13. sam152/javascript-equal-height-responsive-rows | |
3.14. Vue.js 2 | |
|