Your IP : 216.73.216.79


Current Path : /var/www/html/reddsis/app/Services/
Upload File :
Current File : /var/www/html/reddsis/app/Services/ThemeService.php

<?php

namespace App\Services;

use App\Models\Backend\ThemeRule;
use App\Models\Backend\ThemeSetting;
use Illuminate\Support\Facades\Storage;

class ThemeService
{
    public static function generateCss(): void
    {
        $rules = ThemeRule::where('rule_status', true)->get();
        $settings = ThemeSetting::settingArray();
        $css = '';

        foreach ($rules as $rule) {
            $content = $rule->rule_content;
            $theme = $settings[$rule->rule_id] ?? [];

            foreach ($theme as $key => $value) {
                if (is_array($value) && ($value['type'] ?? null) === 'unit') {
                    $value = $value['value'] . $value['unit'];
                }
                $content = str_replace("{{{$key}}}", $value, $content);
            }
            $css .= PHP_EOL . $content . PHP_EOL;
        }

        $disk = 'public';
        $path = 'css/theme-module.css';

        if (!Storage::disk($disk)->exists('css')) {
            Storage::disk($disk)->makeDirectory('css');
        }

        Storage::disk($disk)->put($path, $css);
    }
}