| Server IP : 192.241.186.36 / Your IP : 216.73.216.172 Web Server : Apache/2.4.29 (Ubuntu) System : Linux webserver7 4.15.0-194-generic #205-Ubuntu SMP Fri Sep 16 19:49:27 UTC 2022 x86_64 User : root ( 0) PHP Version : 7.4.32 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/imageperfect/wp-content/plugins/js_composer/include/params/ |
Upload File : |
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
/**
* WPBakery WPBakery Page Builder shortcodes attributes class.
*
* This class and functions represents ability which will allow you to create attributes settings fields to
* control new attributes.
* New attributes can be added to shortcode settings by using param array in wp_map function
*
* @package WPBakeryPageBuilder
*
*/
/**
* Shortcode params class allows to create new params types.
* class WpbakeryShortcodeParams
* @since 4.2
*/
class WpbakeryShortcodeParams {
/**
* @since 4.2
* @var array - store shortcode attributes types
*/
protected static $params = array();
/**
* @since 4.2
* @var array - store shortcode javascript files urls
*/
protected static $scripts = array();
/**
* @since 4.7
* @var array - store params not required to init
*/
protected static $optional_init_params = array();
/**
* Get list of params that need to be initialized
*
* @return string[]
*/
public static function getRequiredInitParams() {
$all_params = array_keys( self::$params );
$optional_params = apply_filters( 'vc_edit_form_fields_optional_params', self::$optional_init_params );
$required_params = array_diff( $all_params, $optional_params );
return $required_params;
}
/**
* Create new attribute type
*
* @static
* @param $name - attribute name
* @param $form_field_callback - hook, will be called when settings form is shown and attribute added to shortcode
* param list
* @param $script_url - javascript file url which will be attached at the end of settings form.
*
* @return bool - return true if attribute type created
* @since 4.2
*
*/
public static function addField( $name, $form_field_callback, $script_url = null ) {
$result = false;
if ( ! empty( $name ) && ! empty( $form_field_callback ) ) {
self::$params[ $name ] = array(
'callbacks' => array(
'form' => $form_field_callback,
),
);
$result = true;
if ( is_string( $script_url ) && ! in_array( $script_url, self::$scripts, true ) ) {
self::$scripts[] = $script_url;
}
}
return $result;
}
/**
* Calls hook for attribute type
* @param $name - attribute name
* @param $param_settings - attribute settings from shortcode
* @param $param_value - attribute value
* @param $tag - attribute tag
*
* @return mixed|string - returns html which will be render in hook
* @since 4.2
* @static
*
*/
public static function renderSettingsField( $name, $param_settings, $param_value, $tag ) {
if ( isset( self::$params[ $name ]['callbacks']['form'] ) ) {
return call_user_func( self::$params[ $name ]['callbacks']['form'], $param_settings, $param_value, $tag );
}
return '';
}
/**
* List of javascript files urls for shortcode attributes.
* @return array - list of js scripts
* @since 4.2
* @static
*/
public static function getScripts() {
return self::$scripts;
}
}