????JFIF??x?x????'
| Server IP : 104.21.30.238  /  Your IP : 216.73.216.83 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /././home/tempvsty/././pontiacques.org/wp-content/plugins/give/src/Form/ | 
| Upload File : | 
<?php
/**
 * Handle Form Templates
 *
 * @package Give
 * @since   2.7.0
 */
namespace Give\Form;
use Give\Helpers\Form\Template as FormTemplateUtils;
use Give\Views\Form\Templates\Classic\Classic;
use Give\Views\Form\Templates\Legacy\Legacy;
use Give\Views\Form\Templates\Sequoia\Sequoia;
defined('ABSPATH') || exit;
/**
 * Class Templates
 *
 * @package Give\Form
 *
 * @since   2.7.0
 */
class Templates
{
    /**
     * Templates
     *
     * @var array
     */
    private $templates = [];
    /**
     * Template Objects
     *
     * @var Template[]
     */
    private $templateObjs = [];
    /**
     * Load templates
     *
     * @since 2.7.0
     */
    public function load()
    {
        /**
         * Filter list of form template
         *
         * @since 2.7.0
         *
         * @param array $templates
         */
        $this->templates = apply_filters(
            'give_register_form_template',
            [
                'sequoia' => Sequoia::class,
                'classic' => Classic::class,
                'legacy' => Legacy::class,
            ]
        );
    }
    /**
     * Get Registered templates
     *
     * @since 2.7.0
     * @return Template[]
     */
    public function getTemplates()
    {
        // Check if all templates have there object or not.
        $remainingObjs = array_diff(array_keys($this->templates), array_keys($this->templateObjs));
        // Get object if any remaining
        if ($remainingObjs) {
            foreach ($remainingObjs as $templateId) {
                $this->templateObjs[$templateId] = $this->getTemplateObject($templateId);
            }
        }
        return $this->templateObjs;
    }
    /**
     * Get Registered form template
     *
     * @since 2.7.0
     *
     * @param string $templateId Template Id. Default to active form template.
     *
     * @return Template
     */
    public function getTemplate($templateId = null)
    {
        $templateId = $templateId ?: FormTemplateUtils::getActiveID();
        if (isset($this->templateObjs[$templateId])) {
            return $this->templateObjs[$templateId];
        }
        $this->templateObjs[$templateId] = $this->getTemplateObject($templateId);
        return $this->getTemplateObject($templateId);
    }
    /**
     * Get class object.
     *
     * @since 2.7.0
     *
     * @param string $templateId
     *
     * @return Template
     */
    private function getTemplateObject($templateId)
    {
        return new $this->templates[$templateId]();
    }
}