XOOPS 2.7.0 introduces Smarty 4, a new admin theme set, modernized libraries, and PHP 8.2+ baseline code. The upgrade process from 2.5.x has been redesigned to support this safely.
Warning
If you use custom themes or custom module templates, move them into theme folders (not the database) before upgrading so that the preflight scanner can analyze them.
Make a full backup of both the XOOPS files and the XOOPS database before making any changes. Do not skip this — the upgrade touches templates, database schema, and configuration files.
- Enable debugging in System Options → Preferences → General Settings (optional but helpful).
- Turn the site off in System Options → Preferences → General Settings so that visitors do not hit the site mid-upgrade.
From the XOOPS 2.7.0 distribution:
- Copy the contents of
htdocs/over your live web root. - Copy the contents of
htdocs/xoops_lib/into the directory you are using asXOOPS_PATH(renamed/relocated or not). - Copy the contents of
htdocs/xoops_data/into the directory you are using asXOOPS_VAR_PATH. Existing customized config files inxoops_data/configs/will not be overwritten by the installer. - Copy the distribution
upgrade/directory into your web root.
XOOPS 2.7.0 replaces Smarty 2/3 with Smarty 4. Old templates may use syntax that Smarty 4 rejects. The upgrade/preflight.php script scans your themes and modules for such issues and can fix many of them automatically.
- Point your browser at
http://your-site/upgrade/preflight.php. - Log in as an administrator when prompted.
- Accept the defaults to scan
/themes/and/modules/for.tpland.htmlfiles, or narrow the scan with the provided form. - Review the reported issues.
- Optionally check the run fix box and re-submit the form to apply automatic repairs.
- Repeat the scan until no issues remain. Manual edits may still be needed for templates with non-trivial Smarty syntax.
- When the scanner shows zero issues, click the End scan button. This marks the preflight as complete and lets you proceed to the upgrade itself.
Do not skip this step. The regular upgrade flow will refuse to run until preflight.php has been completed at least once.
- Point your browser at
http://your-site/upgrade/and follow the prompts. - Log in as an administrator.
- Step through any needed updates. The 2.7.0 upgrade path handles:
- creating the new
tokenstable used by the CSRF/form-token layer; - widening
bannerclient.passwdto accommodate modern password hashes; - adding session cookie preference settings;
- removing obsolete bundled directories;
- other schema adjustments required by the 2.7.0 core.
- creating the new
- Follow the link at the end of the upgrade to update the system module.
- Update the pm, profile, and protector modules if installed.
- Update any third-party modules you have installed. Check each module's support page for a 2.7.0-compatible release before updating.
- Delete the
upgrade/directory from your web root. - Delete any remaining
install_cleanup_*.phpor renamedinstall_remove_*directories from earlier installs. - Set
mainfile.phpto read-only again if your filesystem changed its permissions during the upgrade. - Turn the site back on in System Options → Preferences → General Settings.
Your XOOPS site should now be running on 2.7.0.
- Preflight reports many template issues. Use the automatic repair option where possible, then manually fix the remaining ones. Compare with an untouched copy of a 2.7.0-compatible theme (for example
xswatch5) to see what the expected Smarty 4 syntax looks like. - Upgrade UI refuses to run. Ensure you completed
preflight.phpand clicked End scan. The preflight state is tracked in the session. - Site breaks after the upgrade. Re-enable debugging temporarily, check the reported errors, and visit the XOOPS support forums at https://xoops.org/modules/newbb/ if the cause is not obvious.
The upgrade path from 2.0.x / 2.2.x / 2.3.x / 2.4.x directly to 2.7.0 is not recommended. If you are on a version older than 2.5.x, upgrade to a late 2.5.x release first, then follow this chapter to move from 2.5.x to 2.7.0. See the legacy upgrade notes bundled with older XOOPS releases for the intermediate steps.