From 37d325f1ed7e7044689ac7e545a402aeb63aaf2c Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 6 Jun 2026 14:52:27 -0500 Subject: [PATCH] chore: rename mokobackup to mokojoombackup throughout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full rename of all extension elements, namespaces, language keys, database tables, file names, and directory names: - pkg_mokobackup → pkg_mokojoombackup - com_mokobackup → com_mokojoombackup - plg_*_mokobackup → plg_*_mokojoombackup - MokoBackup namespace → MokoJoomBackup - #__mokobackup_ tables → #__mokojoombackup_ - COM_MOKOBACKUP_ keys → COM_MOKOJOOMBACKUP_ Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- .mokogitea/CLAUDE.md | 28 +- CHANGELOG.md | 12 +- Makefile | 4 +- source/language/en-GB/pkg_mokobackup.sys.ini | 10 - .../language/en-GB/pkg_mokojoombackup.sys.ini | 10 + source/language/en-US/pkg_mokobackup.sys.ini | 10 - .../language/en-US/pkg_mokojoombackup.sys.ini | 10 + .../packages/com_mokobackup/forms/backup.xml | 15 - .../com_mokobackup/forms/filter_backups.xml | 47 --- .../packages/com_mokobackup/forms/profile.xml | 373 ------------------ .../language/en-GB/com_mokobackup.ini | 264 ------------- .../language/en-GB/com_mokobackup.sys.ini | 10 - .../language/en-US/com_mokobackup.ini | 69 ---- .../language/en-US/com_mokobackup.sys.ini | 10 - .../com_mokobackup/sql/uninstall.mysql.sql | 2 - .../sql/updates/mysql/01.01.01.sql | 1 - .../sql/updates/mysql/01.01.02.sql | 12 - .../cli/mokojoombackup.php} | 6 +- .../com_mokojoombackup}/api/index.html | 0 .../api/src/Controller/BackupsController.php | 12 +- .../api/src/Controller/index.html | 0 .../api/src/View/Backups/JsonapiView.php | 4 +- .../api/src/View/Backups/index.html | 0 .../api/src/View/index.html | 0 .../com_mokojoombackup}/api/src/index.html | 0 .../com_mokojoombackup}/cli/index.html | 0 .../com_mokojoombackup}/config.xml | 48 +-- .../com_mokojoombackup/forms/backup.xml | 15 + .../forms/filter_backups.xml | 47 +++ .../forms/filter_profiles.xml | 6 +- .../com_mokojoombackup}/forms/index.html | 0 .../com_mokojoombackup/forms/profile.xml | 373 ++++++++++++++++++ .../com_mokojoombackup}/index.html | 0 .../language/en-GB/index.html | 0 .../language/en-US/index.html | 0 .../com_mokojoombackup}/language/index.html | 0 .../com_mokojoombackup}/services/index.html | 0 .../com_mokojoombackup}/services/provider.php | 10 +- .../com_mokojoombackup}/sql/index.html | 0 .../com_mokojoombackup}/sql/install.mysql.sql | 12 +- .../com_mokojoombackup}/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 | 8 +- .../src/Controller/BackupController.php | 6 +- .../src/Controller/BackupsController.php | 44 +-- .../src/Controller/DisplayController.php | 4 +- .../src/Controller/ProfileController.php | 6 +- .../src/Controller/ProfilesController.php | 14 +- .../src/Controller/index.html | 0 .../src/Engine/AkeebaImporter.php | 16 +- .../src/Engine/ArchiverInterface.php | 4 +- .../src/Engine/BackupEngine.php | 22 +- .../src/Engine/DatabaseDumper.php | 4 +- .../src/Engine/DatabaseImporter.php | 8 +- .../src/Engine/DifferentialScanner.php | 4 +- .../src/Engine/FileRestorer.php | 4 +- .../src/Engine/FileScanner.php | 4 +- .../src/Engine/FtpUploader.php | 4 +- .../src/Engine/GoogleDriveUploader.php | 4 +- .../src/Engine/JpaUnarchiver.php | 4 +- .../src/Engine/MokoRestore.php | 6 +- .../src/Engine/NotificationSender.php | 8 +- .../src/Engine/PlaceholderResolver.php | 4 +- .../src/Engine/RemoteUploaderInterface.php | 4 +- .../src/Engine/RestoreEngine.php | 8 +- .../src/Engine/S3Uploader.php | 4 +- .../src/Engine/SteppedBackupEngine.php | 20 +- .../src/Engine/SteppedSession.php | 6 +- .../src/Engine/TarGzArchiver.php | 4 +- .../src/Engine/ZipArchiver.php | 4 +- .../com_mokojoombackup}/src/Engine/index.html | 0 .../src/Extension/MokoBackupComponent.php | 6 +- .../src/Extension/index.html | 0 .../src/Field/DatabaseTablesField.php | 12 +- .../src/Field/DirectoryFilterField.php | 12 +- .../src/Field/ExcludeListField.php | 4 +- .../src/Field/FolderPickerField.php | 12 +- .../src/Model/BackupModel.php | 8 +- .../src/Model/BackupsModel.php | 8 +- .../src/Model/DashboardModel.php | 26 +- .../src/Model/ProfileModel.php | 8 +- .../src/Model/ProfilesModel.php | 6 +- .../com_mokojoombackup}/src/Model/index.html | 0 .../src/Table/BackupTable.php | 6 +- .../src/Table/ProfileTable.php | 6 +- .../com_mokojoombackup}/src/Table/index.html | 0 .../src/View/Backup/HtmlView.php | 8 +- .../src/View/Backup/index.html | 0 .../src/View/Backups/HtmlView.php | 24 +- .../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 | 12 +- .../src/View/Profiles/index.html | 0 .../com_mokojoombackup}/src/View/index.html | 0 .../com_mokojoombackup}/src/index.html | 0 .../tmpl/backup/default.php | 32 +- .../tmpl/backup/index.html | 0 .../tmpl/backups/default.php | 50 +-- .../tmpl/backups/index.html | 0 .../tmpl/dashboard/default.php | 60 +-- .../com_mokojoombackup}/tmpl/index.html | 0 .../com_mokojoombackup}/tmpl/profile/edit.php | 14 +- .../tmpl/profile/index.html | 0 .../tmpl/profiles/default.php | 14 +- .../tmpl/profiles/index.html | 0 .../language/en-GB/com_mokojoombackup.ini | 264 +++++++++++++ .../language/en-GB/com_mokojoombackup.sys.ini | 10 + .../language/en-US/com_mokojoombackup.ini | 69 ++++ .../language/en-US/com_mokojoombackup.sys.ini | 10 + .../mokojoombackup.xml} | 22 +- .../en-GB/plg_actionlog_mokobackup.ini | 9 - .../en-GB/plg_actionlog_mokobackup.sys.ini | 3 - .../en-US/plg_actionlog_mokobackup.ini | 9 - .../en-US/plg_actionlog_mokobackup.sys.ini | 3 - .../en-GB/plg_actionlog_mokojoombackup.ini | 9 + .../plg_actionlog_mokojoombackup.sys.ini | 3 + .../en-US/plg_actionlog_mokojoombackup.ini | 9 + .../plg_actionlog_mokojoombackup.sys.ini | 3 + .../mokojoombackup.php | 11 + .../mokojoombackup.xml} | 16 +- .../services/provider.php | 8 +- .../src/Extension/MokoBackupActionlog.php | 42 +- .../language/en-GB/plg_console_mokobackup.ini | 3 - .../en-GB/plg_console_mokobackup.sys.ini | 3 - .../language/en-US/plg_console_mokobackup.ini | 3 - .../en-US/plg_console_mokobackup.sys.ini | 3 - .../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 + .../mokojoombackup.php} | 2 +- .../mokojoombackup.xml} | 16 +- .../services/provider.php | 8 +- .../src/Command/CleanupCommand.php | 16 +- .../src/Command/ListCommand.php | 10 +- .../src/Command/ProfilesCommand.php | 8 +- .../src/Command/RestoreCommand.php | 12 +- .../src/Command/RunCommand.php | 10 +- .../src/Extension/MokoBackupConsole.php | 16 +- .../language/en-GB/plg_content_mokobackup.ini | 9 - .../en-GB/plg_content_mokobackup.sys.ini | 3 - .../language/en-US/plg_content_mokobackup.ini | 9 - .../en-US/plg_content_mokobackup.sys.ini | 3 - .../en-GB/plg_content_mokojoombackup.ini | 9 + .../en-GB/plg_content_mokojoombackup.sys.ini | 3 + .../en-US/plg_content_mokojoombackup.ini | 9 + .../en-US/plg_content_mokojoombackup.sys.ini | 3 + .../mokojoombackup.php} | 2 +- .../mokojoombackup.xml} | 30 +- .../services/provider.php | 8 +- .../src/Extension/MokoBackupContent.php | 14 +- .../en-GB/plg_quickicon_mokobackup.ini | 6 - .../en-GB/plg_quickicon_mokobackup.sys.ini | 2 - .../en-US/plg_quickicon_mokobackup.ini | 6 - .../en-US/plg_quickicon_mokobackup.sys.ini | 2 - .../en-GB/plg_quickicon_mokojoombackup.ini | 6 + .../plg_quickicon_mokojoombackup.sys.ini | 2 + .../en-US/plg_quickicon_mokojoombackup.ini | 6 + .../plg_quickicon_mokojoombackup.sys.ini | 2 + .../mokojoombackup.php} | 0 .../mokojoombackup.xml} | 14 +- .../plg_quickicon_mokojoombackup}/index.html | 0 .../language/en-GB/index.html | 0 .../language/en-US/index.html | 0 .../language/index.html | 0 .../services/index.html | 0 .../services/provider.php | 6 +- .../src/Extension/MokoBackupQuickicon.php | 24 +- .../src/Extension/index.html | 0 .../src/index.html | 0 .../language/en-GB/plg_system_mokobackup.ini | 9 - .../en-GB/plg_system_mokobackup.sys.ini | 3 - .../language/en-US/plg_system_mokobackup.ini | 9 - .../en-US/plg_system_mokobackup.sys.ini | 3 - .../en-GB/plg_system_mokojoombackup.ini | 9 + .../en-GB/plg_system_mokojoombackup.sys.ini | 3 + .../en-US/plg_system_mokojoombackup.ini | 9 + .../en-US/plg_system_mokojoombackup.sys.ini | 3 + .../mokojoombackup.php} | 2 +- .../mokojoombackup.xml} | 28 +- .../plg_system_mokojoombackup}/index.html | 0 .../language/en-GB/index.html | 0 .../language/en-US/index.html | 0 .../language/index.html | 0 .../services/index.html | 0 .../services/provider.php | 8 +- .../src/Extension/MokoBackup.php | 20 +- .../src/Extension/index.html | 0 .../plg_system_mokojoombackup}/src/index.html | 0 .../language/en-GB/plg_task_mokobackup.ini | 12 - .../en-GB/plg_task_mokobackup.sys.ini | 3 - .../language/en-US/plg_task_mokobackup.ini | 8 - .../en-US/plg_task_mokobackup.sys.ini | 3 - .../plg_task_mokobackup/mokobackup.php | 11 - .../plg_task_mokobackup/services/provider.php | 37 -- .../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 + .../mokojoombackup.php} | 2 +- .../mokojoombackup.xml} | 16 +- .../plg_task_mokojoombackup}/forms/index.html | 0 .../forms/run_profile.xml | 8 +- .../plg_task_mokojoombackup}/index.html | 0 .../language/en-GB/index.html | 0 .../language/en-US/index.html | 0 .../language/index.html | 0 .../services/index.html | 0 .../services/provider.php | 8 +- .../src/Extension/MokoBackupTask.php | 16 +- .../src/Extension/index.html | 0 .../plg_task_mokojoombackup}/src/index.html | 0 .../en-GB/plg_webservices_mokobackup.ini | 3 - .../en-GB/plg_webservices_mokobackup.sys.ini | 3 - .../en-US/plg_webservices_mokobackup.ini | 3 - .../en-US/plg_webservices_mokobackup.sys.ini | 3 - .../plg_webservices_mokobackup/mokobackup.php | 11 - .../en-GB/plg_webservices_mokojoombackup.ini | 3 + .../plg_webservices_mokojoombackup.sys.ini | 3 + .../en-US/plg_webservices_mokojoombackup.ini | 3 + .../plg_webservices_mokojoombackup.sys.ini | 3 + .../mokojoombackup.php | 11 + .../mokojoombackup.xml} | 16 +- .../index.html | 0 .../language/en-GB/index.html | 0 .../language/en-US/index.html | 0 .../language/index.html | 0 .../services/index.html | 0 .../services/provider.php | 37 ++ .../src/Extension/MokoBackupWebServices.php | 30 +- .../src/Extension/index.html | 0 .../src/index.html | 0 ..._mokobackup.xml => pkg_mokojoombackup.xml} | 24 +- source/script.php | 26 +- 241 files changed, 1621 insertions(+), 1621 deletions(-) delete mode 100644 source/language/en-GB/pkg_mokobackup.sys.ini create mode 100644 source/language/en-GB/pkg_mokojoombackup.sys.ini delete mode 100644 source/language/en-US/pkg_mokobackup.sys.ini create mode 100644 source/language/en-US/pkg_mokojoombackup.sys.ini delete mode 100644 source/packages/com_mokobackup/forms/backup.xml delete mode 100644 source/packages/com_mokobackup/forms/filter_backups.xml delete mode 100644 source/packages/com_mokobackup/forms/profile.xml delete mode 100644 source/packages/com_mokobackup/language/en-GB/com_mokobackup.ini delete mode 100644 source/packages/com_mokobackup/language/en-GB/com_mokobackup.sys.ini delete mode 100644 source/packages/com_mokobackup/language/en-US/com_mokobackup.ini delete mode 100644 source/packages/com_mokobackup/language/en-US/com_mokobackup.sys.ini delete mode 100644 source/packages/com_mokobackup/sql/uninstall.mysql.sql delete mode 100644 source/packages/com_mokobackup/sql/updates/mysql/01.01.01.sql delete mode 100644 source/packages/com_mokobackup/sql/updates/mysql/01.01.02.sql rename source/packages/{com_mokobackup/cli/mokobackup.php => com_mokojoombackup/cli/mokojoombackup.php} (89%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/api/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/api/src/Controller/BackupsController.php (84%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/api/src/Controller/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/api/src/View/Backups/JsonapiView.php (90%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/api/src/View/Backups/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/api/src/View/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/api/src/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/cli/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/config.xml (52%) create mode 100644 source/packages/com_mokojoombackup/com_mokojoombackup/forms/backup.xml create mode 100644 source/packages/com_mokojoombackup/com_mokojoombackup/forms/filter_backups.xml rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/forms/filter_profiles.xml (81%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/forms/index.html (100%) create mode 100644 source/packages/com_mokojoombackup/com_mokojoombackup/forms/profile.xml rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/language/en-GB/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/language/en-US/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/language/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/services/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/services/provider.php (82%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/sql/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/sql/install.mysql.sql (93%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/sql/mysql/index.html (100%) create mode 100644 source/packages/com_mokojoombackup/com_mokojoombackup/sql/uninstall.mysql.sql rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/sql/updates/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/sql/updates/mysql/01.00.00.sql (100%) create mode 100644 source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/mysql/01.01.01.sql create mode 100644 source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/mysql/01.01.02.sql rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/sql/updates/mysql/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Controller/AjaxController.php (95%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Controller/BackupController.php (70%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Controller/BackupsController.php (67%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Controller/DisplayController.php (80%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Controller/ProfileController.php (70%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Controller/ProfilesController.php (85%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Controller/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/AkeebaImporter.php (96%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/ArchiverInterface.php (89%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/BackupEngine.php (95%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/DatabaseDumper.php (98%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/DatabaseImporter.php (92%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/DifferentialScanner.php (96%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/FileRestorer.php (96%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/FileScanner.php (96%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/FtpUploader.php (97%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/GoogleDriveUploader.php (98%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/JpaUnarchiver.php (98%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/MokoRestore.php (99%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/NotificationSender.php (94%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/PlaceholderResolver.php (97%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/RemoteUploaderInterface.php (89%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/RestoreEngine.php (96%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/S3Uploader.php (99%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/SteppedBackupEngine.php (96%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/SteppedSession.php (96%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/TarGzArchiver.php (93%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/ZipArchiver.php (90%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Engine/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Extension/MokoBackupComponent.php (68%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Extension/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Field/DatabaseTablesField.php (90%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Field/DirectoryFilterField.php (95%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Field/ExcludeListField.php (97%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Field/FolderPickerField.php (94%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Model/BackupModel.php (78%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Model/BackupsModel.php (88%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Model/DashboardModel.php (86%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Model/ProfileModel.php (78%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Model/ProfilesModel.php (90%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Model/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Table/BackupTable.php (85%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Table/ProfileTable.php (83%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/Table/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/View/Backup/HtmlView.php (78%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/View/Backup/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/View/Backups/HtmlView.php (82%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/View/Backups/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/View/Dashboard/HtmlView.php (77%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/View/Profile/HtmlView.php (82%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/View/Profile/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/View/Profiles/HtmlView.php (79%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/View/Profiles/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/View/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/src/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/tmpl/backup/default.php (70%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/tmpl/backup/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/tmpl/backups/default.php (82%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/tmpl/backups/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/tmpl/dashboard/default.php (76%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/tmpl/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/tmpl/profile/edit.php (84%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/tmpl/profile/index.html (100%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/tmpl/profiles/default.php (81%) rename source/packages/{com_mokobackup => com_mokojoombackup/com_mokojoombackup}/tmpl/profiles/index.html (100%) create mode 100644 source/packages/com_mokojoombackup/language/en-GB/com_mokojoombackup.ini create mode 100644 source/packages/com_mokojoombackup/language/en-GB/com_mokojoombackup.sys.ini create mode 100644 source/packages/com_mokojoombackup/language/en-US/com_mokojoombackup.ini create mode 100644 source/packages/com_mokojoombackup/language/en-US/com_mokojoombackup.sys.ini rename source/packages/{com_mokobackup/mokobackup.xml => com_mokojoombackup/mokojoombackup.xml} (63%) delete mode 100644 source/packages/plg_actionlog_mokobackup/language/en-GB/plg_actionlog_mokobackup.ini delete mode 100644 source/packages/plg_actionlog_mokobackup/language/en-GB/plg_actionlog_mokobackup.sys.ini delete mode 100644 source/packages/plg_actionlog_mokobackup/language/en-US/plg_actionlog_mokobackup.ini delete mode 100644 source/packages/plg_actionlog_mokobackup/language/en-US/plg_actionlog_mokobackup.sys.ini create mode 100644 source/packages/plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.ini create mode 100644 source/packages/plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.sys.ini create mode 100644 source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.ini create mode 100644 source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.sys.ini create mode 100644 source/packages/plg_actionlog_mokojoombackup/mokojoombackup.php rename source/packages/{plg_actionlog_mokobackup/mokobackup.xml => plg_actionlog_mokojoombackup/mokojoombackup.xml} (60%) rename source/packages/{plg_actionlog_mokobackup => plg_actionlog_mokojoombackup/plg_actionlog_mokojoombackup}/services/provider.php (78%) rename source/packages/{plg_actionlog_mokobackup => plg_actionlog_mokojoombackup/plg_actionlog_mokojoombackup}/src/Extension/MokoBackupActionlog.php (77%) delete mode 100644 source/packages/plg_console_mokobackup/language/en-GB/plg_console_mokobackup.ini delete mode 100644 source/packages/plg_console_mokobackup/language/en-GB/plg_console_mokobackup.sys.ini delete mode 100644 source/packages/plg_console_mokobackup/language/en-US/plg_console_mokobackup.ini delete mode 100644 source/packages/plg_console_mokobackup/language/en-US/plg_console_mokobackup.sys.ini create mode 100644 source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.ini create mode 100644 source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.sys.ini create mode 100644 source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.ini create mode 100644 source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.sys.ini rename source/packages/{plg_content_mokobackup/mokobackup.php => plg_console_mokojoombackup/mokojoombackup.php} (86%) rename source/packages/{plg_console_mokobackup/mokobackup.xml => plg_console_mokojoombackup/mokojoombackup.xml} (60%) rename source/packages/{plg_webservices_mokobackup => plg_console_mokojoombackup/plg_console_mokojoombackup}/services/provider.php (79%) rename source/packages/{plg_console_mokobackup => plg_console_mokojoombackup/plg_console_mokojoombackup}/src/Command/CleanupCommand.php (88%) rename source/packages/{plg_console_mokobackup => plg_console_mokojoombackup/plg_console_mokojoombackup}/src/Command/ListCommand.php (87%) rename source/packages/{plg_console_mokobackup => plg_console_mokojoombackup/plg_console_mokojoombackup}/src/Command/ProfilesCommand.php (86%) rename source/packages/{plg_console_mokobackup => plg_console_mokojoombackup/plg_console_mokojoombackup}/src/Command/RestoreCommand.php (86%) rename source/packages/{plg_console_mokobackup => plg_console_mokojoombackup/plg_console_mokojoombackup}/src/Command/RunCommand.php (83%) rename source/packages/{plg_console_mokobackup => plg_console_mokojoombackup/plg_console_mokojoombackup}/src/Extension/MokoBackupConsole.php (63%) delete mode 100644 source/packages/plg_content_mokobackup/language/en-GB/plg_content_mokobackup.ini delete mode 100644 source/packages/plg_content_mokobackup/language/en-GB/plg_content_mokobackup.sys.ini delete mode 100644 source/packages/plg_content_mokobackup/language/en-US/plg_content_mokobackup.ini delete mode 100644 source/packages/plg_content_mokobackup/language/en-US/plg_content_mokobackup.sys.ini create mode 100644 source/packages/plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.ini create mode 100644 source/packages/plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.sys.ini create mode 100644 source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.ini create mode 100644 source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.sys.ini rename source/packages/{plg_console_mokobackup/mokobackup.php => plg_content_mokojoombackup/mokojoombackup.php} (86%) rename source/packages/{plg_content_mokobackup/mokobackup.xml => plg_content_mokojoombackup/mokojoombackup.xml} (58%) rename source/packages/{plg_content_mokobackup => plg_content_mokojoombackup/plg_content_mokojoombackup}/services/provider.php (78%) rename source/packages/{plg_content_mokobackup => plg_content_mokojoombackup/plg_content_mokojoombackup}/src/Extension/MokoBackupContent.php (79%) delete mode 100644 source/packages/plg_quickicon_mokobackup/language/en-GB/plg_quickicon_mokobackup.ini delete mode 100644 source/packages/plg_quickicon_mokobackup/language/en-GB/plg_quickicon_mokobackup.sys.ini delete mode 100644 source/packages/plg_quickicon_mokobackup/language/en-US/plg_quickicon_mokobackup.ini delete mode 100644 source/packages/plg_quickicon_mokobackup/language/en-US/plg_quickicon_mokobackup.sys.ini create mode 100644 source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.ini create mode 100644 source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.sys.ini create mode 100644 source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.ini create mode 100644 source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.sys.ini rename source/packages/{plg_quickicon_mokobackup/mokobackup.php => plg_quickicon_mokojoombackup/mokojoombackup.php} (100%) rename source/packages/{plg_quickicon_mokobackup/mokobackup.xml => plg_quickicon_mokojoombackup/mokojoombackup.xml} (52%) rename source/packages/{plg_quickicon_mokobackup => plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup}/index.html (100%) rename source/packages/{plg_quickicon_mokobackup => plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup}/language/en-GB/index.html (100%) rename source/packages/{plg_quickicon_mokobackup => plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup}/language/en-US/index.html (100%) rename source/packages/{plg_quickicon_mokobackup => plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup}/language/index.html (100%) rename source/packages/{plg_quickicon_mokobackup => plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup}/services/index.html (100%) rename source/packages/{plg_quickicon_mokobackup => plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup}/services/provider.php (75%) rename source/packages/{plg_quickicon_mokobackup => plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup}/src/Extension/MokoBackupQuickicon.php (81%) rename source/packages/{plg_quickicon_mokobackup => plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup}/src/Extension/index.html (100%) rename source/packages/{plg_quickicon_mokobackup => plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup}/src/index.html (100%) delete mode 100644 source/packages/plg_system_mokobackup/language/en-GB/plg_system_mokobackup.ini delete mode 100644 source/packages/plg_system_mokobackup/language/en-GB/plg_system_mokobackup.sys.ini delete mode 100644 source/packages/plg_system_mokobackup/language/en-US/plg_system_mokobackup.ini delete mode 100644 source/packages/plg_system_mokobackup/language/en-US/plg_system_mokobackup.sys.ini create mode 100644 source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.ini create mode 100644 source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.sys.ini create mode 100644 source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.ini create mode 100644 source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.sys.ini rename source/packages/{plg_actionlog_mokobackup/mokobackup.php => plg_system_mokojoombackup/mokojoombackup.php} (86%) rename source/packages/{plg_system_mokobackup/mokobackup.xml => plg_system_mokojoombackup/mokojoombackup.xml} (60%) rename source/packages/{plg_system_mokobackup => plg_system_mokojoombackup/plg_system_mokojoombackup}/index.html (100%) rename source/packages/{plg_system_mokobackup => plg_system_mokojoombackup/plg_system_mokojoombackup}/language/en-GB/index.html (100%) rename source/packages/{plg_system_mokobackup => plg_system_mokojoombackup/plg_system_mokojoombackup}/language/en-US/index.html (100%) rename source/packages/{plg_system_mokobackup => plg_system_mokojoombackup/plg_system_mokojoombackup}/language/index.html (100%) rename source/packages/{plg_system_mokobackup => plg_system_mokojoombackup/plg_system_mokojoombackup}/services/index.html (100%) rename source/packages/{plg_console_mokobackup => plg_system_mokojoombackup/plg_system_mokojoombackup}/services/provider.php (80%) rename source/packages/{plg_system_mokobackup => plg_system_mokojoombackup/plg_system_mokojoombackup}/src/Extension/MokoBackup.php (83%) rename source/packages/{plg_system_mokobackup => plg_system_mokojoombackup/plg_system_mokojoombackup}/src/Extension/index.html (100%) rename source/packages/{plg_system_mokobackup => plg_system_mokojoombackup/plg_system_mokojoombackup}/src/index.html (100%) delete mode 100644 source/packages/plg_task_mokobackup/language/en-GB/plg_task_mokobackup.ini delete mode 100644 source/packages/plg_task_mokobackup/language/en-GB/plg_task_mokobackup.sys.ini delete mode 100644 source/packages/plg_task_mokobackup/language/en-US/plg_task_mokobackup.ini delete mode 100644 source/packages/plg_task_mokobackup/language/en-US/plg_task_mokobackup.sys.ini delete mode 100644 source/packages/plg_task_mokobackup/mokobackup.php delete mode 100644 source/packages/plg_task_mokobackup/services/provider.php create mode 100644 source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.ini create mode 100644 source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.sys.ini create mode 100644 source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.ini create mode 100644 source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.sys.ini rename source/packages/{plg_system_mokobackup/mokobackup.php => plg_task_mokojoombackup/mokojoombackup.php} (87%) rename source/packages/{plg_task_mokobackup/mokobackup.xml => plg_task_mokojoombackup/mokojoombackup.xml} (63%) rename source/packages/{plg_task_mokobackup => plg_task_mokojoombackup/plg_task_mokojoombackup}/forms/index.html (100%) rename source/packages/{plg_task_mokobackup => plg_task_mokojoombackup/plg_task_mokojoombackup}/forms/run_profile.xml (55%) rename source/packages/{plg_task_mokobackup => plg_task_mokojoombackup/plg_task_mokojoombackup}/index.html (100%) rename source/packages/{plg_task_mokobackup => plg_task_mokojoombackup/plg_task_mokojoombackup}/language/en-GB/index.html (100%) rename source/packages/{plg_task_mokobackup => plg_task_mokojoombackup/plg_task_mokojoombackup}/language/en-US/index.html (100%) rename source/packages/{plg_task_mokobackup => plg_task_mokojoombackup/plg_task_mokojoombackup}/language/index.html (100%) rename source/packages/{plg_task_mokobackup => plg_task_mokojoombackup/plg_task_mokojoombackup}/services/index.html (100%) rename source/packages/{plg_system_mokobackup => plg_task_mokojoombackup/plg_task_mokojoombackup}/services/provider.php (80%) rename source/packages/{plg_task_mokobackup => plg_task_mokojoombackup/plg_task_mokojoombackup}/src/Extension/MokoBackupTask.php (81%) rename source/packages/{plg_task_mokobackup => plg_task_mokojoombackup/plg_task_mokojoombackup}/src/Extension/index.html (100%) rename source/packages/{plg_task_mokobackup => plg_task_mokojoombackup/plg_task_mokojoombackup}/src/index.html (100%) delete mode 100644 source/packages/plg_webservices_mokobackup/language/en-GB/plg_webservices_mokobackup.ini delete mode 100644 source/packages/plg_webservices_mokobackup/language/en-GB/plg_webservices_mokobackup.sys.ini delete mode 100644 source/packages/plg_webservices_mokobackup/language/en-US/plg_webservices_mokobackup.ini delete mode 100644 source/packages/plg_webservices_mokobackup/language/en-US/plg_webservices_mokobackup.sys.ini delete mode 100644 source/packages/plg_webservices_mokobackup/mokobackup.php create mode 100644 source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.ini create mode 100644 source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.sys.ini create mode 100644 source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.ini create mode 100644 source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.sys.ini create mode 100644 source/packages/plg_webservices_mokojoombackup/mokojoombackup.php rename source/packages/{plg_webservices_mokobackup/mokobackup.xml => plg_webservices_mokojoombackup/mokojoombackup.xml} (59%) rename source/packages/{plg_webservices_mokobackup => plg_webservices_mokojoombackup/plg_webservices_mokojoombackup}/index.html (100%) rename source/packages/{plg_webservices_mokobackup => plg_webservices_mokojoombackup/plg_webservices_mokojoombackup}/language/en-GB/index.html (100%) rename source/packages/{plg_webservices_mokobackup => plg_webservices_mokojoombackup/plg_webservices_mokojoombackup}/language/en-US/index.html (100%) rename source/packages/{plg_webservices_mokobackup => plg_webservices_mokojoombackup/plg_webservices_mokojoombackup}/language/index.html (100%) rename source/packages/{plg_webservices_mokobackup => plg_webservices_mokojoombackup/plg_webservices_mokojoombackup}/services/index.html (100%) create mode 100644 source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/services/provider.php rename source/packages/{plg_webservices_mokobackup => plg_webservices_mokojoombackup/plg_webservices_mokojoombackup}/src/Extension/MokoBackupWebServices.php (60%) rename source/packages/{plg_webservices_mokobackup => plg_webservices_mokojoombackup/plg_webservices_mokojoombackup}/src/Extension/index.html (100%) rename source/packages/{plg_webservices_mokobackup => plg_webservices_mokojoombackup/plg_webservices_mokojoombackup}/src/index.html (100%) rename source/{pkg_mokobackup.xml => pkg_mokojoombackup.xml} (53%) diff --git a/.mokogitea/CLAUDE.md b/.mokogitea/CLAUDE.md index 7fcb82c..c5dda15 100644 --- a/.mokogitea/CLAUDE.md +++ b/.mokogitea/CLAUDE.md @@ -6,7 +6,7 @@ Full-site backup and restore for Joomla — database, files, and configuration. | Field | Value | |---|---| -| **Package** | `pkg_mokobackup` | +| **Package** | `pkg_mokojoombackup` | | **Language** | PHP 8.1+ | | **Branch** | develop on `dev`, merge to `main` (protected) | | **Wiki** | [MokoJoomBackup Wiki](https://git.mokoconsulting.tech/MokoConsulting/MokoJoomBackup/wiki) | @@ -26,32 +26,32 @@ composer install # Install PHP dependencies Joomla **package** with four sub-extensions: -### com_mokobackup (Component) +### com_mokojoombackup (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\MokoBackup\Administrator` -- DB tables: `#__mokobackup_profiles`, `#__mokobackup_records` -- CLI: `cli/mokobackup.php` for cron-based backups +- Namespace: `Joomla\Component\MokoJoomBackup\Administrator` +- DB tables: `#__mokojoombackup_profiles`, `#__mokojoombackup_records` +- CLI: `cli/mokojoombackup.php` for cron-based backups -### plg_system_mokobackup (System Plugin) +### plg_system_mokojoombackup (System Plugin) - Cleanup of expired backup archives (age + count limits) -- Namespace: `Joomla\Plugin\System\MokoBackup` +- Namespace: `Joomla\Plugin\System\MokoJoomBackup` -### plg_task_mokobackup (Task Plugin) +### plg_task_mokojoombackup (Task Plugin) - Integrates with Joomla's Scheduled Tasks (com_scheduler) - Registers "Run Backup Profile" task type -- Namespace: `Joomla\Plugin\Task\MokoBackup` +- Namespace: `Joomla\Plugin\Task\MokoJoomBackup` -### plg_webservices_mokobackup (WebServices Plugin) -- REST API for remote backup management (wire-compatible with mcp_mokobackup) +### plg_webservices_mokojoombackup (WebServices Plugin) +- REST API for remote backup management (wire-compatible with mcp_mokojoombackup) - Endpoints: backup, backups, profiles, download, delete -- Namespace: `Joomla\Plugin\WebServices\MokoBackup` +- Namespace: `Joomla\Plugin\WebServices\MokoJoomBackup` ### Database Schema -- `#__mokobackup_profiles` — backup profiles (name, description, config JSON, filters JSON) -- `#__mokobackup_records` — backup records (profile_id, status, origin, archive path, sizes, timestamps) +- `#__mokojoombackup_profiles` — backup profiles (name, description, config JSON, filters JSON) +- `#__mokojoombackup_records` — backup records (profile_id, status, origin, archive path, sizes, timestamps) ## Rules diff --git a/CHANGELOG.md b/CHANGELOG.md index 64160d9..2299355 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,10 +34,10 @@ ### Added - Admin dashboard view as default landing page with status cards, quick actions, and system health checklist (#28) -- Console plugin (plg_console_mokobackup) — CLI commands: run, list, profiles, restore, cleanup (#29) -- Content plugin (plg_content_mokobackup) — auto-backup before extension install/update (#30) -- Actionlog plugin (plg_actionlog_mokobackup) — logs backup and profile actions to User Action Logs (#31) -- BackupEngine dispatches onMokoBackupAfterRun event for plugin listeners +- Console plugin (plg_console_mokojoombackup) — CLI commands: run, list, profiles, restore, cleanup (#29) +- Content plugin (plg_content_mokojoombackup) — auto-backup before extension install/update (#30) +- Actionlog plugin (plg_actionlog_mokojoombackup) — logs backup and profile actions to User Action Logs (#31) +- BackupEngine dispatches onMokoJoomBackupAfterRun event for plugin listeners - Update site notice on dashboard and post-install ### Changed @@ -52,7 +52,7 @@ ### Added - Initial package structure with component, system plugin, task plugin, and webservices plugin -- Joomla Scheduled Tasks integration (plg_task_mokobackup) — create multiple tasks, each running a different backup profile on its own schedule +- Joomla Scheduled Tasks integration (plg_task_mokojoombackup) — create multiple tasks, each running a different backup profile on its own schedule - Individual form fields for all profile settings (no raw JSON) - FTP/FTPS uploader with recursive directory creation, passive mode, SSL, and size verification - Google Drive uploader using OAuth2 refresh tokens and resumable upload API @@ -80,5 +80,5 @@ - Backup profiles with independent configurations - Backup record management (list, download, delete) - CLI script for cron/scheduled backups -- REST API compatible with MokoBackup MCP server +- REST API compatible with MokoJoomBackup MCP server - System plugin for automatic backup cleanup with configurable retention diff --git a/Makefile b/Makefile index f38765e..bafba81 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ # CONFIGURATION # ============================================================================== -EXTENSION_NAME := mokobackup +EXTENSION_NAME := mokojoombackup EXTENSION_TYPE := package SRC_DIR := source @@ -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_mokobackup.xml | sed 's/.*\(.*\)<\/version>.*/\1/'); \ + @VERSION=$$(grep '' $(SRC_DIR)/pkg_mokojoombackup.xml | sed 's/.*\(.*\)<\/version>.*/\1/'); \ echo "$(COLOR_BLUE)$(EXTENSION_NAME)$(COLOR_RESET) v$$VERSION ($(EXTENSION_TYPE))" # Default target diff --git a/source/language/en-GB/pkg_mokobackup.sys.ini b/source/language/en-GB/pkg_mokobackup.sys.ini deleted file mode 100644 index 75457fd..0000000 --- a/source/language/en-GB/pkg_mokobackup.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_MOKOBACKUP="Package - MokoJoomBackup" -PKG_MOKOBACKUP_DESCRIPTION="Full-site backup and restore for Joomla — database, files, and configuration. Includes admin component, system plugin, and REST API." -PKG_MOKOBACKUP_PHP_VERSION_ERROR="MokoJoomBackup requires PHP %s or later." -PKG_MOKOBACKUP_POSTINSTALL_UPDATE_SITE="MokoJoomBackup installed successfully. Configure your Update Site to receive automatic updates." diff --git a/source/language/en-GB/pkg_mokojoombackup.sys.ini b/source/language/en-GB/pkg_mokojoombackup.sys.ini new file mode 100644 index 0000000..bf27f12 --- /dev/null +++ b/source/language/en-GB/pkg_mokojoombackup.sys.ini @@ -0,0 +1,10 @@ +; 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-US/pkg_mokobackup.sys.ini b/source/language/en-US/pkg_mokobackup.sys.ini deleted file mode 100644 index 4936ac7..0000000 --- a/source/language/en-US/pkg_mokobackup.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_MOKOBACKUP="Package - MokoJoomBackup" -PKG_MOKOBACKUP_DESCRIPTION="Full-site backup and restore for Joomla — database, files, and configuration. Includes admin component, system plugin, and REST API." -PKG_MOKOBACKUP_PHP_VERSION_ERROR="MokoJoomBackup requires PHP %s or later." -PKG_MOKOBACKUP_POSTINSTALL_UPDATE_SITE="MokoJoomBackup 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 new file mode 100644 index 0000000..07d63b6 --- /dev/null +++ b/source/language/en-US/pkg_mokojoombackup.sys.ini @@ -0,0 +1,10 @@ +; 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/packages/com_mokobackup/forms/backup.xml b/source/packages/com_mokobackup/forms/backup.xml deleted file mode 100644 index 6d1e1e8..0000000 --- a/source/packages/com_mokobackup/forms/backup.xml +++ /dev/null @@ -1,15 +0,0 @@ - -
-
- - - - - - - - - - -
-
diff --git a/source/packages/com_mokobackup/forms/filter_backups.xml b/source/packages/com_mokobackup/forms/filter_backups.xml deleted file mode 100644 index d22dcb8..0000000 --- a/source/packages/com_mokobackup/forms/filter_backups.xml +++ /dev/null @@ -1,47 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - -
diff --git a/source/packages/com_mokobackup/forms/profile.xml b/source/packages/com_mokobackup/forms/profile.xml deleted file mode 100644 index 5c3fd2d..0000000 --- a/source/packages/com_mokobackup/forms/profile.xml +++ /dev/null @@ -1,373 +0,0 @@ - -
-
- - - - - - - - -
- -
- - - - - - - - - - - - - - - - - - -
- -
- - - - - - -
- -
- - - -
- -
- - - - - - - - - - -
- -
- - - - - - - - - - -
- -
- - - - - - - - - - - - - -
- -
- - - - -
- -
- - - - - - -
-
diff --git a/source/packages/com_mokobackup/language/en-GB/com_mokobackup.ini b/source/packages/com_mokobackup/language/en-GB/com_mokobackup.ini deleted file mode 100644 index caf865b..0000000 --- a/source/packages/com_mokobackup/language/en-GB/com_mokobackup.ini +++ /dev/null @@ -1,264 +0,0 @@ -; MokoJoomBackup — Component language file (en-GB) -; @package MokoJoomBackup -; @author Moko Consulting -; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. -; @license GPL-3.0-or-later - -COM_MOKOBACKUP="MokoJoomBackup" -COM_MOKOBACKUP_DESCRIPTION="Full-site backup and restore for Joomla" - -; Submenu -COM_MOKOBACKUP_SUBMENU_DASHBOARD="Dashboard" -COM_MOKOBACKUP_SUBMENU_BACKUPS="Backup Records" -COM_MOKOBACKUP_SUBMENU_PROFILES="Backup Profiles" - -; Dashboard view -COM_MOKOBACKUP_DASHBOARD_TITLE="MokoJoomBackup Dashboard" -COM_MOKOBACKUP_DASHBOARD_LAST_BACKUP="Last Backup" -COM_MOKOBACKUP_DASHBOARD_NO_BACKUPS="No backups yet" -COM_MOKOBACKUP_DASHBOARD_NEXT_SCHEDULED="Next Scheduled" -COM_MOKOBACKUP_DASHBOARD_NO_SCHEDULED="No tasks scheduled" -COM_MOKOBACKUP_DASHBOARD_TOTAL_BACKUPS="Total Backups" -COM_MOKOBACKUP_DASHBOARD_STORAGE="Storage Used" -COM_MOKOBACKUP_DASHBOARD_FAILURES_7D="%d failures (7 days)" -COM_MOKOBACKUP_DASHBOARD_QUICK_ACTIONS="Quick Actions" -COM_MOKOBACKUP_DASHBOARD_SCHEDULED_TASKS="Scheduled Tasks" -COM_MOKOBACKUP_DASHBOARD_UPDATE_SITE="Update Site" -COM_MOKOBACKUP_DASHBOARD_SYSTEM_HEALTH="System Health" - -; Backups view -COM_MOKOBACKUP_BACKUPS_TITLE="Backup Records" -COM_MOKOBACKUP_BACKUPS_TABLE_CAPTION="Table of backup records" -COM_MOKOBACKUP_NO_BACKUPS="No backups found. Click 'Backup Now' to create your first backup." -COM_MOKOBACKUP_TOOLBAR_BACKUP_NOW="Backup Now" -COM_MOKOBACKUP_DOWNLOAD="Download" - -; Backup detail view -COM_MOKOBACKUP_BACKUP_DETAIL="Backup Detail" -COM_MOKOBACKUP_VIEW_LOG="Backup Log" -COM_MOKOBACKUP_FIELD_CHECKSUM="SHA-256 Checksum" -COM_MOKOBACKUP_FIELD_PATH="File Path" -COM_MOKOBACKUP_FIELD_DB_SIZE="DB Size" -COM_MOKOBACKUP_FIELD_REMOTE="Remote Path" - -; Profiles view -COM_MOKOBACKUP_PROFILES_TITLE="Backup Profiles" -COM_MOKOBACKUP_PROFILES_TABLE_CAPTION="Table of backup profiles" -COM_MOKOBACKUP_NO_PROFILES="No backup profiles found." -COM_MOKOBACKUP_PROFILE_NEW="New Profile" -COM_MOKOBACKUP_PROFILE_EDIT="Edit Profile" - -; Table headings -COM_MOKOBACKUP_HEADING_DESCRIPTION="Description" -COM_MOKOBACKUP_HEADING_PROFILE="Profile" -COM_MOKOBACKUP_HEADING_STATUS="Status" -COM_MOKOBACKUP_HEADING_TYPE="Type" -COM_MOKOBACKUP_HEADING_SIZE="Size" -COM_MOKOBACKUP_HEADING_DATE="Date" -COM_MOKOBACKUP_HEADING_ACTIONS="Actions" -COM_MOKOBACKUP_HEADING_TITLE="Title" -COM_MOKOBACKUP_HEADING_DATE_DESC="Date descending" -COM_MOKOBACKUP_HEADING_DATE_ASC="Date ascending" -COM_MOKOBACKUP_HEADING_SIZE_DESC="Size descending" -COM_MOKOBACKUP_HEADING_SIZE_ASC="Size ascending" -COM_MOKOBACKUP_HEADING_TITLE_ASC="Title ascending" -COM_MOKOBACKUP_HEADING_TITLE_DESC="Title descending" - -; General fields -COM_MOKOBACKUP_FIELD_TITLE="Title" -COM_MOKOBACKUP_FIELD_TITLE_DESC="Profile name" -COM_MOKOBACKUP_FIELD_DESCRIPTION="Description" -COM_MOKOBACKUP_FIELD_DESCRIPTION_DESC="Brief description of this profile" -COM_MOKOBACKUP_FIELD_BACKUP_TYPE="Backup Type" -COM_MOKOBACKUP_FIELD_BACKUP_TYPE_DESC="What to include in the backup" -COM_MOKOBACKUP_FIELD_STATUS="Status" -COM_MOKOBACKUP_FIELD_ORIGIN="Origin" -COM_MOKOBACKUP_FIELD_SIZE="Total Size" -COM_MOKOBACKUP_FIELD_START="Start Time" -COM_MOKOBACKUP_FIELD_END="End Time" -COM_MOKOBACKUP_FIELD_ARCHIVE="Archive Name" -COM_MOKOBACKUP_FIELD_FILES_COUNT="Files Count" -COM_MOKOBACKUP_FIELD_TABLES_COUNT="Tables Count" - -; Archive settings -COM_MOKOBACKUP_FIELD_ARCHIVE_FORMAT="Archive Format" -COM_MOKOBACKUP_FIELD_ARCHIVE_FORMAT_DESC="Format for the backup archive file" -COM_MOKOBACKUP_FIELD_COMPRESSION="Compression Level" -COM_MOKOBACKUP_FIELD_COMPRESSION_DESC="Higher compression = smaller file but slower" -COM_MOKOBACKUP_COMPRESSION_NONE="None (fastest)" -COM_MOKOBACKUP_COMPRESSION_FASTEST="Low (fast)" -COM_MOKOBACKUP_COMPRESSION_NORMAL="Normal (balanced)" -COM_MOKOBACKUP_COMPRESSION_BEST="Maximum (smallest)" -COM_MOKOBACKUP_FIELD_ENCRYPTION_PASSWORD="Encryption Password" -COM_MOKOBACKUP_FIELD_ENCRYPTION_PASSWORD_DESC="Set a password to encrypt the backup archive with AES-256. Leave blank for no encryption. Required to restore encrypted backups." -COM_MOKOBACKUP_FIELD_SPLIT_SIZE="Split Size (MB)" -COM_MOKOBACKUP_FIELD_SPLIT_SIZE_DESC="Split archive into parts of this size in MB. 0 = no splitting." -COM_MOKOBACKUP_FIELD_BACKUP_DIR="Backup Directory" -COM_MOKOBACKUP_FIELD_BACKUP_DIR_DESC="Directory where backup archives are stored. Supports placeholders: [host], [date], [year], [month], [day], [profile_name], [site_name], [type]. Absolute paths (starting with /) are used as-is; relative paths resolve from the Joomla root." -COM_MOKOBACKUP_FIELD_ARCHIVE_NAME_FORMAT="Archive Name Format" -COM_MOKOBACKUP_FIELD_ARCHIVE_NAME_FORMAT_DESC="Filename template for backup archives (without extension). Placeholders: [host] hostname, [date] Ymd, [time] His, [datetime] Ymd_His, [year] [month] [day] [hour] [minute] [second], [profile_id], [profile_name], [site_name], [type], [random]." -COM_MOKOBACKUP_FIELD_INCLUDE_MOKORESTORE="Include Restore Script" -COM_MOKOBACKUP_FIELD_INCLUDE_MOKORESTORE_DESC="Include MokoRestore (standalone restore.php) inside the backup archive. Creates a self-contained package that can restore the site on a blank server without Joomla installed." - -; Exclusion filter fields -COM_MOKOBACKUP_FIELD_EXCLUDE_DIRS="Exclude Directories" -COM_MOKOBACKUP_FIELD_EXCLUDE_DIRS_DESC="Browse and check directories to exclude from file backup. You can also type paths manually." -COM_MOKOBACKUP_FILTER_EXCLUDED="Excluded" -COM_MOKOBACKUP_FILTER_INCLUDED="Included" -COM_MOKOBACKUP_FILTER_ADD_MANUAL="Add Path" -COM_MOKOBACKUP_FIELD_EXCLUDE_FILES="Exclude Files" -COM_MOKOBACKUP_FIELD_EXCLUDE_FILES_DESC="One filename or pattern per line. Supports wildcards (e.g. *.bak, *.tmp)." -COM_MOKOBACKUP_FIELD_EXCLUDE_TABLES="Exclude Tables" -COM_MOKOBACKUP_FIELD_EXCLUDE_TABLES_DESC="One table name per line (use #__ prefix). These tables will be skipped during database dump." - -; Remote storage fields -COM_MOKOBACKUP_FIELD_REMOTE_STORAGE="Remote Storage" -COM_MOKOBACKUP_FIELD_REMOTE_STORAGE_DESC="Optionally upload backup archives to a remote location after creation" -COM_MOKOBACKUP_REMOTE_NONE="None (local only)" -COM_MOKOBACKUP_REMOTE_FTP="FTP / FTPS" -COM_MOKOBACKUP_REMOTE_GDRIVE="Google Drive" -COM_MOKOBACKUP_FIELD_KEEP_LOCAL="Keep Local Copy" -COM_MOKOBACKUP_FIELD_KEEP_LOCAL_DESC="Keep the local backup file after uploading to remote storage" - -; FTP fields -COM_MOKOBACKUP_FIELD_FTP_HOST="FTP Host" -COM_MOKOBACKUP_FIELD_FTP_HOST_DESC="FTP server hostname or IP address" -COM_MOKOBACKUP_FIELD_FTP_PORT="FTP Port" -COM_MOKOBACKUP_FIELD_FTP_PORT_DESC="FTP server port (default: 21)" -COM_MOKOBACKUP_FIELD_FTP_USERNAME="FTP Username" -COM_MOKOBACKUP_FIELD_FTP_PASSWORD="FTP Password" -COM_MOKOBACKUP_FIELD_FTP_PATH="Remote Path" -COM_MOKOBACKUP_FIELD_FTP_PATH_DESC="Directory on the FTP server to upload backups to" -COM_MOKOBACKUP_FIELD_FTP_PASSIVE="Passive Mode" -COM_MOKOBACKUP_FIELD_FTP_PASSIVE_DESC="Use passive mode for FTP connections (recommended)" -COM_MOKOBACKUP_FIELD_FTP_SSL="Use FTPS (SSL)" -COM_MOKOBACKUP_FIELD_FTP_SSL_DESC="Connect using FTPS (FTP over SSL/TLS)" - -; Google Drive fields -COM_MOKOBACKUP_FIELD_GDRIVE_CLIENT_ID="Google Client ID" -COM_MOKOBACKUP_FIELD_GDRIVE_CLIENT_ID_DESC="OAuth 2.0 Client ID from Google Cloud Console" -COM_MOKOBACKUP_FIELD_GDRIVE_CLIENT_SECRET="Google Client Secret" -COM_MOKOBACKUP_FIELD_GDRIVE_REFRESH_TOKEN="Refresh Token" -COM_MOKOBACKUP_FIELD_GDRIVE_REFRESH_TOKEN_DESC="OAuth 2.0 refresh token for offline access" -COM_MOKOBACKUP_FIELD_GDRIVE_FOLDER_ID="Drive Folder ID" -COM_MOKOBACKUP_FIELD_GDRIVE_FOLDER_ID_DESC="Google Drive folder ID where backups will be uploaded. Find this in the folder URL." - -; Backup types -COM_MOKOBACKUP_TYPE_FULL="Full Site (Database + Files)" -COM_MOKOBACKUP_TYPE_DATABASE="Database Only" -COM_MOKOBACKUP_TYPE_FILES="Files Only" -COM_MOKOBACKUP_TYPE_DIFFERENTIAL="Differential (changed files + full DB)" - -; Status labels -COM_MOKOBACKUP_STATUS_COMPLETE="Complete" -COM_MOKOBACKUP_STATUS_RUNNING="Running" -COM_MOKOBACKUP_STATUS_FAIL="Failed" -COM_MOKOBACKUP_STATUS_PENDING="Pending" - -; Filters -COM_MOKOBACKUP_FILTER_SEARCH="Search" -COM_MOKOBACKUP_FILTER_STATUS="Status" -COM_MOKOBACKUP_FILTER_STATUS_ALL="- Select Status -" - -; Tabs and fieldsets -COM_MOKOBACKUP_TAB_GENERAL="General" -COM_MOKOBACKUP_TAB_ARCHIVE="Archive Settings" -COM_MOKOBACKUP_TAB_FILTERS="Exclusion Filters" -COM_MOKOBACKUP_TAB_REMOTE="Remote Storage" -COM_MOKOBACKUP_FIELDSET_GENERAL="General" -COM_MOKOBACKUP_FIELDSET_ARCHIVE="Archive Settings" -COM_MOKOBACKUP_FIELDSET_STATUS="Status" -COM_MOKOBACKUP_FIELDSET_FILTERS="Exclusion Filters" -COM_MOKOBACKUP_FIELDSET_REMOTE="Remote Storage" -COM_MOKOBACKUP_FIELDSET_FTP="FTP Settings" -COM_MOKOBACKUP_FIELDSET_GDRIVE="Google Drive Settings" - -; Backup profile selector -COM_MOKOBACKUP_BACKUP_PROFILE="Backup Profile" - -; Restore -COM_MOKOBACKUP_TOOLBAR_RESTORE="Restore" -COM_MOKOBACKUP_RESTORE_CONFIRM="WARNING: Restoring will overwrite your current site files and/or database. Are you sure you want to continue?" - -; Notifications -COM_MOKOBACKUP_TAB_NOTIFICATIONS="Notifications" -COM_MOKOBACKUP_FIELDSET_NOTIFICATIONS="Email Notifications" -COM_MOKOBACKUP_FIELD_NOTIFY_EMAIL="Notification Email(s)" -COM_MOKOBACKUP_FIELD_NOTIFY_EMAIL_DESC="Comma-separated list of email addresses to notify. Leave empty to disable notifications." -COM_MOKOBACKUP_FIELD_NOTIFY_SUCCESS="Notify on Success" -COM_MOKOBACKUP_FIELD_NOTIFY_SUCCESS_DESC="Send an email when a backup completes successfully." -COM_MOKOBACKUP_FIELD_NOTIFY_FAILURE="Notify on Failure" -COM_MOKOBACKUP_FIELD_NOTIFY_FAILURE_DESC="Send an email when a backup fails. Includes log excerpt for debugging." - -; Integrity verification -COM_MOKOBACKUP_TOOLBAR_VERIFY="Verify Integrity" -COM_MOKOBACKUP_VERIFY_OK="Archive integrity verified — SHA-256 checksum matches." -COM_MOKOBACKUP_VERIFY_FAILED="INTEGRITY CHECK FAILED — archive has been modified or corrupted since backup." -COM_MOKOBACKUP_VERIFY_NO_CHECKSUM="No checksum stored for this backup. Only backups created after this update can be verified." - -; S3 storage -COM_MOKOBACKUP_REMOTE_S3="Amazon S3 / S3-Compatible" -COM_MOKOBACKUP_FIELDSET_S3="S3 Storage Settings" -COM_MOKOBACKUP_FIELD_S3_ENDPOINT="S3 Endpoint" -COM_MOKOBACKUP_FIELD_S3_ENDPOINT_DESC="S3 API endpoint URL. Leave blank for AWS S3. For Wasabi, MinIO, Backblaze B2, enter their endpoint URL." -COM_MOKOBACKUP_FIELD_S3_REGION="Region" -COM_MOKOBACKUP_FIELD_S3_REGION_DESC="AWS region (e.g. us-east-1, eu-west-1). Required for AWS Signature V4." -COM_MOKOBACKUP_FIELD_S3_ACCESS_KEY="Access Key" -COM_MOKOBACKUP_FIELD_S3_SECRET_KEY="Secret Key" -COM_MOKOBACKUP_FIELD_S3_BUCKET="Bucket Name" -COM_MOKOBACKUP_FIELD_S3_BUCKET_DESC="S3 bucket name where backups will be stored." -COM_MOKOBACKUP_FIELD_S3_PATH="Path Prefix" -COM_MOKOBACKUP_FIELD_S3_PATH_DESC="Optional path prefix inside the bucket (e.g. /backups or /sites/mysite)." - -; Akeeba Import -COM_MOKOBACKUP_TOOLBAR_IMPORT_AKEEBA="Import from Akeeba" -COM_MOKOBACKUP_AKEEBA_NOT_FOUND="Akeeba Backup tables not found. Is Akeeba Backup Pro installed?" - -; Update site notice -COM_MOKOBACKUP_UPDATE_SITE_NOTICE="To receive automatic updates, configure your Update Site with your download key." -COM_MOKOBACKUP_UPDATE_SITE_MISSING="MokoJoomBackup update site not found. Reinstall the package to register the update server." -COM_MOKOBACKUP_POSTINSTALL_UPDATE_SITE="MokoJoomBackup installed successfully. Configure your Update Site to receive automatic updates." - -; Component Options (config.xml) -COM_MOKOBACKUP_CONFIG_GENERAL="General" -COM_MOKOBACKUP_CONFIG_DEFAULT_BACKUP_DIR="Default Backup Directory" -COM_MOKOBACKUP_CONFIG_DEFAULT_BACKUP_DIR_DESC="Default directory for backup archives, relative to Joomla root. Can be overridden per profile." -COM_MOKOBACKUP_CONFIG_DEFAULT_PROFILE="Default Profile" -COM_MOKOBACKUP_CONFIG_DEFAULT_PROFILE_DESC="Default backup profile used by quick actions and CLI when no profile is specified." -COM_MOKOBACKUP_CONFIG_SHOW_UPDATE_NOTICE="Show Update Site Notice" -COM_MOKOBACKUP_CONFIG_SHOW_UPDATE_NOTICE_DESC="Display the update site configuration notice on the Backup Records view." -COM_MOKOBACKUP_CONFIG_CLEANUP="Cleanup Defaults" -COM_MOKOBACKUP_CONFIG_MAX_AGE="Max Backup Age (days)" -COM_MOKOBACKUP_CONFIG_MAX_AGE_DESC="Default maximum age for backup records. Used by the system plugin and CLI cleanup command." -COM_MOKOBACKUP_CONFIG_MAX_BACKUPS="Max Backup Count" -COM_MOKOBACKUP_CONFIG_MAX_BACKUPS_DESC="Default maximum number of completed backups to retain." -COM_MOKOBACKUP_CONFIG_NOTIFICATIONS="Notifications" -COM_MOKOBACKUP_CONFIG_NOTIFY_EMAIL="Global Notification Email(s)" -COM_MOKOBACKUP_CONFIG_NOTIFY_EMAIL_DESC="Comma-separated list of email addresses for global backup notifications. Per-profile settings override this." -COM_MOKOBACKUP_CONFIG_NOTIFY_SUCCESS="Notify on Success" -COM_MOKOBACKUP_CONFIG_NOTIFY_SUCCESS_DESC="Send email when any backup completes successfully (unless overridden by profile)." -COM_MOKOBACKUP_CONFIG_NOTIFY_FAILURE="Notify on Failure" -COM_MOKOBACKUP_CONFIG_NOTIFY_FAILURE_DESC="Send email when any backup fails (unless overridden by profile)." - -; Folder picker -COM_MOKOBACKUP_FOLDER_EXISTS="Directory exists" -COM_MOKOBACKUP_FOLDER_NOT_FOUND="Directory not found" -COM_MOKOBACKUP_BACKUP_DIR_DEFAULT="Default (inside web root)" - -; Exclude fields -COM_MOKOBACKUP_FIELD_EXCLUDE_TABLES_HELP="Check tables to exclude from database backup. Use Data to skip row data (keeps structure), Structure to skip CREATE TABLE, or both to fully exclude." -COM_MOKOBACKUP_FIELD_EXCLUDE_DATA="Data" -COM_MOKOBACKUP_FIELD_EXCLUDE_STRUCTURE="Structure" -COM_MOKOBACKUP_FIELD_TABLE_NAME="Table Name" - -; User group notifications -COM_MOKOBACKUP_FIELD_NOTIFY_USER_GROUPS="Notify User Groups" -COM_MOKOBACKUP_FIELD_NOTIFY_USER_GROUPS_DESC="Select Joomla user groups whose members will receive backup notifications. Combined with email addresses above." - -; Dashboard warnings -COM_MOKOBACKUP_DASHBOARD_DEFAULT_DIR_WARNING_TITLE="Backup directory is inside the web root" -COM_MOKOBACKUP_DASHBOARD_DEFAULT_DIR_WARNING="One or more profiles store backups in the default directory inside the web root. This may expose backup archives if .htaccess is not supported. Move backups to a directory outside the web root for better security." - -; Errors -COM_MOKOBACKUP_ERROR_FILE_NOT_FOUND="Backup archive file not found or has been deleted." -COM_MOKOBACKUP_ERROR_NO_RECORD_SELECTED="No backup record selected for restore." diff --git a/source/packages/com_mokobackup/language/en-GB/com_mokobackup.sys.ini b/source/packages/com_mokobackup/language/en-GB/com_mokobackup.sys.ini deleted file mode 100644 index 17e8576..0000000 --- a/source/packages/com_mokobackup/language/en-GB/com_mokobackup.sys.ini +++ /dev/null @@ -1,10 +0,0 @@ -; MokoJoomBackup — Component system language file (en-GB) -; @package MokoJoomBackup -; @author Moko Consulting -; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. -; @license GPL-3.0-or-later - -COM_MOKOBACKUP="MokoJoomBackup" -COM_MOKOBACKUP_DESCRIPTION="Full-site backup and restore for Joomla — database, files, and configuration." -COM_MOKOBACKUP_SUBMENU_BACKUPS="Backup Records" -COM_MOKOBACKUP_SUBMENU_PROFILES="Backup Profiles" diff --git a/source/packages/com_mokobackup/language/en-US/com_mokobackup.ini b/source/packages/com_mokobackup/language/en-US/com_mokobackup.ini deleted file mode 100644 index 8e72912..0000000 --- a/source/packages/com_mokobackup/language/en-US/com_mokobackup.ini +++ /dev/null @@ -1,69 +0,0 @@ -; MokoJoomBackup — Component language file (en-US) -; @package MokoJoomBackup -; @author Moko Consulting -; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. -; @license GPL-3.0-or-later - -COM_MOKOBACKUP="MokoJoomBackup" -COM_MOKOBACKUP_DESCRIPTION="Full-site backup and restore for Joomla" -COM_MOKOBACKUP_SUBMENU_DASHBOARD="Dashboard" -COM_MOKOBACKUP_SUBMENU_BACKUPS="Backup Records" -COM_MOKOBACKUP_SUBMENU_PROFILES="Backup Profiles" -COM_MOKOBACKUP_DASHBOARD_TITLE="MokoJoomBackup Dashboard" -COM_MOKOBACKUP_DASHBOARD_LAST_BACKUP="Last Backup" -COM_MOKOBACKUP_DASHBOARD_NO_BACKUPS="No backups yet" -COM_MOKOBACKUP_DASHBOARD_NEXT_SCHEDULED="Next Scheduled" -COM_MOKOBACKUP_DASHBOARD_NO_SCHEDULED="No tasks scheduled" -COM_MOKOBACKUP_DASHBOARD_TOTAL_BACKUPS="Total Backups" -COM_MOKOBACKUP_DASHBOARD_STORAGE="Storage Used" -COM_MOKOBACKUP_DASHBOARD_FAILURES_7D="%d failures (7 days)" -COM_MOKOBACKUP_DASHBOARD_QUICK_ACTIONS="Quick Actions" -COM_MOKOBACKUP_DASHBOARD_SCHEDULED_TASKS="Scheduled Tasks" -COM_MOKOBACKUP_DASHBOARD_UPDATE_SITE="Update Site" -COM_MOKOBACKUP_DASHBOARD_SYSTEM_HEALTH="System Health" -COM_MOKOBACKUP_BACKUPS_TITLE="Backup Records" -COM_MOKOBACKUP_PROFILES_TITLE="Backup Profiles" -COM_MOKOBACKUP_TOOLBAR_BACKUP_NOW="Backup Now" -COM_MOKOBACKUP_NO_BACKUPS="No backups found. Click 'Backup Now' to create your first backup." -COM_MOKOBACKUP_NO_PROFILES="No backup profiles found." -COM_MOKOBACKUP_UPDATE_SITE_NOTICE="To receive automatic updates, configure your Update Site with your download key." -COM_MOKOBACKUP_UPDATE_SITE_MISSING="MokoJoomBackup update site not found. Reinstall the package to register the update server." -COM_MOKOBACKUP_POSTINSTALL_UPDATE_SITE="MokoJoomBackup installed successfully. Configure your Update Site to receive automatic updates." -COM_MOKOBACKUP_CONFIG_GENERAL="General" -COM_MOKOBACKUP_CONFIG_DEFAULT_BACKUP_DIR="Default Backup Directory" -COM_MOKOBACKUP_CONFIG_DEFAULT_BACKUP_DIR_DESC="Default directory for backup archives, relative to Joomla root. Can be overridden per profile." -COM_MOKOBACKUP_CONFIG_DEFAULT_PROFILE="Default Profile" -COM_MOKOBACKUP_CONFIG_DEFAULT_PROFILE_DESC="Default backup profile used by quick actions and CLI when no profile is specified." -COM_MOKOBACKUP_CONFIG_SHOW_UPDATE_NOTICE="Show Update Site Notice" -COM_MOKOBACKUP_CONFIG_SHOW_UPDATE_NOTICE_DESC="Display the update site configuration notice on the Backup Records view." -COM_MOKOBACKUP_CONFIG_CLEANUP="Cleanup Defaults" -COM_MOKOBACKUP_CONFIG_MAX_AGE="Max Backup Age (days)" -COM_MOKOBACKUP_CONFIG_MAX_AGE_DESC="Default maximum age for backup records. Used by the system plugin and CLI cleanup command." -COM_MOKOBACKUP_CONFIG_MAX_BACKUPS="Max Backup Count" -COM_MOKOBACKUP_CONFIG_MAX_BACKUPS_DESC="Default maximum number of completed backups to retain." -COM_MOKOBACKUP_CONFIG_NOTIFICATIONS="Notifications" -COM_MOKOBACKUP_CONFIG_NOTIFY_EMAIL="Global Notification Email(s)" -COM_MOKOBACKUP_CONFIG_NOTIFY_EMAIL_DESC="Comma-separated list of email addresses for global backup notifications. Per-profile settings override this." -COM_MOKOBACKUP_CONFIG_NOTIFY_SUCCESS="Notify on Success" -COM_MOKOBACKUP_CONFIG_NOTIFY_SUCCESS_DESC="Send email when any backup completes successfully (unless overridden by profile)." -COM_MOKOBACKUP_CONFIG_NOTIFY_FAILURE="Notify on Failure" -COM_MOKOBACKUP_CONFIG_NOTIFY_FAILURE_DESC="Send email when any backup fails (unless overridden by profile)." -COM_MOKOBACKUP_FOLDER_EXISTS="Directory exists" -COM_MOKOBACKUP_FOLDER_NOT_FOUND="Directory not found" -COM_MOKOBACKUP_BACKUP_DIR_DEFAULT="Default (inside web root)" -COM_MOKOBACKUP_DASHBOARD_DEFAULT_DIR_WARNING_TITLE="Backup directory is inside the web root" -COM_MOKOBACKUP_DASHBOARD_DEFAULT_DIR_WARNING="One or more profiles store backups in the default directory inside the web root. This may expose backup archives if .htaccess is not supported. Move backups to a directory outside the web root for better security." -COM_MOKOBACKUP_FOLDER_EXISTS="Directory exists" -COM_MOKOBACKUP_FOLDER_NOT_FOUND="Directory not found" -COM_MOKOBACKUP_BACKUP_DIR_DEFAULT="Default (inside web root)" -COM_MOKOBACKUP_FIELD_EXCLUDE_TABLES_HELP="Check tables to exclude from database backup. Use Data to skip row data (keeps structure), Structure to skip CREATE TABLE, or both to fully exclude." -COM_MOKOBACKUP_FIELD_EXCLUDE_DATA="Data" -COM_MOKOBACKUP_FIELD_EXCLUDE_STRUCTURE="Structure" -COM_MOKOBACKUP_FIELD_TABLE_NAME="Table Name" -COM_MOKOBACKUP_VIEW_LOG="Backup Log" -COM_MOKOBACKUP_FIELD_CHECKSUM="SHA-256 Checksum" -COM_MOKOBACKUP_FIELD_PATH="File Path" -COM_MOKOBACKUP_FIELD_DB_SIZE="DB Size" -COM_MOKOBACKUP_FIELD_REMOTE="Remote Path" -COM_MOKOBACKUP_FIELD_NOTIFY_USER_GROUPS="Notify User Groups" -COM_MOKOBACKUP_FIELD_NOTIFY_USER_GROUPS_DESC="Select Joomla user groups whose members will receive backup notifications. Combined with email addresses above." diff --git a/source/packages/com_mokobackup/language/en-US/com_mokobackup.sys.ini b/source/packages/com_mokobackup/language/en-US/com_mokobackup.sys.ini deleted file mode 100644 index 96e51f2..0000000 --- a/source/packages/com_mokobackup/language/en-US/com_mokobackup.sys.ini +++ /dev/null @@ -1,10 +0,0 @@ -; MokoJoomBackup — Component system language file (en-US) -; @package MokoJoomBackup -; @author Moko Consulting -; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. -; @license GPL-3.0-or-later - -COM_MOKOBACKUP="MokoJoomBackup" -COM_MOKOBACKUP_DESCRIPTION="Full-site backup and restore for Joomla — database, files, and configuration." -COM_MOKOBACKUP_SUBMENU_BACKUPS="Backup Records" -COM_MOKOBACKUP_SUBMENU_PROFILES="Backup Profiles" diff --git a/source/packages/com_mokobackup/sql/uninstall.mysql.sql b/source/packages/com_mokobackup/sql/uninstall.mysql.sql deleted file mode 100644 index 8df7cde..0000000 --- a/source/packages/com_mokobackup/sql/uninstall.mysql.sql +++ /dev/null @@ -1,2 +0,0 @@ -DROP TABLE IF EXISTS `#__mokobackup_records`; -DROP TABLE IF EXISTS `#__mokobackup_profiles`; diff --git a/source/packages/com_mokobackup/sql/updates/mysql/01.01.01.sql b/source/packages/com_mokobackup/sql/updates/mysql/01.01.01.sql deleted file mode 100644 index ef33f11..0000000 --- a/source/packages/com_mokobackup/sql/updates/mysql/01.01.01.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `#__mokobackup_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_mokobackup/sql/updates/mysql/01.01.02.sql b/source/packages/com_mokobackup/sql/updates/mysql/01.01.02.sql deleted file mode 100644 index ddc43d7..0000000 --- a/source/packages/com_mokobackup/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 `#__mokobackup_records` MODIFY `manifest` LONGTEXT DEFAULT NULL; -ALTER TABLE `#__mokobackup_records` MODIFY `log` MEDIUMTEXT DEFAULT NULL; - --- Add user group notifications column to profiles -ALTER TABLE `#__mokobackup_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 `#__mokobackup_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_mokobackup/cli/mokobackup.php b/source/packages/com_mokojoombackup/cli/mokojoombackup.php similarity index 89% rename from source/packages/com_mokobackup/cli/mokobackup.php rename to source/packages/com_mokojoombackup/cli/mokojoombackup.php index 47f030e..9135706 100644 --- a/source/packages/com_mokobackup/cli/mokobackup.php +++ b/source/packages/com_mokojoombackup/cli/mokojoombackup.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @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/mokobackup.php --profile=1 --description="Scheduled backup" + * php cli/mokojoombackup.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\MokoBackup\Administrator\Engine\BackupEngine; +use Joomla\Component\MokoJoomBackup\Administrator\Engine\BackupEngine; // Parse CLI arguments $profileId = 1; diff --git a/source/packages/com_mokobackup/api/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/api/index.html similarity index 100% rename from source/packages/com_mokobackup/api/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/api/index.html diff --git a/source/packages/com_mokobackup/api/src/Controller/BackupsController.php b/source/packages/com_mokojoombackup/com_mokojoombackup/api/src/Controller/BackupsController.php similarity index 84% rename from source/packages/com_mokobackup/api/src/Controller/BackupsController.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/api/src/Controller/BackupsController.php index ab7c746..1f5b829 100644 --- a/source/packages/com_mokobackup/api/src/Controller/BackupsController.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/api/src/Controller/BackupsController.php @@ -2,18 +2,18 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Api\Controller; +namespace Joomla\Component\MokoJoomBackup\Api\Controller; defined('_JEXEC') or die; use Joomla\CMS\MVC\Controller\ApiController; -use Joomla\Component\MokoBackup\Administrator\Engine\BackupEngine; +use Joomla\Component\MokoJoomBackup\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/mokobackup/backup) + * Start a new backup (POST /api/index.php/v1/mokojoombackup/backup) */ public function backup(): static { @@ -47,7 +47,7 @@ class BackupsController extends ApiController } /** - * Download a backup archive (GET /api/index.php/v1/mokobackup/backup/:id/download) + * Download a backup archive (GET /api/index.php/v1/mokojoombackup/backup/:id/download) */ public function download(): static { @@ -74,7 +74,7 @@ class BackupsController extends ApiController } /** - * List backup profiles (GET /api/index.php/v1/mokobackup/profiles) + * List backup profiles (GET /api/index.php/v1/mokojoombackup/profiles) */ public function profiles(): static { diff --git a/source/packages/com_mokobackup/api/src/Controller/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/api/src/Controller/index.html similarity index 100% rename from source/packages/com_mokobackup/api/src/Controller/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/api/src/Controller/index.html diff --git a/source/packages/com_mokobackup/api/src/View/Backups/JsonapiView.php b/source/packages/com_mokojoombackup/com_mokojoombackup/api/src/View/Backups/JsonapiView.php similarity index 90% rename from source/packages/com_mokobackup/api/src/View/Backups/JsonapiView.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/api/src/View/Backups/JsonapiView.php index d9e8a8a..f39925f 100644 --- a/source/packages/com_mokobackup/api/src/View/Backups/JsonapiView.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/api/src/View/Backups/JsonapiView.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Api\View\Backups; +namespace Joomla\Component\MokoJoomBackup\Api\View\Backups; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/api/src/View/Backups/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/api/src/View/Backups/index.html similarity index 100% rename from source/packages/com_mokobackup/api/src/View/Backups/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/api/src/View/Backups/index.html diff --git a/source/packages/com_mokobackup/api/src/View/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/api/src/View/index.html similarity index 100% rename from source/packages/com_mokobackup/api/src/View/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/api/src/View/index.html diff --git a/source/packages/com_mokobackup/api/src/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/api/src/index.html similarity index 100% rename from source/packages/com_mokobackup/api/src/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/api/src/index.html diff --git a/source/packages/com_mokobackup/cli/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/cli/index.html similarity index 100% rename from source/packages/com_mokobackup/cli/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/cli/index.html diff --git a/source/packages/com_mokobackup/config.xml b/source/packages/com_mokojoombackup/com_mokojoombackup/config.xml similarity index 52% rename from source/packages/com_mokobackup/config.xml rename to source/packages/com_mokojoombackup/com_mokojoombackup/config.xml index d1a0011..089c63b 100644 --- a/source/packages/com_mokobackup/config.xml +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/config.xml @@ -1,27 +1,27 @@ -
+
@@ -29,8 +29,8 @@ @@ -39,12 +39,12 @@
-
+
-
+
@@ -83,8 +83,8 @@ @@ -101,7 +101,7 @@ label="JCONFIG_PERMISSIONS_LABEL" filter="rules" validate="rules" - component="com_mokobackup" + component="com_mokojoombackup" section="component" />
diff --git a/source/packages/com_mokojoombackup/com_mokojoombackup/forms/backup.xml b/source/packages/com_mokojoombackup/com_mokojoombackup/forms/backup.xml new file mode 100644 index 0000000..207f50b --- /dev/null +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/forms/backup.xml @@ -0,0 +1,15 @@ + +
+
+ + + + + + + + + + +
+
diff --git a/source/packages/com_mokojoombackup/com_mokojoombackup/forms/filter_backups.xml b/source/packages/com_mokojoombackup/com_mokojoombackup/forms/filter_backups.xml new file mode 100644 index 0000000..11af4cc --- /dev/null +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/forms/filter_backups.xml @@ -0,0 +1,47 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + +
diff --git a/source/packages/com_mokobackup/forms/filter_profiles.xml b/source/packages/com_mokojoombackup/com_mokojoombackup/forms/filter_profiles.xml similarity index 81% rename from source/packages/com_mokobackup/forms/filter_profiles.xml rename to source/packages/com_mokojoombackup/com_mokojoombackup/forms/filter_profiles.xml index 0025a94..b3ec39a 100644 --- a/source/packages/com_mokobackup/forms/filter_profiles.xml +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/forms/filter_profiles.xml @@ -4,7 +4,7 @@ - - + + diff --git a/source/packages/com_mokobackup/forms/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/forms/index.html similarity index 100% rename from source/packages/com_mokobackup/forms/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/forms/index.html diff --git a/source/packages/com_mokojoombackup/com_mokojoombackup/forms/profile.xml b/source/packages/com_mokojoombackup/com_mokojoombackup/forms/profile.xml new file mode 100644 index 0000000..34701a8 --- /dev/null +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/forms/profile.xml @@ -0,0 +1,373 @@ + +
+
+ + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+ + + +
+ +
+ + + + + + + + + + +
+ +
+ + + + + + + + + + +
+ +
+ + + + + + + + + + + + + +
+ +
+ + + + +
+ +
+ + + + + + +
+
diff --git a/source/packages/com_mokobackup/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/index.html similarity index 100% rename from source/packages/com_mokobackup/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/index.html diff --git a/source/packages/com_mokobackup/language/en-GB/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/language/en-GB/index.html similarity index 100% rename from source/packages/com_mokobackup/language/en-GB/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/language/en-GB/index.html diff --git a/source/packages/com_mokobackup/language/en-US/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/language/en-US/index.html similarity index 100% rename from source/packages/com_mokobackup/language/en-US/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/language/en-US/index.html diff --git a/source/packages/com_mokobackup/language/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/language/index.html similarity index 100% rename from source/packages/com_mokobackup/language/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/language/index.html diff --git a/source/packages/com_mokobackup/services/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/services/index.html similarity index 100% rename from source/packages/com_mokobackup/services/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/services/index.html diff --git a/source/packages/com_mokobackup/services/provider.php b/source/packages/com_mokojoombackup/com_mokojoombackup/services/provider.php similarity index 82% rename from source/packages/com_mokobackup/services/provider.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/services/provider.php index cd6bc5b..af40114 100644 --- a/source/packages/com_mokobackup/services/provider.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/services/provider.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Administrator\Extension\MokoBackupComponent; +use Joomla\Component\MokoJoomBackup\Administrator\Extension\MokoJoomBackupComponent; 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\\MokoBackup')); - $container->registerServiceProvider(new ComponentDispatcherFactory('\\Joomla\\Component\\MokoBackup')); + $container->registerServiceProvider(new MVCFactory('\\Joomla\\Component\\MokoJoomBackup')); + $container->registerServiceProvider(new ComponentDispatcherFactory('\\Joomla\\Component\\MokoJoomBackup')); $container->set( ComponentInterface::class, function (Container $container) { - $component = new MokoBackupComponent( + $component = new MokoJoomBackupComponent( $container->get(ComponentDispatcherFactoryInterface::class) ); $component->setMVCFactory($container->get(MVCFactoryInterface::class)); diff --git a/source/packages/com_mokobackup/sql/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/index.html similarity index 100% rename from source/packages/com_mokobackup/sql/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/sql/index.html diff --git a/source/packages/com_mokobackup/sql/install.mysql.sql b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/install.mysql.sql similarity index 93% rename from source/packages/com_mokobackup/sql/install.mysql.sql rename to source/packages/com_mokojoombackup/com_mokojoombackup/sql/install.mysql.sql index c9c25d3..f4af653 100644 --- a/source/packages/com_mokobackup/sql/install.mysql.sql +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/install.mysql.sql @@ -1,4 +1,4 @@ -CREATE TABLE IF NOT EXISTS `#__mokobackup_profiles` ( +CREATE TABLE IF NOT EXISTS `#__mokojoombackup_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 `#__mokobackup_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_mokobackup/backups', + `backup_dir` VARCHAR(512) NOT NULL DEFAULT 'administrator/components/com_mokojoombackup/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 `#__mokobackup_profiles` ( KEY `idx_published` (`published`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -CREATE TABLE IF NOT EXISTS `#__mokobackup_records` ( +CREATE TABLE IF NOT EXISTS `#__mokojoombackup_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 `#__mokobackup_records` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- Insert default backup profile -INSERT INTO `#__mokobackup_profiles` ( +INSERT INTO `#__mokojoombackup_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_mokobackup/backups', - 'administrator/components/com_mokobackup/backups\ntmp\ncache\nlogs\nadministrator/logs', + 'zip', 5, 0, 'administrator/components/com_mokojoombackup/backups', + 'administrator/components/com_mokojoombackup/backups\ntmp\ncache\nlogs\nadministrator/logs', '.gitignore\n.htaccess.bak', '#__session', 1, 1, NOW(), NOW() diff --git a/source/packages/com_mokobackup/sql/mysql/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/mysql/index.html similarity index 100% rename from source/packages/com_mokobackup/sql/mysql/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/sql/mysql/index.html diff --git a/source/packages/com_mokojoombackup/com_mokojoombackup/sql/uninstall.mysql.sql b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/uninstall.mysql.sql new file mode 100644 index 0000000..974f591 --- /dev/null +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/uninstall.mysql.sql @@ -0,0 +1,2 @@ +DROP TABLE IF EXISTS `#__mokojoombackup_records`; +DROP TABLE IF EXISTS `#__mokojoombackup_profiles`; diff --git a/source/packages/com_mokobackup/sql/updates/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/index.html similarity index 100% rename from source/packages/com_mokobackup/sql/updates/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/index.html diff --git a/source/packages/com_mokobackup/sql/updates/mysql/01.00.00.sql b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/mysql/01.00.00.sql similarity index 100% rename from source/packages/com_mokobackup/sql/updates/mysql/01.00.00.sql rename to source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/mysql/01.00.00.sql diff --git a/source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/mysql/01.01.01.sql b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/mysql/01.01.01.sql new file mode 100644 index 0000000..ec8fb68 --- /dev/null +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/mysql/01.01.01.sql @@ -0,0 +1 @@ +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/com_mokojoombackup/sql/updates/mysql/01.01.02.sql b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/mysql/01.01.02.sql new file mode 100644 index 0000000..8b86fb7 --- /dev/null +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/mysql/01.01.02.sql @@ -0,0 +1,12 @@ +-- 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_mokobackup/sql/updates/mysql/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/mysql/index.html similarity index 100% rename from source/packages/com_mokobackup/sql/updates/mysql/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/sql/updates/mysql/index.html diff --git a/source/packages/com_mokobackup/src/Controller/AjaxController.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/AjaxController.php similarity index 95% rename from source/packages/com_mokobackup/src/Controller/AjaxController.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/AjaxController.php index 7a01ebb..9e5c637 100644 --- a/source/packages/com_mokobackup/src/Controller/AjaxController.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/AjaxController.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -11,13 +11,13 @@ * Handles init and step requests from the admin UI JavaScript. */ -namespace Joomla\Component\MokoBackup\Administrator\Controller; +namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; defined('_JEXEC') or die; use Joomla\CMS\MVC\Controller\BaseController; use Joomla\CMS\Session\Session; -use Joomla\Component\MokoBackup\Administrator\Engine\SteppedBackupEngine; +use Joomla\Component\MokoJoomBackup\Administrator\Engine\SteppedBackupEngine; class AjaxController extends BaseController { @@ -148,7 +148,7 @@ class AjaxController extends BaseController $db = \Joomla\CMS\Factory::getDbo(); $query = $db->getQuery(true) ->select($db->quoteName(['absolute_path', 'log'])) - ->from($db->quoteName('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('id') . ' = ' . $id); $db->setQuery($query); $record = $db->loadObject(); diff --git a/source/packages/com_mokobackup/src/Controller/BackupController.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/BackupController.php similarity index 70% rename from source/packages/com_mokobackup/src/Controller/BackupController.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/BackupController.php index 459fe3f..7844749 100644 --- a/source/packages/com_mokobackup/src/Controller/BackupController.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/BackupController.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Controller; +namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; defined('_JEXEC') or die; @@ -16,5 +16,5 @@ use Joomla\CMS\MVC\Controller\FormController; class BackupController extends FormController { - protected $text_prefix = 'COM_MOKOBACKUP_BACKUP'; + protected $text_prefix = 'COM_MOKOJOOMBACKUP_BACKUP'; } diff --git a/source/packages/com_mokobackup/src/Controller/BackupsController.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/BackupsController.php similarity index 67% rename from source/packages/com_mokobackup/src/Controller/BackupsController.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/BackupsController.php index c8a3f15..c1a99ca 100644 --- a/source/packages/com_mokobackup/src/Controller/BackupsController.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/BackupsController.php @@ -2,24 +2,24 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Controller; +namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; defined('_JEXEC') or die; use Joomla\CMS\MVC\Controller\AdminController; use Joomla\CMS\Router\Route; -use Joomla\Component\MokoBackup\Administrator\Engine\BackupEngine; -use Joomla\Component\MokoBackup\Administrator\Engine\RestoreEngine; +use Joomla\Component\MokoJoomBackup\Administrator\Engine\BackupEngine; +use Joomla\Component\MokoJoomBackup\Administrator\Engine\RestoreEngine; class BackupsController extends AdminController { - protected $text_prefix = 'COM_MOKOBACKUP_BACKUPS'; + protected $text_prefix = 'COM_MOKOJOOMBACKUP_BACKUPS'; public function getModel($name = 'Backup', $prefix = 'Administrator', $config = ['ignore_request' => true]) { @@ -47,7 +47,7 @@ class BackupsController extends AdminController $this->setMessage($result['message'], 'error'); } - $this->setRedirect(Route::_('index.php?option=com_mokobackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); } /** @@ -62,8 +62,8 @@ class BackupsController extends AdminController $item = $model->getItem($id); if (!$item || !$item->id || !$item->filesexist || !is_file($item->absolute_path)) { - $this->setMessage('COM_MOKOBACKUP_ERROR_FILE_NOT_FOUND', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokobackup&view=backups', false)); + $this->setMessage('COM_MOKOJOOMBACKUP_ERROR_FILE_NOT_FOUND', 'error'); + $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); return; } @@ -108,8 +108,8 @@ class BackupsController extends AdminController $password = $this->input->getString('encryption_password', ''); if (!$id) { - $this->setMessage('COM_MOKOBACKUP_ERROR_NO_RECORD_SELECTED', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokobackup&view=backups', false)); + $this->setMessage('COM_MOKOJOOMBACKUP_ERROR_NO_RECORD_SELECTED', 'error'); + $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); return; } @@ -123,7 +123,7 @@ class BackupsController extends AdminController $this->setMessage($result['message'], 'error'); } - $this->setRedirect(Route::_('index.php?option=com_mokobackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); } /** @@ -137,8 +137,8 @@ class BackupsController extends AdminController $id = !empty($cid) ? (int) $cid[0] : $this->input->getInt('id', 0); if (!$id) { - $this->setMessage('COM_MOKOBACKUP_ERROR_NO_RECORD_SELECTED', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokobackup&view=backups', false)); + $this->setMessage('COM_MOKOJOOMBACKUP_ERROR_NO_RECORD_SELECTED', 'error'); + $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); return; } @@ -147,22 +147,22 @@ class BackupsController extends AdminController $item = $model->getItem($id); if (!$item || !$item->id) { - $this->setMessage('COM_MOKOBACKUP_ERROR_NO_RECORD_SELECTED', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokobackup&view=backups', false)); + $this->setMessage('COM_MOKOJOOMBACKUP_ERROR_NO_RECORD_SELECTED', 'error'); + $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); return; } if (!is_file($item->absolute_path)) { - $this->setMessage('COM_MOKOBACKUP_ERROR_FILE_NOT_FOUND', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokobackup&view=backups', false)); + $this->setMessage('COM_MOKOJOOMBACKUP_ERROR_FILE_NOT_FOUND', 'error'); + $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); return; } if (empty($item->checksum)) { - $this->setMessage('COM_MOKOBACKUP_VERIFY_NO_CHECKSUM', 'warning'); - $this->setRedirect(Route::_('index.php?option=com_mokobackup&view=backups', false)); + $this->setMessage('COM_MOKOJOOMBACKUP_VERIFY_NO_CHECKSUM', 'warning'); + $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); return; } @@ -170,11 +170,11 @@ class BackupsController extends AdminController $currentHash = hash_file('sha256', $item->absolute_path); if ($currentHash === $item->checksum) { - $this->setMessage('COM_MOKOBACKUP_VERIFY_OK'); + $this->setMessage('COM_MOKOJOOMBACKUP_VERIFY_OK'); } else { - $this->setMessage('COM_MOKOBACKUP_VERIFY_FAILED', 'error'); + $this->setMessage('COM_MOKOJOOMBACKUP_VERIFY_FAILED', 'error'); } - $this->setRedirect(Route::_('index.php?option=com_mokobackup&view=backups', false)); + $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=backups', false)); } } diff --git a/source/packages/com_mokobackup/src/Controller/DisplayController.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/DisplayController.php similarity index 80% rename from source/packages/com_mokobackup/src/Controller/DisplayController.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/DisplayController.php index 5425324..cac40fd 100644 --- a/source/packages/com_mokobackup/src/Controller/DisplayController.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/DisplayController.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Controller; +namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Controller/ProfileController.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/ProfileController.php similarity index 70% rename from source/packages/com_mokobackup/src/Controller/ProfileController.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/ProfileController.php index 5a84e2e..d7540e8 100644 --- a/source/packages/com_mokobackup/src/Controller/ProfileController.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/ProfileController.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Controller; +namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; defined('_JEXEC') or die; @@ -16,5 +16,5 @@ use Joomla\CMS\MVC\Controller\FormController; class ProfileController extends FormController { - protected $text_prefix = 'COM_MOKOBACKUP_PROFILE'; + protected $text_prefix = 'COM_MOKOJOOMBACKUP_PROFILE'; } diff --git a/source/packages/com_mokobackup/src/Controller/ProfilesController.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/ProfilesController.php similarity index 85% rename from source/packages/com_mokobackup/src/Controller/ProfilesController.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/ProfilesController.php index 9470eb4..fa0ad47 100644 --- a/source/packages/com_mokobackup/src/Controller/ProfilesController.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/ProfilesController.php @@ -2,24 +2,24 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Controller; +namespace Joomla\Component\MokoJoomBackup\Administrator\Controller; defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\MVC\Controller\AdminController; use Joomla\CMS\Router\Route; -use Joomla\Component\MokoBackup\Administrator\Engine\AkeebaImporter; +use Joomla\Component\MokoJoomBackup\Administrator\Engine\AkeebaImporter; class ProfilesController extends AdminController { - protected $text_prefix = 'COM_MOKOBACKUP_PROFILES'; + protected $text_prefix = 'COM_MOKOJOOMBACKUP_PROFILES'; public function getModel($name = 'Profile', $prefix = 'Administrator', $config = ['ignore_request' => true]) { @@ -39,8 +39,8 @@ class ProfilesController extends AdminController $detection = $importer->detect(); if (!$detection['profiles']) { - $this->setMessage('COM_MOKOBACKUP_AKEEBA_NOT_FOUND', 'error'); - $this->setRedirect(Route::_('index.php?option=com_mokobackup&view=profiles', false)); + $this->setMessage('COM_MOKOJOOMBACKUP_AKEEBA_NOT_FOUND', 'error'); + $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=profiles', false)); return; } @@ -55,7 +55,7 @@ class ProfilesController extends AdminController $this->setMessage($result['message'], 'error'); } - $this->setRedirect(Route::_('index.php?option=com_mokobackup&view=profiles', false)); + $this->setRedirect(Route::_('index.php?option=com_mokojoombackup&view=profiles', false)); } /** diff --git a/source/packages/com_mokobackup/src/Controller/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/index.html similarity index 100% rename from source/packages/com_mokobackup/src/Controller/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Controller/index.html diff --git a/source/packages/com_mokobackup/src/Engine/AkeebaImporter.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/AkeebaImporter.php similarity index 96% rename from source/packages/com_mokobackup/src/Engine/AkeebaImporter.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/AkeebaImporter.php index 3edbe14..c1fab5b 100644 --- a/source/packages/com_mokobackup/src/Engine/AkeebaImporter.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/AkeebaImporter.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -25,7 +25,7 @@ * "databases": {"include": {...}, "exclude": {...}}} */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; @@ -119,7 +119,7 @@ class AkeebaImporter $akProfiles = $db->loadObjectList(); $profilesImported = 0; - $profileIdMap = []; // akeeba_id => mokobackup_id + $profileIdMap = []; // akeeba_id => mokojoombackup_id foreach ($akProfiles as $akProfile) { $config = $this->parseAkeebaConfig($akProfile->configuration ?? ''); @@ -127,11 +127,11 @@ class AkeebaImporter $mokoProfile = $this->mapToMokoProfile($akProfile, $config, $filters); - $db->insertObject('#__mokobackup_profiles', $mokoProfile, 'id'); + $db->insertObject('#__mokojoombackup_profiles', $mokoProfile, 'id'); $profileIdMap[$akProfile->id] = $mokoProfile->id; $profilesImported++; - $this->log('Imported profile: "' . $akProfile->description . '" (Akeeba #' . $akProfile->id . ' → MokoBackup #' . $mokoProfile->id . ')'); + $this->log('Imported profile: "' . $akProfile->description . '" (Akeeba #' . $akProfile->id . ' → MokoJoomBackup #' . $mokoProfile->id . ')'); } // Import backup history @@ -200,7 +200,7 @@ class AkeebaImporter 'log' => 'Imported from Akeeba Backup record #' . $stat->id, ]; - $db->insertObject('#__mokobackup_records', $record, 'id'); + $db->insertObject('#__mokojoombackup_records', $record, 'id'); $imported++; } @@ -484,7 +484,7 @@ class AkeebaImporter $dir = $config['akeeba.basic.output_directory'] ?? ''; if (empty($dir) || $dir === '[DEFAULT_OUTPUT]') { - return 'administrator/components/com_mokobackup/backups'; + return 'administrator/components/com_mokojoombackup/backups'; } // Convert absolute path to relative @@ -492,7 +492,7 @@ class AkeebaImporter $dir = ltrim(substr($dir, strlen(JPATH_ROOT)), '/\\'); } - return $dir ?: 'administrator/components/com_mokobackup/backups'; + return $dir ?: 'administrator/components/com_mokojoombackup/backups'; } private function mapRemoteStorage(array $config): string diff --git a/source/packages/com_mokobackup/src/Engine/ArchiverInterface.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/ArchiverInterface.php similarity index 89% rename from source/packages/com_mokobackup/src/Engine/ArchiverInterface.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/ArchiverInterface.php index 8edfdfb..b496059 100644 --- a/source/packages/com_mokobackup/src/Engine/ArchiverInterface.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/ArchiverInterface.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/BackupEngine.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/BackupEngine.php similarity index 95% rename from source/packages/com_mokobackup/src/Engine/BackupEngine.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/BackupEngine.php index 59254f4..43d5d91 100644 --- a/source/packages/com_mokobackup/src/Engine/BackupEngine.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/BackupEngine.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; @@ -46,7 +46,7 @@ class BackupEngine // Load profile $query = $db->getQuery(true) ->select('*') - ->from($db->quoteName('#__mokobackup_profiles')) + ->from($db->quoteName('#__mokojoombackup_profiles')) ->where($db->quoteName('id') . ' = ' . $profileId); $db->setQuery($query); $profile = $db->loadObject(); @@ -63,7 +63,7 @@ class BackupEngine // Resolve placeholders in directory and filename $resolver = new PlaceholderResolver($profile); - $configuredDir = $profile->backup_dir ?: 'administrator/components/com_mokobackup/backups'; + $configuredDir = $profile->backup_dir ?: 'administrator/components/com_mokojoombackup/backups'; $this->backupDir = $this->resolveBackupDir($resolver->resolve($configuredDir)); if (!is_dir($this->backupDir)) { @@ -104,7 +104,7 @@ class BackupEngine 'log' => '', ]; - $db->insertObject('#__mokobackup_records', $record, 'id'); + $db->insertObject('#__mokojoombackup_records', $record, 'id'); $recordId = $record->id; try { @@ -257,7 +257,7 @@ class BackupEngine 'log' => $logContent, ]; - $db->updateObject('#__mokobackup_records', $update, 'id'); + $db->updateObject('#__mokojoombackup_records', $update, 'id'); // Send success notification NotificationSender::send($profile, $update, true, implode("\n", $this->log)); @@ -285,7 +285,7 @@ class BackupEngine 'log' => implode("\n", $this->log), ]; - $db->updateObject('#__mokobackup_records', $update, 'id'); + $db->updateObject('#__mokojoombackup_records', $update, 'id'); // Send failure notification NotificationSender::send($profile, $update, false, implode("\n", $this->log)); @@ -405,7 +405,7 @@ class BackupEngine { $query = $db->getQuery(true) ->select($db->quoteName('manifest')) - ->from($db->quoteName('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('profile_id') . ' = ' . $profileId) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')) ->where($db->quoteName('manifest') . ' != ' . $db->quote('')) @@ -476,14 +476,14 @@ class BackupEngine } /** - * Dispatch the onMokoBackupAfterRun event so plugins (actionlog, etc.) can react. + * Dispatch the onMokoJoomBackupAfterRun 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('onMokoBackupAfterRun', [ + $event = new Event('onMokoJoomBackupAfterRun', [ 'success' => $success, 'record_id' => $recordId, 'description' => $description, @@ -491,7 +491,7 @@ class BackupEngine 'origin' => $origin, ]); - $app->getDispatcher()->dispatch('onMokoBackupAfterRun', $event); + $app->getDispatcher()->dispatch('onMokoJoomBackupAfterRun', $event); } catch (\Throwable $e) { // Never let a listener failure break the backup result } diff --git a/source/packages/com_mokobackup/src/Engine/DatabaseDumper.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/DatabaseDumper.php similarity index 98% rename from source/packages/com_mokobackup/src/Engine/DatabaseDumper.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/DatabaseDumper.php index 05661c5..f4bf538 100644 --- a/source/packages/com_mokobackup/src/Engine/DatabaseDumper.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/DatabaseDumper.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/DatabaseImporter.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/DatabaseImporter.php similarity index 92% rename from source/packages/com_mokobackup/src/Engine/DatabaseImporter.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/DatabaseImporter.php index ec806d6..4e178de 100644 --- a/source/packages/com_mokobackup/src/Engine/DatabaseImporter.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/DatabaseImporter.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\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('MokoBackup SQL import warning: ' . $e->getMessage()); + error_log('MokoJoomBackup SQL import warning: ' . $e->getMessage()); } } } @@ -115,7 +115,7 @@ class DatabaseImporter $db->execute(); $statementsExecuted++; } catch (\Exception $e) { - error_log('MokoBackup SQL import warning (final): ' . $e->getMessage()); + error_log('MokoJoomBackup SQL import warning (final): ' . $e->getMessage()); } } } finally { diff --git a/source/packages/com_mokobackup/src/Engine/DifferentialScanner.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/DifferentialScanner.php similarity index 96% rename from source/packages/com_mokobackup/src/Engine/DifferentialScanner.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/DifferentialScanner.php index ce477f5..0996b9b 100644 --- a/source/packages/com_mokobackup/src/Engine/DifferentialScanner.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/DifferentialScanner.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/FileRestorer.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/FileRestorer.php similarity index 96% rename from source/packages/com_mokobackup/src/Engine/FileRestorer.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/FileRestorer.php index fc2e72a..0bad937 100644 --- a/source/packages/com_mokobackup/src/Engine/FileRestorer.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/FileRestorer.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/FileScanner.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/FileScanner.php similarity index 96% rename from source/packages/com_mokobackup/src/Engine/FileScanner.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/FileScanner.php index aaa0577..f64884a 100644 --- a/source/packages/com_mokobackup/src/Engine/FileScanner.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/FileScanner.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/FtpUploader.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/FtpUploader.php similarity index 97% rename from source/packages/com_mokobackup/src/Engine/FtpUploader.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/FtpUploader.php index b370f34..9d585b3 100644 --- a/source/packages/com_mokobackup/src/Engine/FtpUploader.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/FtpUploader.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/GoogleDriveUploader.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/GoogleDriveUploader.php similarity index 98% rename from source/packages/com_mokobackup/src/Engine/GoogleDriveUploader.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/GoogleDriveUploader.php index 1197ec6..3cf9c80 100644 --- a/source/packages/com_mokobackup/src/Engine/GoogleDriveUploader.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/GoogleDriveUploader.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/JpaUnarchiver.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/JpaUnarchiver.php similarity index 98% rename from source/packages/com_mokobackup/src/Engine/JpaUnarchiver.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/JpaUnarchiver.php index e732237..768cff8 100644 --- a/source/packages/com_mokobackup/src/Engine/JpaUnarchiver.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/JpaUnarchiver.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/MokoRestore.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/MokoRestore.php similarity index 99% rename from source/packages/com_mokobackup/src/Engine/MokoRestore.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/MokoRestore.php index 5321485..e17020b 100644 --- a/source/packages/com_mokobackup/src/Engine/MokoRestore.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/MokoRestore.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; @@ -97,7 +97,7 @@ class MokoRestore error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED); ini_set('display_errors', 0); -define('MOKOBACKUP_RESTORE', 1); +define('MOKOJOOMBACKUP_RESTORE', 1); define('RESTORE_DIR', __DIR__); define('BACKUP_FILE', RESTORE_DIR . '/site-backup.zip'); diff --git a/source/packages/com_mokobackup/src/Engine/NotificationSender.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/NotificationSender.php similarity index 94% rename from source/packages/com_mokobackup/src/Engine/NotificationSender.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/NotificationSender.php index 9008aa2..b26f7c0 100644 --- a/source/packages/com_mokobackup/src/Engine/NotificationSender.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/NotificationSender.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -11,7 +11,7 @@ * Uses Joomla's built-in mail system (Factory::getMailer()). */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; @@ -73,7 +73,7 @@ class NotificationSender // Build subject $statusLabel = $success ? 'SUCCESS' : 'FAILED'; - $mailer->setSubject("[MokoBackup] {$statusLabel}: {$record->description} — {$siteName}"); + $mailer->setSubject("[MokoJoomBackup] {$statusLabel}: {$record->description} — {$siteName}"); // Build body $duration = ''; @@ -133,7 +133,7 @@ class NotificationSender return $mailer->Send(); } catch (\Throwable $e) { // Don't let notification failure break the backup flow - error_log('MokoBackup notification error: ' . $e->getMessage()); + error_log('MokoJoomBackup notification error: ' . $e->getMessage()); return false; } diff --git a/source/packages/com_mokobackup/src/Engine/PlaceholderResolver.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/PlaceholderResolver.php similarity index 97% rename from source/packages/com_mokobackup/src/Engine/PlaceholderResolver.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/PlaceholderResolver.php index 712b219..cbac2c9 100644 --- a/source/packages/com_mokobackup/src/Engine/PlaceholderResolver.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/PlaceholderResolver.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -11,7 +11,7 @@ * directory paths and archive filename formats. */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/RemoteUploaderInterface.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/RemoteUploaderInterface.php similarity index 89% rename from source/packages/com_mokobackup/src/Engine/RemoteUploaderInterface.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/RemoteUploaderInterface.php index 67c1808..d2f1dd7 100644 --- a/source/packages/com_mokobackup/src/Engine/RemoteUploaderInterface.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/RemoteUploaderInterface.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/RestoreEngine.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/RestoreEngine.php similarity index 96% rename from source/packages/com_mokobackup/src/Engine/RestoreEngine.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/RestoreEngine.php index 7099957..64115c9 100644 --- a/source/packages/com_mokobackup/src/Engine/RestoreEngine.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/RestoreEngine.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -18,7 +18,7 @@ * 6. Clean up staging directory */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; @@ -57,7 +57,7 @@ class RestoreEngine // Load backup record $query = $db->getQuery(true) ->select('*') - ->from($db->quoteName('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('id') . ' = ' . $recordId); $db->setQuery($query); $record = $db->loadObject(); @@ -77,7 +77,7 @@ class RestoreEngine } // Create staging directory - $this->stagingDir = JPATH_ROOT . '/tmp/mokobackup-restore-' . $record->tag; + $this->stagingDir = JPATH_ROOT . '/tmp/mokojoombackup-restore-' . $record->tag; if (is_dir($this->stagingDir)) { $this->recursiveDelete($this->stagingDir); diff --git a/source/packages/com_mokobackup/src/Engine/S3Uploader.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/S3Uploader.php similarity index 99% rename from source/packages/com_mokobackup/src/Engine/S3Uploader.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/S3Uploader.php index eeae5b4..0c489de 100644 --- a/source/packages/com_mokobackup/src/Engine/S3Uploader.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/S3Uploader.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/SteppedBackupEngine.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/SteppedBackupEngine.php similarity index 96% rename from source/packages/com_mokobackup/src/Engine/SteppedBackupEngine.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/SteppedBackupEngine.php index 7a7559a..be900d5 100644 --- a/source/packages/com_mokobackup/src/Engine/SteppedBackupEngine.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/SteppedBackupEngine.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -16,7 +16,7 @@ * where ini_set() and set_time_limit() are disabled. */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; @@ -36,7 +36,7 @@ class SteppedBackupEngine // Load profile $query = $db->getQuery(true) ->select('*') - ->from($db->quoteName('#__mokobackup_profiles')) + ->from($db->quoteName('#__mokojoombackup_profiles')) ->where($db->quoteName('id') . ' = ' . $profileId); $db->setQuery($query); $profile = $db->loadObject(); @@ -55,7 +55,7 @@ class SteppedBackupEngine $session->excludeDirs = $this->parseNewlineList($profile->exclude_dirs ?? ''); $session->excludeFiles = $this->parseNewlineList($profile->exclude_files ?? ''); $session->excludeTables = $this->parseNewlineList($profile->exclude_tables ?? ''); - $session->backupDir = $profile->backup_dir ?: 'administrator/components/com_mokobackup/backups'; + $session->backupDir = $profile->backup_dir ?: 'administrator/components/com_mokojoombackup/backups'; $session->remoteStorage = $profile->remote_storage ?? 'none'; $session->includeMokoRestore = (bool) ($profile->include_mokorestore ?? false); $session->remoteKeepLocal = (bool) ($profile->remote_keep_local ?? true); @@ -99,7 +99,7 @@ class SteppedBackupEngine 'log' => '', ]; - $db->insertObject('#__mokobackup_records', $record, 'id'); + $db->insertObject('#__mokojoombackup_records', $record, 'id'); $session->recordId = $record->id; // Determine what work needs to be done and estimate steps @@ -339,7 +339,7 @@ class SteppedBackupEngine 'filesexist' => 1, ]; - $db->updateObject('#__mokobackup_records', $update, 'id'); + $db->updateObject('#__mokojoombackup_records', $update, 'id'); $session->currentStep++; $session->phase = ($session->remoteStorage !== 'none') ? 'upload' : 'complete'; @@ -361,7 +361,7 @@ class SteppedBackupEngine // Reload profile for remote settings $query = $db->getQuery(true) ->select('*') - ->from($db->quoteName('#__mokobackup_profiles')) + ->from($db->quoteName('#__mokojoombackup_profiles')) ->where($db->quoteName('id') . ' = ' . $session->profileId); $db->setQuery($query); $profile = $db->loadObject(); @@ -396,7 +396,7 @@ class SteppedBackupEngine 'filesexist' => is_file($session->archivePath) ? 1 : 0, ]; - $db->updateObject('#__mokobackup_records', $update, 'id'); + $db->updateObject('#__mokojoombackup_records', $update, 'id'); $session->currentStep++; $session->phase = 'complete'; @@ -423,7 +423,7 @@ class SteppedBackupEngine 'log' => $logContent, ]; - $db->updateObject('#__mokobackup_records', $update, 'id'); + $db->updateObject('#__mokojoombackup_records', $update, 'id'); } /** @@ -439,7 +439,7 @@ class SteppedBackupEngine 'log' => implode("\n", $session->log), ]; - $db->updateObject('#__mokobackup_records', $update, 'id'); + $db->updateObject('#__mokojoombackup_records', $update, 'id'); } /** diff --git a/source/packages/com_mokobackup/src/Engine/SteppedSession.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/SteppedSession.php similarity index 96% rename from source/packages/com_mokobackup/src/Engine/SteppedSession.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/SteppedSession.php index 76f000d..2e0255b 100644 --- a/source/packages/com_mokobackup/src/Engine/SteppedSession.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/SteppedSession.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -17,7 +17,7 @@ * Phases: init → database → files → finalize → upload → complete */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; @@ -62,7 +62,7 @@ class SteppedSession private static function getSessionDir(): string { - $dir = JPATH_ROOT . '/tmp/mokobackup-sessions'; + $dir = JPATH_ROOT . '/tmp/mokojoombackup-sessions'; if (!is_dir($dir)) { mkdir($dir, 0755, true); diff --git a/source/packages/com_mokobackup/src/Engine/TarGzArchiver.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/TarGzArchiver.php similarity index 93% rename from source/packages/com_mokobackup/src/Engine/TarGzArchiver.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/TarGzArchiver.php index fdce0ce..6e8e629 100644 --- a/source/packages/com_mokobackup/src/Engine/TarGzArchiver.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/TarGzArchiver.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/ZipArchiver.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/ZipArchiver.php similarity index 90% rename from source/packages/com_mokobackup/src/Engine/ZipArchiver.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/ZipArchiver.php index e161035..1b54551 100644 --- a/source/packages/com_mokobackup/src/Engine/ZipArchiver.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/ZipArchiver.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Engine; +namespace Joomla\Component\MokoJoomBackup\Administrator\Engine; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Engine/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/index.html similarity index 100% rename from source/packages/com_mokobackup/src/Engine/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Engine/index.html diff --git a/source/packages/com_mokobackup/src/Extension/MokoBackupComponent.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Extension/MokoBackupComponent.php similarity index 68% rename from source/packages/com_mokobackup/src/Extension/MokoBackupComponent.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Extension/MokoBackupComponent.php index a7a6ed9..f5dc0d5 100644 --- a/source/packages/com_mokobackup/src/Extension/MokoBackupComponent.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Extension/MokoBackupComponent.php @@ -2,18 +2,18 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Extension; +namespace Joomla\Component\MokoJoomBackup\Administrator\Extension; defined('_JEXEC') or die; use Joomla\CMS\Extension\MVCComponent; -class MokoBackupComponent extends MVCComponent +class MokoJoomBackupComponent extends MVCComponent { } diff --git a/source/packages/com_mokobackup/src/Extension/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Extension/index.html similarity index 100% rename from source/packages/com_mokobackup/src/Extension/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Extension/index.html diff --git a/source/packages/com_mokobackup/src/Field/DatabaseTablesField.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/DatabaseTablesField.php similarity index 90% rename from source/packages/com_mokobackup/src/Field/DatabaseTablesField.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/DatabaseTablesField.php index 937202d..4da3578 100644 --- a/source/packages/com_mokobackup/src/Field/DatabaseTablesField.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/DatabaseTablesField.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Field; +namespace Joomla\Component\MokoJoomBackup\Administrator\Field; defined('_JEXEC') or die; @@ -55,15 +55,15 @@ class DatabaseTablesField extends FormField $html = '
'; $html .= ''; - $html .= '
' . Text::_('COM_MOKOBACKUP_FIELD_EXCLUDE_TABLES_HELP') . '
'; + $html .= '
' . Text::_('COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_TABLES_HELP') . '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= ''; - $html .= ''; + $html .= ''; $html .= ''; - $html .= ''; - $html .= ''; + $html .= ''; + $html .= ''; $html .= ''; foreach ($tables as $table) { diff --git a/source/packages/com_mokobackup/src/Field/DirectoryFilterField.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/DirectoryFilterField.php similarity index 95% rename from source/packages/com_mokobackup/src/Field/DirectoryFilterField.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/DirectoryFilterField.php index c3cb816..ac9b663 100644 --- a/source/packages/com_mokobackup/src/Field/DirectoryFilterField.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/DirectoryFilterField.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -11,7 +11,7 @@ * Loads the directory tree from the server via AJAX (browseDir endpoint). */ -namespace Joomla\Component\MokoBackup\Administrator\Field; +namespace Joomla\Component\MokoJoomBackup\Administrator\Field; defined('_JEXEC') or die; @@ -38,9 +38,9 @@ class DirectoryFilterField extends FormField $itemsJson = json_encode($items); $jRoot = json_encode(JPATH_ROOT); - $labelExclude = Text::_('COM_MOKOBACKUP_FILTER_EXCLUDED'); - $labelInclude = Text::_('COM_MOKOBACKUP_FILTER_INCLUDED'); - $labelManual = Text::_('COM_MOKOBACKUP_FILTER_ADD_MANUAL'); + $labelExclude = Text::_('COM_MOKOJOOMBACKUP_FILTER_EXCLUDED'); + $labelInclude = Text::_('COM_MOKOJOOMBACKUP_FILTER_INCLUDED'); + $labelManual = Text::_('COM_MOKOJOOMBACKUP_FILTER_ADD_MANUAL'); $addLabel = Text::_('JGLOBAL_FIELD_ADD'); $placeholder = htmlspecialchars((string) ($this->element['hint'] ?? 'path/to/directory'), ENT_QUOTES, 'UTF-8'); @@ -163,7 +163,7 @@ class DirectoryFilterField extends FormField const tokenName = Joomla.getOptions('csrf.token') || ''; if (tokenName) form.append(tokenName, '1'); - fetch('index.php?option=com_mokobackup&format=json', { + fetch('index.php?option=com_mokojoombackup&format=json', { method: 'POST', body: form, headers: { 'X-Requested-With': 'XMLHttpRequest' } }) diff --git a/source/packages/com_mokobackup/src/Field/ExcludeListField.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/ExcludeListField.php similarity index 97% rename from source/packages/com_mokobackup/src/Field/ExcludeListField.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/ExcludeListField.php index 483e68c..a170671 100644 --- a/source/packages/com_mokobackup/src/Field/ExcludeListField.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/ExcludeListField.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Field; +namespace Joomla\Component\MokoJoomBackup\Administrator\Field; defined('_JEXEC') or die; diff --git a/source/packages/com_mokobackup/src/Field/FolderPickerField.php b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/FolderPickerField.php similarity index 94% rename from source/packages/com_mokobackup/src/Field/FolderPickerField.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/FolderPickerField.php index 447725d..6e60dff 100644 --- a/source/packages/com_mokobackup/src/Field/FolderPickerField.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/src/Field/FolderPickerField.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Component\MokoBackup\Administrator\Field; +namespace Joomla\Component\MokoJoomBackup\Administrator\Field; defined('_JEXEC') or die; @@ -39,15 +39,15 @@ class FolderPickerField extends FormField $statusClass = $exists ? 'text-success' : 'text-danger'; $statusIcon = $exists ? 'icon-publish' : 'icon-unpublish'; $statusText = $exists - ? Text::_('COM_MOKOBACKUP_FOLDER_EXISTS') - : Text::_('COM_MOKOBACKUP_FOLDER_NOT_FOUND'); + ? Text::_('COM_MOKOJOOMBACKUP_FOLDER_EXISTS') + : Text::_('COM_MOKOJOOMBACKUP_FOLDER_NOT_FOUND'); $absPathSafe = htmlspecialchars($absPath, ENT_QUOTES, 'UTF-8'); return << + placeholder="/home/user/backups or administrator/components/com_mokojoombackup/backups" />
' . Text::_('COM_MOKOBACKUP_FIELD_EXCLUDE_DATA') . '' . Text::_('COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_DATA') . '' . Text::_('COM_MOKOBACKUP_FIELD_EXCLUDE_STRUCTURE') . '' . Text::_('COM_MOKOBACKUP_FIELD_TABLE_NAME') . '' . Text::_('COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_STRUCTURE') . '' . Text::_('COM_MOKOJOOMBACKUP_FIELD_TABLE_NAME') . '
- + - + - + - + - + - + - + - + - + - + item->checksum)) : ?> - + item->remote_filename)) : ?> - + @@ -95,7 +95,7 @@ $ajaxUrl = Route::_('index.php?option=com_mokobackup&format=json', false);
item->status) { @@ -39,55 +39,55 @@ $ajaxUrl = Route::_('index.php?option=com_mokobackup&format=json', false);
escape($this->item->backup_type); ?>
escape($this->item->origin); ?>
item->total_size); ?> item->db_size > 0) : ?> - (: item->db_size); ?>) + (: item->db_size); ?>)
item->backupstart, Text::_('DATE_FORMAT_LC2')); ?>
item->backupend, Text::_('DATE_FORMAT_LC2')); ?>
escape($this->item->archivename); ?>
escape($this->item->absolute_path); ?>
item->files_count; ?>
item->tables_count; ?>
escape($this->item->checksum); ?>
escape($this->item->remote_filename); ?>
-

