diff --git a/src/packages/com_mokobackup/language/en-GB/com_mokobackup.ini b/src/packages/com_mokobackup/language/en-GB/com_mokobackup.ini index dd9c1d0..0921f20 100644 --- a/src/packages/com_mokobackup/language/en-GB/com_mokobackup.ini +++ b/src/packages/com_mokobackup/language/en-GB/com_mokobackup.ini @@ -189,6 +189,11 @@ COM_MOKOBACKUP_FIELD_S3_PATH_DESC="Optional path prefix inside the bucket (e.g. 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." + ; 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/src/packages/com_mokobackup/language/en-US/com_mokobackup.ini b/src/packages/com_mokobackup/language/en-US/com_mokobackup.ini index 2f000f1..309264d 100644 --- a/src/packages/com_mokobackup/language/en-US/com_mokobackup.ini +++ b/src/packages/com_mokobackup/language/en-US/com_mokobackup.ini @@ -13,3 +13,6 @@ 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." diff --git a/src/packages/com_mokobackup/src/View/Backups/HtmlView.php b/src/packages/com_mokobackup/src/View/Backups/HtmlView.php index 1dde363..b6fdf9f 100644 --- a/src/packages/com_mokobackup/src/View/Backups/HtmlView.php +++ b/src/packages/com_mokobackup/src/View/Backups/HtmlView.php @@ -15,6 +15,7 @@ defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; +use Joomla\CMS\Router\Route; use Joomla\CMS\Toolbar\ToolbarHelper; class HtmlView extends BaseHtmlView @@ -44,11 +45,53 @@ class HtmlView extends BaseHtmlView $db->setQuery($query); $this->profiles = $db->loadObjectList() ?: []; + $this->checkUpdateSite(); $this->addToolbar(); parent::display($tpl); } + /** + * Show an info notice linking to the update site record so the user + * can configure their download key for automatic updates. + */ + protected function checkUpdateSite(): void + { + $db = Factory::getDbo(); + + // Find the update site ID linked to pkg_mokobackup + $query = $db->getQuery(true) + ->select($db->quoteName('us.update_site_id')) + ->from($db->quoteName('#__update_sites', 'us')) + ->join( + 'INNER', + $db->quoteName('#__update_sites_extensions', 'use') + . ' ON ' . $db->quoteName('use.update_site_id') . ' = ' . $db->quoteName('us.update_site_id') + ) + ->join( + 'INNER', + $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.type') . ' = ' . $db->quote('package')) + ->setLimit(1); + + $db->setQuery($query); + $updateSiteId = (int) $db->loadResult(); + + if ($updateSiteId > 0) { + $editUrl = Route::_( + 'index.php?option=com_installer&view=updatesites&task=updatesite.edit&id=' . $updateSiteId + ); + + Factory::getApplication()->enqueueMessage( + Text::sprintf('COM_MOKOBACKUP_UPDATE_SITE_NOTICE', $editUrl), + 'info' + ); + } + } + protected function addToolbar(): void { ToolbarHelper::title(Text::_('COM_MOKOBACKUP_BACKUPS_TITLE'), 'database'); diff --git a/src/script.php b/src/script.php index ed0db68..ea6ed40 100644 --- a/src/script.php +++ b/src/script.php @@ -12,6 +12,7 @@ defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Installer\InstallerAdapter; use Joomla\CMS\Language\Text; +use Joomla\CMS\Router\Route; class Pkg_MokoBackupInstallerScript { @@ -118,5 +119,54 @@ class Pkg_MokoBackupInstallerScript file_put_contents($backupDir . '/index.html', '