File "EverestFormsModule.php"
Full Path: /home/rattkxnv/byattorney.com/wp-content/plugins/everest-forms/addons/DiviBuilder/EverestFormsModule.php
File size: 4.27 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Everest Forms Divi Module File.
*
* @package EverestForms\Divi
* @since 3.0.5
*/
namespace EverestForms\Addons\DiviBuilder;
defined( 'ABSPATH' ) || exit;
/**
* Everest Forms Divi module class.
*
* @since 3.0.5
*/
class EverestFormsModule extends \ET_Builder_Module {
/**
* Module slug.
*
* @since 3.0.5
* @var string
*/
public $slug = 'everest_forms_divi_builder';
/**
* Whether module support visual builder. e.g `on` or `off`.
*
* @since 3.0.5
* @var string
*/
public $vb_support = 'on';
/**
* List of controls to allow module customization.
*
* @since 1.6.13
* @var array
*/
protected $setting_controls = array();
/**
* Divi builder init function.
*
* @since 3.0.5
*/
public function init() {
$this->name = esc_html__( 'Everest Forms', 'everest-forms' );
$this->settings_modal_toggles = array(
'general' => array(
'toggles' => array(
'main_content' => esc_html__( 'Forms', 'everest-forms' ),
),
),
);
add_action( 'wp_enqueue_scripts', array( $this, 'load_divi_builder_scripts' ) );
}
/**
* Displays the Module setting fields.
*
* @since 3.0.5
* @return array $fields Array of settings fields.
*/
public function get_fields() {
$forms = evf_get_all_forms();
$default_form = array( esc_html__( 'Select Form', 'everest-forms' ) );
$forms = $default_form + $forms;
$fields = array(
'form_id' => array(
'label' => esc_html__( 'Select Form', 'everest-forms' ),
'type' => 'select',
'option_category' => 'basic_option',
'toggle_slug' => 'main_content',
'options' => $forms,
'default' => '5',
'computed_affects' => array(
'__rendered_evf_forms',
),
),
'__rendered_evf_forms' => array(
'type' => 'computed',
'computed_callback' => 'EverestForms\Addons\DiviBuilder\EverestFormsModule::rendered_evf_forms',
'computed_depends_on' => array(
'form_id',
),
'computed_minimum' => array(
'form_id',
),
),
);
return $fields;
}
/**
* Advanced Fields Settings.
*
* @since 3.0.5
*/
public function get_advanced_fields_config() {
return array(
'link_options' => false,
'text' => false,
'borders' => false,
'box_shadow' => false,
'button' => false,
'filters' => false,
'fonts' => false,
);
}
/**
* Renders the Everest Form in Visual Builder and Frontend.
*
* @since 3.0.5
* @param array $props Module properties.
* @return string HTML output.
*/
public static function rendered_evf_forms( $props = array() ) {
$form_id = isset( $props['form_id'] ) ? $props['form_id'] : '0';
// Check if we are in the Divi Visual Builder
if ( et_fb_enabled() ) {
return "<div class='everest-forms-divi-preview'>" . esc_html__( 'Everest Forms Preview', 'everest-forms' ) . '</div>';
}
if ( '0' === $form_id ) {
return "<div class='everest-forms-divi-empty-form' style='text-align:center'><img src='" . plugin_dir_url( EVF_PLUGIN_FILE ) . 'assets/images/icons/Everest-forms-Logo.png' . "'/></div>";
}
// Render the form via shortcode in the frontend.
$divi_shortcode = sprintf( "[everest_form id='%s']", $form_id );
$output = "<div class='everest-forms-divi-builder'>";
$output .= do_shortcode( $divi_shortcode );
$output .= '</div>';
return $output;
}
/**
* Render the module on frontend.
*
* @since 3.0.5
* @param array $unprocessed_props Array of unprocessed Properties.
* @param string $content Contents being processed from the prop.
* @param string $render_slug The slug of rendering module for rendering output.
* @return string HTML content for rendering.
*/
public function render( $unprocessed_props, $content, $render_slug ) {
return $this->_render_module_wrapper( static::rendered_evf_forms( $this->props ), $render_slug );
}
/**
* Enqueue Divi Builder JavaScript.
*
* @since 3.0.5
*/
public function load_divi_builder_scripts() {
$enqueue_script = array( 'wp-element', 'react', 'react-dom' );
wp_register_script(
'everest-forms-divi-builder',
evf()->plugin_url() . '/dist/divibuilder.min.js',
$enqueue_script,
evf()->version,
true
);
wp_enqueue_script( 'everest-forms-divi-builder' );
}
}