bd_get_gmt_offseted_time()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 4
ccs 2
cts 2
cp 1
crap 1
rs 10
c 1
b 0
f 0
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 mixed  $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 127
	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 31
	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 207
	return filter_var( $string, FILTER_VALIDATE_BOOLEAN );
54
}
55
56
/**
57
 * Check if a string starts with a sub string.
58
 *
59
 * Copied from StackOverFlow.
60
 *
61
 * @see https://stackoverflow.com/a/834355/24949.
62
 * @since 6.0.0
63
 *
64
 * @param string $haystack Haystack.
65
 * @param string $needle   Needle.
66
 *
67
 * @return bool True if Haystack starts with Needle, False otherwise.
68
 */
69
function bd_starts_with( $haystack, $needle ) {
70 4
	return ( substr( $haystack, 0, strlen( $needle ) ) === $needle );
71
}
72
73
/**
74
 * Check if a string ends with a sub string.
75
 *
76
 * Copied from StackOverFlow.
77
 *
78
 * @see https://stackoverflow.com/a/51491517/24949
79
 * @since 6.0.0
80
 *
81
 * @param string $haystack Haystack.
82
 * @param string $needle   Needle.
83
 *
84
 * @return bool True if Haystack ends with Needle, False otherwise.
85
 */
86
function bd_ends_with( $haystack, $needle ) {
87 4
	return substr( $haystack, - strlen( $needle ) ) === $needle;
88
}
89
90
/**
91
 * Check if a string contains another sub string.
92
 *
93
 * Copied from StackOverFlow.
94
 *
95
 * @see https://stackoverflow.com/a/4366748/24949
96
 * @since 6.0.0
97
 *
98
 * @param string $haystack Haystack.
99
 * @param string $needle   Needle.
100
 *
101
 * @return bool True if Haystack ends with Needle, False otherwise.
102
 */
103
function bd_contains( $haystack, $needle ) {
104 8
	return strpos( $haystack, $needle ) !== false;
105
}
106
107
/**
108
 * Get the short class name of an object.
109
 *
110
 * Short class name is the name of the class without namespace.
111
 *
112
 * @since 6.0.0
113
 *
114
 * @param object|string $class_name_or_object Object or Class name.
115
 *
116
 * @return string Short class name.
117
 */
118
function bd_get_short_class_name( $class_name_or_object ) {
119
	$class_name = $class_name_or_object;
120
121
	if ( is_object( $class_name_or_object ) ) {
122
		$class_name = get_class( $class_name_or_object );
123
	}
124
125
	$pos = strrpos( $class_name, '\\' );
0 ignored issues
show
Bug introduced by
It seems like $class_name can also be of type object; however, parameter $haystack of strrpos() does only seem to accept string, 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

125
	$pos = strrpos( /** @scrutinizer ignore-type */ $class_name, '\\' );
Loading history...
126
	if ( false === $pos ) {
127
		return $class_name;
128
	}
129
130
	return substr( $class_name, $pos + 1 );
0 ignored issues
show
Bug introduced by
It seems like $class_name can also be of type object; however, parameter $string of substr() does only seem to accept string, 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

130
	return substr( /** @scrutinizer ignore-type */ $class_name, $pos + 1 );
Loading history...
131
}
132
133
/**
134
 * Get GMT Offseted time in Unix Timestamp format.
135
 *
136
 * @since 6.0.0
137
 *
138
 * @param string $time_string Time string.
139
 *
140
 * @return int GMT Offseted time.in Unix Timestamp.
141
 */
142
function bd_get_gmt_offseted_time( $time_string ) {
143 28
	$gmt_offset = sanitize_text_field( get_option( 'gmt_offset' ) );
0 ignored issues
show
Bug introduced by
It seems like get_option('gmt_offset') can also be of type false; however, parameter $str of sanitize_text_field() does only seem to accept string, 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

143
	$gmt_offset = sanitize_text_field( /** @scrutinizer ignore-type */ get_option( 'gmt_offset' ) );
Loading history...
144
145 28
	return strtotime( $time_string ) - ( $gmt_offset * HOUR_IN_SECONDS );
146
}
147
148
/**
149
 * Get the formatted list of allowed mime types.
150
 * This function was originally defined in the Bulk Delete Attachment addon.
151
 *
152
 * @since 5.5
153
 *
154
 * @return array List of allowed mime types after formatting
155
 */
156
function bd_get_allowed_mime_types() {
157
	$mime_types = get_allowed_mime_types();
158
	sort( $mime_types );
159
160
	$processed_mime_types        = array();
161
	$processed_mime_types['all'] = __( 'All mime types', 'bulk-delete' );
162
163
	$last_value = '';
164
	foreach ( $mime_types as $key => $value ) {
165
		$splitted = explode( '/', $value, 2 );
166
		$prefix   = $splitted[0];
167
168
		if ( '' == $last_value || $prefix != $last_value ) {
169
			$processed_mime_types[ $prefix ] = __( 'All', 'bulk-delete' ) . ' ' . $prefix;
170
			$last_value                      = $prefix;
171
		}
172
173
		$processed_mime_types[ $value ] = $value;
174
	}
175
176
	return $processed_mime_types;
177
}
178