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 ( 6dee4e...0392a4 )
by Christian
02:19
created

podlove.php (1 issue)

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
 */
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() {
0 ignored issues
show
Coding Style Documentation introduced by
Missing doc comment for function widgets()
Loading history...
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
		// Spectrum JS
94
		wp_enqueue_style( 'podlove-subscribe-button-spectrum', plugin_dir_url( __FILE__ ) . 'js/spectrum/spectrum.css', array(), '1.8.0' );
95
		wp_enqueue_script( 'podlove-subscribe-button-spectrum', plugin_dir_url( __FILE__ ) . 'js/spectrum/spectrum.js', array( 'jquery' ), '1.8.0' );
96
97
		// Admin JS
98
		wp_register_script( 'podlove-subscribe-button-admin-tools', plugin_dir_url( __FILE__ ) . 'js/admin.js', array( 'jquery' ), self::$version );
99
		$js_translations = array(
100
			'select_color'  => __( 'Select Color', 'podlove-subscribe-button' ),
101
			'cancel'        => __( 'Cancel', 'podlove-subscribe-button' ),
102
			'media_library' => __( 'Media Library', 'podlove-subscribe-button' ),
103
			'use_for'       => __( 'Use for Podcast Cover Art', 'podlove-subscribe-button' ),
104
		);
105
		wp_localize_script( 'podlove-subscribe-button-admin-tools', 'i18n', $js_translations );
106
		wp_enqueue_script( 'podlove-subscribe-button-admin-tools' );
107
108
	}
109
110
	public static function admin_menu() {
111
		add_options_page(
112
			'Podlove Subscribe Button Options',
113
			'Podlove Subscribe Button',
114
			'manage_options',
115
			'podlove-subscribe-button',
116
			array( 'PodloveSubscribeButton\Settings\Buttons', 'page' )
117
		);
118
119
	}
120
121
	public static function admin_network_menu() {
122
		add_submenu_page(
123
			'settings.php',
124
			'Podlove Subscribe Button Options',
125
			'Podlove Subscribe Button',
126
			'manage_options',
127
			'podlove-subscribe-button',
128
			array( 'PodloveSubscribeButton\Settings\Buttons', 'page' )
129
		);
130
131
	}
132
133
	public static function load_translations() {
134
		load_plugin_textdomain( 'podlove-subscribe-button', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
135
136
	}
137
138
	public static function register_settings() {
139
		$settings = array(
140
			'size',
141
			'autowidth',
142
			'style',
143
			'format',
144
			'color',
145
		);
146
147
		foreach ( $settings as $setting ) {
148
			register_setting( 'podlove-subscribe-button', 'podlove_subscribe_button_default_' . $setting );
149
		}
150
151
	}
152
153
	public static function register_shortcode() {
154
		add_shortcode( 'podlove-subscribe-button', array( 'PodloveSubscribeButton', 'shortcode' ) );
155
156
	}
157
158
	public static function build_models() {
159
		// Build Databases
160
		\PodloveSubscribeButton\Model\Button::build();
161
		if ( is_multisite() )
162
			\PodloveSubscribeButton\Model\NetworkButton::build();
163
164
		// Set Button "default" values
165
		$default_values = array(
166
				'size' => 'big',
167
				'autowidth' => 'on',
168
				'color' => '#599677',
169
				'style' => 'filled',
170
				'format' => 'rectangle'
171
			);
172
173
		foreach ( $default_values as $option => $default_value ) {
174
			if ( ! get_option( 'podlove_subscribe_button_default_' . $option ) ) {
175
				update_option( 'podlove_subscribe_button_default_' . $option, $default_value );
176
			}
177
		}
178
	}
179
180
	public static function shortcode( $args ) {
181
		if ( ! $args || ! isset( $args[ 'button' ] ) ) {
182
			return __( 'You need to create a Button first and provide its ID.', 'podlove-subscribe-button' );
183
		} else {
184
			$buttonid = $args[ 'button' ];
185
		}
186
187
		// Fetch the (network)button by it's name
188
		if ( ! $button = \PodloveSubscribeButton\Model\Button::get_button_by_name( $args[ 'button' ] ) )
189
			return sprintf( __( 'Oops. There is no button with the ID "%s".', 'podlove-subscribe-button' ), $args[ 'button' ] );
190
191
		// Get button styling and options
192
		$autowidth = self::interpret_width_attribute( self::get_array_value_with_fallback( $args, 'width' ) );
193
		$size = self::get_attribute( 'size', self::get_array_value_with_fallback( $args, 'size' ) );
194
		$style = self::get_attribute( 'style', self::get_array_value_with_fallback( $args, 'style' ) );
195
		$format = self::get_attribute( 'format', self::get_array_value_with_fallback( $args, 'format' ) );
196
		$color = self::get_attribute( 'color', self::get_array_value_with_fallback( $args, 'color' ) );
197
198
		if ( isset( $args[ 'language' ] ) ) {
199
			$language = $args[ 'language' ];
200
		} else {
201
			$language = 'en';
202
		}
203
204
		if ( isset( $args[ 'color' ] ) ) {
205
			$color = $args[ 'color' ];
206
		} else {
207
			$color = get_option( 'podlove_subscribe_button_default_color', '#599677' );
208
		}
209
210
		if ( isset( $args[ 'hide' ] ) && $args[ 'hide' ] == 'true' ) {
211
			$hide = true;
212
		} else {
213
			$hide = false;
214
		}
215
216
		// Render button
217
		return $button->render( $size, $autowidth, $style, $format, $color, $hide, $buttonid, $language );
218
	}
219
220
	public static function get_array_value_with_fallback( $args, $key ) {
221
		if ( isset( $args[ $key ] ) )
222
			return $args[ $key ];
223
224
		return false;
225
	}
226
227
	/**
228
	 * @param  string $attribute
229
	 * @param  string $attribute_value
230
	 * @return string
231
	 */
232
	private static function get_attribute( $attribute = null, $attribute_value = null ) {
233
		if ( isset( $attribute_value ) && ctype_alnum( $attribute_value ) && key_exists( $attribute_value, \PodloveSubscribeButton\Model\Button::$$attribute ) ) {
234
			return $attribute_value;
235
		} else {
236
			return get_option( 'podlove_subscribe_button_default_' . $attribute, \PodloveSubscribeButton\Model\Button::$properties[ $attribute ] );
237
		}
238
	}
239
240
	/**
241
	 * Interprets the provided width attribute and return either auto- or a specific width
242
	 * @param  string $width_attribute
243
	 * @return string
244
	 */
245
	private static function interpret_width_attribute( $width_attribute = null ) {
246
		if ( $width_attribute == 'auto' )
247
			return 'on';
248
		if ( $width_attribute && $width_attribute !== 'auto' )
249
			return 'off';
250
251
		return get_option( 'podlove_subscribe_button_default_autowidth', 'on' );
252
	}
253
}
254