GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Passed
Push — master ( 20f741...122957 )
by Christian
02:43
created

podlove.php (2 issues)

1
<?php
2
/**
3
 * Plugin Name: Podlove Subscribe Button
4
 * Plugin URI:  https://wordpress.org/plugins/podlove-subscribe-button/
5
 * Description: Brings the Podlove Subscribe Button to your WordPress installation.
6
 * Version:     1.4.0-beta
7
 * Author:      Podlove
8
 * Author URI:  https://podlove.org/
9
 * License:     MIT
10
 * License URI: license.txt
11
 * Text Domain: podlove-subscribe-button
12
 * Domain Path: /languages
13
 */
0 ignored issues
show
Coding Style Documentation introduced by
Missing @package tag in file comment
Loading history...
14
15
$correct_php_version = version_compare( phpversion(), "5.3", ">=" );
16
17
if ( ! $correct_php_version ) {
18
	printf( __( 'Podlove Subscribe Button Plugin requires %s or higher.<br>', 'podlove-subscribe-button' ), '<code>PHP 5.3</code>' );
19
	echo '<br />';
20
	printf( __( 'You are running %s', 'podlove-subscribe-button' ), '<code>PHP ' . phpversion() . '</code>' );
21
	exit;
22
}
23
24
// Constants
25
require( 'constants.php' );
26
require( 'settings/buttons.php' );
27
// Models
28
require( 'model/base.php' );
29
require( 'model/button.php' );
30
require( 'model/network_button.php' );
31
// Table
32
require( 'settings/buttons_list_table.php' );
33
// Media Types
34
require( 'media_types.php' );
35
// Widget
36
require( 'widget.php' );
37
// Version control
38
require( 'version.php' );
39
// Helper functions
40
require( 'helper.php' );
41
42
register_activation_hook( __FILE__, array( 'PodloveSubscribeButton', 'build_models' ) );
43
44
PodloveSubscribeButton::run();
45
46
/**
47
 * Class PodloveSubscribeButton
48
 */
