Files
hub-insurance/wp-content/plugins/gravityforms/includes/template-library/templates/class-gf-template-library-array-store.php
T
2026-07-02 15:54:39 -06:00

106 lines
2.1 KiB
PHP

<?php
namespace Gravity_Forms\Gravity_Forms\Template_Library\Templates;
use Gravity_Forms\Gravity_Forms\Template_Library\Templates\GF_Templates_Store;
use Unirest\Exception;
/**
* Class GF_Template_Library_Array_Store
*
* Loads the templates' library data from an array.
*
* @package Gravity_Forms\Gravity_Forms\Template_Library;
*/
class GF_Template_Library_Array_Store implements GF_Templates_Store {
/**
* The templates array.
*
* @since 2.7
*
* @var array $templates The templates array.
*/
protected $templates;
/**
* The store configurations array.
*
* @since 2.7
*
* @var array $config The store configurations array.
*/
protected $config;
/**
* Store constructor.
*
* @param array $config The store configurations array.
*/
public function __construct( $config ) {
$this->config = $config;
}
/**
* Retrieves raw data and decodes it, returns an array of templates.
*
* @since 2.7
*
* @return array
*/
public function get_templates() {
if ( is_array( $this->templates ) ) {
return $this->templates;
}
$uri = rgar( $this->config, 'uri' );
$this->templates = include_once $uri;
return $this->templates;
}
/**
* Returns a template by its ID.
*
* @since 2.7
*
* @param string $id The id of the template.
*
* @return GF_Template_Library_Template|false
*/
public function get( $id ) {
$template_data = rgar( $this->get_templates(), $id );
if ( ! $template_data ) {
return false;
}
return new GF_Template_Library_Template( $template_data );
}
/**
* Returns all the templates, optionally including the form meta.
*
* @since 2.7
*
* @param bool $include_meta whether to include the template form meta or not.
*
* @return array
*/
public function all( $include_meta = false ) {
if ( $include_meta ) {
return $this->get_templates();
}
$templates_data = array_map(
function( $template_data ) {
unset( $template_data['form_meta'] );
unset( $template_data['version'] );
return $template_data;
},
$this->get_templates()
);
return $templates_data;
}
}