????JFIF??x?x????'
| Server IP : 104.21.30.238 / Your IP : 216.73.216.87 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]();
}
}