Skip to content

Evoopz/evoopz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Evoopz CMS

PHP Version License Composer

Evoopz is an evolved PHP Content Management System, modernized from the classic XOOPS platform with PHP 8.2+ compatibility, enhanced security, and modern development practices.

🚀 Features

Modern Architecture

  • PHP 8.2+ Compatible with strict typing and modern syntax
  • PSR-4 Autoloading for clean class organization
  • Composer-based dependency management
  • Modern Database Layer using PDO with query builder
  • Secure Input Handling with validation and sanitization

Enhanced Security

  • SQL Injection Prevention with prepared statements
  • XSS Protection with input sanitization
  • Secure Session Management
  • Type-safe Parameter Binding
  • Modern Error Handling with Whoops

Modern Components

  • Templating: League Plates 3.x (replaces legacy Smarty)
  • Email: PHPMailer 6.x (replaces 22-year-old version)
  • HTTP Client: Guzzle 7.x (replaces legacy Snoopy)
  • Archive Handling: Native PHP ZipArchive
  • Error Display: Whoops 2.x for beautiful error pages

📋 Requirements

  • PHP: 8.2 or higher
  • Database: MySQL 5.7+ or MariaDB 10.2+
  • Web Server: Apache 2.4+ or Nginx 1.18+
  • Composer: 2.0 or higher
  • Extensions: PDO, PDO_MySQL, mbstring, json, zip

🛠️ Installation

1. Clone Repository

git clone https://github.com/Evoopz/evoopz.git
cd evoopz

2. Install Dependencies

composer install

3. Configure Database

cp mainfile.dist.php mainfile.php
# Edit mainfile.php with your database credentials

4. Set Permissions

chmod 777 uploads/
chmod 777 cache/
chmod 777 templates_c/

5. Run Installer

Navigate to your web server and access the installation wizard:

http://your-domain.com/install/

🏗️ Project Structure

evoopz/
├── class/                  # Core classes (PSR-4 autoloaded)
│   ├── database/          # Modern database layer
│   ├── input/             # Secure input handling
│   ├── mail/              # Email functionality
│   ├── http/              # HTTP client
│   ├── archive/           # Archive handling
│   ├── plates/            # Template engine
│   └── theme/             # Theme management
├── modules/               # Module system
│   ├── system/            # Core system module
│   ├── news/              # News management
│   ├── evoopzpartners/    # Partners directory
│   └── ...                # Other modules
├── themes/                # Theme templates
├── language/              # Language files
├── include/               # Core includes
├── install/               # Installation system
└── upgrade/               # Upgrade scripts

📚 Modern Classes Usage

Database Operations

use Evoopz\Database\EvoopzDatabaseFactory;

// Setup connection
EvoopzDatabaseFactory::setConfig([
    'host' => 'localhost',
    'dbname' => 'evoopz',
    'username' => 'user',
    'password' => 'pass'
]);

// Query builder
$db = new EvoopzDatabaseManager(EvoopzDatabaseFactory::getConnection());
$users = $db->table('users')
    ->where('active', '=', 1)
    ->orderBy('name', 'ASC')
    ->limit(10)
    ->get();

Secure Input Handling

use Evoopz\Input\EvoopzInputHandler;

// Secure input retrieval
$userId = EvoopzInputHandler::get('id', 'int');
$email = EvoopzInputHandler::post('email', 'email');
$allData = EvoopzInputHandler::requestAll('string');

// Session management
EvoopzSessionHandler::set('user_id', $userId);
$user = EvoopzSessionHandler::get('user_id');

Email Sending

use Evoopz\Mail\Mailer;

$mailer = new Mailer();
$mailer->setFrom('admin@evoopz.org', 'Evoopz CMS')
        ->addRecipient('user@example.com')
        ->setSubject('Welcome to Evoopz')
        ->setHTMLBody('<h1>Welcome!</h1>')
        ->send();

HTTP Requests

use Evoopz\Http\HttpClient;

$client = new HttpClient();
$response = $client->get('https://api.example.com/data');
if ($response['success']) {
    echo $response['body'];
}

🔄 Migration from XOOPS

Evoopz provides a complete modernization of the classic XOOPS system:

What's Modernized

  • Database Layer: PDO-based with query builder
  • Templating: League Plates (replaces Smarty)
  • Email: PHPMailer 6.x (replaces 22-year-old version)
  • HTTP Client: Guzzle 7.x (replaces Snoopy)
  • Archive Handling: Native PHP ZipArchive
  • Input Security: Filter-based validation
  • Error Handling: Whoops for beautiful errors

Migration Path

  1. Backup your existing XOOPS installation
  2. Install Evoopz in a separate directory
  3. Migrate database using provided upgrade scripts
  4. Update custom modules to use modern classes
  5. Test thoroughly before going live

See MODERNIZATION.md for detailed migration guide.

🧪 Development

Running Tests

composer test

Code Style

composer fix-cs

Security Audit

composer audit

📖 Documentation

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow PSR-12 coding standards
  • Use strict typing (declare(strict_types=1))
  • Add type hints for all parameters and return values
  • Write tests for new features
  • Update documentation

📄 License

Evoopz is released under the GPL-2.0 License. See LICENSE for details.

🌟 Credits

Evoopz is an evolution of the classic XOOPS CMS, originally created by the XOOPS Project. This modern version maintains the spirit of the original while embracing modern PHP practices and security standards.

Original XOOPS Project

Evoopz Modernization

🆘 Support

  • Documentation: Check the docs in this repository
  • Issues: Report bugs on GitHub Issues
  • Community: Join our discussions
  • Security: Report security issues privately

🗺️ Roadmap

Version 1.0

  • ✅ Complete XOOPS to Evoopz rebranding
  • ✅ PHP 8.2+ compatibility
  • ✅ Modern security practices
  • ✅ Updated dependencies

Version 1.1 (Planned)

  • REST API implementation
  • Advanced caching system
  • Enhanced user management
  • Modern admin interface

Version 2.0 (Future)

  • Microservices architecture
  • Real-time features
  • Advanced analytics
  • Cloud deployment support

Evoopz - Evolving the classic CMS for the modern web. 🚀

About

Evoopz is an evolved PHP Content Management System, modernized from the classic XOOPS platform with PHP 8.2+ compatibility, enhanced security, and modern development practices.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors