diff --git a/cms update/README.md b/cms update/README.md index cefe530de1..031e60d1f7 100644 --- a/cms update/README.md +++ b/cms update/README.md @@ -1,31 +1,60 @@ +# AtomCMS Remco Epicnabbo Edition +
Atom CMS -A modern, community-driven Retro CMS built with Laravel 12.x +A modern, community-driven Retro CMS built with Laravel 12.x - **PHP 8.5 Ready** [![Discord](https://img.shields.io/badge/Discord-Join%20Server-5865F2?style=flat&logo=discord&logoColor=white)](https://discord.gg/pP6HyZedAj) [![Laravel](https://img.shields.io/badge/Laravel-12.x-FF2D20?style=flat&logo=laravel&logoColor=white)](https://laravel.com) -[![PHP](https://img.shields.io/badge/PHP-8.2+-777BB4?style=flat&logo=php&logoColor=white)](https://php.net) - -[Live Demos](#-live-preview) β€’ [Installation](#-installation) β€’ [Documentation](https://github.com/atom-retros/atomcms/wiki) β€’ [Contributing](#-contributing) +[![PHP](https://img.shields.io/badge/PHP-8.5-777BB4?style=flat&logo=php&logoColor=white)](https://php.net) +[![PHPStan](https://img.shields.io/badge/PHPStan-Level%209-green?style=flat)](https://phpstan.org)
->[!NOTE] ->Disclaimer: Educational Use Only -> -> Atom CMS is provided as an educational resource for learning purposes only. The creators and contributors are not responsible for any misuse or unintended consequences arising from its use. By using Atom CMS, you agree to take full responsibility for your actions and ensure compliance with all applicable laws and regulations in your jurisdiction. +> Customized version of Atom CMS by Remco (Epicnabbo) with PHP 8.5 compatibility and full PHPStan level 9 compliance. +## πŸ“‹ What Changed + +### PHP 8.5 Upgrade +- **Upgraded to PHP 8.5** using Rector UP_TO_PHP_85 +- Updated `rector.php` configuration for PHP 8.5 +- Applied modern PHP 8.5 features and best practices + +### PHPStan Level 9 Compliance +- **Fixed all PHPStan level 9 errors** (0 errors achieved) +- Fixed return types in all controllers +- Fixed middleware nullsafe operators +- Added proper type declarations +- Updated `phpstan.neon` configuration + +### Bug Fixes +- Fixed class naming issues in `WebsiteTeam.php` +- Fixed `PasswordValidationRules` trait imports +- Fixed duplicate imports in Filament resources +- Fixed `Form::fill()` usage in `ManageBadgeUploads.php` +- Fixed `array_chunk` parameter types in `InstallationController.php` +- Fixed `isset`/logic issues in `PaypalController.php` +- Fixed `GoogleRecaptchaRule` return type +- Added missing `TurnstileCheck` class implementation + +### New Features +- Added `ExternalTextsParser.php` stub with required methods +- Added `getPredominantImageColor()` helper function +- Fixed `getPredominantImageColor()` in `ArticleResource.php` + +--- ## 🎯 About -Atom CMS is a modern, community-driven CMS designed to provide a flexible and user-friendly platform for retro hotel management. Built on Laravel 12.x with a focus on extensibility and ease of use, Atom CMS features a built-in theme system that allows you to use any CSS framework or create fully customized vanilla designs. +Atom CMS is a modern, community-driven CMS designed to provide a flexible and user-friendly platform for retro hotel management. This version is optimized for PHP 8.5 with strict type checking. ### Built With -- **[Laravel 12.x](https://laravel.com/docs/11.x)** - Elegant PHP framework powering the backend +- **[Laravel 12.x](https://laravel.com/docs/12.x)** - Elegant PHP framework powering the backend - **[Vite](https://vitejs.dev/)** - Next-generation frontend tooling for blazing-fast builds - **[TailwindCSS](https://tailwindcss.com/)** - Utility-first CSS framework for responsive design +- **PHP 8.5** - Latest PHP version with modern features --- @@ -37,34 +66,22 @@ Atom CMS is a modern, community-driven CMS designed to provide a flexible and us - πŸ“Š **Integrated Housekeeping** - Comprehensive admin panel - πŸ”„ **Rcon System** - Real-time server communication - πŸ“± **Responsive Design** - Mobile-first approach with TailwindCSS -- πŸš€ **Modern Stack** - Latest PHP 8.2+ features +- πŸš€ **PHP 8.5 Ready** - Latest PHP features with full type safety --- -## πŸ‘€ Live Preview - -Experience Atom CMS with our official themes: - -- **Dusk Theme**: [https://dusk.atomcms.dev](https://dusk.atomcms.dev) -- **Atom Theme**: [https://atom.atomcms.dev](https://atom.atomcms.dev) - ---- - -## 🚧 Requirements +## πŸ‘€ Requirements | Requirement | Version | |------------|---------| -| PHP | 8.2 or higher | +| PHP | **8.5** or higher | | MySQL | 8.x or higher | | MariaDB | 10.x or higher | | Composer | v2 | | Node.js | LTS | -| Database | [Arcturus Morningstar](https://github.com/ObjectRetros/retro-hotel-files/blob/main/arcturus-3-5-3-database.sql) | ### Required PHP Extensions -Ensure the following extensions are enabled in your `php.ini`: - ```ini extension=curl extension=fileinfo @@ -76,17 +93,13 @@ extension=sockets extension=intl ``` -**Note:** Remove the semicolon (`;`) prefix if the extension is commented out. - --- -## πŸ“¦ Installation - -### Windows Setup +## πŸ› οΈ Installation ```bash # Clone the repository -git clone https://github.com/ObjectRetros/atomcms.git +git clone cd atomcms # Configure environment @@ -103,197 +116,81 @@ php artisan key:generate # Build assets npm run build:atom -# For development: npm run dev:atom ``` -#### IIS Configuration - -Point your IIS site to the `public` folder inside the `atomcms` directory. - -#### Required Permissions - -Grant "Full control" to both `IUSR` and `IIS_IUSRS` for the atomcms folder. - -**Visual guide:** [Permission setup tutorial](https://gyazo.com/7d5f38525a762c1b26bbd7552ca93478) - -#### Troubleshooting cURL SSL Errors - -If you encounter cURL 60 errors: - -1. Download the latest [cacert.pem](https://curl.se/docs/caextract.html) -2. Place it in `C:/` -3. Edit `php.ini` and update: - ```ini - curl.cainfo = "C:/cacert-2025-09-09.pem" - ``` -4. Restart your web server - -#### Complete Windows Tutorial - -New to retro hotel setup? Follow our comprehensive three-part series: - -- [Part 1: Basic Setup](https://devbest.com/threads/how-to-set-up-a-retro-in-2022-iis-nitro-html5-part-1.92532/) -- [Part 2: Configuration](https://devbest.com/threads/how-to-set-up-a-retro-in-2022-iis-nitro-html5-part-2.92533/) -- [Part 3: Finalization](https://devbest.com/threads/how-to-set-up-a-retro-in-2022-iis-nitro-html5-part-3.92543/) - --- -### Linux Setup +## πŸ§ͺ Verification + +Run PHPStan to verify level 9 compliance: ```bash -# Clone the repository -git clone https://github.com/ObjectRetros/atomcms.git -cd atomcms - -# Configure environment -cp .env.example .env -# Edit .env and update your database credentials - -# Install dependencies -composer install -npm install - -# Set up database and generate key -php artisan migrate --seed -php artisan key:generate - -# Build assets -npm run build:atom -# For development: npm run dev:atom +php -d memory_limit=2G vendor/bin/phpstan analyse --no-progress --error-format=table ``` -#### Set Permissions - -```bash -sudo chown -R $USER:www-data storage -sudo chown -R $USER:www-data bootstrap/cache -chmod -R 775 storage -chmod -R 775 bootstrap/cache -``` - -#### NGINX Configuration - -For NGINX setup, refer to Laravel's [deployment documentation](https://laravel.com/docs/12.x/deployment#nginx). - -#### Complete Linux Tutorial - -Need help setting up your retro hotel on Linux? Follow our comprehensive Ubuntu tutorial: - -- [Complete Ubuntu Setup Guide](https://git.krews.org/duckietm/ubuntu-tutorial) - Step-by-step instructions for Ubuntu +Expected output: **0 errors** --- -## βš™οΈ Configuration +## πŸ“ Files Modified -### Production Environment +### Core Upgrades +- `rector.php` - PHP 8.5 configuration +- `phpstan.neon` - Level 9 configuration -Update these variables in your `.env` file for production: +### Controllers Fixed +- `app/Http/Controllers/Community/LeaderboardController.php` +- `app/Http/Controllers/Community/Staff/StaffApplicationsController.php` +- `app/Http/Controllers/Community/Staff/WebsiteTeamApplicationsController.php` +- `app/Http/Controllers/Community/WebsiteRareValuesController.php` +- `app/Http/Controllers/Miscellaneous/InstallationController.php` +- `app/Http/Controllers/Shop/PaypalController.php` -```dotenv -APP_ENV=production -APP_DEBUG=false -FORCE_HTTPS=true # If using Cloudflare's "Always use HTTPS" -``` +### Middleware Fixed +- `app/Http/Middleware/InstallationMiddleware.php` +- `app/Http/Middleware/MaintenanceMiddleware.php` +- `app/Http/Middleware/SetThemeMiddleware.php` -### Cloudflare Turnstile Captcha +### Filament Resources Fixed +- `app/Filament/Resources/Atom/Articles/ArticleResource.php` +- `app/Filament/Resources/Hotel/BadgeUploads/Pages/ManageBadgeUploads.php` +- `app/Filament/Resources/Atom/Permissions/PermissionResource.php` -Protect your site from bots: +### Services & Rules +- `app/Services/Articles/ReactionService.php` +- `app/Services/Parsers/ExternalTextsParser.php` (new) +- `app/Http/Rules/GoogleRecaptchaRule.php` +- `app/Http/Rules/TurnstileCheck.php` -1. Visit [Cloudflare Turnstile](https://www.cloudflare.com/products/turnstile/) -2. Sign in and select your site -3. Copy the site and secret keys to your `.env` file - -### Important: Disable Rocket Loader - -Atom CMS uses JavaScript that conflicts with Cloudflare's Rocket Loader. To disable: - -1. Go to your Cloudflare dashboard -2. Navigate to **Speed** β†’ **Optimization** -3. Find **Rocket Loaderβ„’** and disable it - -### Migrating from Another CMS - -If migrating from Cosmic CMS or similar platforms: - -Set `RENAME_COLLIDING_TABLES=true` in your `.env` file. Atom CMS will automatically handle table conflicts. - -**Note:** We recommend proper manual cleanup, but this feature helps avoid common migration issues. - ---- - -## πŸ§ͺ Testing - -Atom CMS includes a growing test suite using Pest. - -### Run Tests - -```bash -# Using Pest -vendor/bin/pest - -# Using Artisan -php artisan test -``` +### Helpers +- `app/Helpers/helper.php` - Added `getPredominantImageColor()` --- ## πŸ“š Documentation -For detailed documentation, addons, tips, and tricks, visit our [official wiki](https://github.com/atom-retros/atomcms/wiki). - -### Learning Laravel - -New to Laravel? These free resources will help: -- [Official bootcamp & course](https://learn.laravel.com) - Official Laravel bootcamp & course -- [Laravel 11 from Scratch](https://laracasts.com/series/30-days-to-learn-laravel-11) - Official Laracasts course ---- - -## 🀝 Contributing - -We welcome contributions! To maintain code quality and streamline reviews, please read our [contribution guidelines](https://github.com/ObjectRetros/atomcms/wiki/0.-Contribution-guidelines) before submitting a pull request. +For original Atom CMS documentation, visit the [official wiki](https://github.com/atom-retros/atomcms/wiki). --- -## πŸ† Credits - -Atom CMS is made possible by our amazing community: - -### Core Contributors +## 🀝 Credits +### Original Atom CMS Team - **Kasja** - Design direction, Dusk theme, ideas & graphics -- **INicollas** - Dark mode, Turbolinks, article reactions, user sessions, PT-BR translations, Orion Housekeeping +- **INicollas** - Dark mode, Turbolinks, article reactions, user sessions - **Kani** - Rcon system, FindRetros API, Atom CMS v2 creator/maintainer - **DuckieTM** - Badge drawer, bugfixes, housekeeping features -- **EntenKoeniq** - Auto language registration, color scheme selection, various page fixes +- **EntenKoeniq** - Auto language registration, color scheme selection -### Contributors - -- **Dominic** - Performance improvements, user sessions -- **Beny** - FindRetros API fixes, Cloudflare fixes -- **Live** - French translations, bugfixes -- **MisterDeen** - Custom Discord widget -- **DamienJolly**, **Danbo**, **Diddy/Josh** - Various bugfixes and improvements -- **Sonay** - Material theme inspiration -- **Raizer** - Circinus - -### Translations - -- **Oliver** - Finnish -- **Damue & EntenKoeniq** - German -- **Talion** - Turkish -- **CentralCee, Rille & Tuborgs** - Swedish -- **Yannick** - Dutch -- **Gedomi** - Spanish -- **Lorenzune** - Italian -- **Twana** - Norwegian -- **Plow** - French +### This Edition +- **Remco (Epicnabbo)** - PHP 8.5 upgrade, PHPStan level 9 compliance ---
-**[⬆ Back to Top](#atom-cms)** +**AtomCMS Remco Epicnabbo Edition** - PHP 8.5 Compatible -Made with ❀️ by the Atom CMS Community +*Made with ❀️ by the Epicnabbo Community*