Skip to content
Snippets Groups Projects
ColorsController.php 1.19 KiB
Newer Older
  • Learn to ignore specific revisions
  •  * @copyright  2020 Ad Aures
    
     * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
     * @link       https://castopod.org/
     */
    
    namespace App\Controllers;
    
    use CodeIgniter\Controller;
    use CodeIgniter\HTTP\Response;
    
    class ColorsController extends Controller
    {
        /**
         * @noRector ReturnTypeDeclarationRector
         */
        public function index(): Response
        {
            $cacheName = 'colors.css';
            if (
                ! ($colorsCssBody = cache($cacheName))
            ) {
                $colorThemes = config('Colors')
                    ->themes;
    
                $colorsCssBody = '';
                foreach ($colorThemes as $name => $color) {
                    $colorsCssBody .= ".theme-{$name} {";
                    foreach ($color as $variable => $value) {
                        $colorsCssBody .= "--color-{$variable}: {$value[0]} {$value[1]}% {$value[2]}%;";
                    }
    
                    $colorsCssBody .= '}';
                }
    
                cache()
                    ->save($cacheName, $colorsCssBody, DECADE);
            }
    
            return $this->response->setHeader('Content-Type', 'text/css')
                ->setHeader('charset', 'UTF-8')
                ->setBody($colorsCssBody);
        }
    }