49
class PodloveSubscribeButton {
50
51
	/**
52
	 * @var string current plugin version
53
	 */
54
	public static $version = '1.4.0-beta';
55
56
	public static function run() {
57
		add_action( 'plugins_loaded', array( __CLASS__, 'load_translations' ) );
58
		add_action( 'init', array( __CLASS__, 'register_shortcode' ) );
59
		add_action( 'admin_init', array( __CLASS__, 'register_settings' ) );
60
		add_action( 'admin_init', array( 'PodloveSubscribeButton\Settings\Buttons', 'process_form' ) );
61
		add_action( 'admin_enqueue_scripts', array( __CLASS__, 'enqueue_assets' ) );
62
		add_action( 'widgets_init', array( __CLASS__, 'widgets' ) );
63
		self::menu();
64
65
	}
66
67
	public static function widgets() {
68
		register_widget( '\PodloveSubscribeButton\Widget' );
69
70
	}
71
72
	public static function menu() {
73
		add_action( 'admin_menu', array( 'PodloveSubscribeButton', 'admin_menu' ) );
74
75
		if ( is_network_admin() ) {
76
			add_action( 'network_admin_menu', array( 'PodloveSubscribeButton', 'admin_network_menu' ) );
77
		}
78
79
	}
80
81
	public static function enqueue_assets( $hook ) {
82
83
		$pages = array( 'settings_page_podlove-subscribe-button', 'widgets.php' );
84
85
		if ( ! in_array( $hook, $pages ) ) {
86
			return;
87
		}
88
89
		// CSS Stylesheet
90
		wp_register_style( 'podlove-subscribe-button', plugin_dir_url( __FILE__ ) . 'style.css', false, self::$version );
91
		wp_enqueue_style( 'podlove-subscribe-button' );
92
93
		// Admin JS
94
		wp_enqueue_style( 'wp-color-picker' );
95
		wp_register_script( 'podlove-subscribe-button-admin-tools', plugin_dir_url( __FILE__ ) . 'js/admin.js', array( 'jquery', 'wp-color-picker' ), self::$version );
96
		$js_translations = array(
97
			'media_library' => __( 'Media Library', 'podlove-subscribe-button' ),
98
			'use_for'       => __( 'Use for Podcast Cover Art', 'podlove-subscribe-button' ),
99
		);
100
		wp_localize_script( 'podlove-subscribe-button-admin-tools', 'i18n', $js_translations );
101
		wp_enqueue_script( 'podlove-subscribe-button-admin-tools' );
102
103
	}
104
105
	public static function admin_menu() {
106
		add_options_page(
107
			__( 'Podlove Subscribe Button Options', 'podlove-subscribe-button' ),
108
			__( 'Podlove Subscribe Button', 'podlove-subscribe-button' ),
109
			'manage_options',
110
			'podlove-subscribe-button',
111
			array( 'PodloveSubscribeButton\Settings\Buttons', 'page' )
112
		);
113
114
	}
115
116
	public static function admin_network_menu() {
117
		add_submenu_page(
118
			'settings.php',
119
			__( 'Podlove Subscribe Button Options', 'podlove-subscribe-button' ),
120
			__( 'Podlove Subscribe Button', 'podlove-subscribe-button' ),
121
			'manage_options',
122
			'podlove-subscribe-button',
123
			array( 'PodloveSubscribeButton\Settings\Buttons', 'page' )
124
		);
125
126
	}
127
128
	public static function load_translations() {
129
		load_plugin_textdomain( 'podlove-subscribe-button', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
0 ignored issues
show
false of type false is incompatible with the type string expected by parameter $deprecated of load_plugin_textdomain(). ( Ignorable by Annotation )

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

129
		load_plugin_textdomain( 'podlove-subscribe-button', /** @scrutinizer ignore-type */ false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
Loading history...
130
131
	}
132
133
	public static function register_settings() {
134
		$settings = array(
135
			'size',
136
			'autowidth',
137
			'style',
138
			'format',
139
			'color',
140
		);
141
142
		foreach ( $settings as $setting ) {
143
			register_setting( 'podlove-subscribe-button', 'podlove_subscribe_button_default_' . $setting );
144
		}
145
146
	}
147
148
	public static function register_shortcode() {
149
		add_shortcode( 'podlove-subscribe-button', array( 'PodloveSubscribeButton', 'shortcode' ) );
150
151
	}
152
153
	public static function build_models() {
154
		// Build Databases
155
		\PodloveSubscribeButton\Model\Button::build();
156
157
		if ( is_multisite() ) {
158
			\PodloveSubscribeButton\Model\NetworkButton::build();
159
		}
160
161
		// Set Button "default" values
162
		$default_values = array(
163
			'size'      => 'big',
164
			'autowidth' => 'on',
165
			'color'     => '#599677',
166
			'style'     => 'filled',
167
			'format'    => 'rectangle'
168
		);
169
170
		foreach ( $default_values as $option => $default_value ) {
171
			if ( ! get_option( 'podlove_subscribe_button_default_' . $option ) ) {
172
				update_option( 'podlove_subscribe_button_default_' . $option, $default_value );
173
			}
174
		}
175
176
	}
177
178
	public static function shortcode( $args ) {
179
		if ( ! $args || ! isset( $args[ 'button' ] ) ) {
180
			return __( 'You need to create a Button first and provide its ID.', 'podlove-subscribe-button' );
181
		} else {
182
			$buttonid = $args[ 'button' ];
183
		}
184
185
		// Fetch the (network)button by it's name
186
		if ( ! $button = \PodloveSubscribeButton\Model\Button::get_button_by_name( $args[ 'button' ] ) )
187
			return sprintf( __( 'Oops. There is no button with the ID "%s".', 'podlove-subscribe-button' ), $args[ 'button' ] );
188
189
		// Get button styling and options
190
		$autowidth = self::interpret_width_attribute( self::get_array_value_with_fallback( $args, 'width' ) );
191
		$size      = self::get_attribute( 'size', self::get_array_value_with_fallback( $args, 'size' ) );
192
		$style     = self::get_attribute( 'style', self::get_array_value_with_fallback( $args, 'style' ) );
193
		$format    = self::get_attribute( 'format', self::get_array_value_with_fallback( $args, 'format' ) );
194
		$color     = self::get_attribute( 'color', self::get_array_value_with_fallback( $args, 'color' ) );
195
196
		if ( isset( $args[ 'language' ] ) ) {
197
			$language = $args[ 'language' ];
198
		} else {
199
			$language = 'en';
200
		}
201
202
		if ( isset( $args[ 'color' ] ) ) {
203
			$color = $args[ 'color' ];
204
		} else {
205
			$color = get_option( 'podlove_subscribe_button_default_color', '#599677' );
206
		}
207
208
		if ( isset( $args[ 'hide' ] ) && $args[ 'hide' ] == 'true' ) {
209
			$hide = true;
210
		} else {
211
			$hide = false;
212
		}
213
214
		// Render button
215
		return $button->render( $size, $autowidth, $style, $format, $color, $hide, $buttonid, $language );
216
217
	}
218
219
	public static function get_array_value_with_fallback( $args, $key ) {
220
		if ( isset( $args[ $key ] ) ) {
221
			return $args[ $key ];
222
		}
223
224
		return false;
225
226
	}
227
228
	/**
229
	 * @param  string $attribute
230
	 * @param  string $attribute_value
231
	 * @return string
232
	 */
233
	private static function get_attribute( $attribute = null, $attribute_value = null ) {
234
		if ( isset( $attribute_value ) && ctype_alnum( $attribute_value ) && key_exists( $attribute_value, \PodloveSubscribeButton\Model\Button::$$attribute ) ) {
235
			return $attribute_value;
236
		} else {
237
			return get_option( 'podlove_subscribe_button_default_' . $attribute, \PodloveSubscribeButton\Model\Button::$properties[ $attribute ] );
238
		}
239
240
	}
241
242
	/**
243
	 * Interprets the provided width attribute and return either auto- or a specific width
244
	 *
245
	 * @param  string $width_attribute
246
	 * @return string
247
	 */
248
	private static function interpret_width_attribute( $width_attribute = null ) {
249
		if ( $width_attribute == 'auto' ) {
250
			return 'on';
251
		}
252
253
		if ( $width_attribute && $width_attribute !== 'auto' ) {
254
			return 'off';
255
		}
256
257
		return get_option( 'podlove_subscribe_button_default_autowidth', 'on' );
258
259
	}
260
261
} // END class
262