'', 'label' => __( 'Untitled Preset', 'fl-builder' ), 'type' => $type, 'settings' => array(), /* the settings to set when preset is selected */ 'data' => array(), /* arbitrary data to pass along to the frontend */ ); $args = wp_parse_args( $args, $defaults ); $name = $args['name']; self::$presets[ $type ][ $name ] = $args; } /** * Getter method for self::$presets; * * @return Array */ static public function get_presets() { return self::$presets; } /** * Create option sets for a specified preview $type * * @param String $type * @return Array */ static public function get_preset_options( $type ) { $options = array( '' => __( 'Select A Preset', 'fl-builder' ), ); if ( $type ) { $presets = self::$presets[ $type ]; foreach ( $presets as $preset ) { $handle = $preset['name']; $label = $preset['label']; $options[ $handle ] = $label; } } return $options; } /** * Create option sets for each preset type and add to FLBuilderConfig.optionSets * * @param Array $option_sets - previously set option sets * @return Array */ static public function filter_shared_option_sets( $option_sets ) { foreach ( self::$presets as $type => $set ) { $option_sets[ $type . '-presets' ] = self::get_preset_options( $type ); } return $option_sets; } /** * Filter settings forms and set the refresh type for preset fields to 'none' * * @param Array $form * @return Array */ static public function filter_settings_form( $form ) { if ( isset( $form['tabs'] ) ) { foreach ( $form['tabs'] as $i => $tab ) { if ( ! isset( $tab['sections'] ) ) { continue; } foreach ( $tab['sections'] as $j => $section ) { if ( ! isset( $section['fields'] ) ) { continue; } foreach ( $section['fields'] as $k => $field ) { if ( 'preset' === $field['type'] ) { $form['tabs'][ $i ]['sections'][ $j ]['fields'][ $k ]['preview'] = array( 'type' => 'none', ); } } } } } return $form; } } FLBuilderSettingsPresets::init();