+

Loading...
diff --git a/source/packages/com_mokobackup/tmpl/backup/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/tmpl/backup/index.html similarity index 100% rename from source/packages/com_mokobackup/tmpl/backup/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/tmpl/backup/index.html diff --git a/source/packages/com_mokobackup/tmpl/backups/default.php b/source/packages/com_mokojoombackup/com_mokojoombackup/tmpl/backups/default.php similarity index 82% rename from source/packages/com_mokobackup/tmpl/backups/default.php rename to source/packages/com_mokojoombackup/com_mokojoombackup/tmpl/backups/default.php index cba340d..233852d 100644 --- a/source/packages/com_mokobackup/tmpl/backups/default.php +++ b/source/packages/com_mokojoombackup/com_mokojoombackup/tmpl/backups/default.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage com_mokobackup + * @subpackage com_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -19,12 +19,12 @@ use Joomla\CMS\Session\Session; HTMLHelper::_('behavior.multiselect'); $ajaxToken = Session::getFormToken(); -$ajaxUrl = Route::_('index.php?option=com_mokobackup&format=json', false); +$ajaxUrl = Route::_('index.php?option=com_mokojoombackup&format=json', false); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); ?> -
+
@@ -33,7 +33,7 @@ $listDirn = $this->escape($this->state->get('list.direction'));
-
@@ -56,36 +56,36 @@ $listDirn = $this->escape($this->state->get('list.direction')); items)) : ?>
- +
- + @@ -168,7 +168,7 @@ $listDirn = $this->escape($this->state->get('list.direction')); -
- + - + - + - + - + - + - + @@ -99,11 +99,11 @@ $listDirn = $this->escape($this->state->get('list.direction')); id); ?> - + escape($item->description); ?> checksum)) : ?> -
: checksum, 0, 16); ?>... +
: checksum, 0, 16); ?>...
@@ -137,14 +137,14 @@ $listDirn = $this->escape($this->state->get('list.direction')); status === 'complete' && $item->filesexist) : ?> - +
@@ -186,7 +186,7 @@ document.querySelectorAll('.mb-tile').forEach(function(tile) { -
- +
- + - + @@ -60,7 +60,7 @@ $listDirn = $this->escape($this->state->get('list.direction')); id); ?> - + escape($item->title); ?> description)) : ?> diff --git a/source/packages/com_mokobackup/tmpl/profiles/index.html b/source/packages/com_mokojoombackup/com_mokojoombackup/tmpl/profiles/index.html similarity index 100% rename from source/packages/com_mokobackup/tmpl/profiles/index.html rename to source/packages/com_mokojoombackup/com_mokojoombackup/tmpl/profiles/index.html diff --git a/source/packages/com_mokojoombackup/language/en-GB/com_mokojoombackup.ini b/source/packages/com_mokojoombackup/language/en-GB/com_mokojoombackup.ini new file mode 100644 index 0000000..743b249 --- /dev/null +++ b/source/packages/com_mokojoombackup/language/en-GB/com_mokojoombackup.ini @@ -0,0 +1,264 @@ +; MokoJoomBackup — Component language file (en-GB) +; @package MokoJoomBackup +; @author Moko Consulting +; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. +; @license GPL-3.0-or-later + +COM_MOKOJOOMBACKUP="MokoJoomBackup" +COM_MOKOJOOMBACKUP_DESCRIPTION="Full-site backup and restore for Joomla" + +; Submenu +COM_MOKOJOOMBACKUP_SUBMENU_DASHBOARD="Dashboard" +COM_MOKOJOOMBACKUP_SUBMENU_BACKUPS="Backup Records" +COM_MOKOJOOMBACKUP_SUBMENU_PROFILES="Backup Profiles" + +; Dashboard view +COM_MOKOJOOMBACKUP_DASHBOARD_TITLE="MokoJoomBackup Dashboard" +COM_MOKOJOOMBACKUP_DASHBOARD_LAST_BACKUP="Last Backup" +COM_MOKOJOOMBACKUP_DASHBOARD_NO_BACKUPS="No backups yet" +COM_MOKOJOOMBACKUP_DASHBOARD_NEXT_SCHEDULED="Next Scheduled" +COM_MOKOJOOMBACKUP_DASHBOARD_NO_SCHEDULED="No tasks scheduled" +COM_MOKOJOOMBACKUP_DASHBOARD_TOTAL_BACKUPS="Total Backups" +COM_MOKOJOOMBACKUP_DASHBOARD_STORAGE="Storage Used" +COM_MOKOJOOMBACKUP_DASHBOARD_FAILURES_7D="%d failures (7 days)" +COM_MOKOJOOMBACKUP_DASHBOARD_QUICK_ACTIONS="Quick Actions" +COM_MOKOJOOMBACKUP_DASHBOARD_SCHEDULED_TASKS="Scheduled Tasks" +COM_MOKOJOOMBACKUP_DASHBOARD_UPDATE_SITE="Update Site" +COM_MOKOJOOMBACKUP_DASHBOARD_SYSTEM_HEALTH="System Health" + +; Backups view +COM_MOKOJOOMBACKUP_BACKUPS_TITLE="Backup Records" +COM_MOKOJOOMBACKUP_BACKUPS_TABLE_CAPTION="Table of backup records" +COM_MOKOJOOMBACKUP_NO_BACKUPS="No backups found. Click 'Backup Now' to create your first backup." +COM_MOKOJOOMBACKUP_TOOLBAR_BACKUP_NOW="Backup Now" +COM_MOKOJOOMBACKUP_DOWNLOAD="Download" + +; Backup detail view +COM_MOKOJOOMBACKUP_BACKUP_DETAIL="Backup Detail" +COM_MOKOJOOMBACKUP_VIEW_LOG="Backup Log" +COM_MOKOJOOMBACKUP_FIELD_CHECKSUM="SHA-256 Checksum" +COM_MOKOJOOMBACKUP_FIELD_PATH="File Path" +COM_MOKOJOOMBACKUP_FIELD_DB_SIZE="DB Size" +COM_MOKOJOOMBACKUP_FIELD_REMOTE="Remote Path" + +; Profiles view +COM_MOKOJOOMBACKUP_PROFILES_TITLE="Backup Profiles" +COM_MOKOJOOMBACKUP_PROFILES_TABLE_CAPTION="Table of backup profiles" +COM_MOKOJOOMBACKUP_NO_PROFILES="No backup profiles found." +COM_MOKOJOOMBACKUP_PROFILE_NEW="New Profile" +COM_MOKOJOOMBACKUP_PROFILE_EDIT="Edit Profile" + +; Table headings +COM_MOKOJOOMBACKUP_HEADING_DESCRIPTION="Description" +COM_MOKOJOOMBACKUP_HEADING_PROFILE="Profile" +COM_MOKOJOOMBACKUP_HEADING_STATUS="Status" +COM_MOKOJOOMBACKUP_HEADING_TYPE="Type" +COM_MOKOJOOMBACKUP_HEADING_SIZE="Size" +COM_MOKOJOOMBACKUP_HEADING_DATE="Date" +COM_MOKOJOOMBACKUP_HEADING_ACTIONS="Actions" +COM_MOKOJOOMBACKUP_HEADING_TITLE="Title" +COM_MOKOJOOMBACKUP_HEADING_DATE_DESC="Date descending" +COM_MOKOJOOMBACKUP_HEADING_DATE_ASC="Date ascending" +COM_MOKOJOOMBACKUP_HEADING_SIZE_DESC="Size descending" +COM_MOKOJOOMBACKUP_HEADING_SIZE_ASC="Size ascending" +COM_MOKOJOOMBACKUP_HEADING_TITLE_ASC="Title ascending" +COM_MOKOJOOMBACKUP_HEADING_TITLE_DESC="Title descending" + +; General fields +COM_MOKOJOOMBACKUP_FIELD_TITLE="Title" +COM_MOKOJOOMBACKUP_FIELD_TITLE_DESC="Profile name" +COM_MOKOJOOMBACKUP_FIELD_DESCRIPTION="Description" +COM_MOKOJOOMBACKUP_FIELD_DESCRIPTION_DESC="Brief description of this profile" +COM_MOKOJOOMBACKUP_FIELD_BACKUP_TYPE="Backup Type" +COM_MOKOJOOMBACKUP_FIELD_BACKUP_TYPE_DESC="What to include in the backup" +COM_MOKOJOOMBACKUP_FIELD_STATUS="Status" +COM_MOKOJOOMBACKUP_FIELD_ORIGIN="Origin" +COM_MOKOJOOMBACKUP_FIELD_SIZE="Total Size" +COM_MOKOJOOMBACKUP_FIELD_START="Start Time" +COM_MOKOJOOMBACKUP_FIELD_END="End Time" +COM_MOKOJOOMBACKUP_FIELD_ARCHIVE="Archive Name" +COM_MOKOJOOMBACKUP_FIELD_FILES_COUNT="Files Count" +COM_MOKOJOOMBACKUP_FIELD_TABLES_COUNT="Tables Count" + +; Archive settings +COM_MOKOJOOMBACKUP_FIELD_ARCHIVE_FORMAT="Archive Format" +COM_MOKOJOOMBACKUP_FIELD_ARCHIVE_FORMAT_DESC="Format for the backup archive file" +COM_MOKOJOOMBACKUP_FIELD_COMPRESSION="Compression Level" +COM_MOKOJOOMBACKUP_FIELD_COMPRESSION_DESC="Higher compression = smaller file but slower" +COM_MOKOJOOMBACKUP_COMPRESSION_NONE="None (fastest)" +COM_MOKOJOOMBACKUP_COMPRESSION_FASTEST="Low (fast)" +COM_MOKOJOOMBACKUP_COMPRESSION_NORMAL="Normal (balanced)" +COM_MOKOJOOMBACKUP_COMPRESSION_BEST="Maximum (smallest)" +COM_MOKOJOOMBACKUP_FIELD_ENCRYPTION_PASSWORD="Encryption Password" +COM_MOKOJOOMBACKUP_FIELD_ENCRYPTION_PASSWORD_DESC="Set a password to encrypt the backup archive with AES-256. Leave blank for no encryption. Required to restore encrypted backups." +COM_MOKOJOOMBACKUP_FIELD_SPLIT_SIZE="Split Size (MB)" +COM_MOKOJOOMBACKUP_FIELD_SPLIT_SIZE_DESC="Split archive into parts of this size in MB. 0 = no splitting." +COM_MOKOJOOMBACKUP_FIELD_BACKUP_DIR="Backup Directory" +COM_MOKOJOOMBACKUP_FIELD_BACKUP_DIR_DESC="Directory where backup archives are stored. Supports placeholders: [host], [date], [year], [month], [day], [profile_name], [site_name], [type]. Absolute paths (starting with /) are used as-is; relative paths resolve from the Joomla root." +COM_MOKOJOOMBACKUP_FIELD_ARCHIVE_NAME_FORMAT="Archive Name Format" +COM_MOKOJOOMBACKUP_FIELD_ARCHIVE_NAME_FORMAT_DESC="Filename template for backup archives (without extension). Placeholders: [host] hostname, [date] Ymd, [time] His, [datetime] Ymd_His, [year] [month] [day] [hour] [minute] [second], [profile_id], [profile_name], [site_name], [type], [random]." +COM_MOKOJOOMBACKUP_FIELD_INCLUDE_MOKORESTORE="Include Restore Script" +COM_MOKOJOOMBACKUP_FIELD_INCLUDE_MOKORESTORE_DESC="Include MokoRestore (standalone restore.php) inside the backup archive. Creates a self-contained package that can restore the site on a blank server without Joomla installed." + +; Exclusion filter fields +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_DIRS="Exclude Directories" +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_DIRS_DESC="Browse and check directories to exclude from file backup. You can also type paths manually." +COM_MOKOJOOMBACKUP_FILTER_EXCLUDED="Excluded" +COM_MOKOJOOMBACKUP_FILTER_INCLUDED="Included" +COM_MOKOJOOMBACKUP_FILTER_ADD_MANUAL="Add Path" +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_FILES="Exclude Files" +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_FILES_DESC="One filename or pattern per line. Supports wildcards (e.g. *.bak, *.tmp)." +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_TABLES="Exclude Tables" +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_TABLES_DESC="One table name per line (use #__ prefix). These tables will be skipped during database dump." + +; Remote storage fields +COM_MOKOJOOMBACKUP_FIELD_REMOTE_STORAGE="Remote Storage" +COM_MOKOJOOMBACKUP_FIELD_REMOTE_STORAGE_DESC="Optionally upload backup archives to a remote location after creation" +COM_MOKOJOOMBACKUP_REMOTE_NONE="None (local only)" +COM_MOKOJOOMBACKUP_REMOTE_FTP="FTP / FTPS" +COM_MOKOJOOMBACKUP_REMOTE_GDRIVE="Google Drive" +COM_MOKOJOOMBACKUP_FIELD_KEEP_LOCAL="Keep Local Copy" +COM_MOKOJOOMBACKUP_FIELD_KEEP_LOCAL_DESC="Keep the local backup file after uploading to remote storage" + +; FTP fields +COM_MOKOJOOMBACKUP_FIELD_FTP_HOST="FTP Host" +COM_MOKOJOOMBACKUP_FIELD_FTP_HOST_DESC="FTP server hostname or IP address" +COM_MOKOJOOMBACKUP_FIELD_FTP_PORT="FTP Port" +COM_MOKOJOOMBACKUP_FIELD_FTP_PORT_DESC="FTP server port (default: 21)" +COM_MOKOJOOMBACKUP_FIELD_FTP_USERNAME="FTP Username" +COM_MOKOJOOMBACKUP_FIELD_FTP_PASSWORD="FTP Password" +COM_MOKOJOOMBACKUP_FIELD_FTP_PATH="Remote Path" +COM_MOKOJOOMBACKUP_FIELD_FTP_PATH_DESC="Directory on the FTP server to upload backups to" +COM_MOKOJOOMBACKUP_FIELD_FTP_PASSIVE="Passive Mode" +COM_MOKOJOOMBACKUP_FIELD_FTP_PASSIVE_DESC="Use passive mode for FTP connections (recommended)" +COM_MOKOJOOMBACKUP_FIELD_FTP_SSL="Use FTPS (SSL)" +COM_MOKOJOOMBACKUP_FIELD_FTP_SSL_DESC="Connect using FTPS (FTP over SSL/TLS)" + +; Google Drive fields +COM_MOKOJOOMBACKUP_FIELD_GDRIVE_CLIENT_ID="Google Client ID" +COM_MOKOJOOMBACKUP_FIELD_GDRIVE_CLIENT_ID_DESC="OAuth 2.0 Client ID from Google Cloud Console" +COM_MOKOJOOMBACKUP_FIELD_GDRIVE_CLIENT_SECRET="Google Client Secret" +COM_MOKOJOOMBACKUP_FIELD_GDRIVE_REFRESH_TOKEN="Refresh Token" +COM_MOKOJOOMBACKUP_FIELD_GDRIVE_REFRESH_TOKEN_DESC="OAuth 2.0 refresh token for offline access" +COM_MOKOJOOMBACKUP_FIELD_GDRIVE_FOLDER_ID="Drive Folder ID" +COM_MOKOJOOMBACKUP_FIELD_GDRIVE_FOLDER_ID_DESC="Google Drive folder ID where backups will be uploaded. Find this in the folder URL." + +; Backup types +COM_MOKOJOOMBACKUP_TYPE_FULL="Full Site (Database + Files)" +COM_MOKOJOOMBACKUP_TYPE_DATABASE="Database Only" +COM_MOKOJOOMBACKUP_TYPE_FILES="Files Only" +COM_MOKOJOOMBACKUP_TYPE_DIFFERENTIAL="Differential (changed files + full DB)" + +; Status labels +COM_MOKOJOOMBACKUP_STATUS_COMPLETE="Complete" +COM_MOKOJOOMBACKUP_STATUS_RUNNING="Running" +COM_MOKOJOOMBACKUP_STATUS_FAIL="Failed" +COM_MOKOJOOMBACKUP_STATUS_PENDING="Pending" + +; Filters +COM_MOKOJOOMBACKUP_FILTER_SEARCH="Search" +COM_MOKOJOOMBACKUP_FILTER_STATUS="Status" +COM_MOKOJOOMBACKUP_FILTER_STATUS_ALL="- Select Status -" + +; Tabs and fieldsets +COM_MOKOJOOMBACKUP_TAB_GENERAL="General" +COM_MOKOJOOMBACKUP_TAB_ARCHIVE="Archive Settings" +COM_MOKOJOOMBACKUP_TAB_FILTERS="Exclusion Filters" +COM_MOKOJOOMBACKUP_TAB_REMOTE="Remote Storage" +COM_MOKOJOOMBACKUP_FIELDSET_GENERAL="General" +COM_MOKOJOOMBACKUP_FIELDSET_ARCHIVE="Archive Settings" +COM_MOKOJOOMBACKUP_FIELDSET_STATUS="Status" +COM_MOKOJOOMBACKUP_FIELDSET_FILTERS="Exclusion Filters" +COM_MOKOJOOMBACKUP_FIELDSET_REMOTE="Remote Storage" +COM_MOKOJOOMBACKUP_FIELDSET_FTP="FTP Settings" +COM_MOKOJOOMBACKUP_FIELDSET_GDRIVE="Google Drive Settings" + +; Backup profile selector +COM_MOKOJOOMBACKUP_BACKUP_PROFILE="Backup Profile" + +; Restore +COM_MOKOJOOMBACKUP_TOOLBAR_RESTORE="Restore" +COM_MOKOJOOMBACKUP_RESTORE_CONFIRM="WARNING: Restoring will overwrite your current site files and/or database. Are you sure you want to continue?" + +; Notifications +COM_MOKOJOOMBACKUP_TAB_NOTIFICATIONS="Notifications" +COM_MOKOJOOMBACKUP_FIELDSET_NOTIFICATIONS="Email Notifications" +COM_MOKOJOOMBACKUP_FIELD_NOTIFY_EMAIL="Notification Email(s)" +COM_MOKOJOOMBACKUP_FIELD_NOTIFY_EMAIL_DESC="Comma-separated list of email addresses to notify. Leave empty to disable notifications." +COM_MOKOJOOMBACKUP_FIELD_NOTIFY_SUCCESS="Notify on Success" +COM_MOKOJOOMBACKUP_FIELD_NOTIFY_SUCCESS_DESC="Send an email when a backup completes successfully." +COM_MOKOJOOMBACKUP_FIELD_NOTIFY_FAILURE="Notify on Failure" +COM_MOKOJOOMBACKUP_FIELD_NOTIFY_FAILURE_DESC="Send an email when a backup fails. Includes log excerpt for debugging." + +; Integrity verification +COM_MOKOJOOMBACKUP_TOOLBAR_VERIFY="Verify Integrity" +COM_MOKOJOOMBACKUP_VERIFY_OK="Archive integrity verified — SHA-256 checksum matches." +COM_MOKOJOOMBACKUP_VERIFY_FAILED="INTEGRITY CHECK FAILED — archive has been modified or corrupted since backup." +COM_MOKOJOOMBACKUP_VERIFY_NO_CHECKSUM="No checksum stored for this backup. Only backups created after this update can be verified." + +; S3 storage +COM_MOKOJOOMBACKUP_REMOTE_S3="Amazon S3 / S3-Compatible" +COM_MOKOJOOMBACKUP_FIELDSET_S3="S3 Storage Settings" +COM_MOKOJOOMBACKUP_FIELD_S3_ENDPOINT="S3 Endpoint" +COM_MOKOJOOMBACKUP_FIELD_S3_ENDPOINT_DESC="S3 API endpoint URL. Leave blank for AWS S3. For Wasabi, MinIO, Backblaze B2, enter their endpoint URL." +COM_MOKOJOOMBACKUP_FIELD_S3_REGION="Region" +COM_MOKOJOOMBACKUP_FIELD_S3_REGION_DESC="AWS region (e.g. us-east-1, eu-west-1). Required for AWS Signature V4." +COM_MOKOJOOMBACKUP_FIELD_S3_ACCESS_KEY="Access Key" +COM_MOKOJOOMBACKUP_FIELD_S3_SECRET_KEY="Secret Key" +COM_MOKOJOOMBACKUP_FIELD_S3_BUCKET="Bucket Name" +COM_MOKOJOOMBACKUP_FIELD_S3_BUCKET_DESC="S3 bucket name where backups will be stored." +COM_MOKOJOOMBACKUP_FIELD_S3_PATH="Path Prefix" +COM_MOKOJOOMBACKUP_FIELD_S3_PATH_DESC="Optional path prefix inside the bucket (e.g. /backups or /sites/mysite)." + +; Akeeba Import +COM_MOKOJOOMBACKUP_TOOLBAR_IMPORT_AKEEBA="Import from Akeeba" +COM_MOKOJOOMBACKUP_AKEEBA_NOT_FOUND="Akeeba Backup tables not found. Is Akeeba Backup Pro installed?" + +; Update site notice +COM_MOKOJOOMBACKUP_UPDATE_SITE_NOTICE="To receive automatic updates, configure your Update Site with your download key." +COM_MOKOJOOMBACKUP_UPDATE_SITE_MISSING="MokoJoomBackup update site not found. Reinstall the package to register the update server." +COM_MOKOJOOMBACKUP_POSTINSTALL_UPDATE_SITE="MokoJoomBackup installed successfully. Configure your Update Site to receive automatic updates." + +; Component Options (config.xml) +COM_MOKOJOOMBACKUP_CONFIG_GENERAL="General" +COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_BACKUP_DIR="Default Backup Directory" +COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_BACKUP_DIR_DESC="Default directory for backup archives, relative to Joomla root. Can be overridden per profile." +COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_PROFILE="Default Profile" +COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_PROFILE_DESC="Default backup profile used by quick actions and CLI when no profile is specified." +COM_MOKOJOOMBACKUP_CONFIG_SHOW_UPDATE_NOTICE="Show Update Site Notice" +COM_MOKOJOOMBACKUP_CONFIG_SHOW_UPDATE_NOTICE_DESC="Display the update site configuration notice on the Backup Records view." +COM_MOKOJOOMBACKUP_CONFIG_CLEANUP="Cleanup Defaults" +COM_MOKOJOOMBACKUP_CONFIG_MAX_AGE="Max Backup Age (days)" +COM_MOKOJOOMBACKUP_CONFIG_MAX_AGE_DESC="Default maximum age for backup records. Used by the system plugin and CLI cleanup command." +COM_MOKOJOOMBACKUP_CONFIG_MAX_BACKUPS="Max Backup Count" +COM_MOKOJOOMBACKUP_CONFIG_MAX_BACKUPS_DESC="Default maximum number of completed backups to retain." +COM_MOKOJOOMBACKUP_CONFIG_NOTIFICATIONS="Notifications" +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_EMAIL="Global Notification Email(s)" +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_EMAIL_DESC="Comma-separated list of email addresses for global backup notifications. Per-profile settings override this." +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_SUCCESS="Notify on Success" +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_SUCCESS_DESC="Send email when any backup completes successfully (unless overridden by profile)." +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_FAILURE="Notify on Failure" +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_FAILURE_DESC="Send email when any backup fails (unless overridden by profile)." + +; Folder picker +COM_MOKOJOOMBACKUP_FOLDER_EXISTS="Directory exists" +COM_MOKOJOOMBACKUP_FOLDER_NOT_FOUND="Directory not found" +COM_MOKOJOOMBACKUP_BACKUP_DIR_DEFAULT="Default (inside web root)" + +; Exclude fields +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_TABLES_HELP="Check tables to exclude from database backup. Use Data to skip row data (keeps structure), Structure to skip CREATE TABLE, or both to fully exclude." +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_DATA="Data" +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_STRUCTURE="Structure" +COM_MOKOJOOMBACKUP_FIELD_TABLE_NAME="Table Name" + +; User group notifications +COM_MOKOJOOMBACKUP_FIELD_NOTIFY_USER_GROUPS="Notify User Groups" +COM_MOKOJOOMBACKUP_FIELD_NOTIFY_USER_GROUPS_DESC="Select Joomla user groups whose members will receive backup notifications. Combined with email addresses above." + +; Dashboard warnings +COM_MOKOJOOMBACKUP_DASHBOARD_DEFAULT_DIR_WARNING_TITLE="Backup directory is inside the web root" +COM_MOKOJOOMBACKUP_DASHBOARD_DEFAULT_DIR_WARNING="One or more profiles store backups in the default directory inside the web root. This may expose backup archives if .htaccess is not supported. Move backups to a directory outside the web root for better security." + +; Errors +COM_MOKOJOOMBACKUP_ERROR_FILE_NOT_FOUND="Backup archive file not found or has been deleted." +COM_MOKOJOOMBACKUP_ERROR_NO_RECORD_SELECTED="No backup record selected for restore." diff --git a/source/packages/com_mokojoombackup/language/en-GB/com_mokojoombackup.sys.ini b/source/packages/com_mokojoombackup/language/en-GB/com_mokojoombackup.sys.ini new file mode 100644 index 0000000..ec73f5c --- /dev/null +++ b/source/packages/com_mokojoombackup/language/en-GB/com_mokojoombackup.sys.ini @@ -0,0 +1,10 @@ +; MokoJoomBackup — Component system language file (en-GB) +; @package MokoJoomBackup +; @author Moko Consulting +; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. +; @license GPL-3.0-or-later + +COM_MOKOJOOMBACKUP="MokoJoomBackup" +COM_MOKOJOOMBACKUP_DESCRIPTION="Full-site backup and restore for Joomla — database, files, and configuration." +COM_MOKOJOOMBACKUP_SUBMENU_BACKUPS="Backup Records" +COM_MOKOJOOMBACKUP_SUBMENU_PROFILES="Backup Profiles" diff --git a/source/packages/com_mokojoombackup/language/en-US/com_mokojoombackup.ini b/source/packages/com_mokojoombackup/language/en-US/com_mokojoombackup.ini new file mode 100644 index 0000000..1c47e3a --- /dev/null +++ b/source/packages/com_mokojoombackup/language/en-US/com_mokojoombackup.ini @@ -0,0 +1,69 @@ +; MokoJoomBackup — Component language file (en-US) +; @package MokoJoomBackup +; @author Moko Consulting +; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. +; @license GPL-3.0-or-later + +COM_MOKOJOOMBACKUP="MokoJoomBackup" +COM_MOKOJOOMBACKUP_DESCRIPTION="Full-site backup and restore for Joomla" +COM_MOKOJOOMBACKUP_SUBMENU_DASHBOARD="Dashboard" +COM_MOKOJOOMBACKUP_SUBMENU_BACKUPS="Backup Records" +COM_MOKOJOOMBACKUP_SUBMENU_PROFILES="Backup Profiles" +COM_MOKOJOOMBACKUP_DASHBOARD_TITLE="MokoJoomBackup Dashboard" +COM_MOKOJOOMBACKUP_DASHBOARD_LAST_BACKUP="Last Backup" +COM_MOKOJOOMBACKUP_DASHBOARD_NO_BACKUPS="No backups yet" +COM_MOKOJOOMBACKUP_DASHBOARD_NEXT_SCHEDULED="Next Scheduled" +COM_MOKOJOOMBACKUP_DASHBOARD_NO_SCHEDULED="No tasks scheduled" +COM_MOKOJOOMBACKUP_DASHBOARD_TOTAL_BACKUPS="Total Backups" +COM_MOKOJOOMBACKUP_DASHBOARD_STORAGE="Storage Used" +COM_MOKOJOOMBACKUP_DASHBOARD_FAILURES_7D="%d failures (7 days)" +COM_MOKOJOOMBACKUP_DASHBOARD_QUICK_ACTIONS="Quick Actions" +COM_MOKOJOOMBACKUP_DASHBOARD_SCHEDULED_TASKS="Scheduled Tasks" +COM_MOKOJOOMBACKUP_DASHBOARD_UPDATE_SITE="Update Site" +COM_MOKOJOOMBACKUP_DASHBOARD_SYSTEM_HEALTH="System Health" +COM_MOKOJOOMBACKUP_BACKUPS_TITLE="Backup Records" +COM_MOKOJOOMBACKUP_PROFILES_TITLE="Backup Profiles" +COM_MOKOJOOMBACKUP_TOOLBAR_BACKUP_NOW="Backup Now" +COM_MOKOJOOMBACKUP_NO_BACKUPS="No backups found. Click 'Backup Now' to create your first backup." +COM_MOKOJOOMBACKUP_NO_PROFILES="No backup profiles found." +COM_MOKOJOOMBACKUP_UPDATE_SITE_NOTICE="To receive automatic updates, configure your Update Site with your download key." +COM_MOKOJOOMBACKUP_UPDATE_SITE_MISSING="MokoJoomBackup update site not found. Reinstall the package to register the update server." +COM_MOKOJOOMBACKUP_POSTINSTALL_UPDATE_SITE="MokoJoomBackup installed successfully. Configure your Update Site to receive automatic updates." +COM_MOKOJOOMBACKUP_CONFIG_GENERAL="General" +COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_BACKUP_DIR="Default Backup Directory" +COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_BACKUP_DIR_DESC="Default directory for backup archives, relative to Joomla root. Can be overridden per profile." +COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_PROFILE="Default Profile" +COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_PROFILE_DESC="Default backup profile used by quick actions and CLI when no profile is specified." +COM_MOKOJOOMBACKUP_CONFIG_SHOW_UPDATE_NOTICE="Show Update Site Notice" +COM_MOKOJOOMBACKUP_CONFIG_SHOW_UPDATE_NOTICE_DESC="Display the update site configuration notice on the Backup Records view." +COM_MOKOJOOMBACKUP_CONFIG_CLEANUP="Cleanup Defaults" +COM_MOKOJOOMBACKUP_CONFIG_MAX_AGE="Max Backup Age (days)" +COM_MOKOJOOMBACKUP_CONFIG_MAX_AGE_DESC="Default maximum age for backup records. Used by the system plugin and CLI cleanup command." +COM_MOKOJOOMBACKUP_CONFIG_MAX_BACKUPS="Max Backup Count" +COM_MOKOJOOMBACKUP_CONFIG_MAX_BACKUPS_DESC="Default maximum number of completed backups to retain." +COM_MOKOJOOMBACKUP_CONFIG_NOTIFICATIONS="Notifications" +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_EMAIL="Global Notification Email(s)" +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_EMAIL_DESC="Comma-separated list of email addresses for global backup notifications. Per-profile settings override this." +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_SUCCESS="Notify on Success" +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_SUCCESS_DESC="Send email when any backup completes successfully (unless overridden by profile)." +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_FAILURE="Notify on Failure" +COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_FAILURE_DESC="Send email when any backup fails (unless overridden by profile)." +COM_MOKOJOOMBACKUP_FOLDER_EXISTS="Directory exists" +COM_MOKOJOOMBACKUP_FOLDER_NOT_FOUND="Directory not found" +COM_MOKOJOOMBACKUP_BACKUP_DIR_DEFAULT="Default (inside web root)" +COM_MOKOJOOMBACKUP_DASHBOARD_DEFAULT_DIR_WARNING_TITLE="Backup directory is inside the web root" +COM_MOKOJOOMBACKUP_DASHBOARD_DEFAULT_DIR_WARNING="One or more profiles store backups in the default directory inside the web root. This may expose backup archives if .htaccess is not supported. Move backups to a directory outside the web root for better security." +COM_MOKOJOOMBACKUP_FOLDER_EXISTS="Directory exists" +COM_MOKOJOOMBACKUP_FOLDER_NOT_FOUND="Directory not found" +COM_MOKOJOOMBACKUP_BACKUP_DIR_DEFAULT="Default (inside web root)" +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_TABLES_HELP="Check tables to exclude from database backup. Use Data to skip row data (keeps structure), Structure to skip CREATE TABLE, or both to fully exclude." +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_DATA="Data" +COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_STRUCTURE="Structure" +COM_MOKOJOOMBACKUP_FIELD_TABLE_NAME="Table Name" +COM_MOKOJOOMBACKUP_VIEW_LOG="Backup Log" +COM_MOKOJOOMBACKUP_FIELD_CHECKSUM="SHA-256 Checksum" +COM_MOKOJOOMBACKUP_FIELD_PATH="File Path" +COM_MOKOJOOMBACKUP_FIELD_DB_SIZE="DB Size" +COM_MOKOJOOMBACKUP_FIELD_REMOTE="Remote Path" +COM_MOKOJOOMBACKUP_FIELD_NOTIFY_USER_GROUPS="Notify User Groups" +COM_MOKOJOOMBACKUP_FIELD_NOTIFY_USER_GROUPS_DESC="Select Joomla user groups whose members will receive backup notifications. Combined with email addresses above." diff --git a/source/packages/com_mokojoombackup/language/en-US/com_mokojoombackup.sys.ini b/source/packages/com_mokojoombackup/language/en-US/com_mokojoombackup.sys.ini new file mode 100644 index 0000000..93b980a --- /dev/null +++ b/source/packages/com_mokojoombackup/language/en-US/com_mokojoombackup.sys.ini @@ -0,0 +1,10 @@ +; MokoJoomBackup — Component system language file (en-US) +; @package MokoJoomBackup +; @author Moko Consulting +; @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. +; @license GPL-3.0-or-later + +COM_MOKOJOOMBACKUP="MokoJoomBackup" +COM_MOKOJOOMBACKUP_DESCRIPTION="Full-site backup and restore for Joomla — database, files, and configuration." +COM_MOKOJOOMBACKUP_SUBMENU_BACKUPS="Backup Records" +COM_MOKOJOOMBACKUP_SUBMENU_PROFILES="Backup Profiles" diff --git a/source/packages/com_mokobackup/mokobackup.xml b/source/packages/com_mokojoombackup/mokojoombackup.xml similarity index 63% rename from source/packages/com_mokobackup/mokobackup.xml rename to source/packages/com_mokojoombackup/mokojoombackup.xml index bccba9f..f402a0a 100644 --- a/source/packages/com_mokobackup/mokobackup.xml +++ b/source/packages/com_mokojoombackup/mokojoombackup.xml @@ -1,23 +1,23 @@ - com_mokobackup - 01.01.09-dev + com_mokojoombackup + 01.01.07-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 - COM_MOKOBACKUP_DESCRIPTION + COM_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Component\MokoBackup + Joomla\Component\MokoJoomBackup @@ -38,11 +38,11 @@ - COM_MOKOBACKUP + COM_MOKOJOOMBACKUP - COM_MOKOBACKUP_SUBMENU_DASHBOARD - COM_MOKOBACKUP_SUBMENU_BACKUPS - COM_MOKOBACKUP_SUBMENU_PROFILES + COM_MOKOJOOMBACKUP_SUBMENU_DASHBOARD + COM_MOKOJOOMBACKUP_SUBMENU_BACKUPS + COM_MOKOJOOMBACKUP_SUBMENU_PROFILES cli @@ -53,8 +53,8 @@ tmpl - en-GB/com_mokobackup.ini - en-GB/com_mokobackup.sys.ini + en-GB/com_mokojoombackup.ini + en-GB/com_mokojoombackup.sys.ini diff --git a/source/packages/plg_actionlog_mokobackup/language/en-GB/plg_actionlog_mokobackup.ini b/source/packages/plg_actionlog_mokobackup/language/en-GB/plg_actionlog_mokobackup.ini deleted file mode 100644 index 6997740..0000000 --- a/source/packages/plg_actionlog_mokobackup/language/en-GB/plg_actionlog_mokobackup.ini +++ /dev/null @@ -1,9 +0,0 @@ -; MokoJoomBackup — Actionlog Plugin language file (en-GB) -PLG_ACTIONLOG_MOKOBACKUP="Action Log - MokoJoomBackup" -PLG_ACTIONLOG_MOKOBACKUP_DESCRIPTION="Logs MokoJoomBackup actions (backup, restore, profile changes) to User Action Logs." -PLG_ACTIONLOG_MOKOBACKUP_PROFILE_CREATED="User {username} created backup profile "{title}" (ID: {id})" -PLG_ACTIONLOG_MOKOBACKUP_PROFILE_UPDATED="User {username} updated backup profile "{title}" (ID: {id})" -PLG_ACTIONLOG_MOKOBACKUP_PROFILE_DELETED="User {username} deleted backup profile "{title}" (ID: {id})" -PLG_ACTIONLOG_MOKOBACKUP_RECORD_DELETED="User {username} deleted backup record "{title}" (ID: {id})" -PLG_ACTIONLOG_MOKOBACKUP_BACKUP_COMPLETE="Backup completed: "{title}" (ID: {id}, profile: {profile_id}, origin: {origin})" -PLG_ACTIONLOG_MOKOBACKUP_BACKUP_FAILED="Backup FAILED: "{title}" (ID: {id}, profile: {profile_id}, origin: {origin})" diff --git a/source/packages/plg_actionlog_mokobackup/language/en-GB/plg_actionlog_mokobackup.sys.ini b/source/packages/plg_actionlog_mokobackup/language/en-GB/plg_actionlog_mokobackup.sys.ini deleted file mode 100644 index 3e1c655..0000000 --- a/source/packages/plg_actionlog_mokobackup/language/en-GB/plg_actionlog_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Actionlog Plugin system language file (en-GB) -PLG_ACTIONLOG_MOKOBACKUP="Action Log - MokoJoomBackup" -PLG_ACTIONLOG_MOKOBACKUP_DESCRIPTION="Logs MokoJoomBackup actions (backup, restore, profile changes) to User Action Logs." diff --git a/source/packages/plg_actionlog_mokobackup/language/en-US/plg_actionlog_mokobackup.ini b/source/packages/plg_actionlog_mokobackup/language/en-US/plg_actionlog_mokobackup.ini deleted file mode 100644 index 27cf1d6..0000000 --- a/source/packages/plg_actionlog_mokobackup/language/en-US/plg_actionlog_mokobackup.ini +++ /dev/null @@ -1,9 +0,0 @@ -; MokoJoomBackup — Actionlog Plugin language file (en-US) -PLG_ACTIONLOG_MOKOBACKUP="Action Log - MokoJoomBackup" -PLG_ACTIONLOG_MOKOBACKUP_DESCRIPTION="Logs MokoJoomBackup actions (backup, restore, profile changes) to User Action Logs." -PLG_ACTIONLOG_MOKOBACKUP_PROFILE_CREATED="User {username} created backup profile "{title}" (ID: {id})" -PLG_ACTIONLOG_MOKOBACKUP_PROFILE_UPDATED="User {username} updated backup profile "{title}" (ID: {id})" -PLG_ACTIONLOG_MOKOBACKUP_PROFILE_DELETED="User {username} deleted backup profile "{title}" (ID: {id})" -PLG_ACTIONLOG_MOKOBACKUP_RECORD_DELETED="User {username} deleted backup record "{title}" (ID: {id})" -PLG_ACTIONLOG_MOKOBACKUP_BACKUP_COMPLETE="Backup completed: "{title}" (ID: {id}, profile: {profile_id}, origin: {origin})" -PLG_ACTIONLOG_MOKOBACKUP_BACKUP_FAILED="Backup FAILED: "{title}" (ID: {id}, profile: {profile_id}, origin: {origin})" diff --git a/source/packages/plg_actionlog_mokobackup/language/en-US/plg_actionlog_mokobackup.sys.ini b/source/packages/plg_actionlog_mokobackup/language/en-US/plg_actionlog_mokobackup.sys.ini deleted file mode 100644 index 1737124..0000000 --- a/source/packages/plg_actionlog_mokobackup/language/en-US/plg_actionlog_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Actionlog Plugin system language file (en-US) -PLG_ACTIONLOG_MOKOBACKUP="Action Log - MokoJoomBackup" -PLG_ACTIONLOG_MOKOBACKUP_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_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.ini new file mode 100644 index 0000000..75b37b6 --- /dev/null +++ b/source/packages/plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.ini @@ -0,0 +1,9 @@ +; 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." +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})" +PLG_ACTIONLOG_MOKOJOOMBACKUP_RECORD_DELETED="User {username} deleted backup record "{title}" (ID: {id})" +PLG_ACTIONLOG_MOKOJOOMBACKUP_BACKUP_COMPLETE="Backup completed: "{title}" (ID: {id}, profile: {profile_id}, origin: {origin})" +PLG_ACTIONLOG_MOKOJOOMBACKUP_BACKUP_FAILED="Backup FAILED: "{title}" (ID: {id}, profile: {profile_id}, origin: {origin})" 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 new file mode 100644 index 0000000..61b9070 --- /dev/null +++ b/source/packages/plg_actionlog_mokojoombackup/language/en-GB/plg_actionlog_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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.ini b/source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.ini new file mode 100644 index 0000000..9baa0c5 --- /dev/null +++ b/source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.ini @@ -0,0 +1,9 @@ +; 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." +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})" +PLG_ACTIONLOG_MOKOJOOMBACKUP_RECORD_DELETED="User {username} deleted backup record "{title}" (ID: {id})" +PLG_ACTIONLOG_MOKOJOOMBACKUP_BACKUP_COMPLETE="Backup completed: "{title}" (ID: {id}, profile: {profile_id}, origin: {origin})" +PLG_ACTIONLOG_MOKOJOOMBACKUP_BACKUP_FAILED="Backup FAILED: "{title}" (ID: {id}, profile: {profile_id}, origin: {origin})" 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 new file mode 100644 index 0000000..26c0927 --- /dev/null +++ b/source/packages/plg_actionlog_mokojoombackup/language/en-US/plg_actionlog_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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/mokojoombackup.php b/source/packages/plg_actionlog_mokojoombackup/mokojoombackup.php new file mode 100644 index 0000000..13e2b3b --- /dev/null +++ b/source/packages/plg_actionlog_mokojoombackup/mokojoombackup.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_actionlog_mokobackup/mokobackup.xml b/source/packages/plg_actionlog_mokojoombackup/mokojoombackup.xml similarity index 60% rename from source/packages/plg_actionlog_mokobackup/mokobackup.xml rename to source/packages/plg_actionlog_mokojoombackup/mokojoombackup.xml index c45e66c..8695fef 100644 --- a/source/packages/plg_actionlog_mokobackup/mokobackup.xml +++ b/source/packages/plg_actionlog_mokojoombackup/mokojoombackup.xml @@ -1,32 +1,32 @@ - plg_actionlog_mokobackup - 01.01.09-dev + plg_actionlog_mokojoombackup + 01.01.07-dev 2026-06-04 Moko Consulting hello@mokoconsulting.tech https://mokoconsulting.tech Copyright (C) 2026 Moko Consulting. All rights reserved. GPL-3.0-or-later - PLG_ACTIONLOG_MOKOBACKUP_DESCRIPTION + PLG_ACTIONLOG_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\Actionlog\MokoBackup + Joomla\Plugin\Actionlog\MokoJoomBackup - mokobackup.php + mokojoombackup.php services src - language/en-GB/plg_actionlog_mokobackup.ini - language/en-GB/plg_actionlog_mokobackup.sys.ini + language/en-GB/plg_actionlog_mokojoombackup.ini + language/en-GB/plg_actionlog_mokojoombackup.sys.ini diff --git a/source/packages/plg_actionlog_mokobackup/services/provider.php b/source/packages/plg_actionlog_mokojoombackup/plg_actionlog_mokojoombackup/services/provider.php similarity index 78% rename from source/packages/plg_actionlog_mokobackup/services/provider.php rename to source/packages/plg_actionlog_mokojoombackup/plg_actionlog_mokojoombackup/services/provider.php index b13a445..572a2a9 100644 --- a/source/packages/plg_actionlog_mokobackup/services/provider.php +++ b/source/packages/plg_actionlog_mokojoombackup/plg_actionlog_mokojoombackup/services/provider.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage plg_actionlog_mokobackup + * @subpackage plg_actionlog_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Extension\MokoBackupActionlog; +use Joomla\Plugin\Actionlog\MokoJoomBackup\Extension\MokoJoomBackupActionlog; 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 MokoBackupActionlog( + $plugin = new MokoJoomBackupActionlog( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('actionlog', 'mokobackup') + (array) PluginHelper::getPlugin('actionlog', 'mokojoombackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_actionlog_mokobackup/src/Extension/MokoBackupActionlog.php b/source/packages/plg_actionlog_mokojoombackup/plg_actionlog_mokojoombackup/src/Extension/MokoBackupActionlog.php similarity index 77% rename from source/packages/plg_actionlog_mokobackup/src/Extension/MokoBackupActionlog.php rename to source/packages/plg_actionlog_mokojoombackup/plg_actionlog_mokojoombackup/src/Extension/MokoBackupActionlog.php index 2cb97e7..ed160cd 100644 --- a/source/packages/plg_actionlog_mokobackup/src/Extension/MokoBackupActionlog.php +++ b/source/packages/plg_actionlog_mokojoombackup/plg_actionlog_mokojoombackup/src/Extension/MokoBackupActionlog.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage plg_actionlog_mokobackup + * @subpackage plg_actionlog_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Actionlog\MokoBackup\Extension; +namespace Joomla\Plugin\Actionlog\MokoJoomBackup\Extension; defined('_JEXEC') or die; @@ -19,7 +19,7 @@ use Joomla\Component\Actionlogs\Administrator\Helper\ActionlogsHelper; use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; -final class MokoBackupActionlog extends CMSPlugin implements SubscriberInterface +final class MokoJoomBackupActionlog extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; @@ -28,7 +28,7 @@ final class MokoBackupActionlog extends CMSPlugin implements SubscriberInterface return [ 'onContentAfterSave' => 'onContentAfterSave', 'onContentAfterDelete' => 'onContentAfterDelete', - 'onMokoBackupAfterRun' => 'onMokoBackupAfterRun', + 'onMokoJoomBackupAfterRun' => 'onMokoJoomBackupAfterRun', ]; } @@ -39,13 +39,13 @@ final class MokoBackupActionlog extends CMSPlugin implements SubscriberInterface { [$context, $table, $isNew] = array_values($event->getArguments()); - if ($context !== 'com_mokobackup.profile') { + if ($context !== 'com_mokojoombackup.profile') { return; } $messageKey = $isNew - ? 'PLG_ACTIONLOG_MOKOBACKUP_PROFILE_CREATED' - : 'PLG_ACTIONLOG_MOKOBACKUP_PROFILE_UPDATED'; + ? 'PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_CREATED' + : 'PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_UPDATED'; $this->addLog( [ @@ -56,7 +56,7 @@ final class MokoBackupActionlog extends CMSPlugin implements SubscriberInterface 'username' => $this->getCurrentUserName(), ], $messageKey, - 'com_mokobackup.profile', + 'com_mokojoombackup.profile', $this->getCurrentUserId() ); } @@ -68,30 +68,30 @@ final class MokoBackupActionlog extends CMSPlugin implements SubscriberInterface { [$context, $table] = array_values($event->getArguments()); - if ($context === 'com_mokobackup.profile') { + if ($context === 'com_mokojoombackup.profile') { $this->addLog( [ - 'PLG_ACTIONLOG_MOKOBACKUP_PROFILE_DELETED', + 'PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_DELETED', 'id' => $table->id, 'title' => $table->title ?? '', 'userid' => $this->getCurrentUserId(), 'username' => $this->getCurrentUserName(), ], - 'PLG_ACTIONLOG_MOKOBACKUP_PROFILE_DELETED', - 'com_mokobackup.profile', + 'PLG_ACTIONLOG_MOKOJOOMBACKUP_PROFILE_DELETED', + 'com_mokojoombackup.profile', $this->getCurrentUserId() ); - } elseif ($context === 'com_mokobackup.backup') { + } elseif ($context === 'com_mokojoombackup.backup') { $this->addLog( [ - 'PLG_ACTIONLOG_MOKOBACKUP_RECORD_DELETED', + 'PLG_ACTIONLOG_MOKOJOOMBACKUP_RECORD_DELETED', 'id' => $table->id, 'title' => $table->description ?? 'Backup #' . $table->id, 'userid' => $this->getCurrentUserId(), 'username' => $this->getCurrentUserName(), ], - 'PLG_ACTIONLOG_MOKOBACKUP_RECORD_DELETED', - 'com_mokobackup.backup', + 'PLG_ACTIONLOG_MOKOJOOMBACKUP_RECORD_DELETED', + 'com_mokojoombackup.backup', $this->getCurrentUserId() ); } @@ -101,7 +101,7 @@ final class MokoBackupActionlog extends CMSPlugin implements SubscriberInterface * Log when a backup completes or fails. * This event should be dispatched from BackupEngine. */ - public function onMokoBackupAfterRun(Event $event): void + public function onMokoJoomBackupAfterRun(Event $event): void { $args = $event->getArguments(); @@ -112,8 +112,8 @@ final class MokoBackupActionlog extends CMSPlugin implements SubscriberInterface $origin = $args['origin'] ?? 'backend'; $messageKey = $success - ? 'PLG_ACTIONLOG_MOKOBACKUP_BACKUP_COMPLETE' - : 'PLG_ACTIONLOG_MOKOBACKUP_BACKUP_FAILED'; + ? 'PLG_ACTIONLOG_MOKOJOOMBACKUP_BACKUP_COMPLETE' + : 'PLG_ACTIONLOG_MOKOJOOMBACKUP_BACKUP_FAILED'; $this->addLog( [ @@ -126,7 +126,7 @@ final class MokoBackupActionlog extends CMSPlugin implements SubscriberInterface 'username' => $this->getCurrentUserName(), ], $messageKey, - 'com_mokobackup.backup', + 'com_mokojoombackup.backup', $this->getCurrentUserId() ); } @@ -140,7 +140,7 @@ final class MokoBackupActionlog extends CMSPlugin implements SubscriberInterface 'message_language_key' => $messageLanguageKey, 'message' => json_encode($message), 'date' => date('Y-m-d H:i:s'), - 'extension' => 'com_mokobackup', + 'extension' => 'com_mokojoombackup', 'user_id' => $userId, 'ip_address' => ActionlogsHelper::getIp(), 'item_id' => $message['id'] ?? 0, diff --git a/source/packages/plg_console_mokobackup/language/en-GB/plg_console_mokobackup.ini b/source/packages/plg_console_mokobackup/language/en-GB/plg_console_mokobackup.ini deleted file mode 100644 index 4b87bca..0000000 --- a/source/packages/plg_console_mokobackup/language/en-GB/plg_console_mokobackup.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Console Plugin language file (en-GB) -PLG_CONSOLE_MOKOBACKUP="Console - MokoJoomBackup" -PLG_CONSOLE_MOKOBACKUP_DESCRIPTION="CLI commands for MokoJoomBackup: run, list, profiles, restore, cleanup." diff --git a/source/packages/plg_console_mokobackup/language/en-GB/plg_console_mokobackup.sys.ini b/source/packages/plg_console_mokobackup/language/en-GB/plg_console_mokobackup.sys.ini deleted file mode 100644 index 02fb8d8..0000000 --- a/source/packages/plg_console_mokobackup/language/en-GB/plg_console_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Console Plugin system language file (en-GB) -PLG_CONSOLE_MOKOBACKUP="Console - MokoJoomBackup" -PLG_CONSOLE_MOKOBACKUP_DESCRIPTION="CLI commands for MokoJoomBackup: run, list, profiles, restore, cleanup." diff --git a/source/packages/plg_console_mokobackup/language/en-US/plg_console_mokobackup.ini b/source/packages/plg_console_mokobackup/language/en-US/plg_console_mokobackup.ini deleted file mode 100644 index 9fa5c15..0000000 --- a/source/packages/plg_console_mokobackup/language/en-US/plg_console_mokobackup.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Console Plugin language file (en-US) -PLG_CONSOLE_MOKOBACKUP="Console - MokoJoomBackup" -PLG_CONSOLE_MOKOBACKUP_DESCRIPTION="CLI commands for MokoJoomBackup: run, list, profiles, restore, cleanup." diff --git a/source/packages/plg_console_mokobackup/language/en-US/plg_console_mokobackup.sys.ini b/source/packages/plg_console_mokobackup/language/en-US/plg_console_mokobackup.sys.ini deleted file mode 100644 index d22c08c..0000000 --- a/source/packages/plg_console_mokobackup/language/en-US/plg_console_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Console Plugin system language file (en-US) -PLG_CONSOLE_MOKOBACKUP="Console - MokoJoomBackup" -PLG_CONSOLE_MOKOBACKUP_DESCRIPTION="CLI commands for MokoJoomBackup: run, list, profiles, restore, cleanup." 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 new file mode 100644 index 0000000..311e8d5 --- /dev/null +++ b/source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.ini @@ -0,0 +1,3 @@ +; 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 new file mode 100644 index 0000000..f56b212 --- /dev/null +++ b/source/packages/plg_console_mokojoombackup/language/en-GB/plg_console_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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 new file mode 100644 index 0000000..2de8315 --- /dev/null +++ b/source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.ini @@ -0,0 +1,3 @@ +; 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 new file mode 100644 index 0000000..d229b02 --- /dev/null +++ b/source/packages/plg_console_mokojoombackup/language/en-US/plg_console_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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_content_mokobackup/mokobackup.php b/source/packages/plg_console_mokojoombackup/mokojoombackup.php similarity index 86% rename from source/packages/plg_content_mokobackup/mokobackup.php rename to source/packages/plg_console_mokojoombackup/mokojoombackup.php index 2dd15e4..bb0f01c 100644 --- a/source/packages/plg_content_mokobackup/mokobackup.php +++ b/source/packages/plg_console_mokojoombackup/mokojoombackup.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage plg_content_mokobackup + * @subpackage plg_console_mokojoombackup * @author Moko Consulting * @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_mokobackup/mokobackup.xml b/source/packages/plg_console_mokojoombackup/mokojoombackup.xml similarity index 60% rename from source/packages/plg_console_mokobackup/mokobackup.xml rename to source/packages/plg_console_mokojoombackup/mokojoombackup.xml index b583077..db41eeb 100644 --- a/source/packages/plg_console_mokobackup/mokobackup.xml +++ b/source/packages/plg_console_mokojoombackup/mokojoombackup.xml @@ -1,32 +1,32 @@ - plg_console_mokobackup - 01.01.09-dev + plg_console_mokojoombackup + 01.01.07-dev 2026-06-04 Moko Consulting hello@mokoconsulting.tech https://mokoconsulting.tech Copyright (C) 2026 Moko Consulting. All rights reserved. GPL-3.0-or-later - PLG_CONSOLE_MOKOBACKUP_DESCRIPTION + PLG_CONSOLE_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\Console\MokoBackup + Joomla\Plugin\Console\MokoJoomBackup - mokobackup.php + mokojoombackup.php services src - language/en-GB/plg_console_mokobackup.ini - language/en-GB/plg_console_mokobackup.sys.ini + language/en-GB/plg_console_mokojoombackup.ini + language/en-GB/plg_console_mokojoombackup.sys.ini diff --git a/source/packages/plg_webservices_mokobackup/services/provider.php b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/services/provider.php similarity index 79% rename from source/packages/plg_webservices_mokobackup/services/provider.php rename to source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/services/provider.php index 96e07f1..e80cfa1 100644 --- a/source/packages/plg_webservices_mokobackup/services/provider.php +++ b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/services/provider.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage plg_webservices_mokobackup + * @subpackage plg_console_mokojoombackup * @author Moko Consulting * @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\WebServices\MokoBackup\Extension\MokoBackupWebServices; +use Joomla\Plugin\Console\MokoJoomBackup\Extension\MokoJoomBackupConsole; 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 MokoBackupWebServices( + $plugin = new MokoJoomBackupConsole( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('webservices', 'mokobackup') + (array) PluginHelper::getPlugin('console', 'mokojoombackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_console_mokobackup/src/Command/CleanupCommand.php b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/CleanupCommand.php similarity index 88% rename from source/packages/plg_console_mokobackup/src/Command/CleanupCommand.php rename to source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/CleanupCommand.php index 1a8509a..68615b1 100644 --- a/source/packages/plg_console_mokobackup/src/Command/CleanupCommand.php +++ b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/CleanupCommand.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage plg_console_mokobackup + * @subpackage plg_console_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoBackup\Command; +namespace Joomla\Plugin\Console\MokoJoomBackup\Command; defined('_JEXEC') or die; @@ -21,7 +21,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; class CleanupCommand extends AbstractCommand { - protected static $defaultName = 'mokobackup:cleanup'; + protected static $defaultName = 'mokojoombackup:cleanup'; protected function configure(): void { @@ -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('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_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('#__mokobackup_records')) + ->delete($db->quoteName('#__mokojoombackup_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('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_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('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_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('#__mokobackup_records')) + ->delete($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('id') . ' = ' . (int) $record->id) ); $db->execute(); diff --git a/source/packages/plg_console_mokobackup/src/Command/ListCommand.php b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/ListCommand.php similarity index 87% rename from source/packages/plg_console_mokobackup/src/Command/ListCommand.php rename to source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/ListCommand.php index 9586339..b8aebe7 100644 --- a/source/packages/plg_console_mokobackup/src/Command/ListCommand.php +++ b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/ListCommand.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage plg_console_mokobackup + * @subpackage plg_console_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoBackup\Command; +namespace Joomla\Plugin\Console\MokoJoomBackup\Command; defined('_JEXEC') or die; @@ -21,7 +21,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; class ListCommand extends AbstractCommand { - protected static $defaultName = 'mokobackup:list'; + protected static $defaultName = 'mokojoombackup:list'; protected function configure(): void { @@ -42,8 +42,8 @@ class ListCommand extends AbstractCommand $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('#__mokobackup_records', 'r')) - ->join('LEFT', $db->quoteName('#__mokobackup_profiles', 'p') . ' ON p.id = r.profile_id') + ->from($db->quoteName('#__mokojoombackup_records', 'r')) + ->join('LEFT', $db->quoteName('#__mokojoombackup_profiles', 'p') . ' ON p.id = r.profile_id') ->order($db->quoteName('r.backupstart') . ' DESC'); if ($status) { diff --git a/source/packages/plg_console_mokobackup/src/Command/ProfilesCommand.php b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/ProfilesCommand.php similarity index 86% rename from source/packages/plg_console_mokobackup/src/Command/ProfilesCommand.php rename to source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/ProfilesCommand.php index 8f4b21c..22e8723 100644 --- a/source/packages/plg_console_mokobackup/src/Command/ProfilesCommand.php +++ b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/ProfilesCommand.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage plg_console_mokobackup + * @subpackage plg_console_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoBackup\Command; +namespace Joomla\Plugin\Console\MokoJoomBackup\Command; defined('_JEXEC') or die; @@ -20,7 +20,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; class ProfilesCommand extends AbstractCommand { - protected static $defaultName = 'mokobackup:profiles'; + protected static $defaultName = 'mokojoombackup:profiles'; protected function configure(): void { @@ -36,7 +36,7 @@ class ProfilesCommand extends AbstractCommand $db = Factory::getDbo(); $query = $db->getQuery(true) ->select('id, title, backup_type, published, ordering') - ->from($db->quoteName('#__mokobackup_profiles')) + ->from($db->quoteName('#__mokojoombackup_profiles')) ->order($db->quoteName('ordering') . ' ASC'); $db->setQuery($query); $profiles = $db->loadObjectList(); diff --git a/source/packages/plg_console_mokobackup/src/Command/RestoreCommand.php b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/RestoreCommand.php similarity index 86% rename from source/packages/plg_console_mokobackup/src/Command/RestoreCommand.php rename to source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/RestoreCommand.php index e5f9082..cccc480 100644 --- a/source/packages/plg_console_mokobackup/src/Command/RestoreCommand.php +++ b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/RestoreCommand.php @@ -2,18 +2,18 @@ /** * @package MokoJoomBackup - * @subpackage plg_console_mokobackup + * @subpackage plg_console_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoBackup\Command; +namespace Joomla\Plugin\Console\MokoJoomBackup\Command; defined('_JEXEC') or die; use Joomla\CMS\Factory; -use Joomla\Component\MokoBackup\Administrator\Engine\RestoreEngine; +use Joomla\Component\MokoJoomBackup\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 = 'mokobackup:restore'; + protected static $defaultName = 'mokojoombackup:restore'; protected function configure(): void { @@ -40,7 +40,7 @@ class RestoreCommand extends AbstractCommand $db = Factory::getDbo(); $query = $db->getQuery(true) ->select('*') - ->from($db->quoteName('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_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_mokobackup/src/Engine/RestoreEngine.php'; + $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokojoombackup/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_mokobackup/src/Command/RunCommand.php b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/RunCommand.php similarity index 83% rename from source/packages/plg_console_mokobackup/src/Command/RunCommand.php rename to source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/RunCommand.php index d187737..78991af 100644 --- a/source/packages/plg_console_mokobackup/src/Command/RunCommand.php +++ b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Command/RunCommand.php @@ -2,18 +2,18 @@ /** * @package MokoJoomBackup - * @subpackage plg_console_mokobackup + * @subpackage plg_console_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoBackup\Command; +namespace Joomla\Plugin\Console\MokoJoomBackup\Command; defined('_JEXEC') or die; use Joomla\CMS\Factory; -use Joomla\Component\MokoBackup\Administrator\Engine\BackupEngine; +use Joomla\Component\MokoJoomBackup\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 = 'mokobackup:run'; + protected static $defaultName = 'mokojoombackup:run'; protected function configure(): void { @@ -40,7 +40,7 @@ class RunCommand extends AbstractCommand $io->title('MokoJoomBackup — Run Backup'); $io->text('Profile ID: ' . $profileId); - $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokobackup/src/Engine/BackupEngine.php'; + $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokojoombackup/src/Engine/BackupEngine.php'; if (!file_exists($engineFile)) { $io->error('MokoJoomBackup component not installed.'); diff --git a/source/packages/plg_console_mokobackup/src/Extension/MokoBackupConsole.php b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Extension/MokoBackupConsole.php similarity index 63% rename from source/packages/plg_console_mokobackup/src/Extension/MokoBackupConsole.php rename to source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Extension/MokoBackupConsole.php index fca96ac..2c04833 100644 --- a/source/packages/plg_console_mokobackup/src/Extension/MokoBackupConsole.php +++ b/source/packages/plg_console_mokojoombackup/plg_console_mokojoombackup/src/Extension/MokoBackupConsole.php @@ -2,26 +2,26 @@ /** * @package MokoJoomBackup - * @subpackage plg_console_mokobackup + * @subpackage plg_console_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Console\MokoBackup\Extension; +namespace Joomla\Plugin\Console\MokoJoomBackup\Extension; defined('_JEXEC') or die; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; -use Joomla\Plugin\Console\MokoBackup\Command\CleanupCommand; -use Joomla\Plugin\Console\MokoBackup\Command\ListCommand; -use Joomla\Plugin\Console\MokoBackup\Command\ProfilesCommand; -use Joomla\Plugin\Console\MokoBackup\Command\RestoreCommand; -use Joomla\Plugin\Console\MokoBackup\Command\RunCommand; +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; -final class MokoBackupConsole extends CMSPlugin implements SubscriberInterface +final class MokoJoomBackupConsole extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; diff --git a/source/packages/plg_content_mokobackup/language/en-GB/plg_content_mokobackup.ini b/source/packages/plg_content_mokobackup/language/en-GB/plg_content_mokobackup.ini deleted file mode 100644 index 5f23262..0000000 --- a/source/packages/plg_content_mokobackup/language/en-GB/plg_content_mokobackup.ini +++ /dev/null @@ -1,9 +0,0 @@ -; MokoJoomBackup — Content Plugin language file (en-GB) -PLG_CONTENT_MOKOBACKUP="Content - MokoJoomBackup" -PLG_CONTENT_MOKOBACKUP_DESCRIPTION="Automatically triggers a backup before extension installs or updates." -PLG_CONTENT_MOKOBACKUP_FIELD_BEFORE_INSTALL="Backup Before Install" -PLG_CONTENT_MOKOBACKUP_FIELD_BEFORE_INSTALL_DESC="Run an automatic backup before a new extension is installed." -PLG_CONTENT_MOKOBACKUP_FIELD_BEFORE_UPDATE="Backup Before Update" -PLG_CONTENT_MOKOBACKUP_FIELD_BEFORE_UPDATE_DESC="Run an automatic backup before an extension is updated." -PLG_CONTENT_MOKOBACKUP_FIELD_PROFILE="Backup Profile" -PLG_CONTENT_MOKOBACKUP_FIELD_PROFILE_DESC="Which backup profile to use for automatic backups." diff --git a/source/packages/plg_content_mokobackup/language/en-GB/plg_content_mokobackup.sys.ini b/source/packages/plg_content_mokobackup/language/en-GB/plg_content_mokobackup.sys.ini deleted file mode 100644 index 3d79871..0000000 --- a/source/packages/plg_content_mokobackup/language/en-GB/plg_content_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Content Plugin system language file (en-GB) -PLG_CONTENT_MOKOBACKUP="Content - MokoJoomBackup" -PLG_CONTENT_MOKOBACKUP_DESCRIPTION="Automatically triggers a backup before extension installs or updates." diff --git a/source/packages/plg_content_mokobackup/language/en-US/plg_content_mokobackup.ini b/source/packages/plg_content_mokobackup/language/en-US/plg_content_mokobackup.ini deleted file mode 100644 index 1bac9a8..0000000 --- a/source/packages/plg_content_mokobackup/language/en-US/plg_content_mokobackup.ini +++ /dev/null @@ -1,9 +0,0 @@ -; MokoJoomBackup — Content Plugin language file (en-US) -PLG_CONTENT_MOKOBACKUP="Content - MokoJoomBackup" -PLG_CONTENT_MOKOBACKUP_DESCRIPTION="Automatically triggers a backup before extension installs or updates." -PLG_CONTENT_MOKOBACKUP_FIELD_BEFORE_INSTALL="Backup Before Install" -PLG_CONTENT_MOKOBACKUP_FIELD_BEFORE_INSTALL_DESC="Run an automatic backup before a new extension is installed." -PLG_CONTENT_MOKOBACKUP_FIELD_BEFORE_UPDATE="Backup Before Update" -PLG_CONTENT_MOKOBACKUP_FIELD_BEFORE_UPDATE_DESC="Run an automatic backup before an extension is updated." -PLG_CONTENT_MOKOBACKUP_FIELD_PROFILE="Backup Profile" -PLG_CONTENT_MOKOBACKUP_FIELD_PROFILE_DESC="Which backup profile to use for automatic backups." diff --git a/source/packages/plg_content_mokobackup/language/en-US/plg_content_mokobackup.sys.ini b/source/packages/plg_content_mokobackup/language/en-US/plg_content_mokobackup.sys.ini deleted file mode 100644 index 7a612b3..0000000 --- a/source/packages/plg_content_mokobackup/language/en-US/plg_content_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Content Plugin system language file (en-US) -PLG_CONTENT_MOKOBACKUP="Content - MokoJoomBackup" -PLG_CONTENT_MOKOBACKUP_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_mokojoombackup/language/en-GB/plg_content_mokojoombackup.ini new file mode 100644 index 0000000..b7e9375 --- /dev/null +++ b/source/packages/plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.ini @@ -0,0 +1,9 @@ +; MokoJoomBackup — Content Plugin language file (en-GB) +PLG_CONTENT_MOKOJOOMBACKUP="Content - MokoJoomBackup" +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." +PLG_CONTENT_MOKOJOOMBACKUP_FIELD_BEFORE_UPDATE="Backup Before Update" +PLG_CONTENT_MOKOJOOMBACKUP_FIELD_BEFORE_UPDATE_DESC="Run an automatic backup before an extension is updated." +PLG_CONTENT_MOKOJOOMBACKUP_FIELD_PROFILE="Backup Profile" +PLG_CONTENT_MOKOJOOMBACKUP_FIELD_PROFILE_DESC="Which backup profile to use for automatic backups." 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 new file mode 100644 index 0000000..bb42dfd --- /dev/null +++ b/source/packages/plg_content_mokojoombackup/language/en-GB/plg_content_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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.ini b/source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.ini new file mode 100644 index 0000000..0765605 --- /dev/null +++ b/source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.ini @@ -0,0 +1,9 @@ +; MokoJoomBackup — Content Plugin language file (en-US) +PLG_CONTENT_MOKOJOOMBACKUP="Content - MokoJoomBackup" +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." +PLG_CONTENT_MOKOJOOMBACKUP_FIELD_BEFORE_UPDATE="Backup Before Update" +PLG_CONTENT_MOKOJOOMBACKUP_FIELD_BEFORE_UPDATE_DESC="Run an automatic backup before an extension is updated." +PLG_CONTENT_MOKOJOOMBACKUP_FIELD_PROFILE="Backup Profile" +PLG_CONTENT_MOKOJOOMBACKUP_FIELD_PROFILE_DESC="Which backup profile to use for automatic backups." 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 new file mode 100644 index 0000000..4c443cf --- /dev/null +++ b/source/packages/plg_content_mokojoombackup/language/en-US/plg_content_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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_console_mokobackup/mokobackup.php b/source/packages/plg_content_mokojoombackup/mokojoombackup.php similarity index 86% rename from source/packages/plg_console_mokobackup/mokobackup.php rename to source/packages/plg_content_mokojoombackup/mokojoombackup.php index 724a1bb..c59a8b8 100644 --- a/source/packages/plg_console_mokobackup/mokobackup.php +++ b/source/packages/plg_content_mokojoombackup/mokojoombackup.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage plg_console_mokobackup + * @subpackage plg_content_mokojoombackup * @author Moko Consulting * @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_mokobackup/mokobackup.xml b/source/packages/plg_content_mokojoombackup/mokojoombackup.xml similarity index 58% rename from source/packages/plg_content_mokobackup/mokobackup.xml rename to source/packages/plg_content_mokojoombackup/mokojoombackup.xml index b254f08..b208cd3 100644 --- a/source/packages/plg_content_mokobackup/mokobackup.xml +++ b/source/packages/plg_content_mokojoombackup/mokojoombackup.xml @@ -1,33 +1,33 @@ - plg_content_mokobackup - 01.01.09-dev + plg_content_mokojoombackup + 01.01.07-dev 2026-06-04 Moko Consulting hello@mokoconsulting.tech https://mokoconsulting.tech Copyright (C) 2026 Moko Consulting. All rights reserved. GPL-3.0-or-later - PLG_CONTENT_MOKOBACKUP_DESCRIPTION + PLG_CONTENT_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\Content\MokoBackup + Joomla\Plugin\Content\MokoJoomBackup - mokobackup.php + mokojoombackup.php services src - language/en-GB/plg_content_mokobackup.ini - language/en-GB/plg_content_mokobackup.sys.ini + language/en-GB/plg_content_mokojoombackup.ini + language/en-GB/plg_content_mokojoombackup.sys.ini @@ -36,8 +36,8 @@ @@ -47,8 +47,8 @@ @@ -58,9 +58,9 @@ diff --git a/source/packages/plg_content_mokobackup/services/provider.php b/source/packages/plg_content_mokojoombackup/plg_content_mokojoombackup/services/provider.php similarity index 78% rename from source/packages/plg_content_mokobackup/services/provider.php rename to source/packages/plg_content_mokojoombackup/plg_content_mokojoombackup/services/provider.php index 4635162..afcd020 100644 --- a/source/packages/plg_content_mokobackup/services/provider.php +++ b/source/packages/plg_content_mokojoombackup/plg_content_mokojoombackup/services/provider.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage plg_content_mokobackup + * @subpackage plg_content_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Extension\MokoBackupContent; +use Joomla\Plugin\Content\MokoJoomBackup\Extension\MokoJoomBackupContent; 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 MokoBackupContent( + $plugin = new MokoJoomBackupContent( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('content', 'mokobackup') + (array) PluginHelper::getPlugin('content', 'mokojoombackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_content_mokobackup/src/Extension/MokoBackupContent.php b/source/packages/plg_content_mokojoombackup/plg_content_mokojoombackup/src/Extension/MokoBackupContent.php similarity index 79% rename from source/packages/plg_content_mokobackup/src/Extension/MokoBackupContent.php rename to source/packages/plg_content_mokojoombackup/plg_content_mokojoombackup/src/Extension/MokoBackupContent.php index b27d119..ae65490 100644 --- a/source/packages/plg_content_mokobackup/src/Extension/MokoBackupContent.php +++ b/source/packages/plg_content_mokojoombackup/plg_content_mokojoombackup/src/Extension/MokoBackupContent.php @@ -2,23 +2,23 @@ /** * @package MokoJoomBackup - * @subpackage plg_content_mokobackup + * @subpackage plg_content_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\Content\MokoBackup\Extension; +namespace Joomla\Plugin\Content\MokoJoomBackup\Extension; defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\CMSPlugin; -use Joomla\Component\MokoBackup\Administrator\Engine\BackupEngine; +use Joomla\Component\MokoJoomBackup\Administrator\Engine\BackupEngine; use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; -final class MokoBackupContent extends CMSPlugin implements SubscriberInterface +final class MokoJoomBackupContent extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; @@ -63,15 +63,15 @@ final class MokoBackupContent extends CMSPlugin implements SubscriberInterface // Throttle: only one auto-backup per hour via session $session = Factory::getSession(); - $lastRun = $session->get('mokobackup.content_last_autobackup', 0); + $lastRun = $session->get('mokojoombackup.content_last_autobackup', 0); if (time() - $lastRun < 3600) { return; } - $session->set('mokobackup.content_last_autobackup', time()); + $session->set('mokojoombackup.content_last_autobackup', time()); - $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokobackup/src/Engine/BackupEngine.php'; + $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokojoombackup/src/Engine/BackupEngine.php'; if (!file_exists($engineFile)) { return; diff --git a/source/packages/plg_quickicon_mokobackup/language/en-GB/plg_quickicon_mokobackup.ini b/source/packages/plg_quickicon_mokobackup/language/en-GB/plg_quickicon_mokobackup.ini deleted file mode 100644 index 7dbf949..0000000 --- a/source/packages/plg_quickicon_mokobackup/language/en-GB/plg_quickicon_mokobackup.ini +++ /dev/null @@ -1,6 +0,0 @@ -PLG_QUICKICON_MOKOBACKUP="Quick Icon - MokoJoomBackup" -PLG_QUICKICON_MOKOBACKUP_DESCRIPTION="Shows backup status on the administrator dashboard." -PLG_QUICKICON_MOKOBACKUP_OK="Backups: OK" -PLG_QUICKICON_MOKOBACKUP_NO_BACKUPS="Backups: No backups yet!" -PLG_QUICKICON_MOKOBACKUP_FAILURES="Backups: Recent failures!" -PLG_QUICKICON_MOKOBACKUP_STALE="Backups: Last backup > 7 days ago" diff --git a/source/packages/plg_quickicon_mokobackup/language/en-GB/plg_quickicon_mokobackup.sys.ini b/source/packages/plg_quickicon_mokobackup/language/en-GB/plg_quickicon_mokobackup.sys.ini deleted file mode 100644 index 6d06042..0000000 --- a/source/packages/plg_quickicon_mokobackup/language/en-GB/plg_quickicon_mokobackup.sys.ini +++ /dev/null @@ -1,2 +0,0 @@ -PLG_QUICKICON_MOKOBACKUP="Quick Icon - MokoJoomBackup" -PLG_QUICKICON_MOKOBACKUP_DESCRIPTION="Shows backup status on the administrator dashboard." diff --git a/source/packages/plg_quickicon_mokobackup/language/en-US/plg_quickicon_mokobackup.ini b/source/packages/plg_quickicon_mokobackup/language/en-US/plg_quickicon_mokobackup.ini deleted file mode 100644 index 7dbf949..0000000 --- a/source/packages/plg_quickicon_mokobackup/language/en-US/plg_quickicon_mokobackup.ini +++ /dev/null @@ -1,6 +0,0 @@ -PLG_QUICKICON_MOKOBACKUP="Quick Icon - MokoJoomBackup" -PLG_QUICKICON_MOKOBACKUP_DESCRIPTION="Shows backup status on the administrator dashboard." -PLG_QUICKICON_MOKOBACKUP_OK="Backups: OK" -PLG_QUICKICON_MOKOBACKUP_NO_BACKUPS="Backups: No backups yet!" -PLG_QUICKICON_MOKOBACKUP_FAILURES="Backups: Recent failures!" -PLG_QUICKICON_MOKOBACKUP_STALE="Backups: Last backup > 7 days ago" diff --git a/source/packages/plg_quickicon_mokobackup/language/en-US/plg_quickicon_mokobackup.sys.ini b/source/packages/plg_quickicon_mokobackup/language/en-US/plg_quickicon_mokobackup.sys.ini deleted file mode 100644 index 6d06042..0000000 --- a/source/packages/plg_quickicon_mokobackup/language/en-US/plg_quickicon_mokobackup.sys.ini +++ /dev/null @@ -1,2 +0,0 @@ -PLG_QUICKICON_MOKOBACKUP="Quick Icon - MokoJoomBackup" -PLG_QUICKICON_MOKOBACKUP_DESCRIPTION="Shows backup status on the administrator dashboard." diff --git a/source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.ini b/source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.ini new file mode 100644 index 0000000..cc0a4e5 --- /dev/null +++ b/source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.ini @@ -0,0 +1,6 @@ +PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoJoomBackup" +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!" +PLG_QUICKICON_MOKOJOOMBACKUP_FAILURES="Backups: Recent failures!" +PLG_QUICKICON_MOKOJOOMBACKUP_STALE="Backups: Last backup > 7 days ago" diff --git a/source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.sys.ini b/source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.sys.ini new file mode 100644 index 0000000..d432f08 --- /dev/null +++ b/source/packages/plg_quickicon_mokojoombackup/language/en-GB/plg_quickicon_mokojoombackup.sys.ini @@ -0,0 +1,2 @@ +PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoJoomBackup" +PLG_QUICKICON_MOKOJOOMBACKUP_DESCRIPTION="Shows backup status on the administrator dashboard." diff --git a/source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.ini b/source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.ini new file mode 100644 index 0000000..cc0a4e5 --- /dev/null +++ b/source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.ini @@ -0,0 +1,6 @@ +PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoJoomBackup" +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!" +PLG_QUICKICON_MOKOJOOMBACKUP_FAILURES="Backups: Recent failures!" +PLG_QUICKICON_MOKOJOOMBACKUP_STALE="Backups: Last backup > 7 days ago" diff --git a/source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.sys.ini b/source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.sys.ini new file mode 100644 index 0000000..d432f08 --- /dev/null +++ b/source/packages/plg_quickicon_mokojoombackup/language/en-US/plg_quickicon_mokojoombackup.sys.ini @@ -0,0 +1,2 @@ +PLG_QUICKICON_MOKOJOOMBACKUP="Quick Icon - MokoJoomBackup" +PLG_QUICKICON_MOKOJOOMBACKUP_DESCRIPTION="Shows backup status on the administrator dashboard." diff --git a/source/packages/plg_quickicon_mokobackup/mokobackup.php b/source/packages/plg_quickicon_mokojoombackup/mokojoombackup.php similarity index 100% rename from source/packages/plg_quickicon_mokobackup/mokobackup.php rename to source/packages/plg_quickicon_mokojoombackup/mokojoombackup.php diff --git a/source/packages/plg_quickicon_mokobackup/mokobackup.xml b/source/packages/plg_quickicon_mokojoombackup/mokojoombackup.xml similarity index 52% rename from source/packages/plg_quickicon_mokobackup/mokobackup.xml rename to source/packages/plg_quickicon_mokojoombackup/mokojoombackup.xml index 928feed..2d284a5 100644 --- a/source/packages/plg_quickicon_mokobackup/mokobackup.xml +++ b/source/packages/plg_quickicon_mokojoombackup/mokojoombackup.xml @@ -1,25 +1,25 @@ - plg_quickicon_mokobackup - 01.01.09-dev + plg_quickicon_mokojoombackup + 01.01.07-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 - PLG_QUICKICON_MOKOBACKUP_DESCRIPTION + PLG_QUICKICON_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\Quickicon\MokoBackup + Joomla\Plugin\Quickicon\MokoJoomBackup - mokobackup.php + mokojoombackup.php services src - language/en-GB/plg_quickicon_mokobackup.ini - language/en-GB/plg_quickicon_mokobackup.sys.ini + language/en-GB/plg_quickicon_mokojoombackup.ini + language/en-GB/plg_quickicon_mokojoombackup.sys.ini diff --git a/source/packages/plg_quickicon_mokobackup/index.html b/source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/index.html similarity index 100% rename from source/packages/plg_quickicon_mokobackup/index.html rename to source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/index.html diff --git a/source/packages/plg_quickicon_mokobackup/language/en-GB/index.html b/source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/language/en-GB/index.html similarity index 100% rename from source/packages/plg_quickicon_mokobackup/language/en-GB/index.html rename to source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/language/en-GB/index.html diff --git a/source/packages/plg_quickicon_mokobackup/language/en-US/index.html b/source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/language/en-US/index.html similarity index 100% rename from source/packages/plg_quickicon_mokobackup/language/en-US/index.html rename to source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/language/en-US/index.html diff --git a/source/packages/plg_quickicon_mokobackup/language/index.html b/source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/language/index.html similarity index 100% rename from source/packages/plg_quickicon_mokobackup/language/index.html rename to source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/language/index.html diff --git a/source/packages/plg_quickicon_mokobackup/services/index.html b/source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/services/index.html similarity index 100% rename from source/packages/plg_quickicon_mokobackup/services/index.html rename to source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/services/index.html diff --git a/source/packages/plg_quickicon_mokobackup/services/provider.php b/source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/services/provider.php similarity index 75% rename from source/packages/plg_quickicon_mokobackup/services/provider.php rename to source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/services/provider.php index 32262ef..4af1c9f 100644 --- a/source/packages/plg_quickicon_mokobackup/services/provider.php +++ b/source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/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\MokoBackup\Extension\MokoBackupQuickicon; +use Joomla\Plugin\Quickicon\MokoJoomBackup\Extension\MokoJoomBackupQuickicon; 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 MokoBackupQuickicon( + $plugin = new MokoJoomBackupQuickicon( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('quickicon', 'mokobackup') + (array) PluginHelper::getPlugin('quickicon', 'mokojoombackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_quickicon_mokobackup/src/Extension/MokoBackupQuickicon.php b/source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/src/Extension/MokoBackupQuickicon.php similarity index 81% rename from source/packages/plg_quickicon_mokobackup/src/Extension/MokoBackupQuickicon.php rename to source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/src/Extension/MokoBackupQuickicon.php index c72cda5..b17baee 100644 --- a/source/packages/plg_quickicon_mokobackup/src/Extension/MokoBackupQuickicon.php +++ b/source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/src/Extension/MokoBackupQuickicon.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage plg_quickicon_mokobackup + * @subpackage plg_quickicon_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Extension; +namespace Joomla\Plugin\Quickicon\MokoJoomBackup\Extension; defined('_JEXEC') or die; @@ -20,7 +20,7 @@ use Joomla\CMS\Plugin\CMSPlugin; use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; -final class MokoBackupQuickicon extends CMSPlugin implements SubscriberInterface +final class MokoJoomBackupQuickicon extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; @@ -44,7 +44,7 @@ final class MokoBackupQuickicon extends CMSPlugin implements SubscriberInterface // Get last completed backup $query = $db->getQuery(true) ->select('*') - ->from($db->quoteName('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')) ->order($db->quoteName('backupstart') . ' DESC'); $db->setQuery($query, 0, 1); @@ -53,7 +53,7 @@ final class MokoBackupQuickicon extends CMSPlugin implements SubscriberInterface // Get total count and storage $query = $db->getQuery(true) ->select('COUNT(*) AS total, COALESCE(SUM(total_size), 0) AS total_size') - ->from($db->quoteName('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')); $db->setQuery($query); $stats = $db->loadObject(); @@ -61,7 +61,7 @@ final class MokoBackupQuickicon extends CMSPlugin implements SubscriberInterface // Check for recent failures $query = $db->getQuery(true) ->select('COUNT(*)') - ->from($db->quoteName('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('fail')) ->where($db->quoteName('backupstart') . ' > DATE_SUB(NOW(), INTERVAL 7 DAY)'); $db->setQuery($query); @@ -69,17 +69,17 @@ final class MokoBackupQuickicon extends CMSPlugin implements SubscriberInterface // Determine icon state $warning = false; - $text = 'PLG_QUICKICON_MOKOBACKUP_OK'; + $text = 'PLG_QUICKICON_MOKOJOOMBACKUP_OK'; if (!$lastBackup) { $warning = true; - $text = 'PLG_QUICKICON_MOKOBACKUP_NO_BACKUPS'; + $text = 'PLG_QUICKICON_MOKOJOOMBACKUP_NO_BACKUPS'; } elseif ($recentFailures > 0) { $warning = true; - $text = 'PLG_QUICKICON_MOKOBACKUP_FAILURES'; + $text = 'PLG_QUICKICON_MOKOJOOMBACKUP_FAILURES'; } elseif (strtotime($lastBackup->backupstart) < strtotime('-7 days')) { $warning = true; - $text = 'PLG_QUICKICON_MOKOBACKUP_STALE'; + $text = 'PLG_QUICKICON_MOKOJOOMBACKUP_STALE'; } // Build subtitle @@ -94,12 +94,12 @@ final class MokoBackupQuickicon extends CMSPlugin implements SubscriberInterface $result = $event->getArgument('result', []); $result[] = [ [ - 'link' => 'index.php?option=com_mokobackup&view=backups', + 'link' => 'index.php?option=com_mokojoombackup&view=backups', 'image' => $warning ? 'icon-warning' : 'icon-database', 'icon' => $warning ? 'icon-warning' : 'icon-database', 'text' => Text::_($text), 'linkadd' => $subtitle ? '
' . htmlspecialchars($subtitle) . '' : '', - 'id' => 'plg_quickicon_mokobackup', + 'id' => 'plg_quickicon_mokojoombackup', 'group' => 'MOD_QUICKICON_MAINTENANCE', ], ]; diff --git a/source/packages/plg_quickicon_mokobackup/src/Extension/index.html b/source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/src/Extension/index.html similarity index 100% rename from source/packages/plg_quickicon_mokobackup/src/Extension/index.html rename to source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/src/Extension/index.html diff --git a/source/packages/plg_quickicon_mokobackup/src/index.html b/source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/src/index.html similarity index 100% rename from source/packages/plg_quickicon_mokobackup/src/index.html rename to source/packages/plg_quickicon_mokojoombackup/plg_quickicon_mokojoombackup/src/index.html diff --git a/source/packages/plg_system_mokobackup/language/en-GB/plg_system_mokobackup.ini b/source/packages/plg_system_mokobackup/language/en-GB/plg_system_mokobackup.ini deleted file mode 100644 index cdba55f..0000000 --- a/source/packages/plg_system_mokobackup/language/en-GB/plg_system_mokobackup.ini +++ /dev/null @@ -1,9 +0,0 @@ -; MokoJoomBackup — System Plugin language file (en-GB) -PLG_SYSTEM_MOKOBACKUP="System - MokoJoomBackup" -PLG_SYSTEM_MOKOBACKUP_DESCRIPTION="Automatic cleanup of expired backup archives and scheduled backup triggers." -PLG_SYSTEM_MOKOBACKUP_FIELD_AUTO_CLEANUP="Auto Cleanup" -PLG_SYSTEM_MOKOBACKUP_FIELD_AUTO_CLEANUP_DESC="Automatically remove old backup archives based on age and count limits." -PLG_SYSTEM_MOKOBACKUP_FIELD_MAX_AGE="Max Backup Age (days)" -PLG_SYSTEM_MOKOBACKUP_FIELD_MAX_AGE_DESC="Delete backup records older than this many days." -PLG_SYSTEM_MOKOBACKUP_FIELD_MAX_BACKUPS="Max Backup Count" -PLG_SYSTEM_MOKOBACKUP_FIELD_MAX_BACKUPS_DESC="Keep at most this many completed backup records." diff --git a/source/packages/plg_system_mokobackup/language/en-GB/plg_system_mokobackup.sys.ini b/source/packages/plg_system_mokobackup/language/en-GB/plg_system_mokobackup.sys.ini deleted file mode 100644 index af5c9d2..0000000 --- a/source/packages/plg_system_mokobackup/language/en-GB/plg_system_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — System Plugin system language file (en-GB) -PLG_SYSTEM_MOKOBACKUP="System - MokoJoomBackup" -PLG_SYSTEM_MOKOBACKUP_DESCRIPTION="Automatic cleanup of expired backup archives and scheduled backup triggers." diff --git a/source/packages/plg_system_mokobackup/language/en-US/plg_system_mokobackup.ini b/source/packages/plg_system_mokobackup/language/en-US/plg_system_mokobackup.ini deleted file mode 100644 index b9b8d5e..0000000 --- a/source/packages/plg_system_mokobackup/language/en-US/plg_system_mokobackup.ini +++ /dev/null @@ -1,9 +0,0 @@ -; MokoJoomBackup — System Plugin language file (en-US) -PLG_SYSTEM_MOKOBACKUP="System - MokoJoomBackup" -PLG_SYSTEM_MOKOBACKUP_DESCRIPTION="Automatic cleanup of expired backup archives and scheduled backup triggers." -PLG_SYSTEM_MOKOBACKUP_FIELD_AUTO_CLEANUP="Auto Cleanup" -PLG_SYSTEM_MOKOBACKUP_FIELD_AUTO_CLEANUP_DESC="Automatically remove old backup archives based on age and count limits." -PLG_SYSTEM_MOKOBACKUP_FIELD_MAX_AGE="Max Backup Age (days)" -PLG_SYSTEM_MOKOBACKUP_FIELD_MAX_AGE_DESC="Delete backup records older than this many days." -PLG_SYSTEM_MOKOBACKUP_FIELD_MAX_BACKUPS="Max Backup Count" -PLG_SYSTEM_MOKOBACKUP_FIELD_MAX_BACKUPS_DESC="Keep at most this many completed backup records." diff --git a/source/packages/plg_system_mokobackup/language/en-US/plg_system_mokobackup.sys.ini b/source/packages/plg_system_mokobackup/language/en-US/plg_system_mokobackup.sys.ini deleted file mode 100644 index c96a369..0000000 --- a/source/packages/plg_system_mokobackup/language/en-US/plg_system_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — System Plugin system language file (en-US) -PLG_SYSTEM_MOKOBACKUP="System - MokoJoomBackup" -PLG_SYSTEM_MOKOBACKUP_DESCRIPTION="Automatic cleanup of expired backup archives and scheduled backup triggers." diff --git a/source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.ini b/source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.ini new file mode 100644 index 0000000..246611b --- /dev/null +++ b/source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.ini @@ -0,0 +1,9 @@ +; MokoJoomBackup — System Plugin language file (en-GB) +PLG_SYSTEM_MOKOJOOMBACKUP="System - MokoJoomBackup" +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." +PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_MAX_AGE="Max Backup Age (days)" +PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_MAX_AGE_DESC="Delete backup records older than this many days." +PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_MAX_BACKUPS="Max Backup Count" +PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_MAX_BACKUPS_DESC="Keep at most this many completed backup records." 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 new file mode 100644 index 0000000..1fce9d3 --- /dev/null +++ b/source/packages/plg_system_mokojoombackup/language/en-GB/plg_system_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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.ini b/source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.ini new file mode 100644 index 0000000..8d8e47f --- /dev/null +++ b/source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.ini @@ -0,0 +1,9 @@ +; MokoJoomBackup — System Plugin language file (en-US) +PLG_SYSTEM_MOKOJOOMBACKUP="System - MokoJoomBackup" +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." +PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_MAX_AGE="Max Backup Age (days)" +PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_MAX_AGE_DESC="Delete backup records older than this many days." +PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_MAX_BACKUPS="Max Backup Count" +PLG_SYSTEM_MOKOJOOMBACKUP_FIELD_MAX_BACKUPS_DESC="Keep at most this many completed backup records." 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 new file mode 100644 index 0000000..9c4fd2e --- /dev/null +++ b/source/packages/plg_system_mokojoombackup/language/en-US/plg_system_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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_actionlog_mokobackup/mokobackup.php b/source/packages/plg_system_mokojoombackup/mokojoombackup.php similarity index 86% rename from source/packages/plg_actionlog_mokobackup/mokobackup.php rename to source/packages/plg_system_mokojoombackup/mokojoombackup.php index 2a4226a..b53cca7 100644 --- a/source/packages/plg_actionlog_mokobackup/mokobackup.php +++ b/source/packages/plg_system_mokojoombackup/mokojoombackup.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage plg_actionlog_mokobackup + * @subpackage plg_system_mokojoombackup * @author Moko Consulting * @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_mokobackup/mokobackup.xml b/source/packages/plg_system_mokojoombackup/mokojoombackup.xml similarity index 60% rename from source/packages/plg_system_mokobackup/mokobackup.xml rename to source/packages/plg_system_mokojoombackup/mokojoombackup.xml index 8d422e9..45c64e8 100644 --- a/source/packages/plg_system_mokobackup/mokobackup.xml +++ b/source/packages/plg_system_mokojoombackup/mokojoombackup.xml @@ -1,33 +1,33 @@ - plg_system_mokobackup - 01.01.09-dev + plg_system_mokojoombackup + 01.01.07-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 - PLG_SYSTEM_MOKOBACKUP_DESCRIPTION + PLG_SYSTEM_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\System\MokoBackup + Joomla\Plugin\System\MokoJoomBackup - mokobackup.php + mokojoombackup.php services src - language/en-GB/plg_system_mokobackup.ini - language/en-GB/plg_system_mokobackup.sys.ini + language/en-GB/plg_system_mokojoombackup.ini + language/en-GB/plg_system_mokojoombackup.sys.ini @@ -36,8 +36,8 @@ @@ -47,8 +47,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\MokoBackup\Extension\MokoBackupConsole; +use Joomla\Plugin\System\MokoJoomBackup\Extension\MokoJoomBackup; 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 MokoBackupConsole( + $plugin = new MokoJoomBackup( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('console', 'mokobackup') + (array) PluginHelper::getPlugin('system', 'mokojoombackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_system_mokobackup/src/Extension/MokoBackup.php b/source/packages/plg_system_mokojoombackup/plg_system_mokojoombackup/src/Extension/MokoBackup.php similarity index 83% rename from source/packages/plg_system_mokobackup/src/Extension/MokoBackup.php rename to source/packages/plg_system_mokojoombackup/plg_system_mokojoombackup/src/Extension/MokoBackup.php index c166862..f7d342f 100644 --- a/source/packages/plg_system_mokobackup/src/Extension/MokoBackup.php +++ b/source/packages/plg_system_mokojoombackup/plg_system_mokojoombackup/src/Extension/MokoBackup.php @@ -2,13 +2,13 @@ /** * @package MokoJoomBackup - * @subpackage plg_system_mokobackup + * @subpackage plg_system_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ -namespace Joomla\Plugin\System\MokoBackup\Extension; +namespace Joomla\Plugin\System\MokoJoomBackup\Extension; defined('_JEXEC') or die; @@ -17,7 +17,7 @@ use Joomla\CMS\Plugin\CMSPlugin; use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; -final class MokoBackup extends CMSPlugin implements SubscriberInterface +final class MokoJoomBackup extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; @@ -46,13 +46,13 @@ final class MokoBackup extends CMSPlugin implements SubscriberInterface // Throttle: only check once per hour via session flag $session = Factory::getSession(); - $lastCheck = $session->get('mokobackup.last_cleanup', 0); + $lastCheck = $session->get('mokojoombackup.last_cleanup', 0); if (time() - $lastCheck < 3600) { return; } - $session->set('mokobackup.last_cleanup', time()); + $session->set('mokojoombackup.last_cleanup', time()); $this->cleanupOldBackups(); } @@ -70,7 +70,7 @@ final class MokoBackup 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('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('backupstart') . ' < ' . $db->quote($cutoff)) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')); $db->setQuery($query); @@ -83,7 +83,7 @@ final class MokoBackup extends CMSPlugin implements SubscriberInterface $db->setQuery( $db->getQuery(true) - ->delete($db->quoteName('#__mokobackup_records')) + ->delete($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('id') . ' = ' . (int) $record->id) ); $db->execute(); @@ -92,7 +92,7 @@ final class MokoBackup extends CMSPlugin implements SubscriberInterface // Enforce max backups count (keep newest) $query = $db->getQuery(true) ->select('COUNT(*)') - ->from($db->quoteName('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')); $db->setQuery($query); $totalCount = (int) $db->loadResult(); @@ -101,7 +101,7 @@ final class MokoBackup extends CMSPlugin implements SubscriberInterface $excess = $totalCount - $maxBackups; $query = $db->getQuery(true) ->select('id, absolute_path') - ->from($db->quoteName('#__mokobackup_records')) + ->from($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('status') . ' = ' . $db->quote('complete')) ->order($db->quoteName('backupstart') . ' ASC'); $db->setQuery($query, 0, $excess); @@ -114,7 +114,7 @@ final class MokoBackup extends CMSPlugin implements SubscriberInterface $db->setQuery( $db->getQuery(true) - ->delete($db->quoteName('#__mokobackup_records')) + ->delete($db->quoteName('#__mokojoombackup_records')) ->where($db->quoteName('id') . ' = ' . (int) $record->id) ); $db->execute(); diff --git a/source/packages/plg_system_mokobackup/src/Extension/index.html b/source/packages/plg_system_mokojoombackup/plg_system_mokojoombackup/src/Extension/index.html similarity index 100% rename from source/packages/plg_system_mokobackup/src/Extension/index.html rename to source/packages/plg_system_mokojoombackup/plg_system_mokojoombackup/src/Extension/index.html diff --git a/source/packages/plg_system_mokobackup/src/index.html b/source/packages/plg_system_mokojoombackup/plg_system_mokojoombackup/src/index.html similarity index 100% rename from source/packages/plg_system_mokobackup/src/index.html rename to source/packages/plg_system_mokojoombackup/plg_system_mokojoombackup/src/index.html diff --git a/source/packages/plg_task_mokobackup/language/en-GB/plg_task_mokobackup.ini b/source/packages/plg_task_mokobackup/language/en-GB/plg_task_mokobackup.ini deleted file mode 100644 index 0b8dfb0..0000000 --- a/source/packages/plg_task_mokobackup/language/en-GB/plg_task_mokobackup.ini +++ /dev/null @@ -1,12 +0,0 @@ -; MokoJoomBackup — Task Plugin language file (en-GB) -PLG_TASK_MOKOBACKUP="Task - MokoJoomBackup" -PLG_TASK_MOKOBACKUP_DESCRIPTION="Scheduled task plugin for MokoJoomBackup. Allows running backup profiles on a schedule via Joomla's Scheduled Tasks system." - -; Task type -PLG_TASK_MOKOBACKUP_TASK_RUN_PROFILE_TITLE="MokoJoomBackup: Run Backup Profile" -PLG_TASK_MOKOBACKUP_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_MOKOBACKUP_FIELD_PROFILE="Backup Profile" -PLG_TASK_MOKOBACKUP_FIELD_PROFILE_DESC="Select which backup profile to run. Each profile defines backup type (full/database/files), exclusion filters, and storage settings." -PLG_TASK_MOKOBACKUP_SELECT_PROFILE="- Select Profile -" diff --git a/source/packages/plg_task_mokobackup/language/en-GB/plg_task_mokobackup.sys.ini b/source/packages/plg_task_mokobackup/language/en-GB/plg_task_mokobackup.sys.ini deleted file mode 100644 index f75bb7e..0000000 --- a/source/packages/plg_task_mokobackup/language/en-GB/plg_task_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Task Plugin system language file (en-GB) -PLG_TASK_MOKOBACKUP="Task - MokoJoomBackup" -PLG_TASK_MOKOBACKUP_DESCRIPTION="Scheduled task plugin for MokoJoomBackup. Run backup profiles on a schedule via Joomla's Scheduled Tasks." diff --git a/source/packages/plg_task_mokobackup/language/en-US/plg_task_mokobackup.ini b/source/packages/plg_task_mokobackup/language/en-US/plg_task_mokobackup.ini deleted file mode 100644 index 02d0939..0000000 --- a/source/packages/plg_task_mokobackup/language/en-US/plg_task_mokobackup.ini +++ /dev/null @@ -1,8 +0,0 @@ -; MokoJoomBackup — Task Plugin language file (en-US) -PLG_TASK_MOKOBACKUP="Task - MokoJoomBackup" -PLG_TASK_MOKOBACKUP_DESCRIPTION="Scheduled task plugin for MokoJoomBackup. Allows running backup profiles on a schedule via Joomla's Scheduled Tasks system." -PLG_TASK_MOKOBACKUP_TASK_RUN_PROFILE_TITLE="MokoJoomBackup: Run Backup Profile" -PLG_TASK_MOKOBACKUP_TASK_RUN_PROFILE_DESC="Run a MokoJoomBackup backup using the selected profile. Create multiple tasks with different profiles for different backup schedules." -PLG_TASK_MOKOBACKUP_FIELD_PROFILE="Backup Profile" -PLG_TASK_MOKOBACKUP_FIELD_PROFILE_DESC="Select which backup profile to run." -PLG_TASK_MOKOBACKUP_SELECT_PROFILE="- Select Profile -" diff --git a/source/packages/plg_task_mokobackup/language/en-US/plg_task_mokobackup.sys.ini b/source/packages/plg_task_mokobackup/language/en-US/plg_task_mokobackup.sys.ini deleted file mode 100644 index c2ba0a8..0000000 --- a/source/packages/plg_task_mokobackup/language/en-US/plg_task_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — Task Plugin system language file (en-US) -PLG_TASK_MOKOBACKUP="Task - MokoJoomBackup" -PLG_TASK_MOKOBACKUP_DESCRIPTION="Scheduled task plugin for MokoJoomBackup. Run backup profiles on a schedule via Joomla's Scheduled Tasks." diff --git a/source/packages/plg_task_mokobackup/mokobackup.php b/source/packages/plg_task_mokobackup/mokobackup.php deleted file mode 100644 index 30fa3ac..0000000 --- a/source/packages/plg_task_mokobackup/mokobackup.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_task_mokobackup/services/provider.php b/source/packages/plg_task_mokobackup/services/provider.php deleted file mode 100644 index 00b1ac0..0000000 --- a/source/packages/plg_task_mokobackup/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\Task\MokoBackup\Extension\MokoBackupTask; - -return new class () implements ServiceProviderInterface { - public function register(Container $container): void - { - $container->set( - PluginInterface::class, - function (Container $container) { - $plugin = new MokoBackupTask( - $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('task', 'mokobackup') - ); - $plugin->setApplication(Factory::getApplication()); - - return $plugin; - } - ); - } -}; 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 new file mode 100644 index 0000000..ef0115d --- /dev/null +++ b/source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.ini @@ -0,0 +1,12 @@ +; 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 new file mode 100644 index 0000000..cc26e23 --- /dev/null +++ b/source/packages/plg_task_mokojoombackup/language/en-GB/plg_task_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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 new file mode 100644 index 0000000..7deadad --- /dev/null +++ b/source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.ini @@ -0,0 +1,8 @@ +; 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 new file mode 100644 index 0000000..4850f90 --- /dev/null +++ b/source/packages/plg_task_mokojoombackup/language/en-US/plg_task_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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_system_mokobackup/mokobackup.php b/source/packages/plg_task_mokojoombackup/mokojoombackup.php similarity index 87% rename from source/packages/plg_system_mokobackup/mokobackup.php rename to source/packages/plg_task_mokojoombackup/mokojoombackup.php index 9cabb97..4cc8120 100644 --- a/source/packages/plg_system_mokobackup/mokobackup.php +++ b/source/packages/plg_task_mokojoombackup/mokojoombackup.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage plg_system_mokobackup + * @subpackage plg_task_mokojoombackup * @author Moko Consulting * @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_mokobackup/mokobackup.xml b/source/packages/plg_task_mokojoombackup/mokojoombackup.xml similarity index 63% rename from source/packages/plg_task_mokobackup/mokobackup.xml rename to source/packages/plg_task_mokojoombackup/mokojoombackup.xml index 523cefd..b65b02d 100644 --- a/source/packages/plg_task_mokobackup/mokobackup.xml +++ b/source/packages/plg_task_mokojoombackup/mokojoombackup.xml @@ -1,33 +1,33 @@ - plg_task_mokobackup - 01.01.09-dev + plg_task_mokojoombackup + 01.01.07-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 - PLG_TASK_MOKOBACKUP_DESCRIPTION + PLG_TASK_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\Task\MokoBackup + Joomla\Plugin\Task\MokoJoomBackup - mokobackup.php + mokojoombackup.php services src forms - language/en-GB/plg_task_mokobackup.ini - language/en-GB/plg_task_mokobackup.sys.ini + language/en-GB/plg_task_mokojoombackup.ini + language/en-GB/plg_task_mokojoombackup.sys.ini diff --git a/source/packages/plg_task_mokobackup/forms/index.html b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/forms/index.html similarity index 100% rename from source/packages/plg_task_mokobackup/forms/index.html rename to source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/forms/index.html diff --git a/source/packages/plg_task_mokobackup/forms/run_profile.xml b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/forms/run_profile.xml similarity index 55% rename from source/packages/plg_task_mokobackup/forms/run_profile.xml rename to source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/forms/run_profile.xml index ad07f85..57ee2f4 100644 --- a/source/packages/plg_task_mokobackup/forms/run_profile.xml +++ b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/forms/run_profile.xml @@ -9,13 +9,13 @@ - + diff --git a/source/packages/plg_task_mokobackup/index.html b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/index.html similarity index 100% rename from source/packages/plg_task_mokobackup/index.html rename to source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/index.html diff --git a/source/packages/plg_task_mokobackup/language/en-GB/index.html b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/language/en-GB/index.html similarity index 100% rename from source/packages/plg_task_mokobackup/language/en-GB/index.html rename to source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/language/en-GB/index.html diff --git a/source/packages/plg_task_mokobackup/language/en-US/index.html b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/language/en-US/index.html similarity index 100% rename from source/packages/plg_task_mokobackup/language/en-US/index.html rename to source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/language/en-US/index.html diff --git a/source/packages/plg_task_mokobackup/language/index.html b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/language/index.html similarity index 100% rename from source/packages/plg_task_mokobackup/language/index.html rename to source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/language/index.html diff --git a/source/packages/plg_task_mokobackup/services/index.html b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/services/index.html similarity index 100% rename from source/packages/plg_task_mokobackup/services/index.html rename to source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/services/index.html diff --git a/source/packages/plg_system_mokobackup/services/provider.php b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/services/provider.php similarity index 80% rename from source/packages/plg_system_mokobackup/services/provider.php rename to source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/services/provider.php index f0bf9f9..f48dbc4 100644 --- a/source/packages/plg_system_mokobackup/services/provider.php +++ b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/services/provider.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage plg_system_mokobackup + * @subpackage plg_task_mokojoombackup * @author Moko Consulting * @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\MokoBackup\Extension\MokoBackup; +use Joomla\Plugin\Task\MokoJoomBackup\Extension\MokoJoomBackupTask; 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 MokoBackup( + $plugin = new MokoJoomBackupTask( $container->get(DispatcherInterface::class), - (array) PluginHelper::getPlugin('system', 'mokobackup') + (array) PluginHelper::getPlugin('task', 'mokojoombackup') ); $plugin->setApplication(Factory::getApplication()); diff --git a/source/packages/plg_task_mokobackup/src/Extension/MokoBackupTask.php b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/src/Extension/MokoBackupTask.php similarity index 81% rename from source/packages/plg_task_mokobackup/src/Extension/MokoBackupTask.php rename to source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/src/Extension/MokoBackupTask.php index 723642b..4023778 100644 --- a/source/packages/plg_task_mokobackup/src/Extension/MokoBackupTask.php +++ b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/src/Extension/MokoBackupTask.php @@ -2,7 +2,7 @@ /** * @package MokoJoomBackup - * @subpackage plg_task_mokobackup + * @subpackage plg_task_mokojoombackup * @author Moko Consulting * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE @@ -14,7 +14,7 @@ * each pointing to a different backup profile — just like Akeeba Backup Pro. */ -namespace Joomla\Plugin\Task\MokoBackup\Extension; +namespace Joomla\Plugin\Task\MokoJoomBackup\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 MokoBackupTask extends CMSPlugin implements SubscriberInterface +final class MokoJoomBackupTask extends CMSPlugin implements SubscriberInterface { use TaskPluginTrait; @@ -38,8 +38,8 @@ final class MokoBackupTask extends CMSPlugin implements SubscriberInterface * so different backup profiles run on different schedules. */ protected const TASKS_MAP = [ - 'mokobackup.run_profile' => [ - 'langConstPrefix' => 'PLG_TASK_MOKOBACKUP_TASK_RUN_PROFILE', + 'mokojoombackup.run_profile' => [ + 'langConstPrefix' => 'PLG_TASK_MOKOJOOMBACKUP_TASK_RUN_PROFILE', 'method' => 'runBackupProfile', 'form' => 'run_profile', ], @@ -67,7 +67,7 @@ final class MokoBackupTask extends CMSPlugin implements SubscriberInterface $profileId = (int) ($params->profile_id ?? 1); // Load the backup engine from the component - $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokobackup/src/Engine/BackupEngine.php'; + $engineFile = JPATH_ADMINISTRATOR . '/components/com_mokojoombackup/src/Engine/BackupEngine.php'; if (!file_exists($engineFile)) { $this->logTask('MokoJoomBackup component not installed — cannot run backup.'); @@ -76,11 +76,11 @@ final class MokoBackupTask extends CMSPlugin implements SubscriberInterface } // The autoloader should handle this via namespace, but ensure class is available - if (!class_exists('\\Joomla\\Component\\MokoBackup\\Administrator\\Engine\\BackupEngine')) { + if (!class_exists('\\Joomla\\Component\\MokoJoomBackup\\Administrator\\Engine\\BackupEngine')) { require_once $engineFile; } - $engine = new \Joomla\Component\MokoBackup\Administrator\Engine\BackupEngine(); + $engine = new \Joomla\Component\MokoJoomBackup\Administrator\Engine\BackupEngine(); $result = $engine->run($profileId, 'Scheduled task backup', 'scheduled'); if ($result['success']) { diff --git a/source/packages/plg_task_mokobackup/src/Extension/index.html b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/src/Extension/index.html similarity index 100% rename from source/packages/plg_task_mokobackup/src/Extension/index.html rename to source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/src/Extension/index.html diff --git a/source/packages/plg_task_mokobackup/src/index.html b/source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/src/index.html similarity index 100% rename from source/packages/plg_task_mokobackup/src/index.html rename to source/packages/plg_task_mokojoombackup/plg_task_mokojoombackup/src/index.html diff --git a/source/packages/plg_webservices_mokobackup/language/en-GB/plg_webservices_mokobackup.ini b/source/packages/plg_webservices_mokobackup/language/en-GB/plg_webservices_mokobackup.ini deleted file mode 100644 index 7038eca..0000000 --- a/source/packages/plg_webservices_mokobackup/language/en-GB/plg_webservices_mokobackup.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — WebServices Plugin language file (en-GB) -PLG_WEBSERVICES_MOKOBACKUP="Web Services - MokoJoomBackup" -PLG_WEBSERVICES_MOKOBACKUP_DESCRIPTION="REST API for remote backup management. Provides endpoints to start, list, download, and delete backups." diff --git a/source/packages/plg_webservices_mokobackup/language/en-GB/plg_webservices_mokobackup.sys.ini b/source/packages/plg_webservices_mokobackup/language/en-GB/plg_webservices_mokobackup.sys.ini deleted file mode 100644 index 3b2da03..0000000 --- a/source/packages/plg_webservices_mokobackup/language/en-GB/plg_webservices_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — WebServices Plugin system language file (en-GB) -PLG_WEBSERVICES_MOKOBACKUP="Web Services - MokoJoomBackup" -PLG_WEBSERVICES_MOKOBACKUP_DESCRIPTION="REST API for remote backup management." diff --git a/source/packages/plg_webservices_mokobackup/language/en-US/plg_webservices_mokobackup.ini b/source/packages/plg_webservices_mokobackup/language/en-US/plg_webservices_mokobackup.ini deleted file mode 100644 index e015f44..0000000 --- a/source/packages/plg_webservices_mokobackup/language/en-US/plg_webservices_mokobackup.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — WebServices Plugin language file (en-US) -PLG_WEBSERVICES_MOKOBACKUP="Web Services - MokoJoomBackup" -PLG_WEBSERVICES_MOKOBACKUP_DESCRIPTION="REST API for remote backup management. Provides endpoints to start, list, download, and delete backups." diff --git a/source/packages/plg_webservices_mokobackup/language/en-US/plg_webservices_mokobackup.sys.ini b/source/packages/plg_webservices_mokobackup/language/en-US/plg_webservices_mokobackup.sys.ini deleted file mode 100644 index c728408..0000000 --- a/source/packages/plg_webservices_mokobackup/language/en-US/plg_webservices_mokobackup.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoJoomBackup — WebServices Plugin system language file (en-US) -PLG_WEBSERVICES_MOKOBACKUP="Web Services - MokoJoomBackup" -PLG_WEBSERVICES_MOKOBACKUP_DESCRIPTION="REST API for remote backup management." diff --git a/source/packages/plg_webservices_mokobackup/mokobackup.php b/source/packages/plg_webservices_mokobackup/mokobackup.php deleted file mode 100644 index 5a84f43..0000000 --- a/source/packages/plg_webservices_mokobackup/mokobackup.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/language/en-GB/plg_webservices_mokojoombackup.ini b/source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.ini new file mode 100644 index 0000000..b712a7f --- /dev/null +++ b/source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.ini @@ -0,0 +1,3 @@ +; MokoJoomBackup — WebServices Plugin language file (en-GB) +PLG_WEBSERVICES_MOKOJOOMBACKUP="Web Services - MokoJoomBackup" +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_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.sys.ini b/source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.sys.ini new file mode 100644 index 0000000..575a5a7 --- /dev/null +++ b/source/packages/plg_webservices_mokojoombackup/language/en-GB/plg_webservices_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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.ini b/source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.ini new file mode 100644 index 0000000..6fbd792 --- /dev/null +++ b/source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.ini @@ -0,0 +1,3 @@ +; MokoJoomBackup — WebServices Plugin language file (en-US) +PLG_WEBSERVICES_MOKOJOOMBACKUP="Web Services - MokoJoomBackup" +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_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.sys.ini b/source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.sys.ini new file mode 100644 index 0000000..0d83f11 --- /dev/null +++ b/source/packages/plg_webservices_mokojoombackup/language/en-US/plg_webservices_mokojoombackup.sys.ini @@ -0,0 +1,3 @@ +; 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 new file mode 100644 index 0000000..d3162d7 --- /dev/null +++ b/source/packages/plg_webservices_mokojoombackup/mokojoombackup.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_mokobackup/mokobackup.xml b/source/packages/plg_webservices_mokojoombackup/mokojoombackup.xml similarity index 59% rename from source/packages/plg_webservices_mokobackup/mokobackup.xml rename to source/packages/plg_webservices_mokojoombackup/mokojoombackup.xml index 0b7e1e0..f63f135 100644 --- a/source/packages/plg_webservices_mokobackup/mokobackup.xml +++ b/source/packages/plg_webservices_mokojoombackup/mokojoombackup.xml @@ -1,32 +1,32 @@ - plg_webservices_mokobackup - 01.01.09-dev + plg_webservices_mokojoombackup + 01.01.07-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 - PLG_WEBSERVICES_MOKOBACKUP_DESCRIPTION + PLG_WEBSERVICES_MOKOJOOMBACKUP_DESCRIPTION - Joomla\Plugin\WebServices\MokoBackup + Joomla\Plugin\WebServices\MokoJoomBackup - mokobackup.php + mokojoombackup.php services src - language/en-GB/plg_webservices_mokobackup.ini - language/en-GB/plg_webservices_mokobackup.sys.ini + language/en-GB/plg_webservices_mokojoombackup.ini + language/en-GB/plg_webservices_mokojoombackup.sys.ini diff --git a/source/packages/plg_webservices_mokobackup/index.html b/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/index.html similarity index 100% rename from source/packages/plg_webservices_mokobackup/index.html rename to source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/index.html diff --git a/source/packages/plg_webservices_mokobackup/language/en-GB/index.html b/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/language/en-GB/index.html similarity index 100% rename from source/packages/plg_webservices_mokobackup/language/en-GB/index.html rename to source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/language/en-GB/index.html diff --git a/source/packages/plg_webservices_mokobackup/language/en-US/index.html b/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/language/en-US/index.html similarity index 100% rename from source/packages/plg_webservices_mokobackup/language/en-US/index.html rename to source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/language/en-US/index.html diff --git a/source/packages/plg_webservices_mokobackup/language/index.html b/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/language/index.html similarity index 100% rename from source/packages/plg_webservices_mokobackup/language/index.html rename to source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/language/index.html diff --git a/source/packages/plg_webservices_mokobackup/services/index.html b/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/services/index.html similarity index 100% rename from source/packages/plg_webservices_mokobackup/services/index.html rename to source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/services/index.html diff --git a/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/services/provider.php b/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/services/provider.php new file mode 100644 index 0000000..b96697f --- /dev/null +++ b/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/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\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_mokobackup/src/Extension/MokoBackupWebServices.php b/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/src/Extension/MokoBackupWebServices.php similarity index 60% rename from source/packages/plg_webservices_mokobackup/src/Extension/MokoBackupWebServices.php rename to source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/src/Extension/MokoBackupWebServices.php index b6ad328..8a67e20 100644 --- a/source/packages/plg_webservices_mokobackup/src/Extension/MokoBackupWebServices.php +++ b/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/src/Extension/MokoBackupWebServices.php @@ -2,22 +2,22 @@ /** * @package MokoJoomBackup - * @subpackage plg_webservices_mokobackup + * @subpackage plg_webservices_mokojoombackup * @author Moko Consulting * @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_mokobackup MCP server. + * REST API endpoints — wire-compatible with the mcp_mokojoombackup MCP server. * * Akeeba-compatible routes: - * POST /api/index.php/v1/mokobackup/backup — Start backup - * GET /api/index.php/v1/mokobackup/backups — List records - * DELETE /api/index.php/v1/mokobackup/backup/:id — Delete record - * GET /api/index.php/v1/mokobackup/backup/:id/download — Download archive - * GET /api/index.php/v1/mokobackup/profiles — List profiles + * 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 */ -namespace Joomla\Plugin\WebServices\MokoBackup\Extension; +namespace Joomla\Plugin\WebServices\MokoJoomBackup\Extension; defined('_JEXEC') or die; @@ -27,7 +27,7 @@ use Joomla\Event\Event; use Joomla\Event\SubscriberInterface; use Joomla\Router\Route; -final class MokoBackupWebServices extends CMSPlugin implements SubscriberInterface +final class MokoJoomBackupWebServices extends CMSPlugin implements SubscriberInterface { protected $autoloadLanguage = true; @@ -44,18 +44,18 @@ final class MokoBackupWebServices extends CMSPlugin implements SubscriberInterfa [$router] = array_values($event->getArguments()); $defaults = [ - 'component' => 'com_mokobackup', + 'component' => 'com_mokojoombackup', 'public' => false, ]; // Standard CRUD for backup records - $router->createCRUDRoutes('v1/mokobackup/backups', 'backups', $defaults); + $router->createCRUDRoutes('v1/mokojoombackup/backups', 'backups', $defaults); // Start a backup (POST) $router->addRoute( new Route( ['POST'], - 'v1/mokobackup/backup', + 'v1/mokojoombackup/backup', 'backups.backup', [], $defaults @@ -66,7 +66,7 @@ final class MokoBackupWebServices extends CMSPlugin implements SubscriberInterfa $router->addRoute( new Route( ['DELETE'], - 'v1/mokobackup/backup/:id', + 'v1/mokojoombackup/backup/:id', 'backups.delete', ['id' => '(\d+)'], $defaults @@ -77,7 +77,7 @@ final class MokoBackupWebServices extends CMSPlugin implements SubscriberInterfa $router->addRoute( new Route( ['GET'], - 'v1/mokobackup/backup/:id/download', + 'v1/mokojoombackup/backup/:id/download', 'backups.download', ['id' => '(\d+)'], $defaults @@ -88,7 +88,7 @@ final class MokoBackupWebServices extends CMSPlugin implements SubscriberInterfa $router->addRoute( new Route( ['GET'], - 'v1/mokobackup/profiles', + 'v1/mokojoombackup/profiles', 'backups.profiles', [], $defaults diff --git a/source/packages/plg_webservices_mokobackup/src/Extension/index.html b/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/src/Extension/index.html similarity index 100% rename from source/packages/plg_webservices_mokobackup/src/Extension/index.html rename to source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/src/Extension/index.html diff --git a/source/packages/plg_webservices_mokobackup/src/index.html b/source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/src/index.html similarity index 100% rename from source/packages/plg_webservices_mokobackup/src/index.html rename to source/packages/plg_webservices_mokojoombackup/plg_webservices_mokojoombackup/src/index.html diff --git a/source/pkg_mokobackup.xml b/source/pkg_mokojoombackup.xml similarity index 53% rename from source/pkg_mokobackup.xml rename to source/pkg_mokojoombackup.xml index ce73908..b0e12be 100644 --- a/source/pkg_mokobackup.xml +++ b/source/pkg_mokojoombackup.xml @@ -7,31 +7,31 @@ --> Package - MokoJoomBackup - mokobackup - 01.01.09-dev + mokojoombackup + 01.01.07-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_MOKOBACKUP_DESCRIPTION + PKG_MOKOJOOMBACKUP_DESCRIPTION script.php - com_mokobackup.zip - plg_system_mokobackup.zip - plg_task_mokobackup.zip - plg_quickicon_mokobackup.zip - plg_webservices_mokobackup.zip - plg_console_mokobackup.zip - plg_content_mokobackup.zip - plg_actionlog_mokobackup.zip + 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_mokobackup.sys.ini + language/en-GB/pkg_mokojoombackup.sys.ini diff --git a/source/script.php b/source/script.php index d970bcd..017b868 100644 --- a/source/script.php +++ b/source/script.php @@ -14,7 +14,7 @@ use Joomla\CMS\Installer\InstallerAdapter; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; -class Pkg_MokoBackupInstallerScript +class Pkg_MokoJoomBackupInstallerScript { /** * Minimum Joomla version required @@ -42,7 +42,7 @@ class Pkg_MokoBackupInstallerScript { if (version_compare(PHP_VERSION, $this->minimumPhp, '<')) { Factory::getApplication()->enqueueMessage( - Text::sprintf('PKG_MOKOBACKUP_PHP_VERSION_ERROR', $this->minimumPhp), + Text::sprintf('PKG_MOKOJOOMBACKUP_PHP_VERSION_ERROR', $this->minimumPhp), 'error' ); @@ -70,7 +70,7 @@ class Pkg_MokoBackupInstallerScript ->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('mokobackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); $db->setQuery($query); $db->execute(); @@ -81,7 +81,7 @@ class Pkg_MokoBackupInstallerScript ->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('mokobackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); $db->setQuery($query); $db->execute(); @@ -92,7 +92,7 @@ class Pkg_MokoBackupInstallerScript ->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('mokobackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); $db->setQuery($query); $db->execute(); @@ -103,7 +103,7 @@ class Pkg_MokoBackupInstallerScript ->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('mokobackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); $db->setQuery($query); $db->execute(); @@ -114,7 +114,7 @@ class Pkg_MokoBackupInstallerScript ->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('mokobackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); $db->setQuery($query); $db->execute(); @@ -125,7 +125,7 @@ class Pkg_MokoBackupInstallerScript ->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('mokobackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); $db->setQuery($query); $db->execute(); @@ -136,13 +136,13 @@ class Pkg_MokoBackupInstallerScript ->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('mokobackup')); + ->where($db->quoteName('element') . ' = ' . $db->quote('mokojoombackup')); $db->setQuery($query); $db->execute(); // Create default backup directory - $backupDir = JPATH_ADMINISTRATOR . '/components/com_mokobackup/backups'; + $backupDir = JPATH_ADMINISTRATOR . '/components/com_mokojoombackup/backups'; if (!is_dir($backupDir)) { mkdir($backupDir, 0755, true); @@ -181,7 +181,7 @@ class Pkg_MokoBackupInstallerScript $db->quoteName('#__extensions', 'e') . ' ON ' . $db->quoteName('e.extension_id') . ' = ' . $db->quoteName('use.extension_id') ) - ->where($db->quoteName('e.element') . ' = ' . $db->quote('pkg_mokobackup')) + ->where($db->quoteName('e.element') . ' = ' . $db->quote('pkg_mokojoombackup')) ->where($db->quoteName('e.type') . ' = ' . $db->quote('package')) ->setLimit(1); @@ -190,11 +190,11 @@ class Pkg_MokoBackupInstallerScript if ($updateSiteId > 0) { $editUrl = Route::_( - 'index.php?option=com_installer&view=updatesites&filter[search]=mokobackup' + 'index.php?option=com_installer&view=updatesites&filter[search]=mokojoombackup' ); Factory::getApplication()->enqueueMessage( - Text::sprintf('PKG_MOKOBACKUP_POSTINSTALL_UPDATE_SITE', $editUrl), + Text::sprintf('PKG_MOKOJOOMBACKUP_POSTINSTALL_UPDATE_SITE', $editUrl), 'info' ); }