XOOPS 2.7.0 Latest
What's Changed

    Update XOOPS version to 2.7.0-RC5 by @mambax7 in #32
    fix(system): preserve theme switch context safely by @mambax7 in #33
    non-expand section System in the menu by @ggoffy in #34
    chore(deps): bump JetBrains/qodana-action from 2025.3.2 to 2026.1.0 by @dependabot[bot] in #35
    chore(deps): bump SonarSource/sonarqube-scan-action from 7.1.0 to 8.0.0 by @dependabot[bot] in #36
    fix(locale): number_format() defaults now come from locale, not hardc… by @mambax7 in #37
    TinyMCE 3.x removed by @mambax7 in #38
    remove Qodana, disable XML-RPC by @mambax7 in #39
    fix(system): module update preserves mid + catid; users.php exec/isResultSet bug by @mambax7 in #40
    fix(pm): tighten admin form handling and template output by @mambax7 in #41
    fix(protector): tighten admin output and module entry-point checks by @mambax7 in #42
    fix(system): drop deprecated by-reference form on uploader error fetches by @mambax7 in #43
    fix(locale): cast $number to float before passing to PHP's number_for… by @mambax7 in #46
    fix(profile): handler-based avatar save with rollback; null guards; strip_tags cast by @mambax7 in #47
    chore: add .githooks/ pre-commit + commit-msg sniffs for documented antipatterns by @mambax7 in #48
    fix(system): defensive fallback when theme_set config rows are missing by @mambax7 in #44
    fix(pm): harden readpmsg save/delete flow by @mambax7 in #49
    fix(mailer): harden constructor for missing mailer config by @mambax7 in #50
    strip leading space before <?php in language index files by @mambax7 in #51
    helper-based atomic-write cleanup; replace @unlink/@chmod by @mambax7 in #52
    test(file-safety): pin null-byte contract for cleanup helpers by @mambax7 in #53
    chore(deps): refresh xoops_lib vendor tree to current Packagist releases by @mambax7 in #56
    chore(deps): bump shivammathur/setup-php from 2.37.0 to 2.37.1 by @dependabot[bot] in #55
    final updates for XOOPS 2.7.0 by @mambax7 in #54
    update readme.txt by @mambax7 in #57
    update readme.txt by @mambax7 in #58
    updates by @mambax7 in #59
    update Debugbar version by @mambax7 in #61
    fix(installer): guard optional function calls that fatal on PHP 8.2 by @mambax7 in #60
    Fix/installer required extensions gate by @mambax7 in #62
    test(installer): cover required-extension helpers (stacked on #62) by @mambax7 in #63
    Translation info by @mambax7 in #64
    docs(changelog): record installer extension-guard fixes for 2.7.0 Final by @mambax7 in #65
    chore(changelog): set up git-cliff for a generated CHANGELOG.md by @mambax7 in #66
    fix(ci): changelog workflow — PR-based delivery + Node 24 checkout by @mambax7 in #67
    fix(ci): changelog workflow must open a PR, not push to protected master by @mambax7 in #68
    docs(changelog): regenerate CHANGELOG.md by @github-actions[bot] in #69