fix: convert single-line comments to block comments in script.php

The build pipeline strips newlines from PHP files during packaging.
Single-line comments (//) then eat everything after them on the
concatenated line, causing a FatalError on install. Block comments
(/* */) survive minification.
This commit is contained in:
Jonathan Miller
2026-06-22 19:38:46 -05:00
parent d562e0dc10
commit 8ea09ee0d1
+24 -24
View File
@@ -58,7 +58,7 @@ class Pkg_MokoSuiteBackupInstallerScript
return false;
}
// Check required PHP extensions (warn but don't block install)
/* Check required PHP extensions (warn but don't block install) */
$requiredExts = ['zip', 'pdo', 'pdo_mysql', 'mbstring', 'curl'];
$missingExts = array_filter($requiredExts, fn($ext) => !extension_loaded($ext));
@@ -71,7 +71,7 @@ class Pkg_MokoSuiteBackupInstallerScript
);
}
// Save download key before Joomla re-registers the update site
/* Save download key before Joomla re-registers the update site */
if ($type === 'update') {
$this->preflight_saveKey();
}
@@ -138,43 +138,43 @@ class Pkg_MokoSuiteBackupInstallerScript
return;
}
// Restore download key if it was saved before update
/* Restore download key if it was saved before update */
if ($this->savedDownloadKey !== null) {
$this->restoreDownloadKey();
}
if ($type === 'install') {
// Enable all bundled plugins on fresh install
/* Enable all bundled plugins on fresh install */
$this->enableBundledPlugins();
// Create default backup directory in site root
/* Create default backup directory in site root */
$this->createBackupDirectory();
// Generate a random webcron secret word
/* Generate a random webcron secret word */
$this->generateWebcronSecret();
// Create default scheduled task for backup automation
/* Create default scheduled task for backup automation */
$this->createDefaultScheduledTask();
}
// Ensure submenu items exist and are up to date
// (Joomla may not add new submenu entries or update params on upgrades)
/* Ensure submenu items exist and are up to date */
/* (Joomla may not add new submenu entries or update params on upgrades) */
$this->ensureSubmenuItems();
// Fix package client_id — packages must be client_id=0 (site) for
// Joomla's updater to match the <client>site</client> in updates.xml
/* Fix package client_id — packages must be client_id=0 (site) for */
/* Joomla's updater to match the <client>site</client> in updates.xml */
$this->fixPackageClientId();
// Sync submenu icons in #__menu (Joomla doesn't update icons on upgrades)
/* Sync submenu icons in #__menu (Joomla doesn't update icons on upgrades) */
$this->syncMenuIcons();
// Warn if no license key configured
/* Warn if no license key configured */
$this->warnMissingLicenseKey();
// Migrate profiles with old default backup_dir values to [DEFAULT_DIR] placeholder
/* Migrate profiles with old default backup_dir values to [DEFAULT_DIR] placeholder */
$this->migrateDefaultBackupDir();
// Remind user to review backup profile settings
/* Remind user to review backup profile settings */
if ($type === 'install') {
$profileUrl = Route::_('index.php?option=com_mokosuitebackup&view=profiles');
@@ -196,7 +196,7 @@ class Pkg_MokoSuiteBackupInstallerScript
try {
$db = Factory::getDbo();
// Load current component params
/* Load current component params */
$query = $db->getQuery(true)
->select($db->quoteName('params'))
->from($db->quoteName('#__extensions'))
@@ -208,7 +208,7 @@ class Pkg_MokoSuiteBackupInstallerScript
$params = json_decode($rawParams ?: '{}', true) ?: [];
// Only generate if not already set
/* Only generate if not already set */
if (!empty($params['webcron_secret'])) {
return;
}
@@ -286,7 +286,7 @@ class Pkg_MokoSuiteBackupInstallerScript
return;
}
// Protect directory from direct web access
/* Protect directory from direct web access */
$htaccess = $backupDir . '/.htaccess';
if (!file_exists($htaccess)) {
@@ -361,7 +361,7 @@ class Pkg_MokoSuiteBackupInstallerScript
try {
$db = Factory::getDbo();
// Check if a MokoSuiteBackup task already exists
/* Check if a MokoSuiteBackup task already exists */
$query = $db->getQuery(true)
->select('COUNT(*)')
->from($db->quoteName('#__scheduler_tasks'))
@@ -460,7 +460,7 @@ class Pkg_MokoSuiteBackupInstallerScript
try {
$db = Factory::getDbo();
// Find the parent menu item for our component
/* Find the parent menu item for our component */
$query = $db->getQuery(true)
->select([$db->quoteName('id'), $db->quoteName('menutype')])
->from($db->quoteName('#__menu'))
@@ -476,7 +476,7 @@ class Pkg_MokoSuiteBackupInstallerScript
return;
}
// Get the component extension_id
/* Get the component extension_id */
$query = $db->getQuery(true)
->select($db->quoteName('extension_id'))
->from($db->quoteName('#__extensions'))
@@ -492,7 +492,7 @@ class Pkg_MokoSuiteBackupInstallerScript
}
foreach ($submenus as $submenu) {
// Check if this submenu item already exists
/* Check if this submenu item already exists */
$query = $db->getQuery(true)
->select([$db->quoteName('id'), $db->quoteName('params')])
->from($db->quoteName('#__menu'))
@@ -503,7 +503,7 @@ class Pkg_MokoSuiteBackupInstallerScript
$existing = $db->loadObject();
if ($existing) {
// Merge menu_icon into existing params to preserve other settings
/* Merge menu_icon into existing params to preserve other settings */
$existingParams = json_decode($existing->params ?? '{}', true) ?: [];
$existingParams['menu_icon'] = $submenu['menu_icon'];
$mergedParams = json_encode($existingParams);
@@ -517,7 +517,7 @@ class Pkg_MokoSuiteBackupInstallerScript
continue;
}
// Use Joomla's MenuTable to create the item properly
/* Use Joomla's MenuTable to create the item properly */
$table = Factory::getApplication()
->bootComponent('com_menus')
->getMVCFactory()