15. Oktober 2026 · Changelog

CDPCMS 2.2.1

  • First-run setup (1163): a new installation (standalone, on any server) had no way to create the first administrator. Now `php artisan cdpcms:install-link [--base=https://cms.example.com/cms]` prints a one-time link `/cms/install/<token>` (2 hours, only the sha256 hash is stored in `storage/app/install-token.json`); the page works only while no user exists and creates the administrator with name, email and an own password (at least 16 characters, eye toggle), then signs in and asks for two-factor sign-in. While no user exists, `/cms/login` shows a first-run hint instead of the sign-in form. Test `test_first_run_setup_only_without_users_and_with_token`.
  • CDP-CCMS as the cookie consent of every website (1154): the C folder `cookie/` now carries CDP-CCMS 1.1.0 (`cdp-consent.js`, `cdp-consent.css`, `cdp-consent.php`, `legal/`; `cdp-cookie.js` stays for older themes). `components/cookie/cookie.php` loads the three files; the front controller answers `/cookie/cdp-consent.php` itself (configuration as JavaScript, proof beacon), because the web server sends every `.php` to `index.php`. Texts, button labels, links, categories, services and every switch are edited under CMS → Cookie consent (module `CdpConsent` 1.1.0, tables `cdpccms_settings` and `cdpccms_consents` per website, proof log with CSV, runtime install button); "Customize" keeps only the on/off switch of the banner. Button colours are the CDP standard (Deny red, Customize yellow, Allow all green) and are no longer overridden by "Customize" or themes. The consent is mirrored to `ctpf-cookie-consent-v1`, so CDPAnalytics keeps counting only with consent. German translation of the module in `lang/de.json`.
  • Themes come with the update (1159): the Themes page on the websites was empty after the update to 2.2.0, because the themes lived only in the development website and the catalog in `storage/` was not part of the release. `cdpcms-freigeben` now packs every theme of the development website (`cms/themes/<theme>/`, version from `VERSION`/`theme.json`) into `resources/theme-catalog/` (`<theme>-<version>.zip` + `theme-catalog.json` with sha256) through `cdpcms-theme-katalog`; the catalog is part of the checked release package. `ThemeInstaller` reads this shipped catalog plus an optional local `storage/app/theme-catalog.json` (higher version wins); each package is checked against its sha256 before it is unpacked, as before. The Themes page lists CDP Default, CDP Mega, CDPShop and CDP Wiki under "Theme catalog" with "Install"; the "In preparation" box is gone.
  • Theme catalog: descriptions are translated like the theme cards; a hint directly above a table or form now has 12 px space (`cms.css`).
  • Modules (Michael 15.10.2026): sidebar entry "Installed modules" (jumps to the list) next to "Install modules"; on the Modules page "Add module" (upload + catalog) is now at the top, the list "Installed modules" below it.

All posts