Completed
Push — 193-feature/delete-post-revisi... ( 4c008c...2cafa6 )
by Rajan
141:08 queued 137:21
created

include/helpers/common.php (2 issues)

Labels
Severity
1
<?php
2
/**
3
 * Contains the helper functions.
4
 *
5
 * Some of the functions where created before dropping support for PHP 5.2 and that's the reason why they are not namespaced.
6
 *
7
 * @since 6.0.0 File created.
8
 */
9
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
11
/**
12
 * Get a value from an array based on key.
13
 *
14
 * If key is present returns the value, else returns the default value.
15
 *
16
 * @since 5.6.0 added `bd` prefix.
17
 *
18
 * @param array  $array   Array from which value has to be retrieved.
19
 * @param string $key     Key, whose value to be retrieved.
20
 * @param string $default Optional. Default value to be returned, if the key is not found.
21
 *
22
 * @return mixed Value if key is present, else the default value.
23
 */
24
function bd_array_get( $array, $key, $default = null ) {
25
	return isset( $array[ $key ] ) ? $array[ $key ] : $default;
26
}
27
28
/**
29
 * Get a value from an array based on key and convert it into bool.
30
 *
31
 * @since 5.6.0 added `bd` prefix.
32
 *
33
 * @param array  $array   Array from which value has to be retrieved.
34
 * @param string $key     Key, whose value to be retrieved.
35
 * @param bool   $default (Optional) Default value to be returned, if the key is not found.
36
 *
37
 * @return bool Boolean converted Value if key is present, else the default value.
38
 */
39
function bd_array_get_bool( $array, $key, $default = false ) {
40
	return bd_to_bool( bd_array_get( $array, $key, $default ) );
41
}
42
43
/**
44
 * Convert a string value into boolean, based on whether the value "True" or "False" is present.
45
 *
46
 * @since 5.5
47
 *
48
 * @param string $string String value to compare.
49
 *
50
 * @return bool True if string is "True", False otherwise.
51
 */
52
function bd_to_bool( $string ) {
53
	return filter_var( $string, FILTER_VALIDATE_BOOLEAN );
54
}
55
56
/**
57
 * Get GMT Offseted time in Unix Timestamp format.
58
 *
59
 * @since 6.0.0
60
 *
61
 * @param string $time_string Time string.
62
 *
63
 * @return int GMT Offseted time.in Unix Timestamp.
64
 */
65
function bd_get_gmt_offseted_time( $time_string ) {
66
	$gmt_offset = absint( get_option( 'gmt_offset' ) );
67
68
	return strtotime( $time_string ) - ( $gmt_offset * HOUR_IN_SECONDS );
69
}
70
71
/**
72
 * Get the formatted list of allowed mime types.
73
 * This function was originally defined in the Bulk Delete Attachment addon.
74
 *
75
 * @since 5.5
76
 *
77
 * @return array List of allowed mime types after formatting
78
 */
79
function bd_get_allowed_mime_types() {
80
	$mime_types = get_allowed_mime_types();
81
	sort( $mime_types );
82
83
	$processed_mime_types        = array();
84
	$processed_mime_types['all'] = __( 'All mime types', 'bulk-delete' );
85
86
	$last_value = '';
87
	foreach ( $mime_types as $key => $value ) {
88
		$splitted = explode( '/', $value, 2 );
89
		$prefix   = $splitted[0];
90
91
		if ( '' == $last_value || $prefix != $last_value ) {
92
			$processed_mime_types[ $prefix ] = __( 'All', 'bulk-delete' ) . ' ' . $prefix;
93
			$last_value                      = $prefix;
94
		}
95
96
		$processed_mime_types[ $value ] = $value;
97
	}
98
99
	return $processed_mime_types;
100
}
101
102
/**
103
 * Get current theme name.
104
 *
105
 * @since 5.5.4
106
 *
107
 * @return string Current theme name.
108
 */
109
function bd_get_current_theme_name() {
110
	if ( get_bloginfo( 'version' ) < '3.4' ) {
111
		$theme_data = get_theme_data( get_stylesheet_directory() . '/style.css' );
112
113
		return $theme_data['Name'] . ' ' . $theme_data['Version'];
114
	} else {
115
		$theme_data = wp_get_theme();
116
117
		return $theme_data->Name . ' ' . $theme_data->Version;
118
	}
119
}
120
121
/**
122
 * Try to identity the hosting provider.
123
 *
124
 * @since 5.5.4
125
 *
126
 * @return string Web host name if identified, empty string otherwise.
127
 */
128
function bd_identify_host() {
129
	$host = '';
130
	if ( defined( 'WPE_APIKEY' ) ) {
131
		$host = 'WP Engine';
132
	} elseif ( defined( 'PAGELYBIN' ) ) {
133
		$host = 'Pagely';
134
	}
135
136
	return $host;
137
}
138
139
/**
140
 * Print plugins that are currently active.
141
 *
142
 * @since 5.5.4
143
 */
144
function bd_print_current_plugins() {
145
	$plugins        = get_plugins();
146
	$active_plugins = get_option( 'active_plugins', array() );
147
148
	foreach ( $plugins as $plugin_path => $plugin ) {
149
		// If the plugin isn't active, don't show it.
150
		if ( ! in_array( $plugin_path, $active_plugins ) ) {
0 ignored issues
show
It seems like $active_plugins can also be of type false and string; however, parameter $haystack of in_array() does only seem to accept array, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

150
		if ( ! in_array( $plugin_path, /** @scrutinizer ignore-type */ $active_plugins ) ) {
Loading history...
151
			continue;
152
		}
153
154
		echo $plugin['Name'] . ': ' . $plugin['Version'] . "\n";
155
	}
156
}
157
158
/**
159
 * Print network active plugins.
160
 *
161
 * @since 5.5.4
162
 */
163
function bd_print_network_active_plugins() {
164
	$plugins        = wp_get_active_network_plugins();
165
	$active_plugins = get_site_option( 'active_sitewide_plugins', array() );
166
167
	foreach ( $plugins as $plugin_path ) {
168
		$plugin_base = plugin_basename( $plugin_path );
169
170
		// If the plugin isn't active, don't show it.
171
		if ( ! array_key_exists( $plugin_base, $active_plugins ) ) {
0 ignored issues
show
It seems like $active_plugins can also be of type false and string; however, parameter $search of array_key_exists() does only seem to accept array, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

171
		if ( ! array_key_exists( $plugin_base, /** @scrutinizer ignore-type */ $active_plugins ) ) {
Loading history...
172
			continue;
173
		}
174
175
		$plugin = get_plugin_data( $plugin_path );
176
177
		echo $plugin['Name'] . ' :' . $plugin['Version'] . "\n";
178
	}
179
}
180