This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | /** |
||
3 | * Handles the dependencies and enqueueing of the CMB2 JS scripts |
||
4 | * |
||
5 | * @category WordPress_Plugin |
||
6 | * @package CMB2 |
||
7 | * @author WebDevStudios |
||
8 | * @license GPL-2.0+ |
||
9 | * @link http://webdevstudios.com |
||
10 | */ |
||
11 | class CMB2_JS { |
||
0 ignored issues
–
show
|
|||
12 | |||
13 | /** |
||
14 | * The CMB2 JS handle |
||
15 | * |
||
16 | * @var string |
||
17 | * @since 2.0.7 |
||
18 | */ |
||
19 | protected static $handle = 'cmb2-scripts'; |
||
20 | |||
21 | /** |
||
22 | * The CMB2 JS variable name |
||
23 | * |
||
24 | * @var string |
||
25 | * @since 2.0.7 |
||
26 | */ |
||
27 | protected static $js_variable = 'cmb2_l10'; |
||
28 | |||
29 | /** |
||
30 | * Array of CMB2 JS dependencies |
||
31 | * |
||
32 | * @var array |
||
33 | * @since 2.0.7 |
||
34 | */ |
||
35 | protected static $dependencies = array( |
||
36 | 'jquery' => 'jquery', |
||
37 | ); |
||
38 | |||
39 | /** |
||
40 | * Add a dependency to the array of CMB2 JS dependencies |
||
41 | * |
||
42 | * @since 2.0.7 |
||
43 | 13 | * @param array|string $dependencies Array (or string) of dependencies to add |
|
44 | 13 | */ |
|
45 | 13 | public static function add_dependencies( $dependencies ) { |
|
46 | 13 | foreach ( (array) $dependencies as $dependency ) { |
|
47 | 13 | self::$dependencies[ $dependency ] = $dependency; |
|
48 | } |
||
49 | } |
||
50 | |||
51 | /** |
||
52 | * Enqueue the CMB2 JS |
||
53 | * |
||
54 | * @since 2.0.7 |
||
55 | */ |
||
56 | public static function enqueue() { |
||
57 | // Filter required script dependencies |
||
58 | $dependencies = apply_filters( 'cmb2_script_dependencies', self::$dependencies ); |
||
59 | |||
60 | // Only use minified files if SCRIPT_DEBUG is off |
||
61 | $debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG; |
||
62 | |||
63 | $min = $debug ? '' : '.min'; |
||
64 | |||
65 | // if colorpicker |
||
66 | if ( ! is_admin() && isset( $dependencies['wp-color-picker'] ) ) { |
||
67 | self::colorpicker_frontend(); |
||
68 | } |
||
69 | |||
70 | // if file/file_list |
||
71 | if ( isset( $dependencies['media-editor'] ) ) { |
||
72 | wp_enqueue_media(); |
||
73 | CMB2_Type_File_Base::output_js_underscore_templates(); |
||
0 ignored issues
–
show
The call to the method
CMB2_Type_File_Base::out..._underscore_templates() seems un-needed as the method has no side-effects.
PHP Analyzer performs a side-effects analysis of your code. A side-effect is basically anything that might be visible after the scope of the method is left. Let’s take a look at an example: class User
{
private $email;
public function getEmail()
{
return $this->email;
}
public function setEmail($email)
{
$this->email = $email;
}
}
If we look at the $user = new User();
$user->getEmail(); // This line could safely be removed as it has no effect.
On the hand, if we look at the $user = new User();
$user->setEmail('email@domain'); // This line has a side-effect (it changes an
// instance variable).
![]() |
|||
74 | } |
||
75 | |||
76 | // if timepicker |
||
77 | if ( isset( $dependencies['jquery-ui-datetimepicker'] ) ) { |
||
78 | wp_register_script( 'jquery-ui-datetimepicker', CMB2_Utils::url( 'js/jquery-ui-timepicker-addon.min.js' ), array( 'jquery-ui-slider' ), CMB2_VERSION ); |
||
79 | } |
||
80 | |||
81 | // if cmb2-wysiwyg |
||
82 | $enqueue_wysiwyg = isset( $dependencies['cmb2-wysiwyg'] ) && $debug; |
||
83 | unset( $dependencies['cmb2-wysiwyg'] ); |
||
84 | |||
85 | // Enqueue cmb JS |
||
86 | wp_enqueue_script( self::$handle, CMB2_Utils::url( "js/cmb2{$min}.js" ), $dependencies, CMB2_VERSION, true ); |
||
87 | |||
88 | // if SCRIPT_DEBUG, we need to enqueue separately. |
||
89 | if ( $enqueue_wysiwyg ) { |
||
90 | wp_enqueue_script( 'cmb2-wysiwyg', CMB2_Utils::url( 'js/cmb2-wysiwyg.js' ), array( 'jquery', 'wp-util' ), CMB2_VERSION ); |
||
91 | } |
||
92 | |||
93 | self::localize( $debug ); |
||
94 | |||
95 | do_action( 'cmb2_footer_enqueue' ); |
||
96 | } |
||
97 | |||
98 | /** |
||
99 | * We need to register colorpicker on the front-end |
||
100 | * |
||
101 | * @since 2.0.7 |
||
102 | */ |
||
103 | protected static function colorpicker_frontend() { |
||
104 | wp_register_script( 'iris', admin_url( 'js/iris.min.js' ), array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), CMB2_VERSION ); |
||
105 | wp_register_script( 'wp-color-picker', admin_url( 'js/color-picker.min.js' ), array( 'iris' ), CMB2_VERSION ); |
||
106 | wp_localize_script( 'wp-color-picker', 'wpColorPickerL10n', array( |
||
107 | 'clear' => esc_html__( 'Clear', 'cmb2' ), |
||
108 | 'defaultString' => esc_html__( 'Default', 'cmb2' ), |
||
109 | 'pick' => esc_html__( 'Select Color', 'cmb2' ), |
||
110 | 'current' => esc_html__( 'Current Color', 'cmb2' ), |
||
111 | ) ); |
||
112 | } |
||
113 | |||
114 | /** |
||
115 | * Localize the php variables for CMB2 JS |
||
116 | * |
||
117 | * @since 2.0.7 |
||
118 | */ |
||
119 | protected static function localize( $debug ) { |
||
120 | static $localized = false; |
||
121 | if ( $localized ) { |
||
122 | return; |
||
123 | } |
||
124 | |||
125 | $localized = true; |
||
126 | $l10n = array( |
||
127 | 'ajax_nonce' => wp_create_nonce( 'ajax_nonce' ), |
||
128 | 'ajaxurl' => admin_url( '/admin-ajax.php' ), |
||
129 | 'script_debug' => $debug, |
||
130 | 'up_arrow_class' => 'dashicons dashicons-arrow-up-alt2', |
||
131 | 'down_arrow_class' => 'dashicons dashicons-arrow-down-alt2', |
||
132 | 'defaults' => array( |
||
133 | 'color_picker' => false, |
||
134 | 'date_picker' => array( |
||
135 | 'changeMonth' => true, |
||
136 | 'changeYear' => true, |
||
137 | 'dateFormat' => _x( 'mm/dd/yy', 'Valid formatDate string for jquery-ui datepicker', 'cmb2' ), |
||
138 | 'dayNames' => explode( ',', esc_html__( 'Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday', 'cmb2' ) ), |
||
139 | 'dayNamesMin' => explode( ',', esc_html__( 'Su, Mo, Tu, We, Th, Fr, Sa', 'cmb2' ) ), |
||
140 | 'dayNamesShort' => explode( ',', esc_html__( 'Sun, Mon, Tue, Wed, Thu, Fri, Sat', 'cmb2' ) ), |
||
141 | 'monthNames' => explode( ',', esc_html__( 'January, February, March, April, May, June, July, August, September, October, November, December', 'cmb2' ) ), |
||
142 | 'monthNamesShort' => explode( ',', esc_html__( 'Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec', 'cmb2' ) ), |
||
143 | 'nextText' => esc_html__( 'Next', 'cmb2' ), |
||
144 | 'prevText' => esc_html__( 'Prev', 'cmb2' ), |
||
145 | 'currentText' => esc_html__( 'Today', 'cmb2' ), |
||
146 | 'closeText' => esc_html__( 'Done', 'cmb2' ), |
||
147 | 'clearText' => esc_html__( 'Clear', 'cmb2' ), |
||
148 | ), |
||
149 | 'time_picker' => array( |
||
150 | 'timeOnlyTitle' => esc_html__( 'Choose Time', 'cmb2' ), |
||
151 | 'timeText' => esc_html__( 'Time', 'cmb2' ), |
||
152 | 'hourText' => esc_html__( 'Hour', 'cmb2' ), |
||
153 | 'minuteText' => esc_html__( 'Minute', 'cmb2' ), |
||
154 | 'secondText' => esc_html__( 'Second', 'cmb2' ), |
||
155 | 'currentText' => esc_html__( 'Now', 'cmb2' ), |
||
156 | 'closeText' => esc_html__( 'Done', 'cmb2' ), |
||
157 | 'timeFormat' => _x( 'hh:mm TT', 'Valid formatting string, as per http://trentrichardson.com/examples/timepicker/', 'cmb2' ), |
||
158 | 'controlType' => 'select', |
||
159 | 'stepMinute' => 5, |
||
160 | ), |
||
161 | ), |
||
162 | 'strings' => array( |
||
163 | 'upload_file' => esc_html__( 'Use this file', 'cmb2' ), |
||
164 | 'upload_files' => esc_html__( 'Use these files', 'cmb2' ), |
||
165 | 'remove_image' => esc_html__( 'Remove Image', 'cmb2' ), |
||
166 | 'remove_file' => esc_html__( 'Remove', 'cmb2' ), |
||
167 | 'file' => esc_html__( 'File:', 'cmb2' ), |
||
168 | 'download' => esc_html__( 'Download', 'cmb2' ), |
||
169 | 'check_toggle' => esc_html__( 'Select / Deselect All', 'cmb2' ), |
||
170 | ), |
||
171 | ); |
||
172 | |||
173 | wp_localize_script( self::$handle, self::$js_variable, apply_filters( 'cmb2_localized_data', $l10n ) ); |
||
174 | } |
||
175 | |||
176 | } |
||
177 |
You can fix this by adding a namespace to your class:
When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.