a77458a24a40af4b2e5c804f98ab0fa1a4e1f5e0
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Site Health (push) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 5s
Universal: Auto Version Bump / Version Bump (push) Successful in 5s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 4s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Project CI / Lint & Validate (pull_request) Successful in 26s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Project CI / Tests (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
- Use $staleDays instead of hardcoded 7-day cutoff for recent/failure counts so the parameter is consistently applied - Remove unused profile_id from SELECT (never included in return array)
Changelog
[Unreleased]
[01.21.00] --- 2026-06-16
Fixed
- Admin submenu items (Dashboard, Backups, Profiles) not created on install —
<submenu>block in manifest was empty - Submenu items not created on update — added
ensureSubmenuItems()using Joomla'sMenuTableAPI with proper nested set positioning - Submenu icons not rendering in Joomla 6 — set
menu_iconparam for level 2+ items (Atum only rendersimgcolumn icons for level 1) - CSS selector
#menu→.main-navfor icon injection (Joomla 6 uses dynamicid="menu{moduleId}") - Use
margin-inline-endinstead ofmargin-rightfor RTL layout support
[01.08.00] --- 2026-06-07
[01.07.00] --- 2026-06-07
[01.06.00] --- 2026-06-07
[01.05.00] --- 2026-06-07
Added
- Dashboard submenu entry as default landing page with
class:homeicon [DEFAULT_DIR]placeholder for portable backup directory configuration — resolves toadministrator/components/com_mokosuitebackup/backupsat runtime- Live AJAX directory validation on backup_dir field — checks existence, writability, and placeholder resolution as user types (debounced 400ms)
checkDirAJAX endpoint for real-time directory permission checking- Web-accessible warning badge on backup download buttons when archive is inside web root
- Inline security warning in FolderPicker when default directory is selected
- Auto
.htaccessandindex.htmlprotection for web-accessible backup directories on profile save and at backup time - Font Awesome 6 submenu icons via CSS injection in
MokoSuiteBackupComponent::boot() syncMenuIcons()installer postflight — syncs icon classes to#__menuon install and updateencryptionPasswordproperty onSteppedSessionfor upcoming stepped backup encryption support
Changed
- Profile
backup_dirdefault changed from literal path to[DEFAULT_DIR]placeholder - Backup engine fallback directory changed from hardcoded path to
[DEFAULT_DIR] isUsingDefaultBackupDir()now matches[DEFAULT_DIR]placeholder in addition to literal path and empty values- Dashboard submenu language key added to
.sys.inifiles (en-GB, en-US)
Description
Full-site backup and restore for Joomla - database, files, and configuration
https://mokoconsulting.tech/support/products/mokosuitebackup
Readme
5.7 MiB