From ace33b60feb2c001c36f82ac4aed3186ff7a3294 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Thu, 11 Jun 2026 12:24:27 -0500 Subject: [PATCH] =?UTF-8?q?feat:=20rename=20mokojoombackup=20=E2=86=92=20m?= =?UTF-8?q?okosuitebackup,=20add=20[HOME]=20placeholder=20for=20backup=20d?= =?UTF-8?q?irectory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Renames all sub-extensions from mokojoombackup to mokosuitebackup (package, component, 7 plugins, language files, manifests). Adds [HOME] placeholder to BackupDirectory and PlaceholderResolver so users can set backup_dir to [HOME]/backups (outside web root). Fixes folder browser "access denied" on PHP-FPM shared hosting where getenv('HOME') returns empty by adding POSIX and JPATH_ROOT fallback detection. --- .mokogitea/CLAUDE.md | 32 ++++----- .mokogitea/manifest.xml | 4 +- .mokogitea/workflows/rc-revert.yml | 66 ++++++++++++++++++ CHANGELOG.md | 4 +- CONTRIBUTING.md | 6 +- Makefile | 10 +-- README.md | 8 +-- .../language/en-GB/pkg_mokojoombackup.sys.ini | 10 --- .../en-GB/pkg_mokosuitebackup.sys.ini | 10 +++ .../language/en-US/pkg_mokojoombackup.sys.ini | 10 --- .../en-US/pkg_mokosuitebackup.sys.ini | 10 +++ .../sql/uninstall.mysql.sql | 2 - .../sql/updates/mysql/01.01.01.sql | 1 - .../sql/updates/mysql/01.01.02.sql | 12 ---- .../src/Extension/MokoJoomBackupComponent.php | 45 ------------ .../api/index.html | 0 .../api/src/Controller/BackupsController.php | 14 ++-- .../api/src/Controller/index.html | 0 .../api/src/View/Backups/JsonapiView.php | 6 +- .../api/src/View/Backups/index.html | 0 .../api/src/View/index.html | 0 .../api/src/index.html | 0 .../cli/index.html | 0 .../cli/mokosuitebackup.php} | 10 +-- .../config.xml | 12 ++-- .../forms/backup.xml | 0 .../forms/filter_backups.xml | 0 .../forms/filter_profiles.xml | 0 .../forms/index.html | 0 .../forms/profile.xml | 8 +-- .../index.html | 0 .../language/en-GB/com_mokosuitebackup.ini} | 16 ++--- .../en-GB/com_mokosuitebackup.sys.ini} | 6 +- .../language/en-GB/index.html | 0 .../language/en-US/com_mokosuitebackup.ini} | 12 ++-- .../en-US/com_mokosuitebackup.sys.ini} | 6 +- .../language/en-US/index.html | 0 .../language/index.html | 0 .../mokosuitebackup.xml} | 20 +++--- .../services/index.html | 0 .../services/provider.php | 12 ++-- .../sql/index.html | 0 .../sql/install.mysql.sql | 12 ++-- .../sql/mysql/index.html | 0 .../sql/uninstall.mysql.sql | 2 + .../sql/updates/index.html | 0 .../sql/updates/mysql/01.00.00.sql | 0 .../sql/updates/mysql/01.01.01.sql | 1 + .../sql/updates/mysql/01.01.02.sql | 12 ++++ .../sql/updates/mysql/index.html | 0 .../src/Controller/AjaxController.php | 18 ++--- .../src/Controller/BackupController.php | 6 +- .../src/Controller/BackupsController.php | 28 ++++---- .../src/Controller/DisplayController.php | 6 +- .../src/Controller/ProfileController.php | 6 +- .../src/Controller/ProfilesController.php | 12 ++-- .../src/Controller/index.html | 0 .../src/Engine/AkeebaImporter.php | 24 +++---- .../src/Engine/ArchiverInterface.php | 6 +- .../src/Engine/BackupEngine.php | 28 ++++---- .../src/Engine/DatabaseDumper.php | 8 +-- .../src/Engine/DatabaseImporter.php | 10 +-- .../src/Engine/DifferentialScanner.php | 6 +- .../src/Engine/FileRestorer.php | 6 +- .../src/Engine/FileScanner.php | 6 +- .../src/Engine/FtpUploader.php | 6 +- .../src/Engine/GoogleDriveUploader.php | 6 +- .../src/Engine/JpaUnarchiver.php | 6 +- .../src/Engine/MokoRestore.php | 12 ++-- .../src/Engine/NotificationSender.php | 16 ++--- .../src/Engine/PlaceholderResolver.php | 10 +-- .../src/Engine/RemoteUploaderInterface.php | 6 +- .../src/Engine/RestoreEngine.php | 10 +-- .../src/Engine/S3Uploader.php | 6 +- .../src/Engine/SteppedBackupEngine.php | 28 ++++---- .../src/Engine/SteppedSession.php | 8 +-- .../src/Engine/TarGzArchiver.php | 6 +- .../src/Engine/ZipArchiver.php | 6 +- .../src/Engine/index.html | 0 .../Extension/MokoSuiteBackupComponent.php | 45 ++++++++++++ .../src/Extension/index.html | 0 .../src/Field/DatabaseTablesField.php | 6 +- .../src/Field/DirectoryFilterField.php | 8 +-- .../src/Field/ExcludeListField.php | 6 +- .../src/Field/FolderPickerField.php | 17 ++--- .../src/Model/BackupModel.php | 10 +-- .../src/Model/BackupsModel.php | 10 +-- .../src/Model/DashboardModel.php | 26 +++---- .../src/Model/ProfileModel.php | 10 +-- .../src/Model/ProfilesModel.php | 8 +-- .../src/Model/index.html | 0 .../src/Table/BackupTable.php | 8 +-- .../src/Table/ProfileTable.php | 10 +-- .../src/Table/index.html | 0 .../src/Utility/BackupDirectory.php | 68 ++++++++++++++++--- .../src/Utility/index.html | 0 .../src/View/Backup/HtmlView.php | 8 +-- .../src/View/Backup/index.html | 0 .../src/View/Backups/HtmlView.php | 16 ++--- .../src/View/Backups/index.html | 0 .../src/View/Dashboard/HtmlView.php | 10 +-- .../src/View/Profile/HtmlView.php | 6 +- .../src/View/Profile/index.html | 0 .../src/View/Profiles/HtmlView.php | 10 +-- .../src/View/Profiles/index.html | 0 .../src/View/index.html | 0 .../src/index.html | 0 .../tmpl/backup/default.php | 6 +- .../tmpl/backup/index.html | 0 .../tmpl/backups/default.php | 22 +++--- .../tmpl/backups/index.html | 0 .../tmpl/dashboard/default.php | 28 ++++---- .../tmpl/index.html | 0 .../tmpl/profile/edit.php | 6 +- .../tmpl/profile/index.html | 0 .../tmpl/profiles/default.php | 8 +-- .../tmpl/profiles/index.html | 0 .../plg_actionlog_mokojoombackup.sys.ini | 3 - .../plg_actionlog_mokojoombackup.sys.ini | 3 - .../en-GB/plg_actionlog_mokosuitebackup.ini} | 6 +- .../plg_actionlog_mokosuitebackup.sys.ini | 3 + .../en-US/plg_actionlog_mokosuitebackup.ini} | 6 +- .../plg_actionlog_mokosuitebackup.sys.ini | 3 + .../mokosuitebackup.php} | 4 +- .../mokosuitebackup.xml} | 16 ++--- .../services/provider.php | 10 +-- .../Extension/MokoSuiteBackupActionlog.php} | 28 ++++---- .../en-GB/plg_console_mokojoombackup.ini | 3 - .../en-GB/plg_console_mokojoombackup.sys.ini | 3 - .../en-US/plg_console_mokojoombackup.ini | 3 - .../en-US/plg_console_mokojoombackup.sys.ini | 3 - .../en-GB/plg_console_mokosuitebackup.ini | 3 + .../en-GB/plg_console_mokosuitebackup.sys.ini | 3 + .../en-US/plg_console_mokosuitebackup.ini | 3 + .../en-US/plg_console_mokosuitebackup.sys.ini | 3 + .../mokosuitebackup.php} | 4 +- .../mokosuitebackup.xml} | 16 ++--- .../services/provider.php | 10 +-- .../src/Command/CleanupCommand.php | 20 +++--- .../src/Command/ListCommand.php | 14 ++-- .../src/Command/ProfilesCommand.php | 12 ++-- .../src/Command/RestoreCommand.php | 16 ++--- .../src/Command/RunCommand.php | 16 ++--- .../src/Extension/MokoSuiteBackupConsole.php} | 18 ++--- .../en-GB/plg_content_mokojoombackup.sys.ini | 3 - .../en-US/plg_content_mokojoombackup.sys.ini | 3 - .../en-GB/plg_content_mokosuitebackup.ini} | 4 +- .../en-GB/plg_content_mokosuitebackup.sys.ini | 3 + .../en-US/plg_content_mokosuitebackup.ini} | 4 +- .../en-US/plg_content_mokosuitebackup.sys.ini | 3 + .../mokosuitebackup.php} | 4 +- .../mokosuitebackup.xml} | 18 ++--- .../services/provider.php | 10 +-- .../src/Extension/MokoSuiteBackupContent.php} | 18 ++--- .../index.html | 0 .../language/en-GB/index.html | 0 .../en-GB/plg_quickicon_mokosuitebackup.ini} | 2 +- .../plg_quickicon_mokosuitebackup.sys.ini} | 2 +- .../language/en-US/index.html | 0 .../en-US/plg_quickicon_mokosuitebackup.ini} | 2 +- .../plg_quickicon_mokosuitebackup.sys.ini} | 2 +- .../language/index.html | 0 .../mokosuitebackup.php} | 0 .../mokosuitebackup.xml} | 12 ++-- .../services/index.html | 0 .../services/provider.php | 6 +- .../Extension/MokoSuiteBackupQuickicon.php} | 18 ++--- .../src/Extension/index.html | 0 .../src/index.html | 0 .../en-GB/plg_system_mokojoombackup.sys.ini | 3 - .../en-US/plg_system_mokojoombackup.sys.ini | 3 - .../index.html | 0 .../language/en-GB/index.html | 0 .../en-GB/plg_system_mokosuitebackup.ini} | 4 +- .../en-GB/plg_system_mokosuitebackup.sys.ini | 3 + .../language/en-US/index.html | 0 .../en-US/plg_system_mokosuitebackup.ini} | 4 +- .../en-US/plg_system_mokosuitebackup.sys.ini | 3 + .../language/index.html | 0 .../mokosuitebackup.php} | 4 +- .../mokosuitebackup.xml} | 16 ++--- .../services/index.html | 0 .../services/provider.php | 10 +-- .../src/Extension/MokoSuiteBackup.php} | 32 ++++----- .../src/Extension/index.html | 0 .../src/index.html | 0 .../en-GB/plg_task_mokojoombackup.ini | 12 ---- .../en-GB/plg_task_mokojoombackup.sys.ini | 3 - .../en-US/plg_task_mokojoombackup.ini | 8 --- .../en-US/plg_task_mokojoombackup.sys.ini | 3 - .../forms/index.html | 0 .../forms/run_profile.xml | 4 +- .../index.html | 0 .../language/en-GB/index.html | 0 .../en-GB/plg_task_mokosuitebackup.ini | 12 ++++ .../en-GB/plg_task_mokosuitebackup.sys.ini | 3 + .../language/en-US/index.html | 0 .../en-US/plg_task_mokosuitebackup.ini | 8 +++ .../en-US/plg_task_mokosuitebackup.sys.ini | 3 + .../language/index.html | 0 .../mokosuitebackup.php} | 4 +- .../mokosuitebackup.xml} | 16 ++--- .../services/index.html | 0 .../services/provider.php | 10 +-- .../src/Extension/MokoSuiteBackupTask.php} | 20 +++--- .../src/Extension/index.html | 0 .../src/index.html | 0 .../plg_webservices_mokojoombackup.sys.ini | 3 - .../plg_webservices_mokojoombackup.sys.ini | 3 - .../mokojoombackup.php | 11 --- .../services/provider.php | 37 ---------- .../index.html | 0 .../language/en-GB/index.html | 0 .../plg_webservices_mokosuitebackup.ini} | 4 +- .../plg_webservices_mokosuitebackup.sys.ini | 3 + .../language/en-US/index.html | 0 .../plg_webservices_mokosuitebackup.ini} | 4 +- .../plg_webservices_mokosuitebackup.sys.ini | 3 + .../language/index.html | 0 .../mokosuitebackup.php | 11 +++ .../mokosuitebackup.xml} | 16 ++--- .../services/index.html | 0 .../services/provider.php | 37 ++++++++++ .../Extension/MokoSuiteBackupWebServices.php} | 32 ++++----- .../src/Extension/index.html | 0 .../src/index.html | 0 source/pkg_mokojoombackup.xml | 42 ------------ source/pkg_mokosuitebackup.xml | 42 ++++++++++++ source/script.php | 58 ++++++++-------- 229 files changed, 993 insertions(+), 874 deletions(-) create mode 100644 .mokogitea/workflows/rc-revert.yml delete mode 100644 source/language/en-GB/pkg_mokojoombackup.sys.ini create mode 100644 source/language/en-GB/pkg_mokosuitebackup.sys.ini delete mode 100644 source/language/en-US/pkg_mokojoombackup.sys.ini create mode 100644 source/language/en-US/pkg_mokosuitebackup.sys.ini delete mode 100644 source/packages/com_mokojoombackup/sql/uninstall.mysql.sql delete mode 100644 source/packages/com_mokojoombackup/sql/updates/mysql/01.01.01.sql delete mode 100644 source/packages/com_mokojoombackup/sql/updates/mysql/01.01.02.sql delete mode 100644 source/packages/com_mokojoombackup/src/Extension/MokoJoomBackupComponent.php rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/api/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/api/src/Controller/BackupsController.php (82%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/api/src/Controller/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/api/src/View/Backups/JsonapiView.php (87%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/api/src/View/Backups/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/api/src/View/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/api/src/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/cli/index.html (100%) rename source/packages/{com_mokojoombackup/cli/mokojoombackup.php => com_mokosuitebackup/cli/mokosuitebackup.php} (85%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/config.xml (90%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/forms/backup.xml (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/forms/filter_backups.xml (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/forms/filter_profiles.xml (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/forms/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/forms/profile.xml (97%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/index.html (100%) rename source/packages/{com_mokojoombackup/language/en-GB/com_mokojoombackup.ini => com_mokosuitebackup/language/en-GB/com_mokosuitebackup.ini} (94%) rename source/packages/{com_mokojoombackup/language/en-GB/com_mokojoombackup.sys.ini => com_mokosuitebackup/language/en-GB/com_mokosuitebackup.sys.ini} (77%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/language/en-GB/index.html (100%) rename source/packages/{com_mokojoombackup/language/en-US/com_mokojoombackup.ini => com_mokosuitebackup/language/en-US/com_mokosuitebackup.ini} (91%) rename source/packages/{com_mokojoombackup/language/en-US/com_mokojoombackup.sys.ini => com_mokosuitebackup/language/en-US/com_mokosuitebackup.sys.ini} (77%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/language/en-US/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/language/index.html (100%) rename source/packages/{com_mokojoombackup/mokojoombackup.xml => com_mokosuitebackup/mokosuitebackup.xml} (67%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/services/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/services/provider.php (79%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/sql/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/sql/install.mysql.sql (93%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/sql/mysql/index.html (100%) create mode 100644 source/packages/com_mokosuitebackup/sql/uninstall.mysql.sql rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/sql/updates/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/sql/updates/mysql/01.00.00.sql (100%) create mode 100644 source/packages/com_mokosuitebackup/sql/updates/mysql/01.01.01.sql create mode 100644 source/packages/com_mokosuitebackup/sql/updates/mysql/01.01.02.sql rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/sql/updates/mysql/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Controller/AjaxController.php (92%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Controller/BackupController.php (74%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Controller/BackupsController.php (80%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Controller/DisplayController.php (74%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Controller/ProfileController.php (74%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Controller/ProfilesController.php (88%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Controller/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/AkeebaImporter.php (95%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/ArchiverInterface.php (86%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/BackupEngine.php (94%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/DatabaseDumper.php (96%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/DatabaseImporter.php (91%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/DifferentialScanner.php (94%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/FileRestorer.php (95%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/FileScanner.php (94%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/FtpUploader.php (96%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/GoogleDriveUploader.php (98%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/JpaUnarchiver.php (97%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/MokoRestore.php (99%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/NotificationSender.php (90%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/PlaceholderResolver.php (91%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/RemoteUploaderInterface.php (85%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/RestoreEngine.php (96%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/S3Uploader.php (98%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/SteppedBackupEngine.php (94%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/SteppedSession.php (95%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/TarGzArchiver.php (90%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/ZipArchiver.php (87%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Engine/index.html (100%) create mode 100644 source/packages/com_mokosuitebackup/src/Extension/MokoSuiteBackupComponent.php rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Extension/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Field/DatabaseTablesField.php (97%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Field/DirectoryFilterField.php (97%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Field/ExcludeListField.php (96%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Field/FolderPickerField.php (94%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Model/BackupModel.php (75%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Model/BackupsModel.php (87%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Model/DashboardModel.php (87%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Model/ProfileModel.php (75%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Model/ProfilesModel.php (88%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Model/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Table/BackupTable.php (82%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Table/ProfileTable.php (82%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Table/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Utility/BackupDirectory.php (62%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/Utility/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/View/Backup/HtmlView.php (82%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/View/Backup/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/View/Backups/HtmlView.php (90%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/View/Backups/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/View/Dashboard/HtmlView.php (80%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/View/Profile/HtmlView.php (87%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/View/Profile/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/View/Profiles/HtmlView.php (84%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/View/Profiles/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/View/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/src/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/tmpl/backup/default.php (96%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/tmpl/backup/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/tmpl/backups/default.php (94%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/tmpl/backups/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/tmpl/dashboard/default.php (89%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/tmpl/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/tmpl/profile/edit.php (92%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/tmpl/profile/index.html (100%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/tmpl/profiles/default.php (92%) rename source/packages/{com_mokojoombackup => com_mokosuitebackup}/tmpl/profiles/index.html (100%) delete mode 100644 source/packages/plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.sys.ini delete mode 100644 source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.sys.ini rename source/packages/{plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.ini => plg_actionlog_mokosuitebackup/language/en-GB/plg_actionlog_mokosuitebackup.ini} (74%) create mode 100644 source/packages/plg_actionlog_mokosuitebackup/language/en-GB/plg_actionlog_mokosuitebackup.sys.ini rename source/packages/{plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.ini => plg_actionlog_mokosuitebackup/language/en-US/plg_actionlog_mokosuitebackup.ini} (74%) create mode 100644 source/packages/plg_actionlog_mokosuitebackup/language/en-US/plg_actionlog_mokosuitebackup.sys.ini rename source/packages/{plg_system_mokojoombackup/mokojoombackup.php => plg_actionlog_mokosuitebackup/mokosuitebackup.php} (76%) rename source/packages/{plg_actionlog_mokojoombackup/mokojoombackup.xml => plg_actionlog_mokosuitebackup/mokosuitebackup.xml} (63%) rename source/packages/{plg_actionlog_mokojoombackup => plg_actionlog_mokosuitebackup}/services/provider.php (74%) rename source/packages/{plg_actionlog_mokojoombackup/src/Extension/MokoJoomBackupActionlog.php => plg_actionlog_mokosuitebackup/src/Extension/MokoSuiteBackupActionlog.php} (85%) delete mode 100644 source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.ini delete mode 100644 source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.sys.ini delete mode 100644 source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.ini delete mode 100644 source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.sys.ini create mode 100644 source/packages/plg_console_mokosuitebackup/language/en-GB/plg_console_mokosuitebackup.ini create mode 100644 source/packages/plg_console_mokosuitebackup/language/en-GB/plg_console_mokosuitebackup.sys.ini create mode 100644 source/packages/plg_console_mokosuitebackup/language/en-US/plg_console_mokosuitebackup.ini create mode 100644 source/packages/plg_console_mokosuitebackup/language/en-US/plg_console_mokosuitebackup.sys.ini rename source/packages/{plg_actionlog_mokojoombackup/mokojoombackup.php => plg_console_mokosuitebackup/mokosuitebackup.php} (76%) rename source/packages/{plg_console_mokojoombackup/mokojoombackup.xml => plg_console_mokosuitebackup/mokosuitebackup.xml} (63%) rename source/packages/{plg_console_mokojoombackup => plg_console_mokosuitebackup}/services/provider.php (75%) rename source/packages/{plg_console_mokojoombackup => plg_console_mokosuitebackup}/src/Command/CleanupCommand.php (86%) rename source/packages/{plg_console_mokojoombackup => plg_console_mokosuitebackup}/src/Command/ListCommand.php (83%) rename source/packages/{plg_console_mokojoombackup => plg_console_mokosuitebackup}/src/Command/ProfilesCommand.php (81%) rename source/packages/{plg_console_mokojoombackup => plg_console_mokosuitebackup}/src/Command/RestoreCommand.php (82%) rename source/packages/{plg_console_mokojoombackup => plg_console_mokosuitebackup}/src/Command/RunCommand.php (76%) rename source/packages/{plg_console_mokojoombackup/src/Extension/MokoJoomBackupConsole.php => plg_console_mokosuitebackup/src/Extension/MokoSuiteBackupConsole.php} (61%) delete mode 100644 source/packages/plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.sys.ini delete mode 100644 source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.sys.ini rename source/packages/{plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.ini => plg_content_mokosuitebackup/language/en-GB/plg_content_mokosuitebackup.ini} (84%) create mode 100644 source/packages/plg_content_mokosuitebackup/language/en-GB/plg_content_mokosuitebackup.sys.ini rename source/packages/{plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.ini => plg_content_mokosuitebackup/language/en-US/plg_content_mokosuitebackup.ini} (84%) create mode 100644 source/packages/plg_content_mokosuitebackup/language/en-US/plg_content_mokosuitebackup.sys.ini rename source/packages/{plg_content_mokojoombackup/mokojoombackup.php => plg_content_mokosuitebackup/mokosuitebackup.php} (76%) rename source/packages/{plg_content_mokojoombackup/mokojoombackup.xml => plg_content_mokosuitebackup/mokosuitebackup.xml} (75%) rename source/packages/{plg_content_mokojoombackup => plg_content_mokosuitebackup}/services/provider.php (75%) rename source/packages/{plg_content_mokojoombackup/src/Extension/MokoJoomBackupContent.php => plg_content_mokosuitebackup/src/Extension/MokoSuiteBackupContent.php} (75%) rename source/packages/{plg_quickicon_mokojoombackup => plg_quickicon_mokosuitebackup}/index.html (100%) rename source/packages/{plg_quickicon_mokojoombackup => plg_quickicon_mokosuitebackup}/language/en-GB/index.html (100%) rename source/packages/{plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.ini => plg_quickicon_mokosuitebackup/language/en-GB/plg_quickicon_mokosuitebackup.ini} (85%) rename source/packages/{plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.sys.ini => plg_quickicon_mokosuitebackup/language/en-GB/plg_quickicon_mokosuitebackup.sys.ini} (61%) rename source/packages/{plg_quickicon_mokojoombackup => plg_quickicon_mokosuitebackup}/language/en-US/index.html (100%) rename source/packages/{plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.ini => plg_quickicon_mokosuitebackup/language/en-US/plg_quickicon_mokosuitebackup.ini} (85%) rename source/packages/{plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.sys.ini => plg_quickicon_mokosuitebackup/language/en-US/plg_quickicon_mokosuitebackup.sys.ini} (61%) rename source/packages/{plg_quickicon_mokojoombackup => plg_quickicon_mokosuitebackup}/language/index.html (100%) rename source/packages/{plg_quickicon_mokojoombackup/mokojoombackup.php => plg_quickicon_mokosuitebackup/mokosuitebackup.php} (100%) rename source/packages/{plg_quickicon_mokojoombackup/mokojoombackup.xml => plg_quickicon_mokosuitebackup/mokosuitebackup.xml} (59%) rename source/packages/{plg_quickicon_mokojoombackup => plg_quickicon_mokosuitebackup}/services/index.html (100%) rename source/packages/{plg_quickicon_mokojoombackup => plg_quickicon_mokosuitebackup}/services/provider.php (75%) rename source/packages/{plg_quickicon_mokojoombackup/src/Extension/MokoJoomBackupQuickicon.php => plg_quickicon_mokosuitebackup/src/Extension/MokoSuiteBackupQuickicon.php} (86%) rename source/packages/{plg_quickicon_mokojoombackup => plg_quickicon_mokosuitebackup}/src/Extension/index.html (100%) rename source/packages/{plg_quickicon_mokojoombackup => plg_quickicon_mokosuitebackup}/src/index.html (100%) delete mode 100644 source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.sys.ini delete mode 100644 source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.sys.ini rename source/packages/{plg_system_mokojoombackup => plg_system_mokosuitebackup}/index.html (100%) rename source/packages/{plg_system_mokojoombackup => plg_system_mokosuitebackup}/language/en-GB/index.html (100%) rename source/packages/{plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.ini => plg_system_mokosuitebackup/language/en-GB/plg_system_mokosuitebackup.ini} (84%) create mode 100644 source/packages/plg_system_mokosuitebackup/language/en-GB/plg_system_mokosuitebackup.sys.ini rename source/packages/{plg_system_mokojoombackup => plg_system_mokosuitebackup}/language/en-US/index.html (100%) rename source/packages/{plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.ini => plg_system_mokosuitebackup/language/en-US/plg_system_mokosuitebackup.ini} (84%) create mode 100644 source/packages/plg_system_mokosuitebackup/language/en-US/plg_system_mokosuitebackup.sys.ini rename source/packages/{plg_system_mokojoombackup => plg_system_mokosuitebackup}/language/index.html (100%) rename source/packages/{plg_console_mokojoombackup/mokojoombackup.php => plg_system_mokosuitebackup/mokosuitebackup.php} (76%) rename source/packages/{plg_system_mokojoombackup/mokojoombackup.xml => plg_system_mokosuitebackup/mokosuitebackup.xml} (78%) rename source/packages/{plg_system_mokojoombackup => plg_system_mokosuitebackup}/services/index.html (100%) rename source/packages/{plg_system_mokojoombackup => plg_system_mokosuitebackup}/services/provider.php (76%) rename source/packages/{plg_system_mokojoombackup/src/Extension/MokoJoomBackup.php => plg_system_mokosuitebackup/src/Extension/MokoSuiteBackup.php} (85%) rename source/packages/{plg_system_mokojoombackup => plg_system_mokosuitebackup}/src/Extension/index.html (100%) rename source/packages/{plg_system_mokojoombackup => plg_system_mokosuitebackup}/src/index.html (100%) delete mode 100644 source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.ini delete mode 100644 source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.sys.ini delete mode 100644 source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.ini delete mode 100644 source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.sys.ini rename source/packages/{plg_task_mokojoombackup => plg_task_mokosuitebackup}/forms/index.html (100%) rename source/packages/{plg_task_mokojoombackup => plg_task_mokosuitebackup}/forms/run_profile.xml (74%) rename source/packages/{plg_task_mokojoombackup => plg_task_mokosuitebackup}/index.html (100%) rename source/packages/{plg_task_mokojoombackup => plg_task_mokosuitebackup}/language/en-GB/index.html (100%) create mode 100644 source/packages/plg_task_mokosuitebackup/language/en-GB/plg_task_mokosuitebackup.ini create mode 100644 source/packages/plg_task_mokosuitebackup/language/en-GB/plg_task_mokosuitebackup.sys.ini rename source/packages/{plg_task_mokojoombackup => plg_task_mokosuitebackup}/language/en-US/index.html (100%) create mode 100644 source/packages/plg_task_mokosuitebackup/language/en-US/plg_task_mokosuitebackup.ini create mode 100644 source/packages/plg_task_mokosuitebackup/language/en-US/plg_task_mokosuitebackup.sys.ini rename source/packages/{plg_task_mokojoombackup => plg_task_mokosuitebackup}/language/index.html (100%) rename source/packages/{plg_task_mokojoombackup/mokojoombackup.php => plg_task_mokosuitebackup/mokosuitebackup.php} (77%) rename source/packages/{plg_task_mokojoombackup/mokojoombackup.xml => plg_task_mokosuitebackup/mokosuitebackup.xml} (64%) rename source/packages/{plg_task_mokojoombackup => plg_task_mokosuitebackup}/services/index.html (100%) rename source/packages/{plg_task_mokojoombackup => plg_task_mokosuitebackup}/services/provider.php (76%) rename source/packages/{plg_task_mokojoombackup/src/Extension/MokoJoomBackupTask.php => plg_task_mokosuitebackup/src/Extension/MokoSuiteBackupTask.php} (78%) rename source/packages/{plg_task_mokojoombackup => plg_task_mokosuitebackup}/src/Extension/index.html (100%) rename source/packages/{plg_task_mokojoombackup => plg_task_mokosuitebackup}/src/index.html (100%) delete mode 100644 source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.sys.ini delete mode 100644 source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.sys.ini delete mode 100644 source/packages/plg_webservices_mokojoombackup/mokojoombackup.php delete mode 100644 source/packages/plg_webservices_mokojoombackup/services/provider.php rename source/packages/{plg_webservices_mokojoombackup => plg_webservices_mokosuitebackup}/index.html (100%) rename source/packages/{plg_webservices_mokojoombackup => plg_webservices_mokosuitebackup}/language/en-GB/index.html (100%) rename source/packages/{plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.ini => plg_webservices_mokosuitebackup/language/en-GB/plg_webservices_mokosuitebackup.ini} (53%) create mode 100644 source/packages/plg_webservices_mokosuitebackup/language/en-GB/plg_webservices_mokosuitebackup.sys.ini rename source/packages/{plg_webservices_mokojoombackup => plg_webservices_mokosuitebackup}/language/en-US/index.html (100%) rename source/packages/{plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.ini => plg_webservices_mokosuitebackup/language/en-US/plg_webservices_mokosuitebackup.ini} (53%) create mode 100644 source/packages/plg_webservices_mokosuitebackup/language/en-US/plg_webservices_mokosuitebackup.sys.ini rename source/packages/{plg_webservices_mokojoombackup => plg_webservices_mokosuitebackup}/language/index.html (100%) create mode 100644 source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.php rename source/packages/{plg_webservices_mokojoombackup/mokojoombackup.xml => plg_webservices_mokosuitebackup/mokosuitebackup.xml} (62%) rename source/packages/{plg_webservices_mokojoombackup => plg_webservices_mokosuitebackup}/services/index.html (100%) create mode 100644 source/packages/plg_webservices_mokosuitebackup/services/provider.php rename source/packages/{plg_webservices_mokojoombackup/src/Extension/MokoJoomBackupWebServices.php => plg_webservices_mokosuitebackup/src/Extension/MokoSuiteBackupWebServices.php} (58%) rename source/packages/{plg_webservices_mokojoombackup => plg_webservices_mokosuitebackup}/src/Extension/index.html (100%) rename source/packages/{plg_webservices_mokojoombackup => plg_webservices_mokosuitebackup}/src/index.html (100%) delete mode 100644 source/pkg_mokojoombackup.xml create mode 100644 source/pkg_mokosuitebackup.xml diff --git a/.mokogitea/CLAUDE.md b/.mokogitea/CLAUDE.md index 62e02cc..c3ba57e 100644 --- a/.mokogitea/CLAUDE.md +++ b/.mokogitea/CLAUDE.md @@ -1,4 +1,4 @@ -# MokoJoomBackup +# MokoSuiteBackup Full-site backup and restore for Joomla — database, files, and configuration. Replaces Akeeba Backup Pro. @@ -6,10 +6,10 @@ Full-site backup and restore for Joomla — database, files, and configuration. | Field | Value | |---|---| -| **Package** | `pkg_mokojoombackup` | +| **Package** | `pkg_mokosuitebackup` | | **Language** | PHP 8.1+ | | **Branch** | develop on `dev`, merge to `main` (protected) | -| **Wiki** | [MokoJoomBackup Wiki](https://git.mokoconsulting.tech/MokoConsulting/MokoJoomBackup/wiki) | +| **Wiki** | [MokoSuiteBackup Wiki](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup/wiki) | ## Commands @@ -26,32 +26,32 @@ composer install # Install PHP dependencies Joomla **package** with four sub-extensions: -### com_mokojoombackup (Component) +### com_mokosuitebackup (Component) - Admin backend for managing backup profiles and records - Backup engine: `Engine/BackupEngine`, `Engine/DatabaseDumper`, `Engine/FileScanner`, `Engine/Archiver` - Joomla 4/5 MVC: Controllers, Models, Views, Tables -- Namespace: `Joomla\Component\MokoJoomBackup\Administrator` -- DB tables: `#__mokojoombackup_profiles`, `#__mokojoombackup_records` -- CLI: `cli/mokojoombackup.php` for cron-based backups +- Namespace: `Joomla\Component\MokoSuiteBackup\Administrator` +- DB tables: `#__mokosuitebackup_profiles`, `#__mokosuitebackup_records` +- CLI: `cli/mokosuitebackup.php` for cron-based backups -### plg_system_mokojoombackup (System Plugin) +### plg_system_mokosuitebackup (System Plugin) - Cleanup of expired backup archives (age + count limits) -- Namespace: `Joomla\Plugin\System\MokoJoomBackup` +- Namespace: `Joomla\Plugin\System\MokoSuiteBackup` -### plg_task_mokojoombackup (Task Plugin) +### plg_task_mokosuitebackup (Task Plugin) - Integrates with Joomla's Scheduled Tasks (com_scheduler) - Registers "Run Backup Profile" task type -- Namespace: `Joomla\Plugin\Task\MokoJoomBackup` +- Namespace: `Joomla\Plugin\Task\MokoSuiteBackup` -### plg_webservices_mokojoombackup (WebServices Plugin) -- REST API for remote backup management (wire-compatible with mcp_mokojoombackup) +### plg_webservices_mokosuitebackup (WebServices Plugin) +- REST API for remote backup management (wire-compatible with mcp_mokosuitebackup) - Endpoints: backup, backups, profiles, download, delete -- Namespace: `Joomla\Plugin\WebServices\MokoJoomBackup` +- Namespace: `Joomla\Plugin\WebServices\MokoSuiteBackup` ### Database Schema -- `#__mokojoombackup_profiles` — backup profiles (name, description, config JSON, filters JSON) -- `#__mokojoombackup_records` — backup records (profile_id, status, origin, archive path, sizes, timestamps) +- `#__mokosuitebackup_profiles` — backup profiles (name, description, config JSON, filters JSON) +- `#__mokosuitebackup_records` — backup records (profile_id, status, origin, archive path, sizes, timestamps) ## Rules diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml index cdb66f8..2c6b0c5 100644 --- a/.mokogitea/manifest.xml +++ b/.mokogitea/manifest.xml @@ -1,8 +1,8 @@ - MokoJoomBackup - Package - MokoJoomBackup + MokoSuiteBackup + Package - MokoSuiteBackup MokoConsulting Full-site backup and restore for Joomla — database, files, and configuration 01.08.01-dev diff --git a/.mokogitea/workflows/rc-revert.yml b/.mokogitea/workflows/rc-revert.yml new file mode 100644 index 0000000..f54b184 --- /dev/null +++ b/.mokogitea/workflows/rc-revert.yml @@ -0,0 +1,66 @@ +# Copyright (C) 2026 Moko Consulting +# +# SPDX-License-Identifier: GPL-3.0-or-later +# +# FILE INFORMATION +# DEFGROUP: Gitea.Workflow +# INGROUP: MokoPlatform.Universal +# REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform +# PATH: /.mokogitea/workflows/rc-revert.yml +# VERSION: 09.23.00 +# BRIEF: Rename rc/ branch back to dev/ when PR is closed without merge + +name: "RC Revert" + +on: + pull_request: + types: [closed] + +env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + +jobs: + revert: + name: Rename rc/ back to dev/ + runs-on: ubuntu-latest + if: >- + github.event.pull_request.merged == false && + startsWith(github.event.pull_request.head.ref, 'rc/') + + steps: + - name: Rename branch + run: | + BRANCH="${{ github.event.pull_request.head.ref }}" + SUFFIX="${BRANCH#rc/}" + DEV_BRANCH="dev/${SUFFIX}" + API="${{ vars.GITEA_URL || 'https://git.mokoconsulting.tech' }}/api/v1/repos/${{ github.repository }}/branches" + TOKEN="${{ secrets.MOKOGITEA_TOKEN }}" + + # Create dev/ branch from rc/ branch + STATUS=$(curl -sf -o /dev/null -w "%{http_code}" -X POST \ + -H "Authorization: token ${TOKEN}" \ + -H "Content-Type: application/json" \ + -d "{\"new_branch_name\": \"${DEV_BRANCH}\", \"old_branch_name\": \"${BRANCH}\"}" \ + "${API}" 2>/dev/null || true) + + if [ "$STATUS" = "201" ]; then + echo "Created branch: ${DEV_BRANCH}" >> $GITHUB_STEP_SUMMARY + else + echo "::error::Failed to create ${DEV_BRANCH} from ${BRANCH} (HTTP ${STATUS})" + exit 1 + fi + + # Delete rc/ branch + ENCODED=$(php -r "echo rawurlencode('${BRANCH}');") + STATUS=$(curl -sf -o /dev/null -w "%{http_code}" -X DELETE \ + -H "Authorization: token ${TOKEN}" \ + "${API}/${ENCODED}" 2>/dev/null || true) + + if [ "$STATUS" = "204" ]; then + echo "Deleted branch: ${BRANCH}" >> $GITHUB_STEP_SUMMARY + else + echo "::warning::Failed to delete ${BRANCH} (HTTP ${STATUS})" + fi + + echo "### RC Reverted" >> $GITHUB_STEP_SUMMARY + echo "${BRANCH} → ${DEV_BRANCH}" >> $GITHUB_STEP_SUMMARY diff --git a/CHANGELOG.md b/CHANGELOG.md index 709e7a8..cbc3d49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,13 +12,13 @@ ### Added - Dashboard submenu entry as default landing page with `class:home` icon -- `[DEFAULT_DIR]` placeholder for portable backup directory configuration — resolves to `administrator/components/com_mokojoombackup/backups` at runtime +- `[DEFAULT_DIR]` placeholder for portable backup directory configuration — resolves to `administrator/components/com_mokosuitebackup/backups` at runtime - Live AJAX directory validation on backup_dir field — checks existence, writability, and placeholder resolution as user types (debounced 400ms) - `checkDir` AJAX 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 `.htaccess` and `index.html` protection for web-accessible backup directories on profile save and at backup time -- Font Awesome 6 submenu icons via CSS injection in `MokoJoomBackupComponent::boot()` +- Font Awesome 6 submenu icons via CSS injection in `MokoSuiteBackupComponent::boot()` - `syncMenuIcons()` installer postflight — syncs icon classes to `#__menu` on install and update - `encryptionPassword` property on `SteppedSession` for upcoming stepped backup encryption support diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 791100e..9c88371 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ -# Contributing to MokoJoomBackup +# Contributing to MokoSuiteBackup -Thank you for your interest in contributing to MokoJoomBackup. +Thank you for your interest in contributing to MokoSuiteBackup. ## Getting Started @@ -27,7 +27,7 @@ Thank you for your interest in contributing to MokoJoomBackup. ## Reporting Issues -Report bugs and feature requests via [Issues](https://git.mokoconsulting.tech/MokoConsulting/MokoJoomBackup/issues). +Report bugs and feature requests via [Issues](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup/issues). ## License diff --git a/Makefile b/Makefile index bafba81..3ab13af 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ # Copyright (C) 2026 Moko Consulting # SPDX-License-Identifier: GPL-3.0-or-later # -# MokoJoomBackup — Full-site backup and restore for Joomla +# MokoSuiteBackup — Full-site backup and restore for Joomla # # Builds and releases are handled by CI workflows (pre-release.yml, # auto-release.yml). This Makefile provides local validation helpers @@ -12,7 +12,7 @@ # CONFIGURATION # ============================================================================== -EXTENSION_NAME := mokojoombackup +EXTENSION_NAME := mokosuitebackup EXTENSION_TYPE := package SRC_DIR := source @@ -20,7 +20,7 @@ SRC_DIR := source # Gitea GITEA_URL := https://git.mokoconsulting.tech GITEA_ORG := MokoConsulting -GITEA_REPO := MokoJoomBackup +GITEA_REPO := MokoSuiteBackup # Tools PHP := php @@ -44,7 +44,7 @@ COLOR_RED := \033[31m .PHONY: help help: ## Show this help message @echo "$(COLOR_BLUE)╔════════════════════════════════════════════════════════════╗$(COLOR_RESET)" - @echo "$(COLOR_BLUE)║ MokoJoomBackup Makefile ║$(COLOR_RESET)" + @echo "$(COLOR_BLUE)║ MokoSuiteBackup Makefile ║$(COLOR_RESET)" @echo "$(COLOR_BLUE)╚════════════════════════════════════════════════════════════╝$(COLOR_RESET)" @echo "" @echo "$(COLOR_GREEN)Available targets:$(COLOR_RESET)" @@ -158,7 +158,7 @@ release-rc: validate validate-xml ## Trigger release-candidate build via CI work .PHONY: version version: ## Display version from package manifest - @VERSION=$$(grep '' $(SRC_DIR)/pkg_mokojoombackup.xml | sed 's/.*\(.*\)<\/version>.*/\1/'); \ + @VERSION=$$(grep '' $(SRC_DIR)/pkg_mokosuitebackup.xml | sed 's/.*\(.*\)<\/version>.*/\1/'); \ echo "$(COLOR_BLUE)$(EXTENSION_NAME)$(COLOR_RESET) v$$VERSION ($(EXTENSION_TYPE))" # Default target diff --git a/README.md b/README.md index f732db9..81d73e8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# MokoJoomBackup +# MokoSuiteBackup @@ -6,7 +6,7 @@ Full-site backup and restore for Joomla — database, files, and configuration. ## Overview -MokoJoomBackup is a comprehensive backup solution for Joomla 4/5/6 sites. It creates complete site backups including the database, files, and configuration, packaged into downloadable ZIP archives. Supports multiple backup profiles, scheduled backups via CLI/cron, and a REST API for remote management. +MokoSuiteBackup is a comprehensive backup solution for Joomla 4/5/6 sites. It creates complete site backups including the database, files, and configuration, packaged into downloadable ZIP archives. Supports multiple backup profiles, scheduled backups via CLI/cron, and a REST API for remote management. ## Features @@ -25,13 +25,13 @@ MokoJoomBackup is a comprehensive backup solution for Joomla 4/5/6 sites. It cre ## Installation -1. Download `pkg_mokobackup-*.zip` from [Releases](https://git.mokoconsulting.tech/MokoConsulting/MokoJoomBackup/releases) +1. Download `pkg_mokobackup-*.zip` from [Releases](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup/releases) 2. Joomla Administrator > Extensions > Install 3. System plugin enabled automatically on install ## Configuration -- **Component**: Administrator > Components > MokoJoomBackup +- **Component**: Administrator > Components > MokoSuiteBackup - **Profiles**: Create backup profiles with different file/database filters - **System Plugin**: Configure scheduled backup triggers and notifications - **CLI**: `php cli/mokobackup.php --profile=1` for cron-based backups diff --git a/source/language/en-GB/pkg_mokojoombackup.sys.ini b/source/language/en-GB/pkg_mokojoombackup.sys.ini deleted file mode 100644 index bf27f12..0000000 --- a/source/language/en-GB/pkg_mokojoombackup.sys.ini +++ /dev/null @@ -1,10 +0,0 @@ -; MokoJoomBackup — Package language file (en-GB) -; @package MokoJoomBackup -; @author Moko Consulting -; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. -; @license GPL-3.0-or-later - -PKG_MOKOJOOMBACKUP="Package - MokoJoomBackup" -PKG_MOKOJOOMBACKUP_DESCRIPTION="Full-site backup and restore for Joomla — database, files, and configuration. Includes admin component, system plugin, and REST API." -PKG_MOKOJOOMBACKUP_PHP_VERSION_ERROR="MokoJoomBackup requires PHP %s or later." -PKG_MOKOJOOMBACKUP_POSTINSTALL_UPDATE_SITE="MokoJoomBackup installed successfully. Configure your Update Site to receive automatic updates." diff --git a/source/language/en-GB/pkg_mokosuitebackup.sys.ini b/source/language/en-GB/pkg_mokosuitebackup.sys.ini new file mode 100644 index 0000000..8868c02 --- /dev/null +++ b/source/language/en-GB/pkg_mokosuitebackup.sys.ini @@ -0,0 +1,10 @@ +; MokoSuiteBackup — Package language file (en-GB) +; @package MokoSuiteBackup +; @author Moko Consulting +; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. +; @license GPL-3.0-or-later + +PKG_MOKOJOOMBACKUP="Package - MokoSuiteBackup" +PKG_MOKOJOOMBACKUP_DESCRIPTION="Full-site backup and restore for Joomla — database, files, and configuration. Includes admin component, system plugin, and REST API." +PKG_MOKOJOOMBACKUP_PHP_VERSION_ERROR="MokoSuiteBackup requires PHP %s or later." +PKG_MOKOJOOMBACKUP_POSTINSTALL_UPDATE_SITE="MokoSuiteBackup installed successfully. Configure your Update Site to receive automatic updates." diff --git a/source/language/en-US/pkg_mokojoombackup.sys.ini b/source/language/en-US/pkg_mokojoombackup.sys.ini deleted file mode 100644 index 07d63b6..0000000 --- a/source/language/en-US/pkg_mokojoombackup.sys.ini +++ /dev/null @@ -1,10 +0,0 @@ -; MokoJoomBackup — Package language file (en-US) -; @package MokoJoomBackup -; @author Moko Consulting -; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. -; @license GPL-3.0-or-later - -PKG_MOKOJOOMBACKUP="Package - MokoJoomBackup" -PKG_MOKOJOOMBACKUP_DESCRIPTION="Full-site backup and restore for Joomla — database, files, and configuration. Includes admin component, system plugin, and REST API." -PKG_MOKOJOOMBACKUP_PHP_VERSION_ERROR="MokoJoomBackup requires PHP %s or later." -PKG_MOKOJOOMBACKUP_POSTINSTALL_UPDATE_SITE="MokoJoomBackup installed successfully. Configure your Update Site to receive automatic updates." diff --git a/source/language/en-US/pkg_mokosuitebackup.sys.ini b/source/language/en-US/pkg_mokosuitebackup.sys.ini new file mode 100644 index 0000000..a0db20e --- /dev/null +++ b/source/language/en-US/pkg_mokosuitebackup.sys.ini @@ -0,0 +1,10 @@ +; MokoSuiteBackup — Package language file (en-US) +; @package MokoSuiteBackup +; @author Moko Consulting +; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. +; @license GPL-3.0-or-later + +PKG_MOKOJOOMBACKUP="Package - MokoSuiteBackup" +PKG_MOKOJOOMBACKUP_DESCRIPTION="Full-site backup and restore for Joomla — database, files, and configuration. Includes admin component, system plugin, and REST API." +PKG_MOKOJOOMBACKUP_PHP_VERSION_ERROR="MokoSuiteBackup requires PHP %s or later." +PKG_MOKOJOOMBACKUP_POSTINSTALL_UPDATE_SITE="MokoSuiteBackup installed successfully. Configure your Update Site to receive automatic updates." diff --git a/source/packages/com_mokojoombackup/sql/uninstall.mysql.sql b/source/packages/com_mokojoombackup/sql/uninstall.mysql.sql deleted file mode 100644 index 974f591..0000000 --- a/source/packages/com_mokojoombackup/sql/uninstall.mysql.sql +++ /dev/null @@ -1,2 +0,0 @@ -DROP TABLE IF EXISTS `#__mokojoombackup_records`; -DROP TABLE IF EXISTS `#__mokojoombackup_profiles`; diff --git a/source/packages/com_mokojoombackup/sql/updates/mysql/01.01.01.sql b/source/packages/com_mokojoombackup/sql/updates/mysql/01.01.01.sql deleted file mode 100644 index ec8fb68..0000000 --- a/source/packages/com_mokojoombackup/sql/updates/mysql/01.01.01.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `#__mokojoombackup_profiles` CHANGE `include_kickstart` `include_mokorestore` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Include MokoRestore standalone restore script in archive'; diff --git a/source/packages/com_mokojoombackup/sql/updates/mysql/01.01.02.sql b/source/packages/com_mokojoombackup/sql/updates/mysql/01.01.02.sql deleted file mode 100644 index 8b86fb7..0000000 --- a/source/packages/com_mokojoombackup/sql/updates/mysql/01.01.02.sql +++ /dev/null @@ -1,12 +0,0 @@ --- MokoJoomBackup 01.01.02 --- Consolidated schema updates: NULL defaults, notifications, archive name format - --- Fix: allow NULL defaults for manifest and log columns -ALTER TABLE `#__mokojoombackup_records` MODIFY `manifest` LONGTEXT DEFAULT NULL; -ALTER TABLE `#__mokojoombackup_records` MODIFY `log` MEDIUMTEXT DEFAULT NULL; - --- Add user group notifications column to profiles -ALTER TABLE `#__mokojoombackup_profiles` ADD COLUMN `notify_user_groups` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Comma-separated Joomla user group IDs' AFTER `notify_email`; - --- Add archive_name_format column with placeholder support -ALTER TABLE `#__mokojoombackup_profiles` ADD COLUMN `archive_name_format` VARCHAR(512) NOT NULL DEFAULT '[host]_[datetime]_profile[profile_id]' COMMENT 'Filename format with placeholders' AFTER `backup_dir`; diff --git a/source/packages/com_mokojoombackup/src/Extension/MokoJoomBackupComponent.php b/source/packages/com_mokojoombackup/src/Extension/MokoJoomBackupComponent.php deleted file mode 100644 index 10cd7f0..0000000 --- a/source/packages/com_mokojoombackup/src/Extension/MokoJoomBackupComponent.php +++ /dev/null @@ -1,45 +0,0 @@ - - * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. - * @license GNU General Public License version 3 or later; see LICENSE - */ - -namespace Joomla\Component\MokoJoomBackup\Administrator\Extension; - -defined('_JEXEC') or die; - -use Joomla\CMS\Extension\MVCComponent; -use Joomla\CMS\Factory; - -class MokoJoomBackupComponent extends MVCComponent -{ - public function boot(): void - { - parent::boot(); - - try { - $app = Factory::getApplication(); - - if (!$app->isClient('administrator')) { - return; - } - - $wa = $app->getDocument()->getWebAssetManager(); - $wa->addInlineStyle( - '#menu a[href*="com_mokojoombackup"][href*="view=dashboard"] .sidebar-item-title::before,' - . ' #menu a[href*="com_mokojoombackup"][href*="view=backups"] .sidebar-item-title::before,' - . ' #menu a[href*="com_mokojoombackup"][href*="view=profiles"] .sidebar-item-title::before' - . ' { font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: .5em; }' - . ' #menu a[href*="com_mokojoombackup"][href*="view=dashboard"] .sidebar-item-title::before { content: "\f015"; }' - . ' #menu a[href*="com_mokojoombackup"][href*="view=backups"] .sidebar-item-title::before { content: "\f1c0"; }' - . ' #menu a[href*="com_mokojoombackup"][href*="view=profiles"] .sidebar-item-title::before { content: "\f013"; }' - ); - } catch (\Throwable $e) { - error_log('MokoJoomBackup: boot() CSS injection failed: ' . $e->getMessage()); - } - } -} diff --git a/source/packages/com_mokojoombackup/api/index.html b/source/packages/com_mokosuitebackup/api/index.html similarity index 100% rename from source/packages/com_mokojoombackup/api/index.html rename to source/packages/com_mokosuitebackup/api/index.html diff --git a/source/packages/com_mokojoombackup/api/src/Controller/BackupsController.php b/source/packages/com_mokosuitebackup/api/src/Controller/BackupsController.php similarity index 82% rename from source/packages/com_mokojoombackup/api/src/Controller/BackupsController.php rename to source/packages/com_mokosuitebackup/api/src/Controller/BackupsController.php index 1f5b829..79ebb1a 100644 --- a/source/packages/com_mokojoombackup/api/src/Controller/BackupsController.php +++ b/source/packages/com_mokosuitebackup/api/src/Controller/BackupsController.php @@ -1,19 +1,19 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Api\Controller; +namespace Joomla\Component\MokoSuiteBackup\Api\Controller; defined('_JEXEC') or die; use Joomla\CMS\MVC\Controller\ApiController; -use Joomla\Component\MokoJoomBackup\Administrator\Engine\BackupEngine; +use Joomla\Component\MokoSuiteBackup\Administrator\Engine\BackupEngine; class BackupsController extends ApiController { @@ -21,7 +21,7 @@ class BackupsController extends ApiController protected $default_view = 'backups'; /** - * Start a new backup (POST /api/index.php/v1/mokojoombackup/backup) + * Start a new backup (POST /api/index.php/v1/mokosuitebackup/backup) */ public function backup(): static { @@ -47,7 +47,7 @@ class BackupsController extends ApiController } /** - * Download a backup archive (GET /api/index.php/v1/mokojoombackup/backup/:id/download) + * Download a backup archive (GET /api/index.php/v1/mokosuitebackup/backup/:id/download) */ public function download(): static { @@ -74,7 +74,7 @@ class BackupsController extends ApiController } /** - * List backup profiles (GET /api/index.php/v1/mokojoombackup/profiles) + * List backup profiles (GET /api/index.php/v1/mokosuitebackup/profiles) */ public function profiles(): static { diff --git a/source/packages/com_mokojoombackup/api/src/Controller/index.html b/source/packages/com_mokosuitebackup/api/src/Controller/index.html similarity index 100% rename from source/packages/com_mokojoombackup/api/src/Controller/index.html rename to source/packages/com_mokosuitebackup/api/src/Controller/index.html diff --git a/source/packages/com_mokojoombackup/api/src/View/Backups/JsonapiView.php b/source/packages/com_mokosuitebackup/api/src/View/Backups/JsonapiView.php similarity index 87% rename from source/packages/com_mokojoombackup/api/src/View/Backups/JsonapiView.php rename to source/packages/com_mokosuitebackup/api/src/View/Backups/JsonapiView.php index f39925f..147fe92 100644 --- a/source/packages/com_mokojoombackup/api/src/View/Backups/JsonapiView.php +++ b/source/packages/com_mokosuitebackup/api/src/View/Backups/JsonapiView.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Api\View\Backups; +namespace Joomla\Component\MokoSuiteBackup\Api\View\Backups; defined('_JEXEC') or die; diff --git a/source/packages/com_mokojoombackup/api/src/View/Backups/index.html b/source/packages/com_mokosuitebackup/api/src/View/Backups/index.html similarity index 100% rename from source/packages/com_mokojoombackup/api/src/View/Backups/index.html rename to source/packages/com_mokosuitebackup/api/src/View/Backups/index.html diff --git a/source/packages/com_mokojoombackup/api/src/View/index.html b/source/packages/com_mokosuitebackup/api/src/View/index.html similarity index 100% rename from source/packages/com_mokojoombackup/api/src/View/index.html rename to source/packages/com_mokosuitebackup/api/src/View/index.html diff --git a/source/packages/com_mokojoombackup/api/src/index.html b/source/packages/com_mokosuitebackup/api/src/index.html similarity index 100% rename from source/packages/com_mokojoombackup/api/src/index.html rename to source/packages/com_mokosuitebackup/api/src/index.html diff --git a/source/packages/com_mokojoombackup/cli/index.html b/source/packages/com_mokosuitebackup/cli/index.html similarity index 100% rename from source/packages/com_mokojoombackup/cli/index.html rename to source/packages/com_mokosuitebackup/cli/index.html diff --git a/source/packages/com_mokojoombackup/cli/mokojoombackup.php b/source/packages/com_mokosuitebackup/cli/mokosuitebackup.php similarity index 85% rename from source/packages/com_mokojoombackup/cli/mokojoombackup.php rename to source/packages/com_mokosuitebackup/cli/mokosuitebackup.php index 9135706..29f1c93 100644 --- a/source/packages/com_mokojoombackup/cli/mokojoombackup.php +++ b/source/packages/com_mokosuitebackup/cli/mokosuitebackup.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -10,7 +10,7 @@ * CLI backup script for cron/scheduled use. * * Usage: - * php cli/mokojoombackup.php --profile=1 --description="Scheduled backup" + * php cli/mokosuitebackup.php --profile=1 --description="Scheduled backup" * * Must be run from the Joomla root directory. */ @@ -30,7 +30,7 @@ if (!defined('JPATH_BASE')) { require_once JPATH_BASE . '/includes/framework.php'; use Joomla\CMS\Factory; -use Joomla\Component\MokoJoomBackup\Administrator\Engine\BackupEngine; +use Joomla\Component\MokoSuiteBackup\Administrator\Engine\BackupEngine; // Parse CLI arguments $profileId = 1; @@ -51,7 +51,7 @@ if (empty($description)) { // Boot the application $app = Factory::getApplication('administrator'); -echo "MokoJoomBackup CLI\n"; +echo "MokoSuiteBackup CLI\n"; echo "Profile: {$profileId}\n"; echo "Description: {$description}\n"; echo "Starting backup...\n\n"; diff --git a/source/packages/com_mokojoombackup/config.xml b/source/packages/com_mokosuitebackup/config.xml similarity index 90% rename from source/packages/com_mokojoombackup/config.xml rename to source/packages/com_mokosuitebackup/config.xml index 98c5a0d..7cee4ac 100644 --- a/source/packages/com_mokojoombackup/config.xml +++ b/source/packages/com_mokosuitebackup/config.xml @@ -1,7 +1,7 @@ - com_mokojoombackup - 01.08.01-dev + com_mokosuitebackup + 01.07.00 2026-06-02 Moko Consulting hello@mokoconsulting.tech @@ -17,7 +17,7 @@ GPL-3.0-or-later COM_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Component\MokoJoomBackup + Joomla\Component\MokoSuiteBackup @@ -40,9 +40,9 @@ COM_MOKOJOOMBACKUP - COM_MOKOJOOMBACKUP_SUBMENU_DASHBOARD - COM_MOKOJOOMBACKUP_SUBMENU_BACKUPS - COM_MOKOJOOMBACKUP_SUBMENU_PROFILES + COM_MOKOJOOMBACKUP_SUBMENU_DASHBOARD + COM_MOKOJOOMBACKUP_SUBMENU_BACKUPS + COM_MOKOJOOMBACKUP_SUBMENU_PROFILES cli @@ -53,8 +53,8 @@ tmpl - en-GB/com_mokojoombackup.ini - en-GB/com_mokojoombackup.sys.ini + en-GB/com_mokosuitebackup.ini + en-GB/com_mokosuitebackup.sys.ini diff --git a/source/packages/com_mokojoombackup/services/index.html b/source/packages/com_mokosuitebackup/services/index.html similarity index 100% rename from source/packages/com_mokojoombackup/services/index.html rename to source/packages/com_mokosuitebackup/services/index.html diff --git a/source/packages/com_mokojoombackup/services/provider.php b/source/packages/com_mokosuitebackup/services/provider.php similarity index 79% rename from source/packages/com_mokojoombackup/services/provider.php rename to source/packages/com_mokosuitebackup/services/provider.php index af40114..58a3949 100644 --- a/source/packages/com_mokojoombackup/services/provider.php +++ b/source/packages/com_mokosuitebackup/services/provider.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -15,20 +15,20 @@ use Joomla\CMS\Extension\ComponentInterface; use Joomla\CMS\Extension\Service\Provider\ComponentDispatcherFactory; use Joomla\CMS\Extension\Service\Provider\MVCFactory; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; -use Joomla\Component\MokoJoomBackup\Administrator\Extension\MokoJoomBackupComponent; +use Joomla\Component\MokoSuiteBackup\Administrator\Extension\MokoSuiteBackupComponent; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; return new class () implements ServiceProviderInterface { public function register(Container $container): void { - $container->registerServiceProvider(new MVCFactory('\\Joomla\\Component\\MokoJoomBackup')); - $container->registerServiceProvider(new ComponentDispatcherFactory('\\Joomla\\Component\\MokoJoomBackup')); + $container->registerServiceProvider(new MVCFactory('\\Joomla\\Component\\MokoSuiteBackup')); + $container->registerServiceProvider(new ComponentDispatcherFactory('\\Joomla\\Component\\MokoSuiteBackup')); $container->set( ComponentInterface::class, function (Container $container) { - $component = new MokoJoomBackupComponent( + $component = new MokoSuiteBackupComponent( $container->get(ComponentDispatcherFactoryInterface::class) ); $component->setMVCFactory($container->get(MVCFactoryInterface::class)); diff --git a/source/packages/com_mokojoombackup/sql/index.html b/source/packages/com_mokosuitebackup/sql/index.html similarity index 100% rename from source/packages/com_mokojoombackup/sql/index.html rename to source/packages/com_mokosuitebackup/sql/index.html diff --git a/source/packages/com_mokojoombackup/sql/install.mysql.sql b/source/packages/com_mokosuitebackup/sql/install.mysql.sql similarity index 93% rename from source/packages/com_mokojoombackup/sql/install.mysql.sql rename to source/packages/com_mokosuitebackup/sql/install.mysql.sql index 47a5427..94b07d7 100644 --- a/source/packages/com_mokojoombackup/sql/install.mysql.sql +++ b/source/packages/com_mokosuitebackup/sql/install.mysql.sql @@ -1,4 +1,4 @@ -CREATE TABLE IF NOT EXISTS `#__mokojoombackup_profiles` ( +CREATE TABLE IF NOT EXISTS `#__mokosuitebackup_profiles` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `title` VARCHAR(255) NOT NULL DEFAULT '', `description` TEXT NOT NULL, @@ -6,7 +6,7 @@ CREATE TABLE IF NOT EXISTS `#__mokojoombackup_profiles` ( `archive_format` VARCHAR(10) NOT NULL DEFAULT 'zip', `compression_level` TINYINT(1) UNSIGNED NOT NULL DEFAULT 5 COMMENT '0=none, 9=max', `split_size` INT(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '0=no split, otherwise MB per part', - `backup_dir` VARCHAR(512) NOT NULL DEFAULT 'administrator/components/com_mokojoombackup/backups', + `backup_dir` VARCHAR(512) NOT NULL DEFAULT 'administrator/components/com_mokosuitebackup/backups', `archive_name_format` VARCHAR(512) NOT NULL DEFAULT '[host]_[datetime]_profile[profile_id]' COMMENT 'Filename format with placeholders', `exclude_dirs` TEXT NOT NULL COMMENT 'Newline-separated directory paths to exclude', `exclude_files` TEXT NOT NULL COMMENT 'Newline-separated filename patterns to exclude', @@ -44,7 +44,7 @@ CREATE TABLE IF NOT EXISTS `#__mokojoombackup_profiles` ( KEY `idx_published` (`published`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -CREATE TABLE IF NOT EXISTS `#__mokojoombackup_records` ( +CREATE TABLE IF NOT EXISTS `#__mokosuitebackup_records` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `profile_id` INT(11) UNSIGNED NOT NULL DEFAULT 1, `description` VARCHAR(255) NOT NULL DEFAULT '', @@ -74,15 +74,15 @@ CREATE TABLE IF NOT EXISTS `#__mokojoombackup_records` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- Insert default backup profile (IGNORE prevents duplicate key error on update) -INSERT IGNORE INTO `#__mokojoombackup_profiles` ( +INSERT IGNORE INTO `#__mokosuitebackup_profiles` ( `id`, `title`, `description`, `backup_type`, `archive_format`, `compression_level`, `split_size`, `backup_dir`, `exclude_dirs`, `exclude_files`, `exclude_tables`, `published`, `ordering`, `created`, `modified` ) VALUES ( 1, 'Default Backup Profile', 'Full site backup with default settings', 'full', - 'zip', 5, 0, 'administrator/components/com_mokojoombackup/backups', - 'administrator/components/com_mokojoombackup/backups\ntmp\ncache\nlogs\nadministrator/logs', + 'zip', 5, 0, 'administrator/components/com_mokosuitebackup/backups', + 'administrator/components/com_mokosuitebackup/backups\ntmp\ncache\nlogs\nadministrator/logs', '.gitignore\n.htaccess.bak', '#__session', 1, 1, NOW(), NOW() diff --git a/source/packages/com_mokojoombackup/sql/mysql/index.html b/source/packages/com_mokosuitebackup/sql/mysql/index.html similarity index 100% rename from source/packages/com_mokojoombackup/sql/mysql/index.html rename to source/packages/com_mokosuitebackup/sql/mysql/index.html diff --git a/source/packages/com_mokosuitebackup/sql/uninstall.mysql.sql b/source/packages/com_mokosuitebackup/sql/uninstall.mysql.sql new file mode 100644 index 0000000..241bd9b --- /dev/null +++ b/source/packages/com_mokosuitebackup/sql/uninstall.mysql.sql @@ -0,0 +1,2 @@ +DROP TABLE IF EXISTS `#__mokosuitebackup_records`; +DROP TABLE IF EXISTS `#__mokosuitebackup_profiles`; diff --git a/source/packages/com_mokojoombackup/sql/updates/index.html b/source/packages/com_mokosuitebackup/sql/updates/index.html similarity index 100% rename from source/packages/com_mokojoombackup/sql/updates/index.html rename to source/packages/com_mokosuitebackup/sql/updates/index.html diff --git a/source/packages/com_mokojoombackup/sql/updates/mysql/01.00.00.sql b/source/packages/com_mokosuitebackup/sql/updates/mysql/01.00.00.sql similarity index 100% rename from source/packages/com_mokojoombackup/sql/updates/mysql/01.00.00.sql rename to source/packages/com_mokosuitebackup/sql/updates/mysql/01.00.00.sql diff --git a/source/packages/com_mokosuitebackup/sql/updates/mysql/01.01.01.sql b/source/packages/com_mokosuitebackup/sql/updates/mysql/01.01.01.sql new file mode 100644 index 0000000..0c6a473 --- /dev/null +++ b/source/packages/com_mokosuitebackup/sql/updates/mysql/01.01.01.sql @@ -0,0 +1 @@ +ALTER TABLE `#__mokosuitebackup_profiles` CHANGE `include_kickstart` `include_mokorestore` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Include MokoRestore standalone restore script in archive'; diff --git a/source/packages/com_mokosuitebackup/sql/updates/mysql/01.01.02.sql b/source/packages/com_mokosuitebackup/sql/updates/mysql/01.01.02.sql new file mode 100644 index 0000000..9cc869f --- /dev/null +++ b/source/packages/com_mokosuitebackup/sql/updates/mysql/01.01.02.sql @@ -0,0 +1,12 @@ +-- MokoSuiteBackup 01.01.02 +-- Consolidated schema updates: NULL defaults, notifications, archive name format + +-- Fix: allow NULL defaults for manifest and log columns +ALTER TABLE `#__mokosuitebackup_records` MODIFY `manifest` LONGTEXT DEFAULT NULL; +ALTER TABLE `#__mokosuitebackup_records` MODIFY `log` MEDIUMTEXT DEFAULT NULL; + +-- Add user group notifications column to profiles +ALTER TABLE `#__mokosuitebackup_profiles` ADD COLUMN `notify_user_groups` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Comma-separated Joomla user group IDs' AFTER `notify_email`; + +-- Add archive_name_format column with placeholder support +ALTER TABLE `#__mokosuitebackup_profiles` ADD COLUMN `archive_name_format` VARCHAR(512) NOT NULL DEFAULT '[host]_[datetime]_profile[profile_id]' COMMENT 'Filename format with placeholders' AFTER `backup_dir`; diff --git a/source/packages/com_mokojoombackup/sql/updates/mysql/index.html b/source/packages/com_mokosuitebackup/sql/updates/mysql/index.html similarity index 100% rename from source/packages/com_mokojoombackup/sql/updates/mysql/index.html rename to source/packages/com_mokosuitebackup/sql/updates/mysql/index.html diff --git a/source/packages/com_mokojoombackup/src/Controller/AjaxController.php b/source/packages/com_mokosuitebackup/src/Controller/AjaxController.php similarity index 92% rename from source/packages/com_mokojoombackup/src/Controller/AjaxController.php rename to source/packages/com_mokosuitebackup/src/Controller/AjaxController.php index 6b3c3e6..94d5d8b 100644 --- a/source/packages/com_mokojoombackup/src/Controller/AjaxController.php +++ b/source/packages/com_mokosuitebackup/src/Controller/AjaxController.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -11,14 +11,14 @@ * Handles init and step requests from the admin UI JavaScript. */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Controller; defined('_JEXEC') or die; use Joomla\CMS\MVC\Controller\BaseController; use Joomla\CMS\Session\Session; -use Joomla\Component\MokoJoomBackup\Administrator\Engine\SteppedBackupEngine; -use Joomla\Component\MokoJoomBackup\Administrator\Utility\BackupDirectory; +use Joomla\Component\MokoSuiteBackup\Administrator\Engine\SteppedBackupEngine; +use Joomla\Component\MokoSuiteBackup\Administrator\Utility\BackupDirectory; class AjaxController extends BaseController { @@ -86,7 +86,7 @@ class AjaxController extends BaseController // Security: restrict browsing to site root and current user's home $jRoot = realpath(JPATH_ROOT); - $homeDir = getenv('HOME') ?: (getenv('USERPROFILE') ?: ''); + $homeDir = BackupDirectory::getHomeDirectory(); $allowed = false; if ($jRoot !== false && strpos($path, $jRoot) === 0) { @@ -143,7 +143,7 @@ class AjaxController extends BaseController if ($parent !== $path) { if ($jRoot !== false && strpos($parent, $jRoot) === 0) { $parentAllowed = true; - } elseif ($homeDir !== '' && strpos($parent, $homeDir) === 0) { + } elseif ($homeDir !== '' && (strpos($parent, $homeDir) === 0 || $parent === \dirname($homeDir))) { $parentAllowed = true; } } @@ -185,7 +185,7 @@ class AjaxController extends BaseController $db = \Joomla\CMS\Factory::getDbo(); $query = $db->getQuery(true) ->select($db->quoteName(['absolute_path', 'log'])) - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('id') . ' = ' . (int) $id); $db->setQuery($query); $record = $db->loadObject(); @@ -226,7 +226,7 @@ class AjaxController extends BaseController return; } - if (!$this->app->getIdentity()->authorise('core.manage', 'com_mokojoombackup')) { + if (!$this->app->getIdentity()->authorise('core.manage', 'com_mokosuitebackup')) { $this->sendJson(['error' => true, 'message' => 'Access denied']); return; diff --git a/source/packages/com_mokojoombackup/src/Controller/BackupController.php b/source/packages/com_mokosuitebackup/src/Controller/BackupController.php similarity index 74% rename from source/packages/com_mokojoombackup/src/Controller/BackupController.php rename to source/packages/com_mokosuitebackup/src/Controller/BackupController.php index 7844749..0b315de 100644 --- a/source/packages/com_mokojoombackup/src/Controller/BackupController.php +++ b/source/packages/com_mokosuitebackup/src/Controller/BackupController.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Controller; defined('_JEXEC') or die; diff --git a/source/packages/com_mokojoombackup/src/Controller/BackupsController.php b/source/packages/com_mokosuitebackup/src/Controller/BackupsController.php similarity index 80% rename from source/packages/com_mokojoombackup/src/Controller/BackupsController.php rename to source/packages/com_mokosuitebackup/src/Controller/BackupsController.php index c1a99ca..74c4802 100644 --- a/source/packages/com_mokojoombackup/src/Controller/BackupsController.php +++ b/source/packages/com_mokosuitebackup/src/Controller/BackupsController.php @@ -1,21 +1,21 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Controller; defined('_JEXEC') or die; use Joomla\CMS\MVC\Controller\AdminController; use Joomla\CMS\Router\Route; -use Joomla\Component\MokoJoomBackup\Administrator\Engine\BackupEngine; -use Joomla\Component\MokoJoomBackup\Administrator\Engine\RestoreEngine; +use Joomla\Component\MokoSuiteBackup\Administrator\Engine\BackupEngine; +use Joomla\Component\MokoSuiteBackup\Administrator\Engine\RestoreEngine; class BackupsController extends AdminController { @@ -47,7 +47,7 @@ class BackupsController extends AdminController $this->setMessage($result['message'], 'error'); } - $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokosuitebackup&view=backups', false)); } /** @@ -63,7 +63,7 @@ class BackupsController extends AdminController if (!$item || !$item->id || !$item->filesexist || !is_file($item->absolute_path)) { $this->setMessage('COM_MOKOJOOMBACKUP_ERROR_FILE_NOT_FOUND', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokosuitebackup&view=backups', false)); return; } @@ -109,7 +109,7 @@ class BackupsController extends AdminController if (!$id) { $this->setMessage('COM_MOKOJOOMBACKUP_ERROR_NO_RECORD_SELECTED', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokosuitebackup&view=backups', false)); return; } @@ -123,7 +123,7 @@ class BackupsController extends AdminController $this->setMessage($result['message'], 'error'); } - $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokosuitebackup&view=backups', false)); } /** @@ -138,7 +138,7 @@ class BackupsController extends AdminController if (!$id) { $this->setMessage('COM_MOKOJOOMBACKUP_ERROR_NO_RECORD_SELECTED', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokosuitebackup&view=backups', false)); return; } @@ -148,21 +148,21 @@ class BackupsController extends AdminController if (!$item || !$item->id) { $this->setMessage('COM_MOKOJOOMBACKUP_ERROR_NO_RECORD_SELECTED', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokosuitebackup&view=backups', false)); return; } if (!is_file($item->absolute_path)) { $this->setMessage('COM_MOKOJOOMBACKUP_ERROR_FILE_NOT_FOUND', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokosuitebackup&view=backups', false)); return; } if (empty($item->checksum)) { $this->setMessage('COM_MOKOJOOMBACKUP_VERIFY_NO_CHECKSUM', 'warning'); - $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokosuitebackup&view=backups', false)); return; } @@ -175,6 +175,6 @@ class BackupsController extends AdminController $this->setMessage('COM_MOKOJOOMBACKUP_VERIFY_FAILED', 'error'); } - $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokosuitebackup&view=backups', false)); } } diff --git a/source/packages/com_mokojoombackup/src/Controller/DisplayController.php b/source/packages/com_mokosuitebackup/src/Controller/DisplayController.php similarity index 74% rename from source/packages/com_mokojoombackup/src/Controller/DisplayController.php rename to source/packages/com_mokosuitebackup/src/Controller/DisplayController.php index cac40fd..d4a90e0 100644 --- a/source/packages/com_mokojoombackup/src/Controller/DisplayController.php +++ b/source/packages/com_mokosuitebackup/src/Controller/DisplayController.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Controller; defined('_JEXEC') or die; diff --git a/source/packages/com_mokojoombackup/src/Controller/ProfileController.php b/source/packages/com_mokosuitebackup/src/Controller/ProfileController.php similarity index 74% rename from source/packages/com_mokojoombackup/src/Controller/ProfileController.php rename to source/packages/com_mokosuitebackup/src/Controller/ProfileController.php index d7540e8..1186db4 100644 --- a/source/packages/com_mokojoombackup/src/Controller/ProfileController.php +++ b/source/packages/com_mokosuitebackup/src/Controller/ProfileController.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Controller; defined('_JEXEC') or die; diff --git a/source/packages/com_mokojoombackup/src/Controller/ProfilesController.php b/source/packages/com_mokosuitebackup/src/Controller/ProfilesController.php similarity index 88% rename from source/packages/com_mokojoombackup/src/Controller/ProfilesController.php rename to source/packages/com_mokosuitebackup/src/Controller/ProfilesController.php index fa0ad47..b68d713 100644 --- a/source/packages/com_mokojoombackup/src/Controller/ProfilesController.php +++ b/source/packages/com_mokosuitebackup/src/Controller/ProfilesController.php @@ -1,21 +1,21 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Controller; defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\MVC\Controller\AdminController; use Joomla\CMS\Router\Route; -use Joomla\Component\MokoJoomBackup\Administrator\Engine\AkeebaImporter; +use Joomla\Component\MokoSuiteBackup\Administrator\Engine\AkeebaImporter; class ProfilesController extends AdminController { @@ -40,7 +40,7 @@ class ProfilesController extends AdminController if (!$detection['profiles']) { $this->setMessage('COM_MOKOJOOMBACKUP_AKEEBA_NOT_FOUND', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=profiles', false)); + $this->setRedirect(Route::_('index.php?option=com_mokosuitebackup&view=profiles', false)); return; } @@ -55,7 +55,7 @@ class ProfilesController extends AdminController $this->setMessage($result['message'], 'error'); } - $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=profiles', false)); + $this->setRedirect(Route::_('index.php?option=com_mokosuitebackup&view=profiles', false)); } /** diff --git a/source/packages/com_mokojoombackup/src/Controller/index.html b/source/packages/com_mokosuitebackup/src/Controller/index.html similarity index 100% rename from source/packages/com_mokojoombackup/src/Controller/index.html rename to source/packages/com_mokosuitebackup/src/Controller/index.html diff --git a/source/packages/com_mokojoombackup/src/Engine/AkeebaImporter.php b/source/packages/com_mokosuitebackup/src/Engine/AkeebaImporter.php similarity index 95% rename from source/packages/com_mokojoombackup/src/Engine/AkeebaImporter.php rename to source/packages/com_mokosuitebackup/src/Engine/AkeebaImporter.php index 6861c78..5e32b37 100644 --- a/source/packages/com_mokojoombackup/src/Engine/AkeebaImporter.php +++ b/source/packages/com_mokosuitebackup/src/Engine/AkeebaImporter.php @@ -1,16 +1,16 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE * - * Imports Akeeba Backup Pro profiles and backup history into MokoJoomBackup. + * Imports Akeeba Backup Pro profiles and backup history into MokoSuiteBackup. * * Reads from #__ak_profiles and #__ak_stats, maps Akeeba's configuration - * format to MokoJoomBackup's individual column format. + * format to MokoSuiteBackup's individual column format. * * Akeeba config format: * INI-style with dot-notation keys, e.g.: @@ -25,12 +25,12 @@ * "databases": {"include": {...}, "exclude": {...}}} */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; use Joomla\CMS\Factory; -use Joomla\Component\MokoJoomBackup\Administrator\Utility\BackupDirectory; +use Joomla\Component\MokoSuiteBackup\Administrator\Utility\BackupDirectory; class AkeebaImporter { @@ -90,7 +90,7 @@ class AkeebaImporter } /** - * Import all Akeeba profiles into MokoJoomBackup. + * Import all Akeeba profiles into MokoSuiteBackup. * * @param bool $importHistory Also import backup history from #__ak_stats * @@ -120,7 +120,7 @@ class AkeebaImporter $akProfiles = $db->loadObjectList(); $profilesImported = 0; - $profileIdMap = []; // akeeba_id => mokojoombackup_id + $profileIdMap = []; // akeeba_id => mokosuitebackup_id foreach ($akProfiles as $akProfile) { $config = $this->parseAkeebaConfig($akProfile->configuration ?? ''); @@ -128,11 +128,11 @@ class AkeebaImporter $mokoProfile = $this->mapToMokoProfile($akProfile, $config, $filters); - $db->insertObject('#__mokojoombackup_profiles', $mokoProfile, 'id'); + $db->insertObject('#__mokosuitebackup_profiles', $mokoProfile, 'id'); $profileIdMap[$akProfile->id] = $mokoProfile->id; $profilesImported++; - $this->log('Imported profile: "' . $akProfile->description . '" (Akeeba #' . $akProfile->id . ' → MokoJoomBackup #' . $mokoProfile->id . ')'); + $this->log('Imported profile: "' . $akProfile->description . '" (Akeeba #' . $akProfile->id . ' → MokoSuiteBackup #' . $mokoProfile->id . ')'); } // Import backup history @@ -201,7 +201,7 @@ class AkeebaImporter 'log' => 'Imported from Akeeba Backup record #' . $stat->id, ]; - $db->insertObject('#__mokojoombackup_records', $record, 'id'); + $db->insertObject('#__mokosuitebackup_records', $record, 'id'); $imported++; } @@ -211,7 +211,7 @@ class AkeebaImporter } /** - * Map an Akeeba profile to a MokoJoomBackup profile object. + * Map an Akeeba profile to a MokoSuiteBackup profile object. */ private function mapToMokoProfile(object $akProfile, array $config, array $filters): object { diff --git a/source/packages/com_mokojoombackup/src/Engine/ArchiverInterface.php b/source/packages/com_mokosuitebackup/src/Engine/ArchiverInterface.php similarity index 86% rename from source/packages/com_mokojoombackup/src/Engine/ArchiverInterface.php rename to source/packages/com_mokosuitebackup/src/Engine/ArchiverInterface.php index b496059..282f1a8 100644 --- a/source/packages/com_mokojoombackup/src/Engine/ArchiverInterface.php +++ b/source/packages/com_mokosuitebackup/src/Engine/ArchiverInterface.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokojoombackup/src/Engine/BackupEngine.php b/source/packages/com_mokosuitebackup/src/Engine/BackupEngine.php similarity index 94% rename from source/packages/com_mokojoombackup/src/Engine/BackupEngine.php rename to source/packages/com_mokosuitebackup/src/Engine/BackupEngine.php index d9863cf..c4724de 100644 --- a/source/packages/com_mokojoombackup/src/Engine/BackupEngine.php +++ b/source/packages/com_mokosuitebackup/src/Engine/BackupEngine.php @@ -1,19 +1,19 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; use Joomla\CMS\Factory; -use Joomla\Component\MokoJoomBackup\Administrator\Utility\BackupDirectory; +use Joomla\Component\MokoSuiteBackup\Administrator\Utility\BackupDirectory; use Joomla\Event\Event; class BackupEngine @@ -47,7 +47,7 @@ class BackupEngine // Load profile $query = $db->getQuery(true) ->select('*') - ->from($db->quoteName('#__mokojoombackup_profiles')) + ->from($db->quoteName('#__mokosuitebackup_profiles')) ->where($db->quoteName('id') . ' = ' . $profileId); $db->setQuery($query); $profile = $db->loadObject(); @@ -105,7 +105,7 @@ class BackupEngine 'log' => '', ]; - $db->insertObject('#__mokojoombackup_records', $record, 'id'); + $db->insertObject('#__mokosuitebackup_records', $record, 'id'); $recordId = $record->id; try { @@ -249,7 +249,7 @@ class BackupEngine $logContent = implode("\n", $this->log); $logPath = preg_replace('/\.(zip|tar\.gz)$/i', '.log', $archivePath); if (@file_put_contents($logPath, $logContent) === false) { - error_log('MokoJoomBackup: Could not write log file: ' . $logPath); + error_log('MokoSuiteBackup: Could not write log file: ' . $logPath); } // Final record update @@ -268,7 +268,7 @@ class BackupEngine 'log' => $logContent, ]; - $db->updateObject('#__mokojoombackup_records', $update, 'id'); + $db->updateObject('#__mokosuitebackup_records', $update, 'id'); // Send success notification NotificationSender::send($profile, $update, true, implode("\n", $this->log)); @@ -296,7 +296,7 @@ class BackupEngine 'log' => implode("\n", $this->log), ]; - $db->updateObject('#__mokojoombackup_records', $update, 'id'); + $db->updateObject('#__mokosuitebackup_records', $update, 'id'); // Send failure notification NotificationSender::send($profile, $update, false, implode("\n", $this->log)); @@ -416,7 +416,7 @@ class BackupEngine { $query = $db->getQuery(true) ->select($db->quoteName('manifest')) - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('profile_id') . ' = ' . $profileId) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')) ->where($db->quoteName('manifest') . ' != ' . $db->quote('')) @@ -472,14 +472,14 @@ class BackupEngine } /** - * Dispatch the onMokoJoomBackupAfterRun event so plugins (actionlog, etc.) can react. + * Dispatch the onMokoSuiteBackupAfterRun event so plugins (actionlog, etc.) can react. */ private function dispatchAfterRun(bool $success, int $recordId, string $description, int $profileId, string $origin): void { try { $app = Factory::getApplication(); - $event = new Event('onMokoJoomBackupAfterRun', [ + $event = new Event('onMokoSuiteBackupAfterRun', [ 'success' => $success, 'record_id' => $recordId, 'description' => $description, @@ -487,10 +487,10 @@ class BackupEngine 'origin' => $origin, ]); - $app->getDispatcher()->dispatch('onMokoJoomBackupAfterRun', $event); + $app->getDispatcher()->dispatch('onMokoSuiteBackupAfterRun', $event); } catch (\Throwable $e) { // Never let a listener failure break the backup result, but log it - error_log('MokoJoomBackup: onAfterRun listener error: ' . $e->getMessage()); + error_log('MokoSuiteBackup: onAfterRun listener error: ' . $e->getMessage()); } } diff --git a/source/packages/com_mokojoombackup/src/Engine/DatabaseDumper.php b/source/packages/com_mokosuitebackup/src/Engine/DatabaseDumper.php similarity index 96% rename from source/packages/com_mokojoombackup/src/Engine/DatabaseDumper.php rename to source/packages/com_mokosuitebackup/src/Engine/DatabaseDumper.php index f4bf538..bf49ec7 100644 --- a/source/packages/com_mokojoombackup/src/Engine/DatabaseDumper.php +++ b/source/packages/com_mokosuitebackup/src/Engine/DatabaseDumper.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; @@ -56,7 +56,7 @@ class DatabaseDumper $prefix = $db->getPrefix(); $output = []; - $output[] = '-- MokoJoomBackup Database Dump'; + $output[] = '-- MokoSuiteBackup Database Dump'; $output[] = '-- Generated: ' . date('Y-m-d H:i:s'); $output[] = '-- Server: ' . $db->getServerType(); $output[] = '-- Database: ' . $db->getName(); diff --git a/source/packages/com_mokojoombackup/src/Engine/DatabaseImporter.php b/source/packages/com_mokosuitebackup/src/Engine/DatabaseImporter.php similarity index 91% rename from source/packages/com_mokojoombackup/src/Engine/DatabaseImporter.php rename to source/packages/com_mokosuitebackup/src/Engine/DatabaseImporter.php index 4e178de..717dce8 100644 --- a/source/packages/com_mokojoombackup/src/Engine/DatabaseImporter.php +++ b/source/packages/com_mokosuitebackup/src/Engine/DatabaseImporter.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -12,7 +12,7 @@ * and DROP TABLE before CREATE TABLE for clean restores. */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; @@ -101,7 +101,7 @@ class DatabaseImporter // Log but don't abort — some statements may fail on // different MySQL versions (e.g. charset differences) // but the overall restore should continue. - error_log('MokoJoomBackup SQL import warning: ' . $e->getMessage()); + error_log('MokoSuiteBackup SQL import warning: ' . $e->getMessage()); } } } @@ -115,7 +115,7 @@ class DatabaseImporter $db->execute(); $statementsExecuted++; } catch (\Exception $e) { - error_log('MokoJoomBackup SQL import warning (final): ' . $e->getMessage()); + error_log('MokoSuiteBackup SQL import warning (final): ' . $e->getMessage()); } } } finally { diff --git a/source/packages/com_mokojoombackup/src/Engine/DifferentialScanner.php b/source/packages/com_mokosuitebackup/src/Engine/DifferentialScanner.php similarity index 94% rename from source/packages/com_mokojoombackup/src/Engine/DifferentialScanner.php rename to source/packages/com_mokosuitebackup/src/Engine/DifferentialScanner.php index 0996b9b..0409b17 100644 --- a/source/packages/com_mokojoombackup/src/Engine/DifferentialScanner.php +++ b/source/packages/com_mokosuitebackup/src/Engine/DifferentialScanner.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -15,7 +15,7 @@ * {"path/to/file": {"size": 1234, "mtime": 1717350000}, ...} */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokojoombackup/src/Engine/FileRestorer.php b/source/packages/com_mokosuitebackup/src/Engine/FileRestorer.php similarity index 95% rename from source/packages/com_mokojoombackup/src/Engine/FileRestorer.php rename to source/packages/com_mokosuitebackup/src/Engine/FileRestorer.php index 0bad937..57e99d4 100644 --- a/source/packages/com_mokojoombackup/src/Engine/FileRestorer.php +++ b/source/packages/com_mokosuitebackup/src/Engine/FileRestorer.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -11,7 +11,7 @@ * Skips database.sql and sensitive files that should not be overwritten. */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokojoombackup/src/Engine/FileScanner.php b/source/packages/com_mokosuitebackup/src/Engine/FileScanner.php similarity index 94% rename from source/packages/com_mokojoombackup/src/Engine/FileScanner.php rename to source/packages/com_mokosuitebackup/src/Engine/FileScanner.php index f64884a..9ff7526 100644 --- a/source/packages/com_mokojoombackup/src/Engine/FileScanner.php +++ b/source/packages/com_mokosuitebackup/src/Engine/FileScanner.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokojoombackup/src/Engine/FtpUploader.php b/source/packages/com_mokosuitebackup/src/Engine/FtpUploader.php similarity index 96% rename from source/packages/com_mokojoombackup/src/Engine/FtpUploader.php rename to source/packages/com_mokosuitebackup/src/Engine/FtpUploader.php index 9d585b3..465f034 100644 --- a/source/packages/com_mokojoombackup/src/Engine/FtpUploader.php +++ b/source/packages/com_mokosuitebackup/src/Engine/FtpUploader.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokojoombackup/src/Engine/GoogleDriveUploader.php b/source/packages/com_mokosuitebackup/src/Engine/GoogleDriveUploader.php similarity index 98% rename from source/packages/com_mokojoombackup/src/Engine/GoogleDriveUploader.php rename to source/packages/com_mokosuitebackup/src/Engine/GoogleDriveUploader.php index 3cf9c80..7d1d83d 100644 --- a/source/packages/com_mokojoombackup/src/Engine/GoogleDriveUploader.php +++ b/source/packages/com_mokosuitebackup/src/Engine/GoogleDriveUploader.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -12,7 +12,7 @@ * No SDK dependency — pure PHP with cURL. */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokojoombackup/src/Engine/JpaUnarchiver.php b/source/packages/com_mokosuitebackup/src/Engine/JpaUnarchiver.php similarity index 97% rename from source/packages/com_mokojoombackup/src/Engine/JpaUnarchiver.php rename to source/packages/com_mokosuitebackup/src/Engine/JpaUnarchiver.php index 768cff8..0bb1aae 100644 --- a/source/packages/com_mokojoombackup/src/Engine/JpaUnarchiver.php +++ b/source/packages/com_mokosuitebackup/src/Engine/JpaUnarchiver.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -19,7 +19,7 @@ * The RestoreEngine can then restore from the extracted files. */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokojoombackup/src/Engine/MokoRestore.php b/source/packages/com_mokosuitebackup/src/Engine/MokoRestore.php similarity index 99% rename from source/packages/com_mokojoombackup/src/Engine/MokoRestore.php rename to source/packages/com_mokosuitebackup/src/Engine/MokoRestore.php index 4781699..134c23f 100644 --- a/source/packages/com_mokojoombackup/src/Engine/MokoRestore.php +++ b/source/packages/com_mokosuitebackup/src/Engine/MokoRestore.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -21,7 +21,7 @@ * with a Joomla-styled wizard interface. */ -namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; +namespace Joomla\Component\MokoSuiteBackup\Administrator\Engine; defined('_JEXEC') or die; @@ -89,7 +89,7 @@ class MokoRestore * * DELETE THIS FILE AFTER INSTALLATION IS COMPLETE. * - * @package MokoJoomBackup + * @package MokoSuiteBackup * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GPL-3.0-or-later */ @@ -763,7 +763,7 @@ body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica N

MokoRestore

-

Standalone Site Installer — MokoJoomBackup

+

Standalone Site Installer — MokoSuiteBackup

@@ -927,7 +927,7 @@ body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica N diff --git a/source/packages/com_mokojoombackup/tmpl/index.html b/source/packages/com_mokosuitebackup/tmpl/index.html similarity index 100% rename from source/packages/com_mokojoombackup/tmpl/index.html rename to source/packages/com_mokosuitebackup/tmpl/index.html diff --git a/source/packages/com_mokojoombackup/tmpl/profile/edit.php b/source/packages/com_mokosuitebackup/tmpl/profile/edit.php similarity index 92% rename from source/packages/com_mokojoombackup/tmpl/profile/edit.php rename to source/packages/com_mokosuitebackup/tmpl/profile/edit.php index f2ea845..ce77be9 100644 --- a/source/packages/com_mokojoombackup/tmpl/profile/edit.php +++ b/source/packages/com_mokosuitebackup/tmpl/profile/edit.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -17,7 +17,7 @@ use Joomla\CMS\Router\Route; HTMLHelper::_('behavior.formvalidator'); HTMLHelper::_('behavior.keepalive'); ?> -
diff --git a/source/packages/com_mokojoombackup/tmpl/profile/index.html b/source/packages/com_mokosuitebackup/tmpl/profile/index.html similarity index 100% rename from source/packages/com_mokojoombackup/tmpl/profile/index.html rename to source/packages/com_mokosuitebackup/tmpl/profile/index.html diff --git a/source/packages/com_mokojoombackup/tmpl/profiles/default.php b/source/packages/com_mokosuitebackup/tmpl/profiles/default.php similarity index 92% rename from source/packages/com_mokojoombackup/tmpl/profiles/default.php rename to source/packages/com_mokosuitebackup/tmpl/profiles/default.php index 9eb5d13..7d048f1 100644 --- a/source/packages/com_mokojoombackup/tmpl/profiles/default.php +++ b/source/packages/com_mokosuitebackup/tmpl/profiles/default.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -20,7 +20,7 @@ HTMLHelper::_('behavior.multiselect'); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); ?> - +
@@ -60,7 +60,7 @@ $listDirn = $this->escape($this->state->get('list.direction')); id); ?> - + escape($item->title); ?> description)) : ?> diff --git a/source/packages/com_mokojoombackup/tmpl/profiles/index.html b/source/packages/com_mokosuitebackup/tmpl/profiles/index.html similarity index 100% rename from source/packages/com_mokojoombackup/tmpl/profiles/index.html rename to source/packages/com_mokosuitebackup/tmpl/profiles/index.html diff --git a/source/packages/plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.sys.ini b/source/packages/plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.sys.ini deleted file mode 100644 index 61b9070..0000000 --- a/source/packages/plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Actionlog Plugin system language file (en-GB) -PLG_ACTIONLOG_MOKOJOOMBACKUP="Action Log - MokoJoomBackup" -PLG_ACTIONLOG_MOKOJOOMBACKUP_DESCRIPTION="Logs MokoJoomBackup actions (backup, restore, profile changes) to User Action Logs." diff --git a/source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.sys.ini b/source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.sys.ini deleted file mode 100644 index 26c0927..0000000 --- a/source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Actionlog Plugin system language file (en-US) -PLG_ACTIONLOG_MOKOJOOMBACKUP="Action Log - MokoJoomBackup" -PLG_ACTIONLOG_MOKOJOOMBACKUP_DESCRIPTION="Logs MokoJoomBackup actions (backup, restore, profile changes) to User Action Logs." diff --git a/source/packages/plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.ini b/source/packages/plg_actionlog_mokosuitebackup/language/en-GB/plg_actionlog_mokosuitebackup.ini similarity index 74% rename from source/packages/plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.ini rename to source/packages/plg_actionlog_mokosuitebackup/language/en-GB/plg_actionlog_mokosuitebackup.ini index 75b37b6..9b0e1f9 100644 --- a/source/packages/plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.ini +++ b/source/packages/plg_actionlog_mokosuitebackup/language/en-GB/plg_actionlog_mokosuitebackup.ini @@ -1,6 +1,6 @@ -; MokoJoomBackup — Actionlog Plugin language file (en-GB) -PLG_ACTIONLOG_MOKOJOOMBACKUP="Action Log - MokoJoomBackup" -PLG_ACTIONLOG_MOKOJOOMBACKUP_DESCRIPTION="Logs MokoJoomBackup actions (backup, restore, profile changes) to User Action Logs." +; MokoSuiteBackup — Actionlog Plugin language file (en-GB) +PLG_ACTIONLOG_MOKOJOOMBACKUP="Action Log - MokoSuiteBackup" +PLG_ACTIONLOG_MOKOJOOMBACKUP_DESCRIPTION="Logs MokoSuiteBackup actions (backup, restore, profile changes) to User Action Logs." PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_CREATED="User {username} created backup profile "{title}" (ID: {id})" PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_UPDATED="User {username} updated backup profile "{title}" (ID: {id})" PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_DELETED="User {username} deleted backup profile "{title}" (ID: {id})" diff --git a/source/packages/plg_actionlog_mokosuitebackup/language/en-GB/plg_actionlog_mokosuitebackup.sys.ini b/source/packages/plg_actionlog_mokosuitebackup/language/en-GB/plg_actionlog_mokosuitebackup.sys.ini new file mode 100644 index 0000000..18d9fb4 --- /dev/null +++ b/source/packages/plg_actionlog_mokosuitebackup/language/en-GB/plg_actionlog_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — Actionlog Plugin system language file (en-GB) +PLG_ACTIONLOG_MOKOJOOMBACKUP="Action Log - MokoSuiteBackup" +PLG_ACTIONLOG_MOKOJOOMBACKUP_DESCRIPTION="Logs MokoSuiteBackup actions (backup, restore, profile changes) to User Action Logs." diff --git a/source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.ini b/source/packages/plg_actionlog_mokosuitebackup/language/en-US/plg_actionlog_mokosuitebackup.ini similarity index 74% rename from source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.ini rename to source/packages/plg_actionlog_mokosuitebackup/language/en-US/plg_actionlog_mokosuitebackup.ini index 9baa0c5..9dd2041 100644 --- a/source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.ini +++ b/source/packages/plg_actionlog_mokosuitebackup/language/en-US/plg_actionlog_mokosuitebackup.ini @@ -1,6 +1,6 @@ -; MokoJoomBackup — Actionlog Plugin language file (en-US) -PLG_ACTIONLOG_MOKOJOOMBACKUP="Action Log - MokoJoomBackup" -PLG_ACTIONLOG_MOKOJOOMBACKUP_DESCRIPTION="Logs MokoJoomBackup actions (backup, restore, profile changes) to User Action Logs." +; MokoSuiteBackup — Actionlog Plugin language file (en-US) +PLG_ACTIONLOG_MOKOJOOMBACKUP="Action Log - MokoSuiteBackup" +PLG_ACTIONLOG_MOKOJOOMBACKUP_DESCRIPTION="Logs MokoSuiteBackup actions (backup, restore, profile changes) to User Action Logs." PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_CREATED="User {username} created backup profile "{title}" (ID: {id})" PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_UPDATED="User {username} updated backup profile "{title}" (ID: {id})" PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_DELETED="User {username} deleted backup profile "{title}" (ID: {id})" diff --git a/source/packages/plg_actionlog_mokosuitebackup/language/en-US/plg_actionlog_mokosuitebackup.sys.ini b/source/packages/plg_actionlog_mokosuitebackup/language/en-US/plg_actionlog_mokosuitebackup.sys.ini new file mode 100644 index 0000000..d2327fd --- /dev/null +++ b/source/packages/plg_actionlog_mokosuitebackup/language/en-US/plg_actionlog_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — Actionlog Plugin system language file (en-US) +PLG_ACTIONLOG_MOKOJOOMBACKUP="Action Log - MokoSuiteBackup" +PLG_ACTIONLOG_MOKOJOOMBACKUP_DESCRIPTION="Logs MokoSuiteBackup actions (backup, restore, profile changes) to User Action Logs." diff --git a/source/packages/plg_system_mokojoombackup/mokojoombackup.php b/source/packages/plg_actionlog_mokosuitebackup/mokosuitebackup.php similarity index 76% rename from source/packages/plg_system_mokojoombackup/mokojoombackup.php rename to source/packages/plg_actionlog_mokosuitebackup/mokosuitebackup.php index b53cca7..fcdfa92 100644 --- a/source/packages/plg_system_mokojoombackup/mokojoombackup.php +++ b/source/packages/plg_actionlog_mokosuitebackup/mokosuitebackup.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE diff --git a/source/packages/plg_actionlog_mokojoombackup/mokojoombackup.xml b/source/packages/plg_actionlog_mokosuitebackup/mokosuitebackup.xml similarity index 63% rename from source/packages/plg_actionlog_mokojoombackup/mokojoombackup.xml rename to source/packages/plg_actionlog_mokosuitebackup/mokosuitebackup.xml index 82e1be7..85df3df 100644 --- a/source/packages/plg_actionlog_mokojoombackup/mokojoombackup.xml +++ b/source/packages/plg_actionlog_mokosuitebackup/mokosuitebackup.xml @@ -1,14 +1,14 @@ - plg_actionlog_mokojoombackup - 01.08.01-dev + plg_actionlog_mokosuitebackup + 01.07.00 2026-06-04 Moko Consulting hello@mokoconsulting.tech @@ -17,16 +17,16 @@ GPL-3.0-or-later PLG_ACTIONLOG_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\Actionlog\MokoJoomBackup + Joomla\Plugin\Actionlog\MokoSuiteBackup - mokojoombackup.php + mokosuitebackup.php services src - language/en-GB/plg_actionlog_mokojoombackup.ini - language/en-GB/plg_actionlog_mokojoombackup.sys.ini + language/en-GB/plg_actionlog_mokosuitebackup.ini + language/en-GB/plg_actionlog_mokosuitebackup.sys.ini diff --git a/source/packages/plg_actionlog_mokojoombackup/services/provider.php b/source/packages/plg_actionlog_mokosuitebackup/services/provider.php similarity index 74% rename from source/packages/plg_actionlog_mokojoombackup/services/provider.php rename to source/packages/plg_actionlog_mokosuitebackup/services/provider.php index 572a2a9..d956ff8 100644 --- a/source/packages/plg_actionlog_mokojoombackup/services/provider.php +++ b/source/packages/plg_actionlog_mokosuitebackup/services/provider.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -16,7 +16,7 @@ use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; -use Joomla\Plugin\Actionlog\MokoJoomBackup\Extension\MokoJoomBackupActionlog; +use Joomla\Plugin\Actionlog\MokoSuiteBackup\Extension\MokoSuiteBackupActionlog; return new class () implements ServiceProviderInterface { public function register(Container $container): void @@ -24,9 +24,9 @@ return new class () implements ServiceProviderInterface { $container->set( PluginInterface::class, function (Container $container) { - $plugin = new MokoJoomBackupActionlog( + $plugin = new MokoSuiteBackupActionlog( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('actionlog', 'mokojoombackup') + (array) PluginHelper::getPlugin('actionlog', 'mokosuitebackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_actionlog_mokojoombackup/src/Extension/MokoJoomBackupActionlog.php b/source/packages/plg_actionlog_mokosuitebackup/src/Extension/MokoSuiteBackupActionlog.php similarity index 85% rename from source/packages/plg_actionlog_mokojoombackup/src/Extension/MokoJoomBackupActionlog.php rename to source/packages/plg_actionlog_mokosuitebackup/src/Extension/MokoSuiteBackupActionlog.php index 7b02ddc..5084bb6 100644 --- a/source/packages/plg_actionlog_mokojoombackup/src/Extension/MokoJoomBackupActionlog.php +++ b/source/packages/plg_actionlog_mokosuitebackup/src/Extension/MokoSuiteBackupActionlog.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Actionlog\MokoJoomBackup\Extension; +namespace Joomla\Plugin\Actionlog\MokoSuiteBackup\Extension; defined('_JEXEC') or die; @@ -18,7 +18,7 @@ use Joomla\CMS\Plugin\CMSPlugin; use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; -final class MokoJoomBackupActionlog extends CMSPlugin implements SubscriberInterface +final class MokoSuiteBackupActionlog extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; @@ -27,7 +27,7 @@ final class MokoJoomBackupActionlog extends CMSPlugin implements SubscriberInter return [ 'onContentAfterSave' => 'onContentAfterSave', 'onContentAfterDelete' => 'onContentAfterDelete', - 'onMokoJoomBackupAfterRun' => 'onMokoJoomBackupAfterRun', + 'onMokoSuiteBackupAfterRun' => 'onMokoSuiteBackupAfterRun', ]; } @@ -38,7 +38,7 @@ final class MokoJoomBackupActionlog extends CMSPlugin implements SubscriberInter { [$context, $table, $isNew] = array_values($event->getArguments()); - if ($context !== 'com_mokojoombackup.profile') { + if ($context !== 'com_mokosuitebackup.profile') { return; } @@ -55,7 +55,7 @@ final class MokoJoomBackupActionlog extends CMSPlugin implements SubscriberInter 'username' => $this->getCurrentUserName(), ], $messageKey, - 'com_mokojoombackup.profile', + 'com_mokosuitebackup.profile', $this->getCurrentUserId() ); } @@ -67,7 +67,7 @@ final class MokoJoomBackupActionlog extends CMSPlugin implements SubscriberInter { [$context, $table] = array_values($event->getArguments()); - if ($context === 'com_mokojoombackup.profile') { + if ($context === 'com_mokosuitebackup.profile') { $this->addLog( [ 'PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_DELETED', @@ -77,10 +77,10 @@ final class MokoJoomBackupActionlog extends CMSPlugin implements SubscriberInter 'username' => $this->getCurrentUserName(), ], 'PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_DELETED', - 'com_mokojoombackup.profile', + 'com_mokosuitebackup.profile', $this->getCurrentUserId() ); - } elseif ($context === 'com_mokojoombackup.backup') { + } elseif ($context === 'com_mokosuitebackup.backup') { $this->addLog( [ 'PLG_ACTIONLOG_MOKOJOOMBACKUP_RECORD_DELETED', @@ -90,7 +90,7 @@ final class MokoJoomBackupActionlog extends CMSPlugin implements SubscriberInter 'username' => $this->getCurrentUserName(), ], 'PLG_ACTIONLOG_MOKOJOOMBACKUP_RECORD_DELETED', - 'com_mokojoombackup.backup', + 'com_mokosuitebackup.backup', $this->getCurrentUserId() ); } @@ -100,7 +100,7 @@ final class MokoJoomBackupActionlog extends CMSPlugin implements SubscriberInter * Log when a backup completes or fails. * This event should be dispatched from BackupEngine. */ - public function onMokoJoomBackupAfterRun(Event $event): void + public function onMokoSuiteBackupAfterRun(Event $event): void { $args = $event->getArguments(); @@ -125,7 +125,7 @@ final class MokoJoomBackupActionlog extends CMSPlugin implements SubscriberInter 'username' => $this->getCurrentUserName(), ], $messageKey, - 'com_mokojoombackup.backup', + 'com_mokosuitebackup.backup', $this->getCurrentUserId() ); } @@ -139,7 +139,7 @@ final class MokoJoomBackupActionlog extends CMSPlugin implements SubscriberInter 'message_language_key' => $messageLanguageKey, 'message' => json_encode($message), 'date' => date('Y-m-d H:i:s'), - 'extension' => 'com_mokojoombackup', + 'extension' => 'com_mokosuitebackup', 'user_id' => $userId, 'ip_address' => Factory::getApplication()->input->server->getString('REMOTE_ADDR', ''), 'item_id' => $message['id'] ?? 0, diff --git a/source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.ini b/source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.ini deleted file mode 100644 index 311e8d5..0000000 --- a/source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Console Plugin language file (en-GB) -PLG_CONSOLE_MOKOJOOMBACKUP="Console - MokoJoomBackup" -PLG_CONSOLE_MOKOJOOMBACKUP_DESCRIPTION="CLI commands for MokoJoomBackup: run, list, profiles, restore, cleanup." diff --git a/source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.sys.ini b/source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.sys.ini deleted file mode 100644 index f56b212..0000000 --- a/source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Console Plugin system language file (en-GB) -PLG_CONSOLE_MOKOJOOMBACKUP="Console - MokoJoomBackup" -PLG_CONSOLE_MOKOJOOMBACKUP_DESCRIPTION="CLI commands for MokoJoomBackup: run, list, profiles, restore, cleanup." diff --git a/source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.ini b/source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.ini deleted file mode 100644 index 2de8315..0000000 --- a/source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Console Plugin language file (en-US) -PLG_CONSOLE_MOKOJOOMBACKUP="Console - MokoJoomBackup" -PLG_CONSOLE_MOKOJOOMBACKUP_DESCRIPTION="CLI commands for MokoJoomBackup: run, list, profiles, restore, cleanup." diff --git a/source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.sys.ini b/source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.sys.ini deleted file mode 100644 index d229b02..0000000 --- a/source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Console Plugin system language file (en-US) -PLG_CONSOLE_MOKOJOOMBACKUP="Console - MokoJoomBackup" -PLG_CONSOLE_MOKOJOOMBACKUP_DESCRIPTION="CLI commands for MokoJoomBackup: run, list, profiles, restore, cleanup." diff --git a/source/packages/plg_console_mokosuitebackup/language/en-GB/plg_console_mokosuitebackup.ini b/source/packages/plg_console_mokosuitebackup/language/en-GB/plg_console_mokosuitebackup.ini new file mode 100644 index 0000000..7c7943c --- /dev/null +++ b/source/packages/plg_console_mokosuitebackup/language/en-GB/plg_console_mokosuitebackup.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — Console Plugin language file (en-GB) +PLG_CONSOLE_MOKOJOOMBACKUP="Console - MokoSuiteBackup" +PLG_CONSOLE_MOKOJOOMBACKUP_DESCRIPTION="CLI commands for MokoSuiteBackup: run, list, profiles, restore, cleanup." diff --git a/source/packages/plg_console_mokosuitebackup/language/en-GB/plg_console_mokosuitebackup.sys.ini b/source/packages/plg_console_mokosuitebackup/language/en-GB/plg_console_mokosuitebackup.sys.ini new file mode 100644 index 0000000..bf02aca --- /dev/null +++ b/source/packages/plg_console_mokosuitebackup/language/en-GB/plg_console_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — Console Plugin system language file (en-GB) +PLG_CONSOLE_MOKOJOOMBACKUP="Console - MokoSuiteBackup" +PLG_CONSOLE_MOKOJOOMBACKUP_DESCRIPTION="CLI commands for MokoSuiteBackup: run, list, profiles, restore, cleanup." diff --git a/source/packages/plg_console_mokosuitebackup/language/en-US/plg_console_mokosuitebackup.ini b/source/packages/plg_console_mokosuitebackup/language/en-US/plg_console_mokosuitebackup.ini new file mode 100644 index 0000000..aca5ed8 --- /dev/null +++ b/source/packages/plg_console_mokosuitebackup/language/en-US/plg_console_mokosuitebackup.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — Console Plugin language file (en-US) +PLG_CONSOLE_MOKOJOOMBACKUP="Console - MokoSuiteBackup" +PLG_CONSOLE_MOKOJOOMBACKUP_DESCRIPTION="CLI commands for MokoSuiteBackup: run, list, profiles, restore, cleanup." diff --git a/source/packages/plg_console_mokosuitebackup/language/en-US/plg_console_mokosuitebackup.sys.ini b/source/packages/plg_console_mokosuitebackup/language/en-US/plg_console_mokosuitebackup.sys.ini new file mode 100644 index 0000000..f053ee7 --- /dev/null +++ b/source/packages/plg_console_mokosuitebackup/language/en-US/plg_console_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — Console Plugin system language file (en-US) +PLG_CONSOLE_MOKOJOOMBACKUP="Console - MokoSuiteBackup" +PLG_CONSOLE_MOKOJOOMBACKUP_DESCRIPTION="CLI commands for MokoSuiteBackup: run, list, profiles, restore, cleanup." diff --git a/source/packages/plg_actionlog_mokojoombackup/mokojoombackup.php b/source/packages/plg_console_mokosuitebackup/mokosuitebackup.php similarity index 76% rename from source/packages/plg_actionlog_mokojoombackup/mokojoombackup.php rename to source/packages/plg_console_mokosuitebackup/mokosuitebackup.php index 13e2b3b..deda959 100644 --- a/source/packages/plg_actionlog_mokojoombackup/mokojoombackup.php +++ b/source/packages/plg_console_mokosuitebackup/mokosuitebackup.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE diff --git a/source/packages/plg_console_mokojoombackup/mokojoombackup.xml b/source/packages/plg_console_mokosuitebackup/mokosuitebackup.xml similarity index 63% rename from source/packages/plg_console_mokojoombackup/mokojoombackup.xml rename to source/packages/plg_console_mokosuitebackup/mokosuitebackup.xml index e818af8..96e8c2b 100644 --- a/source/packages/plg_console_mokojoombackup/mokojoombackup.xml +++ b/source/packages/plg_console_mokosuitebackup/mokosuitebackup.xml @@ -1,14 +1,14 @@ - plg_console_mokojoombackup - 01.08.01-dev + plg_console_mokosuitebackup + 01.07.00 2026-06-04 Moko Consulting hello@mokoconsulting.tech @@ -17,16 +17,16 @@ GPL-3.0-or-later PLG_CONSOLE_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\Console\MokoJoomBackup + Joomla\Plugin\Console\MokoSuiteBackup - mokojoombackup.php + mokosuitebackup.php services src - language/en-GB/plg_console_mokojoombackup.ini - language/en-GB/plg_console_mokojoombackup.sys.ini + language/en-GB/plg_console_mokosuitebackup.ini + language/en-GB/plg_console_mokosuitebackup.sys.ini diff --git a/source/packages/plg_console_mokojoombackup/services/provider.php b/source/packages/plg_console_mokosuitebackup/services/provider.php similarity index 75% rename from source/packages/plg_console_mokojoombackup/services/provider.php rename to source/packages/plg_console_mokosuitebackup/services/provider.php index e80cfa1..977c537 100644 --- a/source/packages/plg_console_mokojoombackup/services/provider.php +++ b/source/packages/plg_console_mokosuitebackup/services/provider.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -16,7 +16,7 @@ use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; -use Joomla\Plugin\Console\MokoJoomBackup\Extension\MokoJoomBackupConsole; +use Joomla\Plugin\Console\MokoSuiteBackup\Extension\MokoSuiteBackupConsole; return new class () implements ServiceProviderInterface { public function register(Container $container): void @@ -24,9 +24,9 @@ return new class () implements ServiceProviderInterface { $container->set( PluginInterface::class, function (Container $container) { - $plugin = new MokoJoomBackupConsole( + $plugin = new MokoSuiteBackupConsole( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('console', 'mokojoombackup') + (array) PluginHelper::getPlugin('console', 'mokosuitebackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_console_mokojoombackup/src/Command/CleanupCommand.php b/source/packages/plg_console_mokosuitebackup/src/Command/CleanupCommand.php similarity index 86% rename from source/packages/plg_console_mokojoombackup/src/Command/CleanupCommand.php rename to source/packages/plg_console_mokosuitebackup/src/Command/CleanupCommand.php index 68615b1..d3a67ff 100644 --- a/source/packages/plg_console_mokojoombackup/src/Command/CleanupCommand.php +++ b/source/packages/plg_console_mokosuitebackup/src/Command/CleanupCommand.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoJoomBackup\Command; +namespace Joomla\Plugin\Console\MokoSuiteBackup\Command; defined('_JEXEC') or die; @@ -21,7 +21,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; class CleanupCommand extends AbstractCommand { - protected static $defaultName = 'mokojoombackup:cleanup'; + protected static $defaultName = 'mokosuitebackup:cleanup'; protected function configure(): void { @@ -38,7 +38,7 @@ class CleanupCommand extends AbstractCommand $maxCount = (int) $input->getOption('max-count'); $dryRun = $input->getOption('dry-run'); - $io->title('MokoJoomBackup — Cleanup'); + $io->title('MokoSuiteBackup — Cleanup'); if ($dryRun) { $io->note('Dry run — no files will be deleted.'); @@ -51,7 +51,7 @@ class CleanupCommand extends AbstractCommand $cutoff = date('Y-m-d H:i:s', strtotime("-{$maxAge} days")); $query = $db->getQuery(true) ->select('id, absolute_path, description, backupstart') - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('backupstart') . ' < ' . $db->quote($cutoff)) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')); $db->setQuery($query); @@ -67,7 +67,7 @@ class CleanupCommand extends AbstractCommand $db->setQuery( $db->getQuery(true) - ->delete($db->quoteName('#__mokojoombackup_records')) + ->delete($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('id') . ' = ' . (int) $record->id) ); $db->execute(); @@ -79,7 +79,7 @@ class CleanupCommand extends AbstractCommand // Enforce max count $query = $db->getQuery(true) ->select('COUNT(*)') - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')); $db->setQuery($query); $totalCount = (int) $db->loadResult(); @@ -88,7 +88,7 @@ class CleanupCommand extends AbstractCommand $excess = $totalCount - $maxCount; $query = $db->getQuery(true) ->select('id, absolute_path, description, backupstart') - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')) ->order($db->quoteName('backupstart') . ' ASC'); $db->setQuery($query, 0, $excess); @@ -104,7 +104,7 @@ class CleanupCommand extends AbstractCommand $db->setQuery( $db->getQuery(true) - ->delete($db->quoteName('#__mokojoombackup_records')) + ->delete($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('id') . ' = ' . (int) $record->id) ); $db->execute(); diff --git a/source/packages/plg_console_mokojoombackup/src/Command/ListCommand.php b/source/packages/plg_console_mokosuitebackup/src/Command/ListCommand.php similarity index 83% rename from source/packages/plg_console_mokojoombackup/src/Command/ListCommand.php rename to source/packages/plg_console_mokosuitebackup/src/Command/ListCommand.php index b8aebe7..9a730ea 100644 --- a/source/packages/plg_console_mokojoombackup/src/Command/ListCommand.php +++ b/source/packages/plg_console_mokosuitebackup/src/Command/ListCommand.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoJoomBackup\Command; +namespace Joomla\Plugin\Console\MokoSuiteBackup\Command; defined('_JEXEC') or die; @@ -21,7 +21,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; class ListCommand extends AbstractCommand { - protected static $defaultName = 'mokojoombackup:list'; + protected static $defaultName = 'mokosuitebackup:list'; protected function configure(): void { @@ -36,14 +36,14 @@ class ListCommand extends AbstractCommand $limit = (int) $input->getOption('limit'); $status = $input->getOption('status'); - $io->title('MokoJoomBackup — Backup Records'); + $io->title('MokoSuiteBackup — Backup Records'); $db = Factory::getDbo(); $query = $db->getQuery(true) ->select('r.id, r.description, r.status, r.origin, r.backup_type, r.total_size, r.backupstart, r.backupend') ->select($db->quoteName('p.title', 'profile_title')) - ->from($db->quoteName('#__mokojoombackup_records', 'r')) - ->join('LEFT', $db->quoteName('#__mokojoombackup_profiles', 'p') . ' ON p.id = r.profile_id') + ->from($db->quoteName('#__mokosuitebackup_records', 'r')) + ->join('LEFT', $db->quoteName('#__mokosuitebackup_profiles', 'p') . ' ON p.id = r.profile_id') ->order($db->quoteName('r.backupstart') . ' DESC'); if ($status) { diff --git a/source/packages/plg_console_mokojoombackup/src/Command/ProfilesCommand.php b/source/packages/plg_console_mokosuitebackup/src/Command/ProfilesCommand.php similarity index 81% rename from source/packages/plg_console_mokojoombackup/src/Command/ProfilesCommand.php rename to source/packages/plg_console_mokosuitebackup/src/Command/ProfilesCommand.php index 22e8723..3999a4d 100644 --- a/source/packages/plg_console_mokojoombackup/src/Command/ProfilesCommand.php +++ b/source/packages/plg_console_mokosuitebackup/src/Command/ProfilesCommand.php @@ -1,14 +1,14 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoJoomBackup\Command; +namespace Joomla\Plugin\Console\MokoSuiteBackup\Command; defined('_JEXEC') or die; @@ -20,7 +20,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; class ProfilesCommand extends AbstractCommand { - protected static $defaultName = 'mokojoombackup:profiles'; + protected static $defaultName = 'mokosuitebackup:profiles'; protected function configure(): void { @@ -31,12 +31,12 @@ class ProfilesCommand extends AbstractCommand { $io = new SymfonyStyle($input, $output); - $io->title('MokoJoomBackup — Backup Profiles'); + $io->title('MokoSuiteBackup — Backup Profiles'); $db = Factory::getDbo(); $query = $db->getQuery(true) ->select('id, title, backup_type, published, ordering') - ->from($db->quoteName('#__mokojoombackup_profiles')) + ->from($db->quoteName('#__mokosuitebackup_profiles')) ->order($db->quoteName('ordering') . ' ASC'); $db->setQuery($query); $profiles = $db->loadObjectList(); diff --git a/source/packages/plg_console_mokojoombackup/src/Command/RestoreCommand.php b/source/packages/plg_console_mokosuitebackup/src/Command/RestoreCommand.php similarity index 82% rename from source/packages/plg_console_mokojoombackup/src/Command/RestoreCommand.php rename to source/packages/plg_console_mokosuitebackup/src/Command/RestoreCommand.php index cccc480..7ed26d7 100644 --- a/source/packages/plg_console_mokojoombackup/src/Command/RestoreCommand.php +++ b/source/packages/plg_console_mokosuitebackup/src/Command/RestoreCommand.php @@ -1,19 +1,19 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoJoomBackup\Command; +namespace Joomla\Plugin\Console\MokoSuiteBackup\Command; defined('_JEXEC') or die; use Joomla\CMS\Factory; -use Joomla\Component\MokoJoomBackup\Administrator\Engine\RestoreEngine; +use Joomla\Component\MokoSuiteBackup\Administrator\Engine\RestoreEngine; use Joomla\Console\Command\AbstractCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; @@ -22,7 +22,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; class RestoreCommand extends AbstractCommand { - protected static $defaultName = 'mokojoombackup:restore'; + protected static $defaultName = 'mokosuitebackup:restore'; protected function configure(): void { @@ -35,12 +35,12 @@ class RestoreCommand extends AbstractCommand $io = new SymfonyStyle($input, $output); $recordId = (int) $input->getArgument('id'); - $io->title('MokoJoomBackup — Restore Backup'); + $io->title('MokoSuiteBackup — Restore Backup'); $db = Factory::getDbo(); $query = $db->getQuery(true) ->select('*') - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('id') . ' = ' . $recordId); $db->setQuery($query); $record = $db->loadObject(); @@ -73,7 +73,7 @@ class RestoreCommand extends AbstractCommand return 0; } - $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokojoombackup/src/Engine/RestoreEngine.php'; + $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokosuitebackup/src/Engine/RestoreEngine.php'; if (!file_exists($engineFile)) { $io->error('RestoreEngine not found. Is the component fully installed?'); diff --git a/source/packages/plg_console_mokojoombackup/src/Command/RunCommand.php b/source/packages/plg_console_mokosuitebackup/src/Command/RunCommand.php similarity index 76% rename from source/packages/plg_console_mokojoombackup/src/Command/RunCommand.php rename to source/packages/plg_console_mokosuitebackup/src/Command/RunCommand.php index 78991af..f75ea1d 100644 --- a/source/packages/plg_console_mokojoombackup/src/Command/RunCommand.php +++ b/source/packages/plg_console_mokosuitebackup/src/Command/RunCommand.php @@ -1,19 +1,19 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoJoomBackup\Command; +namespace Joomla\Plugin\Console\MokoSuiteBackup\Command; defined('_JEXEC') or die; use Joomla\CMS\Factory; -use Joomla\Component\MokoJoomBackup\Administrator\Engine\BackupEngine; +use Joomla\Component\MokoSuiteBackup\Administrator\Engine\BackupEngine; use Joomla\Console\Command\AbstractCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; @@ -22,7 +22,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; class RunCommand extends AbstractCommand { - protected static $defaultName = 'mokojoombackup:run'; + protected static $defaultName = 'mokosuitebackup:run'; protected function configure(): void { @@ -37,13 +37,13 @@ class RunCommand extends AbstractCommand $profileId = (int) $input->getOption('profile'); $desc = $input->getOption('description') ?: ''; - $io->title('MokoJoomBackup — Run Backup'); + $io->title('MokoSuiteBackup — Run Backup'); $io->text('Profile ID: ' . $profileId); - $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokojoombackup/src/Engine/BackupEngine.php'; + $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokosuitebackup/src/Engine/BackupEngine.php'; if (!file_exists($engineFile)) { - $io->error('MokoJoomBackup component not installed.'); + $io->error('MokoSuiteBackup component not installed.'); return 1; } diff --git a/source/packages/plg_console_mokojoombackup/src/Extension/MokoJoomBackupConsole.php b/source/packages/plg_console_mokosuitebackup/src/Extension/MokoSuiteBackupConsole.php similarity index 61% rename from source/packages/plg_console_mokojoombackup/src/Extension/MokoJoomBackupConsole.php rename to source/packages/plg_console_mokosuitebackup/src/Extension/MokoSuiteBackupConsole.php index 2c04833..ce6eae4 100644 --- a/source/packages/plg_console_mokojoombackup/src/Extension/MokoJoomBackupConsole.php +++ b/source/packages/plg_console_mokosuitebackup/src/Extension/MokoSuiteBackupConsole.php @@ -1,27 +1,27 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoJoomBackup\Extension; +namespace Joomla\Plugin\Console\MokoSuiteBackup\Extension; defined('_JEXEC') or die; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; -use Joomla\Plugin\Console\MokoJoomBackup\Command\CleanupCommand; -use Joomla\Plugin\Console\MokoJoomBackup\Command\ListCommand; -use Joomla\Plugin\Console\MokoJoomBackup\Command\ProfilesCommand; -use Joomla\Plugin\Console\MokoJoomBackup\Command\RestoreCommand; -use Joomla\Plugin\Console\MokoJoomBackup\Command\RunCommand; +use Joomla\Plugin\Console\MokoSuiteBackup\Command\CleanupCommand; +use Joomla\Plugin\Console\MokoSuiteBackup\Command\ListCommand; +use Joomla\Plugin\Console\MokoSuiteBackup\Command\ProfilesCommand; +use Joomla\Plugin\Console\MokoSuiteBackup\Command\RestoreCommand; +use Joomla\Plugin\Console\MokoSuiteBackup\Command\RunCommand; -final class MokoJoomBackupConsole extends CMSPlugin implements SubscriberInterface +final class MokoSuiteBackupConsole extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; diff --git a/source/packages/plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.sys.ini b/source/packages/plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.sys.ini deleted file mode 100644 index bb42dfd..0000000 --- a/source/packages/plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Content Plugin system language file (en-GB) -PLG_CONTENT_MOKOJOOMBACKUP="Content - MokoJoomBackup" -PLG_CONTENT_MOKOJOOMBACKUP_DESCRIPTION="Automatically triggers a backup before extension installs or updates." diff --git a/source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.sys.ini b/source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.sys.ini deleted file mode 100644 index 4c443cf..0000000 --- a/source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Content Plugin system language file (en-US) -PLG_CONTENT_MOKOJOOMBACKUP="Content - MokoJoomBackup" -PLG_CONTENT_MOKOJOOMBACKUP_DESCRIPTION="Automatically triggers a backup before extension installs or updates." diff --git a/source/packages/plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.ini b/source/packages/plg_content_mokosuitebackup/language/en-GB/plg_content_mokosuitebackup.ini similarity index 84% rename from source/packages/plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.ini rename to source/packages/plg_content_mokosuitebackup/language/en-GB/plg_content_mokosuitebackup.ini index b7e9375..126f36d 100644 --- a/source/packages/plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.ini +++ b/source/packages/plg_content_mokosuitebackup/language/en-GB/plg_content_mokosuitebackup.ini @@ -1,5 +1,5 @@ -; MokoJoomBackup — Content Plugin language file (en-GB) -PLG_CONTENT_MOKOJOOMBACKUP="Content - MokoJoomBackup" +; MokoSuiteBackup — Content Plugin language file (en-GB) +PLG_CONTENT_MOKOJOOMBACKUP="Content - MokoSuiteBackup" PLG_CONTENT_MOKOJOOMBACKUP_DESCRIPTION="Automatically triggers a backup before extension installs or updates." PLG_CONTENT_MOKOJOOMBACKUP_FIELD_BEFORE_INSTALL="Backup Before Install" PLG_CONTENT_MOKOJOOMBACKUP_FIELD_BEFORE_INSTALL_DESC="Run an automatic backup before a new extension is installed." diff --git a/source/packages/plg_content_mokosuitebackup/language/en-GB/plg_content_mokosuitebackup.sys.ini b/source/packages/plg_content_mokosuitebackup/language/en-GB/plg_content_mokosuitebackup.sys.ini new file mode 100644 index 0000000..4d54f0a --- /dev/null +++ b/source/packages/plg_content_mokosuitebackup/language/en-GB/plg_content_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — Content Plugin system language file (en-GB) +PLG_CONTENT_MOKOJOOMBACKUP="Content - MokoSuiteBackup" +PLG_CONTENT_MOKOJOOMBACKUP_DESCRIPTION="Automatically triggers a backup before extension installs or updates." diff --git a/source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.ini b/source/packages/plg_content_mokosuitebackup/language/en-US/plg_content_mokosuitebackup.ini similarity index 84% rename from source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.ini rename to source/packages/plg_content_mokosuitebackup/language/en-US/plg_content_mokosuitebackup.ini index 0765605..89f37dc 100644 --- a/source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.ini +++ b/source/packages/plg_content_mokosuitebackup/language/en-US/plg_content_mokosuitebackup.ini @@ -1,5 +1,5 @@ -; MokoJoomBackup — Content Plugin language file (en-US) -PLG_CONTENT_MOKOJOOMBACKUP="Content - MokoJoomBackup" +; MokoSuiteBackup — Content Plugin language file (en-US) +PLG_CONTENT_MOKOJOOMBACKUP="Content - MokoSuiteBackup" PLG_CONTENT_MOKOJOOMBACKUP_DESCRIPTION="Automatically triggers a backup before extension installs or updates." PLG_CONTENT_MOKOJOOMBACKUP_FIELD_BEFORE_INSTALL="Backup Before Install" PLG_CONTENT_MOKOJOOMBACKUP_FIELD_BEFORE_INSTALL_DESC="Run an automatic backup before a new extension is installed." diff --git a/source/packages/plg_content_mokosuitebackup/language/en-US/plg_content_mokosuitebackup.sys.ini b/source/packages/plg_content_mokosuitebackup/language/en-US/plg_content_mokosuitebackup.sys.ini new file mode 100644 index 0000000..235bb7e --- /dev/null +++ b/source/packages/plg_content_mokosuitebackup/language/en-US/plg_content_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — Content Plugin system language file (en-US) +PLG_CONTENT_MOKOJOOMBACKUP="Content - MokoSuiteBackup" +PLG_CONTENT_MOKOJOOMBACKUP_DESCRIPTION="Automatically triggers a backup before extension installs or updates." diff --git a/source/packages/plg_content_mokojoombackup/mokojoombackup.php b/source/packages/plg_content_mokosuitebackup/mokosuitebackup.php similarity index 76% rename from source/packages/plg_content_mokojoombackup/mokojoombackup.php rename to source/packages/plg_content_mokosuitebackup/mokosuitebackup.php index c59a8b8..49dac86 100644 --- a/source/packages/plg_content_mokojoombackup/mokojoombackup.php +++ b/source/packages/plg_content_mokosuitebackup/mokosuitebackup.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE diff --git a/source/packages/plg_content_mokojoombackup/mokojoombackup.xml b/source/packages/plg_content_mokosuitebackup/mokosuitebackup.xml similarity index 75% rename from source/packages/plg_content_mokojoombackup/mokojoombackup.xml rename to source/packages/plg_content_mokosuitebackup/mokosuitebackup.xml index 7ea1a05..38060b3 100644 --- a/source/packages/plg_content_mokojoombackup/mokojoombackup.xml +++ b/source/packages/plg_content_mokosuitebackup/mokosuitebackup.xml @@ -1,14 +1,14 @@ - plg_content_mokojoombackup - 01.08.01-dev + plg_content_mokosuitebackup + 01.07.00 2026-06-04 Moko Consulting hello@mokoconsulting.tech @@ -17,17 +17,17 @@ GPL-3.0-or-later PLG_CONTENT_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\Content\MokoJoomBackup + Joomla\Plugin\Content\MokoSuiteBackup - mokojoombackup.php + mokosuitebackup.php services src - language/en-GB/plg_content_mokojoombackup.ini - language/en-GB/plg_content_mokojoombackup.sys.ini + language/en-GB/plg_content_mokosuitebackup.ini + language/en-GB/plg_content_mokosuitebackup.sys.ini @@ -60,7 +60,7 @@ type="sql" label="PLG_CONTENT_MOKOJOOMBACKUP_FIELD_PROFILE" description="PLG_CONTENT_MOKOJOOMBACKUP_FIELD_PROFILE_DESC" - query="SELECT id AS value, title AS text FROM #__mokojoombackup_profiles WHERE published = 1 ORDER BY ordering ASC" + query="SELECT id AS value, title AS text FROM #__mokosuitebackup_profiles WHERE published = 1 ORDER BY ordering ASC" default="1" > diff --git a/source/packages/plg_content_mokojoombackup/services/provider.php b/source/packages/plg_content_mokosuitebackup/services/provider.php similarity index 75% rename from source/packages/plg_content_mokojoombackup/services/provider.php rename to source/packages/plg_content_mokosuitebackup/services/provider.php index afcd020..e2b2c1b 100644 --- a/source/packages/plg_content_mokojoombackup/services/provider.php +++ b/source/packages/plg_content_mokosuitebackup/services/provider.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -16,7 +16,7 @@ use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; -use Joomla\Plugin\Content\MokoJoomBackup\Extension\MokoJoomBackupContent; +use Joomla\Plugin\Content\MokoSuiteBackup\Extension\MokoSuiteBackupContent; return new class () implements ServiceProviderInterface { public function register(Container $container): void @@ -24,9 +24,9 @@ return new class () implements ServiceProviderInterface { $container->set( PluginInterface::class, function (Container $container) { - $plugin = new MokoJoomBackupContent( + $plugin = new MokoSuiteBackupContent( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('content', 'mokojoombackup') + (array) PluginHelper::getPlugin('content', 'mokosuitebackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_content_mokojoombackup/src/Extension/MokoJoomBackupContent.php b/source/packages/plg_content_mokosuitebackup/src/Extension/MokoSuiteBackupContent.php similarity index 75% rename from source/packages/plg_content_mokojoombackup/src/Extension/MokoJoomBackupContent.php rename to source/packages/plg_content_mokosuitebackup/src/Extension/MokoSuiteBackupContent.php index ae65490..f3f98b0 100644 --- a/source/packages/plg_content_mokojoombackup/src/Extension/MokoJoomBackupContent.php +++ b/source/packages/plg_content_mokosuitebackup/src/Extension/MokoSuiteBackupContent.php @@ -1,24 +1,24 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Content\MokoJoomBackup\Extension; +namespace Joomla\Plugin\Content\MokoSuiteBackup\Extension; defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\CMSPlugin; -use Joomla\Component\MokoJoomBackup\Administrator\Engine\BackupEngine; +use Joomla\Component\MokoSuiteBackup\Administrator\Engine\BackupEngine; use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; -final class MokoJoomBackupContent extends CMSPlugin implements SubscriberInterface +final class MokoSuiteBackupContent extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; @@ -63,15 +63,15 @@ final class MokoJoomBackupContent extends CMSPlugin implements SubscriberInterfa // Throttle: only one auto-backup per hour via session $session = Factory::getSession(); - $lastRun = $session->get('mokojoombackup.content_last_autobackup', 0); + $lastRun = $session->get('mokosuitebackup.content_last_autobackup', 0); if (time() - $lastRun < 3600) { return; } - $session->set('mokojoombackup.content_last_autobackup', time()); + $session->set('mokosuitebackup.content_last_autobackup', time()); - $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokojoombackup/src/Engine/BackupEngine.php'; + $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokosuitebackup/src/Engine/BackupEngine.php'; if (!file_exists($engineFile)) { return; @@ -87,7 +87,7 @@ final class MokoJoomBackupContent extends CMSPlugin implements SubscriberInterfa } catch (\Throwable $e) { // Non-fatal — log and continue with the install/update Factory::getApplication()->enqueueMessage( - 'MokoJoomBackup auto-backup failed: ' . $e->getMessage(), + 'MokoSuiteBackup auto-backup failed: ' . $e->getMessage(), 'warning' ); } diff --git a/source/packages/plg_quickicon_mokojoombackup/index.html b/source/packages/plg_quickicon_mokosuitebackup/index.html similarity index 100% rename from source/packages/plg_quickicon_mokojoombackup/index.html rename to source/packages/plg_quickicon_mokosuitebackup/index.html diff --git a/source/packages/plg_quickicon_mokojoombackup/language/en-GB/index.html b/source/packages/plg_quickicon_mokosuitebackup/language/en-GB/index.html similarity index 100% rename from source/packages/plg_quickicon_mokojoombackup/language/en-GB/index.html rename to source/packages/plg_quickicon_mokosuitebackup/language/en-GB/index.html diff --git a/source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.ini b/source/packages/plg_quickicon_mokosuitebackup/language/en-GB/plg_quickicon_mokosuitebackup.ini similarity index 85% rename from source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.ini rename to source/packages/plg_quickicon_mokosuitebackup/language/en-GB/plg_quickicon_mokosuitebackup.ini index cc0a4e5..c099061 100644 --- a/source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.ini +++ b/source/packages/plg_quickicon_mokosuitebackup/language/en-GB/plg_quickicon_mokosuitebackup.ini @@ -1,4 +1,4 @@ -PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoJoomBackup" +PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoSuiteBackup" PLG_QUICKICON_MOKOJOOMBACKUP_DESCRIPTION="Shows backup status on the administrator dashboard." PLG_QUICKICON_MOKOJOOMBACKUP_OK="Backups: OK" PLG_QUICKICON_MOKOJOOMBACKUP_NO_BACKUPS="Backups: No backups yet!" diff --git a/source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.sys.ini b/source/packages/plg_quickicon_mokosuitebackup/language/en-GB/plg_quickicon_mokosuitebackup.sys.ini similarity index 61% rename from source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.sys.ini rename to source/packages/plg_quickicon_mokosuitebackup/language/en-GB/plg_quickicon_mokosuitebackup.sys.ini index d432f08..4b4ba26 100644 --- a/source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.sys.ini +++ b/source/packages/plg_quickicon_mokosuitebackup/language/en-GB/plg_quickicon_mokosuitebackup.sys.ini @@ -1,2 +1,2 @@ -PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoJoomBackup" +PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoSuiteBackup" PLG_QUICKICON_MOKOJOOMBACKUP_DESCRIPTION="Shows backup status on the administrator dashboard." diff --git a/source/packages/plg_quickicon_mokojoombackup/language/en-US/index.html b/source/packages/plg_quickicon_mokosuitebackup/language/en-US/index.html similarity index 100% rename from source/packages/plg_quickicon_mokojoombackup/language/en-US/index.html rename to source/packages/plg_quickicon_mokosuitebackup/language/en-US/index.html diff --git a/source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.ini b/source/packages/plg_quickicon_mokosuitebackup/language/en-US/plg_quickicon_mokosuitebackup.ini similarity index 85% rename from source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.ini rename to source/packages/plg_quickicon_mokosuitebackup/language/en-US/plg_quickicon_mokosuitebackup.ini index cc0a4e5..c099061 100644 --- a/source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.ini +++ b/source/packages/plg_quickicon_mokosuitebackup/language/en-US/plg_quickicon_mokosuitebackup.ini @@ -1,4 +1,4 @@ -PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoJoomBackup" +PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoSuiteBackup" PLG_QUICKICON_MOKOJOOMBACKUP_DESCRIPTION="Shows backup status on the administrator dashboard." PLG_QUICKICON_MOKOJOOMBACKUP_OK="Backups: OK" PLG_QUICKICON_MOKOJOOMBACKUP_NO_BACKUPS="Backups: No backups yet!" diff --git a/source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.sys.ini b/source/packages/plg_quickicon_mokosuitebackup/language/en-US/plg_quickicon_mokosuitebackup.sys.ini similarity index 61% rename from source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.sys.ini rename to source/packages/plg_quickicon_mokosuitebackup/language/en-US/plg_quickicon_mokosuitebackup.sys.ini index d432f08..4b4ba26 100644 --- a/source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.sys.ini +++ b/source/packages/plg_quickicon_mokosuitebackup/language/en-US/plg_quickicon_mokosuitebackup.sys.ini @@ -1,2 +1,2 @@ -PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoJoomBackup" +PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoSuiteBackup" PLG_QUICKICON_MOKOJOOMBACKUP_DESCRIPTION="Shows backup status on the administrator dashboard." diff --git a/source/packages/plg_quickicon_mokojoombackup/language/index.html b/source/packages/plg_quickicon_mokosuitebackup/language/index.html similarity index 100% rename from source/packages/plg_quickicon_mokojoombackup/language/index.html rename to source/packages/plg_quickicon_mokosuitebackup/language/index.html diff --git a/source/packages/plg_quickicon_mokojoombackup/mokojoombackup.php b/source/packages/plg_quickicon_mokosuitebackup/mokosuitebackup.php similarity index 100% rename from source/packages/plg_quickicon_mokojoombackup/mokojoombackup.php rename to source/packages/plg_quickicon_mokosuitebackup/mokosuitebackup.php diff --git a/source/packages/plg_quickicon_mokojoombackup/mokojoombackup.xml b/source/packages/plg_quickicon_mokosuitebackup/mokosuitebackup.xml similarity index 59% rename from source/packages/plg_quickicon_mokojoombackup/mokojoombackup.xml rename to source/packages/plg_quickicon_mokosuitebackup/mokosuitebackup.xml index 1d1832d..db0b87f 100644 --- a/source/packages/plg_quickicon_mokojoombackup/mokojoombackup.xml +++ b/source/packages/plg_quickicon_mokosuitebackup/mokosuitebackup.xml @@ -1,7 +1,7 @@ - plg_quickicon_mokojoombackup - 01.08.01-dev + plg_quickicon_mokosuitebackup + 01.07.00 2026-06-02 Moko Consulting hello@mokoconsulting.tech @@ -10,16 +10,16 @@ GPL-3.0-or-later PLG_QUICKICON_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\Quickicon\MokoJoomBackup + Joomla\Plugin\Quickicon\MokoSuiteBackup - mokojoombackup.php + mokosuitebackup.php services src - language/en-GB/plg_quickicon_mokojoombackup.ini - language/en-GB/plg_quickicon_mokojoombackup.sys.ini + language/en-GB/plg_quickicon_mokosuitebackup.ini + language/en-GB/plg_quickicon_mokosuitebackup.sys.ini diff --git a/source/packages/plg_quickicon_mokojoombackup/services/index.html b/source/packages/plg_quickicon_mokosuitebackup/services/index.html similarity index 100% rename from source/packages/plg_quickicon_mokojoombackup/services/index.html rename to source/packages/plg_quickicon_mokosuitebackup/services/index.html diff --git a/source/packages/plg_quickicon_mokojoombackup/services/provider.php b/source/packages/plg_quickicon_mokosuitebackup/services/provider.php similarity index 75% rename from source/packages/plg_quickicon_mokojoombackup/services/provider.php rename to source/packages/plg_quickicon_mokosuitebackup/services/provider.php index 4af1c9f..48ad6c2 100644 --- a/source/packages/plg_quickicon_mokojoombackup/services/provider.php +++ b/source/packages/plg_quickicon_mokosuitebackup/services/provider.php @@ -8,7 +8,7 @@ use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; -use Joomla\Plugin\Quickicon\MokoJoomBackup\Extension\MokoJoomBackupQuickicon; +use Joomla\Plugin\Quickicon\MokoSuiteBackup\Extension\MokoSuiteBackupQuickicon; return new class () implements ServiceProviderInterface { public function register(Container $container): void @@ -16,9 +16,9 @@ return new class () implements ServiceProviderInterface { $container->set( PluginInterface::class, function (Container $container) { - $plugin = new MokoJoomBackupQuickicon( + $plugin = new MokoSuiteBackupQuickicon( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('quickicon', 'mokojoombackup') + (array) PluginHelper::getPlugin('quickicon', 'mokosuitebackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_quickicon_mokojoombackup/src/Extension/MokoJoomBackupQuickicon.php b/source/packages/plg_quickicon_mokosuitebackup/src/Extension/MokoSuiteBackupQuickicon.php similarity index 86% rename from source/packages/plg_quickicon_mokojoombackup/src/Extension/MokoJoomBackupQuickicon.php rename to source/packages/plg_quickicon_mokosuitebackup/src/Extension/MokoSuiteBackupQuickicon.php index b17baee..1972b97 100644 --- a/source/packages/plg_quickicon_mokojoombackup/src/Extension/MokoJoomBackupQuickicon.php +++ b/source/packages/plg_quickicon_mokosuitebackup/src/Extension/MokoSuiteBackupQuickicon.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -10,7 +10,7 @@ * Dashboard quickicon widget showing backup status at a glance. */ -namespace Joomla\Plugin\Quickicon\MokoJoomBackup\Extension; +namespace Joomla\Plugin\Quickicon\MokoSuiteBackup\Extension; defined('_JEXEC') or die; @@ -20,7 +20,7 @@ use Joomla\CMS\Plugin\CMSPlugin; use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; -final class MokoJoomBackupQuickicon extends CMSPlugin implements SubscriberInterface +final class MokoSuiteBackupQuickicon extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; @@ -44,7 +44,7 @@ final class MokoJoomBackupQuickicon extends CMSPlugin implements SubscriberInter // Get last completed backup $query = $db->getQuery(true) ->select('*') - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')) ->order($db->quoteName('backupstart') . ' DESC'); $db->setQuery($query, 0, 1); @@ -53,7 +53,7 @@ final class MokoJoomBackupQuickicon extends CMSPlugin implements SubscriberInter // Get total count and storage $query = $db->getQuery(true) ->select('COUNT(*) AS total, COALESCE(SUM(total_size), 0) AS total_size') - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')); $db->setQuery($query); $stats = $db->loadObject(); @@ -61,7 +61,7 @@ final class MokoJoomBackupQuickicon extends CMSPlugin implements SubscriberInter // Check for recent failures $query = $db->getQuery(true) ->select('COUNT(*)') - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('fail')) ->where($db->quoteName('backupstart') . ' > DATE_SUB(NOW(), INTERVAL 7 DAY)'); $db->setQuery($query); @@ -94,12 +94,12 @@ final class MokoJoomBackupQuickicon extends CMSPlugin implements SubscriberInter $result = $event->getArgument('result', []); $result[] = [ [ - 'link' => 'index.php?option=com_mokojoombackup&view=backups', + 'link' => 'index.php?option=com_mokosuitebackup&view=backups', 'image' => $warning ? 'icon-warning' : 'icon-database', 'icon' => $warning ? 'icon-warning' : 'icon-database', 'text' => Text::_($text), 'linkadd' => $subtitle ? '
' . htmlspecialchars($subtitle) . '' : '', - 'id' => 'plg_quickicon_mokojoombackup', + 'id' => 'plg_quickicon_mokosuitebackup', 'group' => 'MOD_QUICKICON_MAINTENANCE', ], ]; diff --git a/source/packages/plg_quickicon_mokojoombackup/src/Extension/index.html b/source/packages/plg_quickicon_mokosuitebackup/src/Extension/index.html similarity index 100% rename from source/packages/plg_quickicon_mokojoombackup/src/Extension/index.html rename to source/packages/plg_quickicon_mokosuitebackup/src/Extension/index.html diff --git a/source/packages/plg_quickicon_mokojoombackup/src/index.html b/source/packages/plg_quickicon_mokosuitebackup/src/index.html similarity index 100% rename from source/packages/plg_quickicon_mokojoombackup/src/index.html rename to source/packages/plg_quickicon_mokosuitebackup/src/index.html diff --git a/source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.sys.ini b/source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.sys.ini deleted file mode 100644 index 1fce9d3..0000000 --- a/source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — System Plugin system language file (en-GB) -PLG_SYSTEM_MOKOJOOMBACKUP="System - MokoJoomBackup" -PLG_SYSTEM_MOKOJOOMBACKUP_DESCRIPTION="Automatic cleanup of expired backup archives and scheduled backup triggers." diff --git a/source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.sys.ini b/source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.sys.ini deleted file mode 100644 index 9c4fd2e..0000000 --- a/source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — System Plugin system language file (en-US) -PLG_SYSTEM_MOKOJOOMBACKUP="System - MokoJoomBackup" -PLG_SYSTEM_MOKOJOOMBACKUP_DESCRIPTION="Automatic cleanup of expired backup archives and scheduled backup triggers." diff --git a/source/packages/plg_system_mokojoombackup/index.html b/source/packages/plg_system_mokosuitebackup/index.html similarity index 100% rename from source/packages/plg_system_mokojoombackup/index.html rename to source/packages/plg_system_mokosuitebackup/index.html diff --git a/source/packages/plg_system_mokojoombackup/language/en-GB/index.html b/source/packages/plg_system_mokosuitebackup/language/en-GB/index.html similarity index 100% rename from source/packages/plg_system_mokojoombackup/language/en-GB/index.html rename to source/packages/plg_system_mokosuitebackup/language/en-GB/index.html diff --git a/source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.ini b/source/packages/plg_system_mokosuitebackup/language/en-GB/plg_system_mokosuitebackup.ini similarity index 84% rename from source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.ini rename to source/packages/plg_system_mokosuitebackup/language/en-GB/plg_system_mokosuitebackup.ini index 246611b..d0804cd 100644 --- a/source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.ini +++ b/source/packages/plg_system_mokosuitebackup/language/en-GB/plg_system_mokosuitebackup.ini @@ -1,5 +1,5 @@ -; MokoJoomBackup — System Plugin language file (en-GB) -PLG_SYSTEM_MOKOJOOMBACKUP="System - MokoJoomBackup" +; MokoSuiteBackup — System Plugin language file (en-GB) +PLG_SYSTEM_MOKOJOOMBACKUP="System - MokoSuiteBackup" PLG_SYSTEM_MOKOJOOMBACKUP_DESCRIPTION="Automatic cleanup of expired backup archives and scheduled backup triggers." PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_AUTO_CLEANUP="Auto Cleanup" PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_AUTO_CLEANUP_DESC="Automatically remove old backup archives based on age and count limits." diff --git a/source/packages/plg_system_mokosuitebackup/language/en-GB/plg_system_mokosuitebackup.sys.ini b/source/packages/plg_system_mokosuitebackup/language/en-GB/plg_system_mokosuitebackup.sys.ini new file mode 100644 index 0000000..563477a --- /dev/null +++ b/source/packages/plg_system_mokosuitebackup/language/en-GB/plg_system_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — System Plugin system language file (en-GB) +PLG_SYSTEM_MOKOJOOMBACKUP="System - MokoSuiteBackup" +PLG_SYSTEM_MOKOJOOMBACKUP_DESCRIPTION="Automatic cleanup of expired backup archives and scheduled backup triggers." diff --git a/source/packages/plg_system_mokojoombackup/language/en-US/index.html b/source/packages/plg_system_mokosuitebackup/language/en-US/index.html similarity index 100% rename from source/packages/plg_system_mokojoombackup/language/en-US/index.html rename to source/packages/plg_system_mokosuitebackup/language/en-US/index.html diff --git a/source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.ini b/source/packages/plg_system_mokosuitebackup/language/en-US/plg_system_mokosuitebackup.ini similarity index 84% rename from source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.ini rename to source/packages/plg_system_mokosuitebackup/language/en-US/plg_system_mokosuitebackup.ini index 8d8e47f..15103fb 100644 --- a/source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.ini +++ b/source/packages/plg_system_mokosuitebackup/language/en-US/plg_system_mokosuitebackup.ini @@ -1,5 +1,5 @@ -; MokoJoomBackup — System Plugin language file (en-US) -PLG_SYSTEM_MOKOJOOMBACKUP="System - MokoJoomBackup" +; MokoSuiteBackup — System Plugin language file (en-US) +PLG_SYSTEM_MOKOJOOMBACKUP="System - MokoSuiteBackup" PLG_SYSTEM_MOKOJOOMBACKUP_DESCRIPTION="Automatic cleanup of expired backup archives and scheduled backup triggers." PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_AUTO_CLEANUP="Auto Cleanup" PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_AUTO_CLEANUP_DESC="Automatically remove old backup archives based on age and count limits." diff --git a/source/packages/plg_system_mokosuitebackup/language/en-US/plg_system_mokosuitebackup.sys.ini b/source/packages/plg_system_mokosuitebackup/language/en-US/plg_system_mokosuitebackup.sys.ini new file mode 100644 index 0000000..66e5ee4 --- /dev/null +++ b/source/packages/plg_system_mokosuitebackup/language/en-US/plg_system_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — System Plugin system language file (en-US) +PLG_SYSTEM_MOKOJOOMBACKUP="System - MokoSuiteBackup" +PLG_SYSTEM_MOKOJOOMBACKUP_DESCRIPTION="Automatic cleanup of expired backup archives and scheduled backup triggers." diff --git a/source/packages/plg_system_mokojoombackup/language/index.html b/source/packages/plg_system_mokosuitebackup/language/index.html similarity index 100% rename from source/packages/plg_system_mokojoombackup/language/index.html rename to source/packages/plg_system_mokosuitebackup/language/index.html diff --git a/source/packages/plg_console_mokojoombackup/mokojoombackup.php b/source/packages/plg_system_mokosuitebackup/mokosuitebackup.php similarity index 76% rename from source/packages/plg_console_mokojoombackup/mokojoombackup.php rename to source/packages/plg_system_mokosuitebackup/mokosuitebackup.php index bb0f01c..0bd3eb5 100644 --- a/source/packages/plg_console_mokojoombackup/mokojoombackup.php +++ b/source/packages/plg_system_mokosuitebackup/mokosuitebackup.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE diff --git a/source/packages/plg_system_mokojoombackup/mokojoombackup.xml b/source/packages/plg_system_mokosuitebackup/mokosuitebackup.xml similarity index 78% rename from source/packages/plg_system_mokojoombackup/mokojoombackup.xml rename to source/packages/plg_system_mokosuitebackup/mokosuitebackup.xml index 6364d36..fec71aa 100644 --- a/source/packages/plg_system_mokojoombackup/mokojoombackup.xml +++ b/source/packages/plg_system_mokosuitebackup/mokosuitebackup.xml @@ -1,14 +1,14 @@ - plg_system_mokojoombackup - 01.08.01-dev + plg_system_mokosuitebackup + 01.07.00 2026-06-02 Moko Consulting hello@mokoconsulting.tech @@ -17,17 +17,17 @@ GPL-3.0-or-later PLG_SYSTEM_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\System\MokoJoomBackup + Joomla\Plugin\System\MokoSuiteBackup - mokojoombackup.php + mokosuitebackup.php services src - language/en-GB/plg_system_mokojoombackup.ini - language/en-GB/plg_system_mokojoombackup.sys.ini + language/en-GB/plg_system_mokosuitebackup.ini + language/en-GB/plg_system_mokosuitebackup.sys.ini diff --git a/source/packages/plg_system_mokojoombackup/services/index.html b/source/packages/plg_system_mokosuitebackup/services/index.html similarity index 100% rename from source/packages/plg_system_mokojoombackup/services/index.html rename to source/packages/plg_system_mokosuitebackup/services/index.html diff --git a/source/packages/plg_system_mokojoombackup/services/provider.php b/source/packages/plg_system_mokosuitebackup/services/provider.php similarity index 76% rename from source/packages/plg_system_mokojoombackup/services/provider.php rename to source/packages/plg_system_mokosuitebackup/services/provider.php index fb7f9d4..f4c0ed5 100644 --- a/source/packages/plg_system_mokojoombackup/services/provider.php +++ b/source/packages/plg_system_mokosuitebackup/services/provider.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -16,7 +16,7 @@ use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; -use Joomla\Plugin\System\MokoJoomBackup\Extension\MokoJoomBackup; +use Joomla\Plugin\System\MokoSuiteBackup\Extension\MokoSuiteBackup; return new class () implements ServiceProviderInterface { public function register(Container $container): void @@ -24,9 +24,9 @@ return new class () implements ServiceProviderInterface { $container->set( PluginInterface::class, function (Container $container) { - $plugin = new MokoJoomBackup( + $plugin = new MokoSuiteBackup( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('system', 'mokojoombackup') + (array) PluginHelper::getPlugin('system', 'mokosuitebackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_system_mokojoombackup/src/Extension/MokoJoomBackup.php b/source/packages/plg_system_mokosuitebackup/src/Extension/MokoSuiteBackup.php similarity index 85% rename from source/packages/plg_system_mokojoombackup/src/Extension/MokoJoomBackup.php rename to source/packages/plg_system_mokosuitebackup/src/Extension/MokoSuiteBackup.php index e459e3f..b5fbc8d 100644 --- a/source/packages/plg_system_mokojoombackup/src/Extension/MokoJoomBackup.php +++ b/source/packages/plg_system_mokosuitebackup/src/Extension/MokoSuiteBackup.php @@ -1,25 +1,25 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\System\MokoJoomBackup\Extension; +namespace Joomla\Plugin\System\MokoSuiteBackup\Extension; defined('_JEXEC') or die; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\CMSPlugin; -use Joomla\Component\MokoJoomBackup\Administrator\Engine\BackupEngine; +use Joomla\Component\MokoSuiteBackup\Administrator\Engine\BackupEngine; use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; -final class MokoJoomBackup extends CMSPlugin implements SubscriberInterface +final class MokoSuiteBackup extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; @@ -34,7 +34,7 @@ final class MokoJoomBackup extends CMSPlugin implements SubscriberInterface /** * Web cron trigger — runs before routing so no authentication is needed. * - * URL: index.php?mokojoombackup_cron=SECRET&profile_id=1 + * URL: index.php?mokosuitebackup_cron=SECRET&profile_id=1 * * External cron services (cron-job.org, UptimeRobot, etc.) can call this * URL on a schedule to trigger backups on shared hosting without crontab. @@ -42,14 +42,14 @@ final class MokoJoomBackup extends CMSPlugin implements SubscriberInterface public function onAfterInitialise(Event $event): void { $app = $this->getApplication(); - $secret = $app->input->getString('mokojoombackup_cron', ''); + $secret = $app->input->getString('mokosuitebackup_cron', ''); if ($secret === '') { return; } // Load component params - $params = ComponentHelper::getParams('com_mokojoombackup'); + $params = ComponentHelper::getParams('com_mokosuitebackup'); $enabled = (int) $params->get('webcron_enabled', 0); $configSecret = trim($params->get('webcron_secret', '')); $ipWhitelist = trim($params->get('webcron_ip_whitelist', '')); @@ -104,7 +104,7 @@ final class MokoJoomBackup extends CMSPlugin implements SubscriberInterface $app = $this->getApplication(); // Skip if this is a web cron request (already handled) - if ($app->input->getString('mokojoombackup_cron', '') !== '') { + if ($app->input->getString('mokosuitebackup_cron', '') !== '') { return; } @@ -119,13 +119,13 @@ final class MokoJoomBackup extends CMSPlugin implements SubscriberInterface // Throttle: only check once per hour via session flag $session = Factory::getSession(); - $lastCheck = $session->get('mokojoombackup.last_cleanup', 0); + $lastCheck = $session->get('mokosuitebackup.last_cleanup', 0); if (time() - $lastCheck < 3600) { return; } - $session->set('mokojoombackup.last_cleanup', time()); + $session->set('mokosuitebackup.last_cleanup', time()); $this->cleanupOldBackups(); } @@ -143,7 +143,7 @@ final class MokoJoomBackup extends CMSPlugin implements SubscriberInterface $cutoff = date('Y-m-d H:i:s', strtotime("-{$maxAge} days")); $query = $db->getQuery(true) ->select('id, absolute_path') - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('backupstart') . ' < ' . $db->quote($cutoff)) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')); $db->setQuery($query); @@ -158,7 +158,7 @@ final class MokoJoomBackup extends CMSPlugin implements SubscriberInterface $db->setQuery( $db->getQuery(true) - ->delete($db->quoteName('#__mokojoombackup_records')) + ->delete($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('id') . ' = ' . (int) $record->id) ); $db->execute(); @@ -167,7 +167,7 @@ final class MokoJoomBackup extends CMSPlugin implements SubscriberInterface // Enforce max backups count (keep newest) $query = $db->getQuery(true) ->select('COUNT(*)') - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')); $db->setQuery($query); $totalCount = (int) $db->loadResult(); @@ -176,7 +176,7 @@ final class MokoJoomBackup extends CMSPlugin implements SubscriberInterface $excess = $totalCount - $maxBackups; $query = $db->getQuery(true) ->select('id, absolute_path') - ->from($db->quoteName('#__mokojoombackup_records')) + ->from($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')) ->order($db->quoteName('backupstart') . ' ASC'); $db->setQuery($query, 0, $excess); @@ -191,7 +191,7 @@ final class MokoJoomBackup extends CMSPlugin implements SubscriberInterface $db->setQuery( $db->getQuery(true) - ->delete($db->quoteName('#__mokojoombackup_records')) + ->delete($db->quoteName('#__mokosuitebackup_records')) ->where($db->quoteName('id') . ' = ' . (int) $record->id) ); $db->execute(); diff --git a/source/packages/plg_system_mokojoombackup/src/Extension/index.html b/source/packages/plg_system_mokosuitebackup/src/Extension/index.html similarity index 100% rename from source/packages/plg_system_mokojoombackup/src/Extension/index.html rename to source/packages/plg_system_mokosuitebackup/src/Extension/index.html diff --git a/source/packages/plg_system_mokojoombackup/src/index.html b/source/packages/plg_system_mokosuitebackup/src/index.html similarity index 100% rename from source/packages/plg_system_mokojoombackup/src/index.html rename to source/packages/plg_system_mokosuitebackup/src/index.html diff --git a/source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.ini b/source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.ini deleted file mode 100644 index ef0115d..0000000 --- a/source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.ini +++ /dev/null @@ -1,12 +0,0 @@ -; MokoJoomBackup — Task Plugin language file (en-GB) -PLG_TASK_MOKOJOOMBACKUP="Task - MokoJoomBackup" -PLG_TASK_MOKOJOOMBACKUP_DESCRIPTION="Scheduled task plugin for MokoJoomBackup. Allows running backup profiles on a schedule via Joomla's Scheduled Tasks system." - -; Task type -PLG_TASK_MOKOJOOMBACKUP_TASK_RUN_PROFILE_TITLE="MokoJoomBackup: Run Backup Profile" -PLG_TASK_MOKOJOOMBACKUP_TASK_RUN_PROFILE_DESC="Run a MokoJoomBackup backup using the selected profile. Create multiple tasks with different profiles for different backup schedules (e.g. daily full backup, hourly database-only backup)." - -; Task form fields -PLG_TASK_MOKOJOOMBACKUP_FIELD_PROFILE="Backup Profile" -PLG_TASK_MOKOJOOMBACKUP_FIELD_PROFILE_DESC="Select which backup profile to run. Each profile defines backup type (full/database/files), exclusion filters, and storage settings." -PLG_TASK_MOKOJOOMBACKUP_SELECT_PROFILE="- Select Profile -" diff --git a/source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.sys.ini b/source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.sys.ini deleted file mode 100644 index cc26e23..0000000 --- a/source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Task Plugin system language file (en-GB) -PLG_TASK_MOKOJOOMBACKUP="Task - MokoJoomBackup" -PLG_TASK_MOKOJOOMBACKUP_DESCRIPTION="Scheduled task plugin for MokoJoomBackup. Run backup profiles on a schedule via Joomla's Scheduled Tasks." diff --git a/source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.ini b/source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.ini deleted file mode 100644 index 7deadad..0000000 --- a/source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.ini +++ /dev/null @@ -1,8 +0,0 @@ -; MokoJoomBackup — Task Plugin language file (en-US) -PLG_TASK_MOKOJOOMBACKUP="Task - MokoJoomBackup" -PLG_TASK_MOKOJOOMBACKUP_DESCRIPTION="Scheduled task plugin for MokoJoomBackup. Allows running backup profiles on a schedule via Joomla's Scheduled Tasks system." -PLG_TASK_MOKOJOOMBACKUP_TASK_RUN_PROFILE_TITLE="MokoJoomBackup: Run Backup Profile" -PLG_TASK_MOKOJOOMBACKUP_TASK_RUN_PROFILE_DESC="Run a MokoJoomBackup backup using the selected profile. Create multiple tasks with different profiles for different backup schedules." -PLG_TASK_MOKOJOOMBACKUP_FIELD_PROFILE="Backup Profile" -PLG_TASK_MOKOJOOMBACKUP_FIELD_PROFILE_DESC="Select which backup profile to run." -PLG_TASK_MOKOJOOMBACKUP_SELECT_PROFILE="- Select Profile -" diff --git a/source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.sys.ini b/source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.sys.ini deleted file mode 100644 index 4850f90..0000000 --- a/source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Task Plugin system language file (en-US) -PLG_TASK_MOKOJOOMBACKUP="Task - MokoJoomBackup" -PLG_TASK_MOKOJOOMBACKUP_DESCRIPTION="Scheduled task plugin for MokoJoomBackup. Run backup profiles on a schedule via Joomla's Scheduled Tasks." diff --git a/source/packages/plg_task_mokojoombackup/forms/index.html b/source/packages/plg_task_mokosuitebackup/forms/index.html similarity index 100% rename from source/packages/plg_task_mokojoombackup/forms/index.html rename to source/packages/plg_task_mokosuitebackup/forms/index.html diff --git a/source/packages/plg_task_mokojoombackup/forms/run_profile.xml b/source/packages/plg_task_mokosuitebackup/forms/run_profile.xml similarity index 74% rename from source/packages/plg_task_mokojoombackup/forms/run_profile.xml rename to source/packages/plg_task_mokosuitebackup/forms/run_profile.xml index 57ee2f4..cf1fc9c 100644 --- a/source/packages/plg_task_mokojoombackup/forms/run_profile.xml +++ b/source/packages/plg_task_mokosuitebackup/forms/run_profile.xml @@ -2,7 +2,7 @@
@@ -11,7 +11,7 @@ type="sql" label="PLG_TASK_MOKOJOOMBACKUP_FIELD_PROFILE" description="PLG_TASK_MOKOJOOMBACKUP_FIELD_PROFILE_DESC" - query="SELECT id AS value, title AS text FROM #__mokojoombackup_profiles WHERE published = 1 ORDER BY ordering ASC" + query="SELECT id AS value, title AS text FROM #__mokosuitebackup_profiles WHERE published = 1 ORDER BY ordering ASC" default="1" required="true" > diff --git a/source/packages/plg_task_mokojoombackup/index.html b/source/packages/plg_task_mokosuitebackup/index.html similarity index 100% rename from source/packages/plg_task_mokojoombackup/index.html rename to source/packages/plg_task_mokosuitebackup/index.html diff --git a/source/packages/plg_task_mokojoombackup/language/en-GB/index.html b/source/packages/plg_task_mokosuitebackup/language/en-GB/index.html similarity index 100% rename from source/packages/plg_task_mokojoombackup/language/en-GB/index.html rename to source/packages/plg_task_mokosuitebackup/language/en-GB/index.html diff --git a/source/packages/plg_task_mokosuitebackup/language/en-GB/plg_task_mokosuitebackup.ini b/source/packages/plg_task_mokosuitebackup/language/en-GB/plg_task_mokosuitebackup.ini new file mode 100644 index 0000000..d2a490c --- /dev/null +++ b/source/packages/plg_task_mokosuitebackup/language/en-GB/plg_task_mokosuitebackup.ini @@ -0,0 +1,12 @@ +; MokoSuiteBackup — Task Plugin language file (en-GB) +PLG_TASK_MOKOJOOMBACKUP="Task - MokoSuiteBackup" +PLG_TASK_MOKOJOOMBACKUP_DESCRIPTION="Scheduled task plugin for MokoSuiteBackup. Allows running backup profiles on a schedule via Joomla's Scheduled Tasks system." + +; Task type +PLG_TASK_MOKOJOOMBACKUP_TASK_RUN_PROFILE_TITLE="MokoSuiteBackup: Run Backup Profile" +PLG_TASK_MOKOJOOMBACKUP_TASK_RUN_PROFILE_DESC="Run a MokoSuiteBackup backup using the selected profile. Create multiple tasks with different profiles for different backup schedules (e.g. daily full backup, hourly database-only backup)." + +; Task form fields +PLG_TASK_MOKOJOOMBACKUP_FIELD_PROFILE="Backup Profile" +PLG_TASK_MOKOJOOMBACKUP_FIELD_PROFILE_DESC="Select which backup profile to run. Each profile defines backup type (full/database/files), exclusion filters, and storage settings." +PLG_TASK_MOKOJOOMBACKUP_SELECT_PROFILE="- Select Profile -" diff --git a/source/packages/plg_task_mokosuitebackup/language/en-GB/plg_task_mokosuitebackup.sys.ini b/source/packages/plg_task_mokosuitebackup/language/en-GB/plg_task_mokosuitebackup.sys.ini new file mode 100644 index 0000000..1dc1a26 --- /dev/null +++ b/source/packages/plg_task_mokosuitebackup/language/en-GB/plg_task_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — Task Plugin system language file (en-GB) +PLG_TASK_MOKOJOOMBACKUP="Task - MokoSuiteBackup" +PLG_TASK_MOKOJOOMBACKUP_DESCRIPTION="Scheduled task plugin for MokoSuiteBackup. Run backup profiles on a schedule via Joomla's Scheduled Tasks." diff --git a/source/packages/plg_task_mokojoombackup/language/en-US/index.html b/source/packages/plg_task_mokosuitebackup/language/en-US/index.html similarity index 100% rename from source/packages/plg_task_mokojoombackup/language/en-US/index.html rename to source/packages/plg_task_mokosuitebackup/language/en-US/index.html diff --git a/source/packages/plg_task_mokosuitebackup/language/en-US/plg_task_mokosuitebackup.ini b/source/packages/plg_task_mokosuitebackup/language/en-US/plg_task_mokosuitebackup.ini new file mode 100644 index 0000000..5283b83 --- /dev/null +++ b/source/packages/plg_task_mokosuitebackup/language/en-US/plg_task_mokosuitebackup.ini @@ -0,0 +1,8 @@ +; MokoSuiteBackup — Task Plugin language file (en-US) +PLG_TASK_MOKOJOOMBACKUP="Task - MokoSuiteBackup" +PLG_TASK_MOKOJOOMBACKUP_DESCRIPTION="Scheduled task plugin for MokoSuiteBackup. Allows running backup profiles on a schedule via Joomla's Scheduled Tasks system." +PLG_TASK_MOKOJOOMBACKUP_TASK_RUN_PROFILE_TITLE="MokoSuiteBackup: Run Backup Profile" +PLG_TASK_MOKOJOOMBACKUP_TASK_RUN_PROFILE_DESC="Run a MokoSuiteBackup backup using the selected profile. Create multiple tasks with different profiles for different backup schedules." +PLG_TASK_MOKOJOOMBACKUP_FIELD_PROFILE="Backup Profile" +PLG_TASK_MOKOJOOMBACKUP_FIELD_PROFILE_DESC="Select which backup profile to run." +PLG_TASK_MOKOJOOMBACKUP_SELECT_PROFILE="- Select Profile -" diff --git a/source/packages/plg_task_mokosuitebackup/language/en-US/plg_task_mokosuitebackup.sys.ini b/source/packages/plg_task_mokosuitebackup/language/en-US/plg_task_mokosuitebackup.sys.ini new file mode 100644 index 0000000..23039fb --- /dev/null +++ b/source/packages/plg_task_mokosuitebackup/language/en-US/plg_task_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — Task Plugin system language file (en-US) +PLG_TASK_MOKOJOOMBACKUP="Task - MokoSuiteBackup" +PLG_TASK_MOKOJOOMBACKUP_DESCRIPTION="Scheduled task plugin for MokoSuiteBackup. Run backup profiles on a schedule via Joomla's Scheduled Tasks." diff --git a/source/packages/plg_task_mokojoombackup/language/index.html b/source/packages/plg_task_mokosuitebackup/language/index.html similarity index 100% rename from source/packages/plg_task_mokojoombackup/language/index.html rename to source/packages/plg_task_mokosuitebackup/language/index.html diff --git a/source/packages/plg_task_mokojoombackup/mokojoombackup.php b/source/packages/plg_task_mokosuitebackup/mokosuitebackup.php similarity index 77% rename from source/packages/plg_task_mokojoombackup/mokojoombackup.php rename to source/packages/plg_task_mokosuitebackup/mokosuitebackup.php index 4cc8120..e76f1ef 100644 --- a/source/packages/plg_task_mokojoombackup/mokojoombackup.php +++ b/source/packages/plg_task_mokosuitebackup/mokosuitebackup.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE diff --git a/source/packages/plg_task_mokojoombackup/mokojoombackup.xml b/source/packages/plg_task_mokosuitebackup/mokosuitebackup.xml similarity index 64% rename from source/packages/plg_task_mokojoombackup/mokojoombackup.xml rename to source/packages/plg_task_mokosuitebackup/mokosuitebackup.xml index 0fc16e5..f61fddc 100644 --- a/source/packages/plg_task_mokojoombackup/mokojoombackup.xml +++ b/source/packages/plg_task_mokosuitebackup/mokosuitebackup.xml @@ -1,14 +1,14 @@ - plg_task_mokojoombackup - 01.08.01-dev + plg_task_mokosuitebackup + 01.07.00 2026-06-02 Moko Consulting hello@mokoconsulting.tech @@ -17,17 +17,17 @@ GPL-3.0-or-later PLG_TASK_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\Task\MokoJoomBackup + Joomla\Plugin\Task\MokoSuiteBackup - mokojoombackup.php + mokosuitebackup.php services src forms - language/en-GB/plg_task_mokojoombackup.ini - language/en-GB/plg_task_mokojoombackup.sys.ini + language/en-GB/plg_task_mokosuitebackup.ini + language/en-GB/plg_task_mokosuitebackup.sys.ini diff --git a/source/packages/plg_task_mokojoombackup/services/index.html b/source/packages/plg_task_mokosuitebackup/services/index.html similarity index 100% rename from source/packages/plg_task_mokojoombackup/services/index.html rename to source/packages/plg_task_mokosuitebackup/services/index.html diff --git a/source/packages/plg_task_mokojoombackup/services/provider.php b/source/packages/plg_task_mokosuitebackup/services/provider.php similarity index 76% rename from source/packages/plg_task_mokojoombackup/services/provider.php rename to source/packages/plg_task_mokosuitebackup/services/provider.php index f48dbc4..3680436 100644 --- a/source/packages/plg_task_mokojoombackup/services/provider.php +++ b/source/packages/plg_task_mokosuitebackup/services/provider.php @@ -1,8 +1,8 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -16,7 +16,7 @@ use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; -use Joomla\Plugin\Task\MokoJoomBackup\Extension\MokoJoomBackupTask; +use Joomla\Plugin\Task\MokoSuiteBackup\Extension\MokoSuiteBackupTask; return new class () implements ServiceProviderInterface { public function register(Container $container): void @@ -24,9 +24,9 @@ return new class () implements ServiceProviderInterface { $container->set( PluginInterface::class, function (Container $container) { - $plugin = new MokoJoomBackupTask( + $plugin = new MokoSuiteBackupTask( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('task', 'mokojoombackup') + (array) PluginHelper::getPlugin('task', 'mokosuitebackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_task_mokojoombackup/src/Extension/MokoJoomBackupTask.php b/source/packages/plg_task_mokosuitebackup/src/Extension/MokoSuiteBackupTask.php similarity index 78% rename from source/packages/plg_task_mokojoombackup/src/Extension/MokoJoomBackupTask.php rename to source/packages/plg_task_mokosuitebackup/src/Extension/MokoSuiteBackupTask.php index 4023778..4a0e020 100644 --- a/source/packages/plg_task_mokojoombackup/src/Extension/MokoJoomBackupTask.php +++ b/source/packages/plg_task_mokosuitebackup/src/Extension/MokoSuiteBackupTask.php @@ -1,20 +1,20 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE * - * Joomla Scheduled Task plugin for MokoJoomBackup. + * Joomla Scheduled Task plugin for MokoSuiteBackup. * * Registers a "Run Backup Profile" task type with com_scheduler. * Admins can create multiple scheduled tasks in System > Scheduled Tasks, * each pointing to a different backup profile — just like Akeeba Backup Pro. */ -namespace Joomla\Plugin\Task\MokoJoomBackup\Extension; +namespace Joomla\Plugin\Task\MokoSuiteBackup\Extension; defined('_JEXEC') or die; @@ -25,7 +25,7 @@ use Joomla\Component\Scheduler\Administrator\Traits\TaskPluginTrait; use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; -final class MokoJoomBackupTask extends CMSPlugin implements SubscriberInterface +final class MokoSuiteBackupTask extends CMSPlugin implements SubscriberInterface { use TaskPluginTrait; @@ -38,7 +38,7 @@ final class MokoJoomBackupTask extends CMSPlugin implements SubscriberInterface * so different backup profiles run on different schedules. */ protected const TASKS_MAP = [ - 'mokojoombackup.run_profile' => [ + 'mokosuitebackup.run_profile' => [ 'langConstPrefix' => 'PLG_TASK_MOKOJOOMBACKUP_TASK_RUN_PROFILE', 'method' => 'runBackupProfile', 'form' => 'run_profile', @@ -67,20 +67,20 @@ final class MokoJoomBackupTask extends CMSPlugin implements SubscriberInterface $profileId = (int) ($params->profile_id ?? 1); // Load the backup engine from the component - $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokojoombackup/src/Engine/BackupEngine.php'; + $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokosuitebackup/src/Engine/BackupEngine.php'; if (!file_exists($engineFile)) { - $this->logTask('MokoJoomBackup component not installed — cannot run backup.'); + $this->logTask('MokoSuiteBackup component not installed — cannot run backup.'); return Status::KNOCKOUT; } // The autoloader should handle this via namespace, but ensure class is available - if (!class_exists('\\Joomla\\Component\\MokoJoomBackup\\Administrator\\Engine\\BackupEngine')) { + if (!class_exists('\\Joomla\\Component\\MokoSuiteBackup\\Administrator\\Engine\\BackupEngine')) { require_once $engineFile; } - $engine = new \Joomla\Component\MokoJoomBackup\Administrator\Engine\BackupEngine(); + $engine = new \Joomla\Component\MokoSuiteBackup\Administrator\Engine\BackupEngine(); $result = $engine->run($profileId, 'Scheduled task backup', 'scheduled'); if ($result['success']) { diff --git a/source/packages/plg_task_mokojoombackup/src/Extension/index.html b/source/packages/plg_task_mokosuitebackup/src/Extension/index.html similarity index 100% rename from source/packages/plg_task_mokojoombackup/src/Extension/index.html rename to source/packages/plg_task_mokosuitebackup/src/Extension/index.html diff --git a/source/packages/plg_task_mokojoombackup/src/index.html b/source/packages/plg_task_mokosuitebackup/src/index.html similarity index 100% rename from source/packages/plg_task_mokojoombackup/src/index.html rename to source/packages/plg_task_mokosuitebackup/src/index.html diff --git a/source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.sys.ini b/source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.sys.ini deleted file mode 100644 index 575a5a7..0000000 --- a/source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — WebServices Plugin system language file (en-GB) -PLG_WEBSERVICES_MOKOJOOMBACKUP="Web Services - MokoJoomBackup" -PLG_WEBSERVICES_MOKOJOOMBACKUP_DESCRIPTION="REST API for remote backup management." diff --git a/source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.sys.ini b/source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.sys.ini deleted file mode 100644 index 0d83f11..0000000 --- a/source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — WebServices Plugin system language file (en-US) -PLG_WEBSERVICES_MOKOJOOMBACKUP="Web Services - MokoJoomBackup" -PLG_WEBSERVICES_MOKOJOOMBACKUP_DESCRIPTION="REST API for remote backup management." diff --git a/source/packages/plg_webservices_mokojoombackup/mokojoombackup.php b/source/packages/plg_webservices_mokojoombackup/mokojoombackup.php deleted file mode 100644 index d3162d7..0000000 --- a/source/packages/plg_webservices_mokojoombackup/mokojoombackup.php +++ /dev/null @@ -1,11 +0,0 @@ - - * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. - * @license GNU General Public License version 3 or later; see LICENSE - */ - -defined('_JEXEC') or die; diff --git a/source/packages/plg_webservices_mokojoombackup/services/provider.php b/source/packages/plg_webservices_mokojoombackup/services/provider.php deleted file mode 100644 index b96697f..0000000 --- a/source/packages/plg_webservices_mokojoombackup/services/provider.php +++ /dev/null @@ -1,37 +0,0 @@ - - * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. - * @license GNU General Public License version 3 or later; see LICENSE - */ - -defined('_JEXEC') or die; - -use Joomla\CMS\Extension\PluginInterface; -use Joomla\CMS\Factory; -use Joomla\CMS\Plugin\PluginHelper; -use Joomla\DI\Container; -use Joomla\DI\ServiceProviderInterface; -use Joomla\Event\DispatcherInterface; -use Joomla\Plugin\WebServices\MokoJoomBackup\Extension\MokoJoomBackupWebServices; - -return new class () implements ServiceProviderInterface { - public function register(Container $container): void - { - $container->set( - PluginInterface::class, - function (Container $container) { - $plugin = new MokoJoomBackupWebServices( - $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('webservices', 'mokojoombackup') - ); - $plugin->setApplication(Factory::getApplication()); - - return $plugin; - } - ); - } -}; diff --git a/source/packages/plg_webservices_mokojoombackup/index.html b/source/packages/plg_webservices_mokosuitebackup/index.html similarity index 100% rename from source/packages/plg_webservices_mokojoombackup/index.html rename to source/packages/plg_webservices_mokosuitebackup/index.html diff --git a/source/packages/plg_webservices_mokojoombackup/language/en-GB/index.html b/source/packages/plg_webservices_mokosuitebackup/language/en-GB/index.html similarity index 100% rename from source/packages/plg_webservices_mokojoombackup/language/en-GB/index.html rename to source/packages/plg_webservices_mokosuitebackup/language/en-GB/index.html diff --git a/source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.ini b/source/packages/plg_webservices_mokosuitebackup/language/en-GB/plg_webservices_mokosuitebackup.ini similarity index 53% rename from source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.ini rename to source/packages/plg_webservices_mokosuitebackup/language/en-GB/plg_webservices_mokosuitebackup.ini index b712a7f..830309c 100644 --- a/source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.ini +++ b/source/packages/plg_webservices_mokosuitebackup/language/en-GB/plg_webservices_mokosuitebackup.ini @@ -1,3 +1,3 @@ -; MokoJoomBackup — WebServices Plugin language file (en-GB) -PLG_WEBSERVICES_MOKOJOOMBACKUP="Web Services - MokoJoomBackup" +; MokoSuiteBackup — WebServices Plugin language file (en-GB) +PLG_WEBSERVICES_MOKOJOOMBACKUP="Web Services - MokoSuiteBackup" PLG_WEBSERVICES_MOKOJOOMBACKUP_DESCRIPTION="REST API for remote backup management. Provides endpoints to start, list, download, and delete backups." diff --git a/source/packages/plg_webservices_mokosuitebackup/language/en-GB/plg_webservices_mokosuitebackup.sys.ini b/source/packages/plg_webservices_mokosuitebackup/language/en-GB/plg_webservices_mokosuitebackup.sys.ini new file mode 100644 index 0000000..7b7c461 --- /dev/null +++ b/source/packages/plg_webservices_mokosuitebackup/language/en-GB/plg_webservices_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — WebServices Plugin system language file (en-GB) +PLG_WEBSERVICES_MOKOJOOMBACKUP="Web Services - MokoSuiteBackup" +PLG_WEBSERVICES_MOKOJOOMBACKUP_DESCRIPTION="REST API for remote backup management." diff --git a/source/packages/plg_webservices_mokojoombackup/language/en-US/index.html b/source/packages/plg_webservices_mokosuitebackup/language/en-US/index.html similarity index 100% rename from source/packages/plg_webservices_mokojoombackup/language/en-US/index.html rename to source/packages/plg_webservices_mokosuitebackup/language/en-US/index.html diff --git a/source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.ini b/source/packages/plg_webservices_mokosuitebackup/language/en-US/plg_webservices_mokosuitebackup.ini similarity index 53% rename from source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.ini rename to source/packages/plg_webservices_mokosuitebackup/language/en-US/plg_webservices_mokosuitebackup.ini index 6fbd792..b4a0e10 100644 --- a/source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.ini +++ b/source/packages/plg_webservices_mokosuitebackup/language/en-US/plg_webservices_mokosuitebackup.ini @@ -1,3 +1,3 @@ -; MokoJoomBackup — WebServices Plugin language file (en-US) -PLG_WEBSERVICES_MOKOJOOMBACKUP="Web Services - MokoJoomBackup" +; MokoSuiteBackup — WebServices Plugin language file (en-US) +PLG_WEBSERVICES_MOKOJOOMBACKUP="Web Services - MokoSuiteBackup" PLG_WEBSERVICES_MOKOJOOMBACKUP_DESCRIPTION="REST API for remote backup management. Provides endpoints to start, list, download, and delete backups." diff --git a/source/packages/plg_webservices_mokosuitebackup/language/en-US/plg_webservices_mokosuitebackup.sys.ini b/source/packages/plg_webservices_mokosuitebackup/language/en-US/plg_webservices_mokosuitebackup.sys.ini new file mode 100644 index 0000000..84ea6b3 --- /dev/null +++ b/source/packages/plg_webservices_mokosuitebackup/language/en-US/plg_webservices_mokosuitebackup.sys.ini @@ -0,0 +1,3 @@ +; MokoSuiteBackup — WebServices Plugin system language file (en-US) +PLG_WEBSERVICES_MOKOJOOMBACKUP="Web Services - MokoSuiteBackup" +PLG_WEBSERVICES_MOKOJOOMBACKUP_DESCRIPTION="REST API for remote backup management." diff --git a/source/packages/plg_webservices_mokojoombackup/language/index.html b/source/packages/plg_webservices_mokosuitebackup/language/index.html similarity index 100% rename from source/packages/plg_webservices_mokojoombackup/language/index.html rename to source/packages/plg_webservices_mokosuitebackup/language/index.html diff --git a/source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.php b/source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.php new file mode 100644 index 0000000..2954662 --- /dev/null +++ b/source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.php @@ -0,0 +1,11 @@ + + * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. + * @license GNU General Public License version 3 or later; see LICENSE + */ + +defined('_JEXEC') or die; diff --git a/source/packages/plg_webservices_mokojoombackup/mokojoombackup.xml b/source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.xml similarity index 62% rename from source/packages/plg_webservices_mokojoombackup/mokojoombackup.xml rename to source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.xml index 481e986..0725948 100644 --- a/source/packages/plg_webservices_mokojoombackup/mokojoombackup.xml +++ b/source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.xml @@ -1,14 +1,14 @@ - plg_webservices_mokojoombackup - 01.08.01-dev + plg_webservices_mokosuitebackup + 01.07.00 2026-06-02 Moko Consulting hello@mokoconsulting.tech @@ -17,16 +17,16 @@ GPL-3.0-or-later PLG_WEBSERVICES_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\WebServices\MokoJoomBackup + Joomla\Plugin\WebServices\MokoSuiteBackup - mokojoombackup.php + mokosuitebackup.php services src - language/en-GB/plg_webservices_mokojoombackup.ini - language/en-GB/plg_webservices_mokojoombackup.sys.ini + language/en-GB/plg_webservices_mokosuitebackup.ini + language/en-GB/plg_webservices_mokosuitebackup.sys.ini diff --git a/source/packages/plg_webservices_mokojoombackup/services/index.html b/source/packages/plg_webservices_mokosuitebackup/services/index.html similarity index 100% rename from source/packages/plg_webservices_mokojoombackup/services/index.html rename to source/packages/plg_webservices_mokosuitebackup/services/index.html diff --git a/source/packages/plg_webservices_mokosuitebackup/services/provider.php b/source/packages/plg_webservices_mokosuitebackup/services/provider.php new file mode 100644 index 0000000..18e5ea9 --- /dev/null +++ b/source/packages/plg_webservices_mokosuitebackup/services/provider.php @@ -0,0 +1,37 @@ + + * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. + * @license GNU General Public License version 3 or later; see LICENSE + */ + +defined('_JEXEC') or die; + +use Joomla\CMS\Extension\PluginInterface; +use Joomla\CMS\Factory; +use Joomla\CMS\Plugin\PluginHelper; +use Joomla\DI\Container; +use Joomla\DI\ServiceProviderInterface; +use Joomla\Event\DispatcherInterface; +use Joomla\Plugin\WebServices\MokoSuiteBackup\Extension\MokoSuiteBackupWebServices; + +return new class () implements ServiceProviderInterface { + public function register(Container $container): void + { + $container->set( + PluginInterface::class, + function (Container $container) { + $plugin = new MokoSuiteBackupWebServices( + $container->get(DispatcherInterface::class), + (array) PluginHelper::getPlugin('webservices', 'mokosuitebackup') + ); + $plugin->setApplication(Factory::getApplication()); + + return $plugin; + } + ); + } +}; diff --git a/source/packages/plg_webservices_mokojoombackup/src/Extension/MokoJoomBackupWebServices.php b/source/packages/plg_webservices_mokosuitebackup/src/Extension/MokoSuiteBackupWebServices.php similarity index 58% rename from source/packages/plg_webservices_mokojoombackup/src/Extension/MokoJoomBackupWebServices.php rename to source/packages/plg_webservices_mokosuitebackup/src/Extension/MokoSuiteBackupWebServices.php index 8a67e20..b56c0d9 100644 --- a/source/packages/plg_webservices_mokojoombackup/src/Extension/MokoJoomBackupWebServices.php +++ b/source/packages/plg_webservices_mokosuitebackup/src/Extension/MokoSuiteBackupWebServices.php @@ -1,23 +1,23 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE * - * REST API endpoints — wire-compatible with the mcp_mokojoombackup MCP server. + * REST API endpoints — wire-compatible with the mcp_mokosuitebackup MCP server. * * Akeeba-compatible routes: - * POST /api/index.php/v1/mokojoombackup/backup — Start backup - * GET /api/index.php/v1/mokojoombackup/backups — List records - * DELETE /api/index.php/v1/mokojoombackup/backup/:id — Delete record - * GET /api/index.php/v1/mokojoombackup/backup/:id/download — Download archive - * GET /api/index.php/v1/mokojoombackup/profiles — List profiles + * POST /api/index.php/v1/mokosuitebackup/backup — Start backup + * GET /api/index.php/v1/mokosuitebackup/backups — List records + * DELETE /api/index.php/v1/mokosuitebackup/backup/:id — Delete record + * GET /api/index.php/v1/mokosuitebackup/backup/:id/download — Download archive + * GET /api/index.php/v1/mokosuitebackup/profiles — List profiles */ -namespace Joomla\Plugin\WebServices\MokoJoomBackup\Extension; +namespace Joomla\Plugin\WebServices\MokoSuiteBackup\Extension; defined('_JEXEC') or die; @@ -27,7 +27,7 @@ use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; use Joomla\Router\Route; -final class MokoJoomBackupWebServices extends CMSPlugin implements SubscriberInterface +final class MokoSuiteBackupWebServices extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; @@ -44,18 +44,18 @@ final class MokoJoomBackupWebServices extends CMSPlugin implements SubscriberInt [$router] = array_values($event->getArguments()); $defaults = [ - 'component' => 'com_mokojoombackup', + 'component' => 'com_mokosuitebackup', 'public' => false, ]; // Standard CRUD for backup records - $router->createCRUDRoutes('v1/mokojoombackup/backups', 'backups', $defaults); + $router->createCRUDRoutes('v1/mokosuitebackup/backups', 'backups', $defaults); // Start a backup (POST) $router->addRoute( new Route( ['POST'], - 'v1/mokojoombackup/backup', + 'v1/mokosuitebackup/backup', 'backups.backup', [], $defaults @@ -66,7 +66,7 @@ final class MokoJoomBackupWebServices extends CMSPlugin implements SubscriberInt $router->addRoute( new Route( ['DELETE'], - 'v1/mokojoombackup/backup/:id', + 'v1/mokosuitebackup/backup/:id', 'backups.delete', ['id' => '(\d+)'], $defaults @@ -77,7 +77,7 @@ final class MokoJoomBackupWebServices extends CMSPlugin implements SubscriberInt $router->addRoute( new Route( ['GET'], - 'v1/mokojoombackup/backup/:id/download', + 'v1/mokosuitebackup/backup/:id/download', 'backups.download', ['id' => '(\d+)'], $defaults @@ -88,7 +88,7 @@ final class MokoJoomBackupWebServices extends CMSPlugin implements SubscriberInt $router->addRoute( new Route( ['GET'], - 'v1/mokojoombackup/profiles', + 'v1/mokosuitebackup/profiles', 'backups.profiles', [], $defaults diff --git a/source/packages/plg_webservices_mokojoombackup/src/Extension/index.html b/source/packages/plg_webservices_mokosuitebackup/src/Extension/index.html similarity index 100% rename from source/packages/plg_webservices_mokojoombackup/src/Extension/index.html rename to source/packages/plg_webservices_mokosuitebackup/src/Extension/index.html diff --git a/source/packages/plg_webservices_mokojoombackup/src/index.html b/source/packages/plg_webservices_mokosuitebackup/src/index.html similarity index 100% rename from source/packages/plg_webservices_mokojoombackup/src/index.html rename to source/packages/plg_webservices_mokosuitebackup/src/index.html diff --git a/source/pkg_mokojoombackup.xml b/source/pkg_mokojoombackup.xml deleted file mode 100644 index 663fbcb..0000000 --- a/source/pkg_mokojoombackup.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - Package - MokoJoomBackup - mokojoombackup - 01.08.01-dev - 2026-06-02 - Moko Consulting - hello@mokoconsulting.tech - https://mokoconsulting.tech - Copyright (C) 2026 Moko Consulting. All rights reserved. - GPL-3.0-or-later - PKG_MOKOJOOMBACKUP_DESCRIPTION - - script.php - - - com_mokojoombackup.zip - plg_system_mokojoombackup.zip - plg_task_mokojoombackup.zip - plg_quickicon_mokojoombackup.zip - plg_webservices_mokojoombackup.zip - plg_console_mokojoombackup.zip - plg_content_mokojoombackup.zip - plg_actionlog_mokojoombackup.zip - - - - language/en-GB/pkg_mokojoombackup.sys.ini - - - - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomBackup/updates.xml - - - true - diff --git a/source/pkg_mokosuitebackup.xml b/source/pkg_mokosuitebackup.xml new file mode 100644 index 0000000..00f3834 --- /dev/null +++ b/source/pkg_mokosuitebackup.xml @@ -0,0 +1,42 @@ + + + + Package - MokoSuiteBackup + mokosuitebackup + 01.07.00 + 2026-06-02 + Moko Consulting + hello@mokoconsulting.tech + https://mokoconsulting.tech + Copyright (C) 2026 Moko Consulting. All rights reserved. + GPL-3.0-or-later + PKG_MOKOJOOMBACKUP_DESCRIPTION + + script.php + + + com_mokosuitebackup.zip + plg_system_mokosuitebackup.zip + plg_task_mokosuitebackup.zip + plg_quickicon_mokosuitebackup.zip + plg_webservices_mokosuitebackup.zip + plg_console_mokosuitebackup.zip + plg_content_mokosuitebackup.zip + plg_actionlog_mokosuitebackup.zip + + + + language/en-GB/pkg_mokosuitebackup.sys.ini + + + + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup/updates.xml + + + true + diff --git a/source/script.php b/source/script.php index a4fdb3f..2d5f30d 100644 --- a/source/script.php +++ b/source/script.php @@ -1,7 +1,7 @@ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -14,7 +14,7 @@ use Joomla\CMS\Installer\InstallerAdapter; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; -class Pkg_MokoJoomBackupInstallerScript +class Pkg_MokoSuiteBackupInstallerScript { /** * Minimum Joomla version required @@ -91,7 +91,7 @@ class Pkg_MokoJoomBackupInstallerScript $db->quoteName('#__extensions', 'e') . ' ON ' . $db->quoteName('e.extension_id') . ' = ' . $db->quoteName('use.extension_id') ) - ->where($db->quoteName('e.element') . ' = ' . $db->quote('pkg_mokojoombackup')) + ->where($db->quoteName('e.element') . ' = ' . $db->quote('pkg_mokosuitebackup')) ->where($db->quoteName('e.type') . ' = ' . $db->quote('package')) ->setLimit(1); $db->setQuery($query); @@ -101,7 +101,7 @@ class Pkg_MokoJoomBackupInstallerScript $this->savedDownloadKey = $key; } } catch (\Throwable $e) { - error_log('MokoJoomBackup: Could not save download key: ' . $e->getMessage()); + error_log('MokoSuiteBackup: Could not save download key: ' . $e->getMessage()); } } @@ -120,7 +120,7 @@ class Pkg_MokoJoomBackupInstallerScript ->set($db->quoteName('enabled') . ' = 1') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) ->where($db->quoteName('folder') . ' = ' . $db->quote('system')) - ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokosuitebackup')); $db->setQuery($query); $db->execute(); @@ -131,7 +131,7 @@ class Pkg_MokoJoomBackupInstallerScript ->set($db->quoteName('enabled') . ' = 1') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) ->where($db->quoteName('folder') . ' = ' . $db->quote('quickicon')) - ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokosuitebackup')); $db->setQuery($query); $db->execute(); @@ -142,7 +142,7 @@ class Pkg_MokoJoomBackupInstallerScript ->set($db->quoteName('enabled') . ' = 1') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) ->where($db->quoteName('folder') . ' = ' . $db->quote('task')) - ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokosuitebackup')); $db->setQuery($query); $db->execute(); @@ -153,7 +153,7 @@ class Pkg_MokoJoomBackupInstallerScript ->set($db->quoteName('enabled') . ' = 1') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) ->where($db->quoteName('folder') . ' = ' . $db->quote('webservices')) - ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokosuitebackup')); $db->setQuery($query); $db->execute(); @@ -164,7 +164,7 @@ class Pkg_MokoJoomBackupInstallerScript ->set($db->quoteName('enabled') . ' = 1') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) ->where($db->quoteName('folder') . ' = ' . $db->quote('console')) - ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokosuitebackup')); $db->setQuery($query); $db->execute(); @@ -175,7 +175,7 @@ class Pkg_MokoJoomBackupInstallerScript ->set($db->quoteName('enabled') . ' = 1') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) ->where($db->quoteName('folder') . ' = ' . $db->quote('content')) - ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokosuitebackup')); $db->setQuery($query); $db->execute(); @@ -186,13 +186,13 @@ class Pkg_MokoJoomBackupInstallerScript ->set($db->quoteName('enabled') . ' = 1') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) ->where($db->quoteName('folder') . ' = ' . $db->quote('actionlog')) - ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokosuitebackup')); $db->setQuery($query); $db->execute(); // Create and protect default backup directory - $backupDir = JPATH_ADMINISTRATOR . '/components/com_mokojoombackup/backups'; + $backupDir = JPATH_ADMINISTRATOR . '/components/com_mokosuitebackup/backups'; if (!is_dir($backupDir)) { mkdir($backupDir, 0755, true); @@ -231,7 +231,7 @@ class Pkg_MokoJoomBackupInstallerScript // Remind user to review backup profile settings if ($type === 'install') { - $profileUrl = Route::_('index.php?option=com_mokojoombackup&view=profiles'); + $profileUrl = Route::_('index.php?option=com_mokosuitebackup&view=profiles'); Factory::getApplication()->enqueueMessage( 'Review Your Backup Settings — ' @@ -249,16 +249,16 @@ class Pkg_MokoJoomBackupInstallerScript $db = Factory::getDbo(); $query = $db->getQuery(true) ->select('COUNT(*)') - ->from($db->quoteName('#__mokojoombackup_profiles')) + ->from($db->quoteName('#__mokosuitebackup_profiles')) ->where($db->quoteName('published') . ' = 1') - ->where('(' . $db->quoteName('backup_dir') . ' = ' . $db->quote('administrator/components/com_mokojoombackup/backups') + ->where('(' . $db->quoteName('backup_dir') . ' = ' . $db->quote('administrator/components/com_mokosuitebackup/backups') . ' OR ' . $db->quoteName('backup_dir') . ' = ' . $db->quote('[DEFAULT_DIR]') . ' OR ' . $db->quoteName('backup_dir') . ' = ' . $db->quote('') . ' OR ' . $db->quoteName('backup_dir') . ' IS NULL)'); $db->setQuery($query); if ((int) $db->loadResult() > 0) { - $profileUrl = Route::_('index.php?option=com_mokojoombackup&view=profiles'); + $profileUrl = Route::_('index.php?option=com_mokosuitebackup&view=profiles'); Factory::getApplication()->enqueueMessage( 'Backup Directory Warning — ' @@ -269,7 +269,7 @@ class Pkg_MokoJoomBackupInstallerScript ); } } catch (\Throwable $e) { - error_log('MokoJoomBackup: warnDefaultBackupDir() failed: ' . $e->getMessage()); + error_log('MokoSuiteBackup: warnDefaultBackupDir() failed: ' . $e->getMessage()); } } @@ -278,11 +278,11 @@ class Pkg_MokoJoomBackupInstallerScript try { $db = Factory::getDbo(); - // Check if a MokoJoomBackup task already exists + // Check if a MokoSuiteBackup task already exists $query = $db->getQuery(true) ->select('COUNT(*)') ->from($db->quoteName('#__scheduler_tasks')) - ->where($db->quoteName('type') . ' = ' . $db->quote('mokojoombackup.run_profile')); + ->where($db->quoteName('type') . ' = ' . $db->quote('mokosuitebackup.run_profile')); $db->setQuery($query); if ((int) $db->loadResult() > 0) { @@ -292,8 +292,8 @@ class Pkg_MokoJoomBackupInstallerScript $now = date('Y-m-d H:i:s'); $task = (object) [ - 'title' => 'MokoJoomBackup — Monthly Full Backup', - 'type' => 'mokojoombackup.run_profile', + 'title' => 'MokoSuiteBackup — Monthly Full Backup', + 'type' => 'mokosuitebackup.run_profile', 'execution_rules' => json_encode([ 'rule-type' => 'interval-days', 'interval-days' => '30', @@ -329,7 +329,7 @@ class Pkg_MokoJoomBackupInstallerScript $db->insertObject('#__scheduler_tasks', $task); } catch (\Throwable $e) { - error_log('MokoJoomBackup: createDefaultScheduledTask() failed: ' . $e->getMessage()); + error_log('MokoSuiteBackup: createDefaultScheduledTask() failed: ' . $e->getMessage()); } } @@ -349,7 +349,7 @@ class Pkg_MokoJoomBackupInstallerScript ->update($db->quoteName('#__menu')) ->set($db->quoteName('img') . ' = ' . $db->quote($icon)) ->where($db->quoteName('client_id') . ' = 1') - ->where($db->quoteName('link') . ' LIKE ' . $db->quote('%com_mokojoombackup%' . $linkFragment . '%')); + ->where($db->quoteName('link') . ' LIKE ' . $db->quote('%com_mokosuitebackup%' . $linkFragment . '%')); $db->setQuery($query); $db->execute(); } @@ -359,12 +359,12 @@ class Pkg_MokoJoomBackupInstallerScript ->update($db->quoteName('#__menu')) ->set($db->quoteName('img') . ' = ' . $db->quote('class:archive')) ->where($db->quoteName('client_id') . ' = 1') - ->where($db->quoteName('link') . ' LIKE ' . $db->quote('index.php?option=com_mokojoombackup')) + ->where($db->quoteName('link') . ' LIKE ' . $db->quote('index.php?option=com_mokosuitebackup')) ->where($db->quoteName('level') . ' = 1'); $db->setQuery($query); $db->execute(); } catch (\Throwable $e) { - error_log('MokoJoomBackup: syncMenuIcons() failed: ' . $e->getMessage()); + error_log('MokoSuiteBackup: syncMenuIcons() failed: ' . $e->getMessage()); } } @@ -388,7 +388,7 @@ class Pkg_MokoJoomBackupInstallerScript $db->quoteName('#__extensions', 'e') . ' ON ' . $db->quoteName('e.extension_id') . ' = ' . $db->quoteName('use.extension_id') ) - ->where($db->quoteName('e.element') . ' = ' . $db->quote('pkg_mokojoombackup')) + ->where($db->quoteName('e.element') . ' = ' . $db->quote('pkg_mokosuitebackup')) ->where($db->quoteName('e.type') . ' = ' . $db->quote('package')) ->setLimit(1); $db->setQuery($query); @@ -403,7 +403,7 @@ class Pkg_MokoJoomBackupInstallerScript $db->execute(); } } catch (\Throwable $e) { - error_log('MokoJoomBackup: Could not restore download key: ' . $e->getMessage()); + error_log('MokoSuiteBackup: Could not restore download key: ' . $e->getMessage()); } } @@ -416,7 +416,7 @@ class Pkg_MokoJoomBackupInstallerScript $db->getQuery(true) ->select([$db->quoteName('update_site_id'), $db->quoteName('extra_query')]) ->from($db->quoteName('#__update_sites')) - ->where('(' . $db->quoteName('name') . ' LIKE ' . $db->quote('%MokoJoomBackup%') . ' OR ' . $db->quoteName('location') . ' LIKE ' . $db->quote('%MokoJoomBackup%') . ')') + ->where('(' . $db->quoteName('name') . ' LIKE ' . $db->quote('%MokoSuiteBackup%') . ' OR ' . $db->quoteName('location') . ' LIKE ' . $db->quote('%MokoSuiteBackup%') . ')') ->setLimit(1) ); $site = $db->loadObject(); @@ -440,7 +440,7 @@ class Pkg_MokoJoomBackupInstallerScript ); } catch (\Throwable $e) { - error_log('MokoJoomBackup: License key check failed: ' . $e->getMessage()); + error_log('MokoSuiteBackup: License key check failed: ' . $e->getMessage()); } } }