Changelog
SynaptikCMS Changelog: all notable version changes are documented on this page.
[1.3.1] — 2026-07-19
Added
- Booking plugin: new "History" tab listing all past appointments (any status), separate from Requests, which now only shows upcoming ones.
- New Maintenance plugin: puts up a maintenance page for visitors (HTTP 503, custom message) while a logged-in admin keeps browsing the site normally.
Changed
- Plugin system: replaced the core-file-specific hooks used by the Maintenance and Redirects plugins (
index.phpcallingmt_maybe_block()/rd_maybe_redirect()by name) with two generic hook points any plugin can use without ever touching a core file:early_request(fired right afterfunctions.phploads, before routing or output — for blocking/intercepting the whole request) andafter_routing(fired once the route is resolved, with whether the request is a genuine 404 — for redirect-style logic).index.phpno longer references any plugin by name. See the updated Plugin System documentation for details. - Confirmation messages in the Maintenance, Booking, Newsletter, and Redirects plugin admin pages now use the same auto-dismissing message style as the rest of the admin panel, instead of a plugin-specific banner that stayed on screen until the page was reloaded.
Fixed
- Fixed admin sessions being shared between separate SynaptikCMS installs living under the same domain (e.g. a demo site in a sub-folder) — each install's admin login now uses its own uniquely-named session cookie, so logging into one no longer silently logs you into another with the wrong account name displayed.
- Fixed active plugins' own admin pages incorrectly highlighting the "Tools" sidebar section instead of the plugin's own top-level sidebar entry.
- Fixed active plugins' sidebar links reordering themselves depending on which plugin's admin page was currently open, instead of keeping a stable order.
- Redirects plugin: fixed the admin sidebar link and post-save redirects pointing to a broken URL (e.g.
/plugins/admin/index.php?...or a doubled/admin/admin/...) on any install not living at the domain root — admin-side URL building now resolves the CMS root from the plugin's filesystem path instead of the request-dependentgetBaseUrl(). - Redirects plugin: fixed redirect destinations entered as a relative path (e.g.
/nouvel-article/) sending visitors to the domain root instead of the CMS's own sub-directory — the stored destination is now resolved against the site's base URL before being sent in theLocationheader. Full external URLs (https://...) are unaffected.
[1.3] — 2026-07-18
Added
- Plugin system — SynaptikCMS now supports standalone plugins: self-contained folders in
/plugins(each with aplugin.jsonmanifest) that extend the site without modifying core files. Plugins hook into the existing theme API (add_theme_action,apply_theme_filters) for front-end behaviour, and into a new lightweight hook system for admin integration. - Extensions page (Tools → Extensions) — lists every plugin detected at the CMS root, with one-click activate/deactivate. Activation state is stored in
plugins.json. - Active plugins can register their own entry in the admin sidebar, and render a full page inside the standard admin layout (sidebar, top bar, footer) via a new generic plugin page router — no plugin needs to reimplement the admin chrome.
- First plugin built on this system: Booking, a standalone appointment-booking module (separate download, not bundled with core) — public calendar with weekly recurring availability and date exceptions, per-type appointment durations, admin approval workflow (pending/confirmed/refused/cancelled), and automatic email notifications with
.icscalendar attachments for both the client and the site admin, including optional phone-callback reminders.
Changed
- Admin WYSIWYG editor: added a delete button to collapsible sections and tab-group tabs (hover the section header), retroactively applied to existing content on load
- Admin WYSIWYG editor: added a colour-picker button next to the delete button on collapsible sections and tab-group tabs, letting you change a section's accent colour instantly without reopening the source view
New Plugins
- Booking - Standalone appointment booking module with calendar availability, admin approval workflow, and ICS calendar invites.
- Newsletter - Email newsletter signup with double opt-in and a manual article digest sender.
- Redirects - Manual 301/302 URL redirects, plus an optional 404-to-home fallback.
[1.2.1] — 2026-07-11
Changed
- Category pages now include content from sub-categories (any depth), instead of only exact category matches
- Tag and category merge dropdowns are now sorted alphabetically instead of following insertion order
Fixed
- Fixed a critical bug where saving an article/page/project with tags could silently overwrite its own slug with the slug of the last tag entered, occasionally causing it to overwrite and delete an unrelated existing item that happened to share that slug
- Fixed a bug where double-clicking or double-tapping the Publish button could submit the form twice, creating a duplicate article/page/project with an auto-incremented slug
- Fixed category and tag orphan counts in the admin panel now account for pages, not just articles and projects, so the displayed orphan count matches what the purge action actually removes
- Fixed Template Editor triggering a "leave page" browser warning when saving a file
- Article and project cards now display resolved tag names instead of raw slugs
- Admin WYSIWYG editor's HTML sanitizer is no longer stripping inline
<svg>icons on save - Axion theme: fixed display issues (
data-revealremoved from grid containers whose size depend on number of items) and CSS fixes
[1.2] — 2026-06-26
Added
- Added a built-in translation editor: edit any locale's strings directly from the admin panel, and create new locales by duplicating en.json with one click — accessible from Tools → Translations and from the Settings → General language selector.
- Admin language can now be different from front-end language, both can be set from the Settings section.
- Replaced the CSS-only theme editor with a full Template Editor: browse and edit every file of the active theme (PHP, CSS, JS, JSON) from a single grouped file dropdown, with per-file backups and adaptive stats (lines, rules/variables for CSS, functions/comments for PHP & JS).
- New themes: Downloadable Here
- Theme SynaptikDocs - Theme Atrium - Theme Myelin - Theme Axion
Changed
- Admin interface improvements: now fully responsive
- Modified sidebar to display flyouts for all sections when collapsed
- Editor sidebar is now collapsible to focus on content writing / edition
- Modified admin tabs style to be more visible
- Modified Alt-text-assistant and Seo-overview to display tabs in the same style as settings
- Moved SEO Overview to the Tools section of sidebar
- Improved header scripts, added async to the JS files to improve load speed even more.
- Architecture Changes:
- Tags are now stored as slugs in item files ("tags": ["my-tag"] instead of "tags": ["My Tag"]). Display names are resolved at render time from tags.json. Renaming a tag now only requires updating tags.json — no item files are touched when only the display name changes; item files are updated only when the slug itself changes. - Categories follow the same pattern: item files now store the category slug ("category": "anatomie" instead of "category": "Anatomie"). Display names and parent relationships are resolved from categories.json. Renaming a category only rewrites item files when the slug changes. - Creating a tag or category inline from the content editor (without going through the dedicated management pages) now automatically upserts the new entry into tags.json / categories.json, keeping the stores always in sync with actual content.
- Moved static assets (/css, /js) into /assets/css and /assets/js, and front-end locale files into /lang/front/ for a cleaner root directory structure.
Fixed
- Fixed CSS display issue in file manager list view, which was hiding the folder name. Replaced folder icon with SVG that fits the admin design better.
- Fixed a tag duplication bug in the content editor where renaming a tag (e.g. "Themes" → "themes") would leave the old display string in existing item files, causing both versions to appear in the tag input suggestions.
- Fixed missing categories in data/categories.json: some were used by content items but absent from the store, causing getCategoryPath() to fail silently and breaking hierarchical URLs for those categories and their children.
[1.1] — 2026-06-13
Added
- Homepage SEO fields — dedicated meta title, meta description, keywords, OG title, OG description and OG image configurable from the SEO tab in settings; independent from the global site title and description
- Major overhaul and improvements of admin:
- Added dark/light mode in admin
- Top bar — A sticky admin toolbar is now displayed on the front end when logged into the admin, providing quick access to the dashboard, content editing, and site settings
- Quick edit links added on item list table view hover
- Added function to duplicate articles/pages/projects
- Improved CSS styles: more modern, more uniform design, replaced all icons with more modern svg ones
- Refactored all standalone files, now using common header.php and footer.php as templates, and layout.php
- Social networks — Extended social media support from 5 to 18 platforms.
- New platforms available in Settings → Social Media and rendered as inline SVG icons in the footer: Bluesky, Discord, Mastodon, Pinterest, Reddit, Snapchat, Telegram, Threads, TikTok, Twitch, WhatsApp, X, YouTube. Legacy twitter value preserved for backward compatibility.
- New themes: Downloadable Here
- Theme: Vanta - added missing support for related content and custom fields - Theme: Nova - added missing support for related content and custom fields - Theme: Natura - added missing support for shortcodes, related content and custom fields - Theme: Mono - added missing support for custom fields, added styles for recent projects shortcodes - Theme: introduction of Prism theme, flat design, colorful, with dark/light switcher.
Changed
- Sitemap generator: removed creation of page list
- Improved social media section display in settings
Fixed
- Fixed batch-selection mode not displaying correct table headers in content lists
- Fixed infinite recursion crash (memory exhausted) when using theme live preview —
loadSettings()was callingresolve_admin_dir()which re-enteredloadSettings()before the request cache was written; fixed by readingadmin_dirdirectly from the already-parsed settings array - Fixed a bug where temp folders wouldn't get deleted after a database restore in
/bckps - Fixed anchor links now include the current page URL instead of resolving to the site root
- Fixed
_shortcode_parse_attrs()undefined index on empty quoted attribute values (e.g. url="") - Fixed settings fields (site_description, meta fields): were double-encoded on each save due to htmlspecialchars() applied before JSON storage — values are now stored raw and encoded only at display time
- Fixed CSS display issue in search overlay where the clear button was misplaced
- Fixed canonical URL generation to always output a normalized, trailing-slash URL via cleanUrl() instead of $SERVER['REQUESTURI'], resolving duplicate-content canonical conflicts reported by Google Search Console
- Theme: Portfolio - fixed several display issues and missing CSS rules, galleries display
- Theme: Nova - fixed several display issues and missing CSS rules
- Theme: Natura - fixed several display issues and missing CSS rules, galleries display
- Theme: Vanta - fixed gallery displays
[1.0] — 2026-06-05
Added
- Automatic updates — update notification banner in dashboard; one-click update downloads the release ZIP, validates its structure, creates a safety backup, and replaces core files without touching content, settings or uploads
- Full backup and restore — ZIP backup of
/data/,/files/andsettings.json; restore from any backup with automatic pre-restore safety snapshot; server backups table with download and delete - Related Content — per-post manual selection or automatic suggestions based on shared tags and categories; toggle display per post
- Alt Text Assistant — centralised interface to audit and bulk-edit alt text and captions across all gallery images
- SEO Overview — content audit table showing meta title and description completion status across all articles, pages and projects with inline editing
- Theme Manager — list installed themes with preview image, activate and delete; theme upload via ZIP with
theme.jsonvalidation - Live theme preview — preview any installed theme in the current site context without activating it; signed HMAC token, 2-hour TTL, admin-only
- CSS editor — live-edit the active theme stylesheet from the admin; automatic backup before each save; restore from any backup
- RSS feed — auto-injected in theme
<head>viarender_header_scripts(); no user action required - hCaptcha — anti-spam protection for the contact form; gracefully disabled when keys are not configured
- Password reset by email — one-time token link sent to admin email; 15-minute TTL; public route via
?reset_token=to avoid exposing the admin folder name - User account name — display name shown in admin sidebar; separate from login username
- Custom Fields — define additional fields per content type (text, textarea, number, URL, checkbox, select); available in editor sidebar and theme via
$item['custom_fields']['key'] - Autosave — configurable interval (1, 3, 5 or 10 minutes); JSON drafts preserved across sessions; one-click restore
- Scheduled publication — set a future date and time; cron-free, checked on front-end request
- Markdown editor — CodeMirror-based; per-post format switch (WYSIWYG ↔ Markdown); content preserved on switch
- Pagination — server-side pagination and AJAX search/filter for the admin content list beyond 200 items
- Timezone setting — configurable in settings; applied globally to all PHP
date()calls - Robots.txt editor — edit
robots.txtdirectly from the admin SEO tab - Shortcode builder — modal UI in WYSIWYG editor to insert shortcodes without typing syntax
- Menu Builder — drag and drop custom navigation; nested items up to 2 levels; external links; open in new tab
- ~120 new i18n keys across
lang/admin/en.json,fr.json,es.json
Changed
- Split monolithic
template-functions.phpintotf-cards.php,tf-markdown.php,tf-navigation.php,tf-page.php,tf-shortcodes.php backup-dl.phprewritten to support.zipand.json, with path traversal protection- Admin editor sidebar reorganised into tabs: Content, SEO, Custom Fields
Fixed
- SEO preview JS failing on Markdown-format posts
- Date format display inconsistency in content list
- Security hardening on sensitive folder access and CSRF validation in theme upload form
[0.9] — 2026-05-01
Added
- Markdown support in the content editor (CodeMirror)
- Timezone selector in settings; publish time displayed in admin content lists and on posts
- Server-side pagination and AJAX search for admin content list (triggered above 200 items)
- RSS feed auto-injected in theme headers
- User account name (display name separate from login credentials)
- Custom Fields for all 3 content types — defined in settings, rendered in editor sidebar
- User-defined autosave intervals in settings
- Related Content — manual or algorithmic, toggle per post
- Live post preview working with both HTML and Markdown
Changed
- Admin editor redesigned with sticky top bar; publish button always visible
- Editor sidebar improved with tabs separating Content, SEO and Custom Fields sections
- All default themes updated to support custom fields, site logo/favicon, RSS feed, related content
Fixed
- SEO score preview JS broken on Markdown posts
- Date format display in content list
- Security vulnerabilities in sensitive folder access
- CSRF validation added to theme upload form
[0.8] — 2026-02-12
Added
- Split-file data architecture — each content item stored as its own JSON file in
/data/{type}/instead of a single monolithic JSON database - Custom article and project summaries for listing cards (replaces auto-generated excerpt)
- Support for page templates in Pages content type
- Theme partials system — override article and project card rendering per theme
- Theme
functions.php— auto-loaded after core; register hooks, shortcodes or custom behaviour - Categories and tags: merge two into one, filter and purge orphans
- Update notifications and news feed in admin dashboard
- First-run installer (
install.php) — sets site title, language, admin credentials and admin folder name
Changed
- Content index rebuilt as lightweight per-type
_index.jsonfiles; single-item pages load exactly one JSON file - Article card excerpts: raw shortcode syntax replaced with
…or custom summary when present
Fixed
- Raw shortcode tags leaking into article card excerpts on list pages
[0.7] — 2025-08-10
Added
- Secure password reset via emailed one-time link (15-minute TTL)
- Theme management interface with preview image and activate button
- Admin sidebar popovers for collapsed icon-only mode
Changed
- Admin login and change-password hardened (rate limiting, lockout after failed attempts)
- Admin sidebar revamped — retractable, icon-only collapsed state
- Media Manager interface redesigned
- Settings page redesigned with tabbed layout
[0.6] — 2025-04-20
Added
- Menu Builder — drag and drop custom navigation, nested items, external links
- Backup and restore for the JSON database
- Content display options (show/hide title, featured image, date, breadcrumbs per post)
- SEO panel improvements — personalised score and recommendations in the content editor
Changed
- Admin sidebar collapsible to icons-only mode
- SEO recommendations algorithm revised for accuracy
[0.5] — 2025-03-15
Added
- Categories and tags for Articles and Projects
- Category and tag picker in the content editor
- Full-screen editing mode
- HTML source code editor (raw mode toggle in WYSIWYG)
- Shortcodes engine —
[gallery],[toc],[callout],[contact_form],[recent_articles]
Changed
- Complete admin interface overhaul — more compact, consistent design language
- Content creation interface redesigned — sidebar layout, less visual noise
[0.4] — 2025-01-22
Added
- Image galleries per post — grid, masonry, justified, carousel layouts
- Lightbox for gallery images
- Media Manager — upload, browse, delete, rename files; folder creation
- Image optimisation on upload (resize, compress, optional WebP conversion)
- Batch image optimiser for existing media library
- Open Graph and Twitter Card meta tags
- JSON-LD schema markup
Changed
- Theme system extended with hooks (
add_action) and filters (add_filter) - Theme API helper functions consolidated into
theme-api.php
[0.3] — 2024-11-08
Added
- Projects content type (portfolio) with separate listing and single-item templates
- Theme system — active theme selected in settings, templates loaded from
/theme/{name}/ - Ships with
defaulttheme - Sitemap generator (
sitemap.xml) - Canonical URL tag in
<head> robots.txtincluded in release package- i18n system — front-end and admin panel, locale files in
/lang/and/lang/admin/ - English, French and Spanish locale files
Changed
- Admin panel redesigned with sidebar navigation replacing top-bar tabs
[0.2] — 2024-08-30
Added
- Pages content type with standalone routing (no type prefix in URL)
- SEO panel in content editor — meta title, description, keywords
- Custom URL slug per content item
- Breadcrumb navigation (optional, toggled in settings)
- Clean URL routing via
.htaccessrewrite rules andparseRequestUri() - Category listing pages at
/category/{slug}/ - Tag listing pages at
/tag/{slug}/ - Search overlay —
Ctrl+K/Cmd+K, searches across all content types, no external dependency - Contact form shortcode with server-side processing and CSRF protection
install.phpfirst-run wizard (site title, admin password)
Fixed
- Slug collision on content creation — auto-appends numeric suffix
[0.1] — 2024-06-14
Added
- Initial working version
- Articles content type with title, content, date, featured image, published flag
- Flat-file JSON storage in
/data/ - Basic admin panel — login, list, create, edit, delete articles
- WYSIWYG editor (custom implementation)
- Front-end routing — homepage, article list, single article
getBaseUrl(),cleanUrl(),sanitizeSlug()core helpers.htaccesssecurity rules blocking direct access to/data/and/bckps/- MIT license
