PluginProbe
JetFormBuilder — Dynamic Blocks Form Builder / 3.6.4
JetFormBuilder — Dynamic Blocks Form Builder v3.6.4
3.6.5.2 3.6.5.1 3.6.5 3.6.4.2 3.6.4.1 3.6.4 3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 All 130 releases
jetformbuilder / includes / classes / attributes-trait.php
attributes-trait.php
58 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3
4 namespace Jet_Form_Builder\Classes;
5
6 // If this file is called directly, abort.
7 if ( ! defined( 'WPINC' ) ) {
8 die;
9 }
10
11 trait Attributes_Trait {
12
13 use Base_Attributes_Trait;
14
15 public $attrs = array();
16
17 public function add_attribute( $attr, $value = null ) {
18 if ( '' === $value ) {
19 return;
20 }
21
22 /**
23 * Don't use wp_is_numeric_array function
24 * for backward compatibility
25 *
26 * @see https://github.com/Crocoblock/issues-tracker/issues/2392
27 */
28 if ( is_array( $value ) ) {
29 foreach ( $value as $item ) {
30 $this->add_attribute( $attr, $item );
31 }
32
33 return;
34 }
35
36 $value = Tools::esc_attr( $value );
37
38 if ( isset( $this->attrs[ $attr ] ) && in_array( $attr, array( 'class', 'style' ), true ) ) {
39 $this->attrs[ $attr ] .= ' ' . $value;
40 } else {
41 $this->attrs[ $attr ] = $value;
42 }
43 }
44
45 public function reset_attributes() {
46 $this->attrs = array();
47 }
48
49 public function get_all_attrs() {
50 return $this->attrs;
51 }
52
53 public function has_attribute( string $name ): bool {
54 return array_key_exists( $name, $this->attrs );
55 }
56
57 }
58