Files
medicalalert-web-reloaded/wp/wp-content/plugins/gravityforms/includes/template-library/config/class-gf-template-library-config.php
2024-06-18 17:29:05 -04:00

182 lines
6.5 KiB
PHP

<?php
namespace Gravity_Forms\Gravity_Forms\Template_Library\Config;
use Gravity_Forms\Gravity_Forms\Config\GF_Config;
use Gravity_Forms\Gravity_Forms\Config\GF_Config_Data_Parser;
use Gravity_Forms\Gravity_Forms\License\GF_License_API_Connector;
use Gravity_Forms\Gravity_Forms\Template_Library\Endpoints\GF_Create_Form_Template_Library_Endpoint;
use Gravity_Forms\Gravity_Forms\Template_Library\Templates\GF_Templates_Store;
/**
* Config items for Template_Library.
*
* @since
*/
class GF_Template_Library_Config extends GF_Config {
/**
* The object name for this config.
*
* @since 2.7
*
* @var string
*/
protected $name = 'gform_admin_config';
/**
* The ID of the script to localize the data to.
*
* @since 2.7
*
* @var string
*/
protected $script_to_localize = 'gform_gravityforms_admin_vendors';
/**
* The templates' data store to retrieve the templates' data from.
*
* @since 2.7
*
* @var GF_Templates_Store $templates_repos
*/
protected $templates_store;
/**
* The license API connector to get license information.
*
* @since 2.7
*
* @var GF_License_API_Connector
*/
protected $license_api;
/**
* Config class constructore.
*
* @since 2.7
*
* @param GF_Config_Data_Parser $parser Data Parser.
* @param GF_Templates_Store $templates_store The templates' data store to retrieve the templates' data from.
*/
public function __construct( GF_Config_Data_Parser $parser, GF_Templates_Store $templates_store, GF_License_API_Connector $license_api ) {
parent::__construct( $parser );
$this->templates_store = $templates_store;
$this->license_api = $license_api;
}
public function should_enqueue() {
$current_page = trim( strtolower( rgget( 'page' ) ) );
$gf_pages = array( 'gf_edit_forms', 'gf_new_form' );
return in_array( $current_page, $gf_pages );
}
/**
* Config data.
*
* @return array[]
*/
public function data() {
$license_info = $this->license_api->check_license();
$bypassTemplateLibrary = apply_filters('gform_bypass_template_library', false);
return array(
'components' => array(
'template_library' => array(
'endpoints' => $this->get_endpoints(),
'i18n' => array(
'description' => __( 'Form Description', 'gravityforms' ),
'title' => __( 'Form Title', 'gravityforms' ),
'titlePlaceholder' => __( 'Enter the form title', 'gravityforms' ),
'required' => __( 'Required', 'gravityforms' ),
'useTemplate' => __( 'Use Template', 'gravityforms' ),
'closeButton' => __( 'Close', 'gravityforms' ),
/* translators: title of template */
'useTemplateWithTitle' => __( 'Use Template %s', 'gravityforms' ),
'createActiveText' => __( 'Creating Form', 'gravityforms' ),
'missingTitle' => __( 'Please enter a valid form title.', 'gravityforms' ),
'duplicateTitle' => __( 'Please enter a unique form title.', 'gravityforms' ),
'failedRequest' => __( 'There was an issue creating your form.', 'gravityforms' ),
'failedRequestDialogTitle' => __( 'Import failed.', 'gravityforms' ),
'importErrorCloseText' => __( 'Close.', 'gravityforms' ),
/* translators: title of template */
'previewWithTitle' => __( 'Preview %s', 'gravityforms' ),
'cancel' => __( 'Cancel', 'gravityforms' ),
'blankForm' => __( 'Blank Form', 'gravityforms' ),
'createForm' => __( 'Create Blank Form', 'gravityforms' ),
'blankFormTitle' => __( 'New Blank Form', 'gravityforms' ),
'blankFormDescription' => __( 'A new blank form', 'gravityforms' ),
'formDescriptionPlaceHolder' => __( 'A form description goes here', 'gravityforms' ),
'heading' => __( 'Explore Form Templates', 'gravityforms' ),
'subheading' => __( 'Quickly create an amazing form by using a pre-made template, or start from scratch to tailor your form to your specific needs.', 'gravityforms' ),
'upgradeTag' => __( 'Upgrade', 'gravityforms' ),
'upgradeAlert' => array(
/* translators: %1$s is anchor opening tag, %2$s is anchor closing tag */
'value' => sprintf( __( 'This template uses Add-ons not included in your current license plan. %1$sUpgrade%2$s'), '<a href="' . $license_info->get_upgrade_link() . '" target="_blank" rel="noopener noreferrer">', '</a>' ),
'default' => 'This template uses Add-ons not included in your current license plan. Upgrade.',
),
),
'data' => array(
'thumbnail_url' => \GFCommon::get_image_url( 'template-library/' ),
'layout' => 'full-screen',
'templates' => $bypassTemplateLibrary ? array() : array_values( $this->get_templates() ),
'licenseType' => $license_info->get_data_value( 'product_code' ),
'defaults' => array(
'isLibraryOpen' => rgget( 'page' ) === 'gf_new_form',
'flyoutOpen' => (bool)$bypassTemplateLibrary,
'flyoutFooterButtonLabel' => $bypassTemplateLibrary ? __( 'Create Form', 'gravityforms' ) : '',
'flyoutTitleValue' => '',
'flyoutDescriptionValue' => '',
'selectedTemplate' => array(
'title' => __( 'New Form', 'gravityforms' ),
'description' => __( 'A new form', 'gravityforms' ),
'id' => 'blank',
),
'flyoutTitleErrorState' => false,
'flyoutTitleErrorMessage' => '',
'importError' => false,
'flyoutPrimaryLoadingState' => false,
'bypassTemplateLibrary' => $bypassTemplateLibrary,
),
),
),
),
);
}
/**
* Returns the endpoints for handling form creation in the template library.
*
* @since 2.7
*
* @return \array[][]
*/
private function get_endpoints() {
return array(
'create_from_template' => array(
'action' => array(
'value' => GF_Create_Form_Template_Library_Endpoint::ACTION_NAME,
'default' => 'mock_endpoint',
),
'nonce' => array(
'value' => wp_create_nonce( GF_Create_Form_Template_Library_Endpoint::ACTION_NAME ),
'default' => 'nonce',
),
),
);
}
/**
* Gets a list of the available templates from the data store.
*
* @since 2.7
*
* @return array
*/
private function get_templates() {
return $this->templates_store->all();
}
}