<?php

/**
 * @package Helix3 Framework
 * @author JoomShaper https://www.joomshaper.com
 * @copyright (c) 2010 - 2026 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later
 */

//no direct accees
defined('_JEXEC') or die('resticted aceess');

use Joomla\CMS\Factory;
use Joomla\CMS\Filesystem\Folder;
use Joomla\CMS\Form\FormField;
if (version_compare(JVERSION, '5.0', '>=')) {
    if (! class_exists('Joomla\\CMS\\Filesystem\\Folder') && class_exists('Joomla\\Filesystem\\Folder')) {
        class_alias('Joomla\\Filesystem\\Folder', 'Joomla\\CMS\\Filesystem\\Folder');
    }
}
use Joomla\CMS\Uri\Uri;

class JFormFieldPresets extends FormField
{

    protected $type = 'Presets';

    protected function getInput()
    {

        $template           = $this->form->getValue('template');
        $templatePresetsDir = JPATH_SITE . '/templates/' . $template . '/images/presets/';
        $base_url           = Uri::root(true) . '/templates/' . $template . '/images/presets/';
        $root_path          = JPATH_SITE . '/templates/' . $template . '/images/presets/';
        $doc                = Factory::getDocument();
        $helix_url          = Uri::root(true) . '/plugins/system/helix3/';

        $folders = Folder::folders($templatePresetsDir);

        if (! defined('CURRENT_PRESET')) {
            define('CURRENT_PRESET', $this->value);
            $doc->addScriptDeclaration('var current_preset = "' . $this->value . '";');
        }

        $html     = '';
        $app      = Factory::getApplication();
        $template = $app->getTemplate('shaper_helix3');
        $params   = $template->params;
        $variable = $params->get('variable');

        natsort($folders);

        foreach ($folders as $folder) {

            $preset = basename($folder);

            $major_color = $preset . '_major';

            if (isset($this->form->getValue('params')->$major_color) && $this->form->getValue('params')->$major_color) {
                $major = $this->form->getValue('params')->$major_color;
            } else {
                $major = '#333333';
            }

            $html .= '<div style="background-color: ' . $major . '" data-preset="' . basename($folder) . '" class="preset' . (($this->value == basename($folder)) ? ' active' : '') . '">';
            $html .= '<div class="preset-title">';
            $html .= basename($folder);
            $html .= '</div>';

            $html .= '<div class="preset-contents">';
            $html .= '<label>';
            $html .= '</div>';

            $html .= '</label>';
            $html .= '</div>';
        }

        $html .= '<input type="hidden" id="template-preset" value="' . $this->value . '" name="' . $this->name . '" />';

        return $html;

    }

    public function getLabel()
    {
        return false;
    }

}
