Repository navigation
Phase 0: module skeleton for ImpressCMS 2.0 in IPF mode - #1
Merged
Merged
Conversation
- icms_version.php with modname imforum and an (empty) object_items array, which makes the core register class/ under mod_imforum and manage the tables - include/common.php with IMFORUM_DB_VERSION, which the core reads during install and update without a defined() check - include/onupdate.php with the install/update entry points, an empty imforum_db_upgrade_1() and an upload folder created with 0755 - placeholder user index and administration index with templates - English and Dutch language files, Crowdin configuration for the rest - CI on PHP 8.2 to 8.5: php -l, PHPStan level 6 against a core checkout, PHPUnit tests for the module definition, install routines and language parity Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MZy45V5RV9nx6Buq8vqKHr
- admin/menu.php defines $headermenu; displayAdminMenu() counts it and fails on PHP 8 when it is null - explain that the core skips the table sync and db upgrade steps while object_items is empty, so dbversion stays 0 until phase 1 - skip the world-write check on Windows, where every folder reports 0777 - README: ICMS_CORE_PATH for PHPStan, copy instead of symlink for a test site Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MZy45V5RV9nx6Buq8vqKHr
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by David · project thread
Summary
Phase 0 of the imforum plan: an empty module that installs and updates on ImpressCMS 2.0 in IPF mode, with CI on PHP 8.2 to 8.5. No forum functions yet; those start with the data model in phase 1.
src/icms_version.php:modnameanddirnameare bothimforum.object_itemsis an empty array, which is enough for the core to setipf = 1and registersrc/classundermod_imforum(libraries/icms/module/Object.php).src/include/common.php: definesIMFORUM_DB_VERSION. The core reads it withconstant()and nodefined()check during install and update (icms_db_legacy_updater_Handler::moduleUpgrade), so it has to exist from the start.src/include/onupdate.php: has theicms_module_install_imforum/icms_module_update_imforumentry points and an emptyimforum_db_upgrade_1(), which will create the indexes in phase 1. It also createsuploads/imforumwith mode 0755 (iForum used 0777). The docblock explains why fields must be renamed over two releases: the updater drops undeclared columns before the upgrade functions run.language/nederlands, the folder name the core uses), pluscrowdin.ymlwith the core's language folder names.Tooling
.github/workflows/ci.ymlruns on PHP 8.2, 8.3, 8.4 and 8.5. It doesphp -l, then PHPStan level 6 against a checkout offiammybe/impresscms(scanned only for signatures), then PHPUnit.icms_version.phpmatches what the core expects: names, referenced files, templates and the db version. They also check that an upgrade function exists for every db version, that the upload folder is not world-writable, and that Dutch defines exactly the same constants as English.Testing
All of this was run locally on PHP 8.3:
php -lis clean on every file.Not tested: a real install and update on a running ImpressCMS 2.0 with MySQL, because there was no database in this environment. Please install the module once by hand to confirm.
Generated by Claude Code