PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 1.1.0
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v1.1.0
4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / EmbedPress / Plugin.php
embedpress / EmbedPress Last commit date
Ends 9 years ago Providers 9 years ago AutoLoader.php 9 years ago Disabler.php 9 years ago Loader.php 9 years ago Plugin.php 9 years ago Shortcode.php 9 years ago index.html 9 years ago
Plugin.php
239 lines
1 <?php
2 namespace EmbedPress;
3
4 use \EmbedPress\Loader;
5 use \EmbedPress\Ends\Back\Handler as EndHandlerAdmin;
6 use \EmbedPress\Ends\Front\Handler as EndHandlerPublic;
7
8 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
9
10 /**
11 * Entity that glues together all pieces that the plugin is made of.
12 *
13 * @package EmbedPress
14 * @author PressShack <help@pressshack.com>
15 * @copyright Copyright (C) 2016 Open Source Training, LLC. All rights reserved.
16 * @license GPLv2 or later
17 * @since 1.0.0
18 */
19 class Plugin
20 {
21 /**
22 * The name of the plugin.
23 *
24 * @since 1.0.0
25 * @access protected
26 *
27 * @var string $pluginName The name of the plugin.
28 */
29 protected $pluginName;
30
31 /**
32 * The version of the plugin.
33 *
34 * @since 1.0.0
35 * @access protected
36 *
37 * @var string $pluginVersion The version of the plugin.
38 */
39 protected $pluginVersion;
40
41 /**
42 * An instance of the plugin loader.
43 *
44 * @since 1.0.0
45 * @access protected
46 *
47 * @var \EmbedPress\Loader $pluginVersion The version of the plugin.
48 */
49 protected $loaderInstance;
50
51 /**
52 * Initialize the plugin and set its properties.
53 *
54 * @since 1.0.0
55 *
56 * @return void
57 */
58 public function __construct()
59 {
60 $this->pluginName = EMBEDPRESS_PLG_NAME;
61 $this->pluginVersion = EMBEDPRESS_PLG_VERSION;
62
63 $this->loaderInstance = new Loader();
64 }
65
66 /**
67 * Method that retrieves the plugin name.
68 *
69 * @since 1.0.0
70 *
71 * @return string
72 */
73 public function getPluginName()
74 {
75 return $this->pluginName;
76 }
77
78 /**
79 * Method that retrieves the plugin version.
80 *
81 * @since 1.0.0
82 *
83 * @return string
84 */
85 public function getPluginVersion()
86 {
87 return $this->pluginVersion;
88 }
89
90 /**
91 * Method that retrieves the loader instance.
92 *
93 * @since 1.0.0
94 *
95 * @return \EmbedPress\Loader
96 */
97 public function getLoader()
98 {
99 return $this->loaderInstance;
100 }
101
102 /**
103 * Method responsible to connect all required hooks in order to make the plugin work.
104 *
105 * @since 1.0.0
106 *
107 * @return void
108 */
109 public function initialize()
110 {
111 global $wp_actions;
112
113 if (is_admin()) {
114 $plgSettings = self::getSettings();
115
116 $settingsClassNamespace = '\EmbedPress\Ends\Back\Settings';
117 add_action('admin_menu', array($settingsClassNamespace, 'registerMenuItem'));
118 add_action('admin_init', array($settingsClassNamespace, 'registerActions'));
119 unset($settingsClassNamespace);
120
121 if ($plgSettings->enablePluginInAdmin) {
122 add_action('init', array('\EmbedPress\Disabler', 'run'), 1);
123
124 $plgHandlerAdminInstance = new EndHandlerAdmin($this->getPluginName(), $this->getPluginVersion());
125
126 $enqueueScriptsHookName = "admin_enqueue_scripts";
127 $this->loaderInstance->add_action($enqueueScriptsHookName, $plgHandlerAdminInstance, 'enqueueScripts');
128 $this->loaderInstance->add_action($enqueueScriptsHookName, $plgHandlerAdminInstance, 'enqueueStyles');
129
130 $onAjaxCallbackName = "doShortcodeReceivedViaAjax";
131 $this->loaderInstance->add_action('wp_ajax_embedpress_do_ajax_request', $plgHandlerAdminInstance, $onAjaxCallbackName);
132 $this->loaderInstance->add_action('wp_ajax_nopriv_embedpress_do_ajax_request', $plgHandlerAdminInstance, $onAjaxCallbackName);
133
134 $this->loaderInstance->add_action('wp_ajax_embedpress_get_embed_url_info', $plgHandlerAdminInstance, "getUrlInfoViaAjax");
135
136 unset($onAjaxCallbackName, $enqueueScriptsHookName, $plgHandlerAdminInstance);
137 }
138 } else {
139 add_action('init', array('\EmbedPress\Disabler', 'run'), 1);
140
141 $plgHandlerPublicInstance = new EndHandlerPublic($this->getPluginName(), $this->getPluginVersion());
142
143 $enqueueScriptsHookName = "wp_enqueue_scripts";
144 $this->loaderInstance->add_action($enqueueScriptsHookName, $plgHandlerPublicInstance, 'enqueueScripts');
145 $this->loaderInstance->add_action($enqueueScriptsHookName, $plgHandlerPublicInstance, 'enqueueStyles');
146
147 unset($enqueueScriptsHookName, $plgHandlerPublicInstance);
148 }
149
150 $this->loaderInstance->run();
151 }
152
153 /**
154 * Callback called right after the plugin has been activated.
155 *
156 * @since 1.0.0
157 * @static
158 *
159 * @return void
160 */
161 public static function onPluginActivationCallback()
162 {
163 add_filter('rewrite_rules_array', array('\EmbedPress\Disabler', 'disableDefaultEmbedRewriteRules'));
164 flush_rewrite_rules();
165 }
166
167 /**
168 * Callback called right after the plugin has been deactivated.
169 *
170 * @since 1.0.0
171 * @static
172 *
173 * @return void
174 */
175 public static function onPluginDeactivationCallback()
176 {
177 remove_filter('rewrite_rules_array', array('\EmbedPress\Disabler', 'disableDefaultEmbedRewriteRules'));
178 flush_rewrite_rules();
179 }
180
181 /**
182 * Method that retrieves all additional service providers defined in the ~<plugin_root_path>/providers.php file.
183 *
184 * @since 1.0.0
185 * @static
186 *
187 * @return array
188 */
189 public static function getAdditionalServiceProviders()
190 {
191 $additionalProvidersFilePath = EMBEDPRESS_PATH_BASE .'providers.php';
192 if (file_exists($additionalProvidersFilePath)) {
193 include $additionalProvidersFilePath;
194
195 if (isset($additionalServiceProviders)) {
196 return $additionalServiceProviders;
197 }
198 }
199
200 return array();
201 }
202
203 /**
204 * Method that checks if an embed of a given service provider can be responsive.
205 *
206 * @since 1.0.0
207 * @static
208 *
209 * @return boolean
210 */
211 public static function canServiceProviderBeResponsive($serviceProviderAlias)
212 {
213 return in_array($serviceProviderAlias, array("dailymotion", "kickstarter", "rutube", "ted", "vimeo", "youtube", "ustream", "google-docs", "animatron", "amcharts", "on-aol-com", "animoto", "videojug"));
214 }
215
216 /**
217 * Method that retrieves the plugin settings defined by the user.
218 *
219 * @since 1.0.0
220 * @static
221 *
222 * @return object
223 */
224 public static function getSettings()
225 {
226 $settings = get_option("embedpress_options");
227
228 if (!isset($settings['displayPreviewBox'])) {
229 $settings['displayPreviewBox'] = true;
230 }
231
232 if (!isset($settings['enablePluginInAdmin'])) {
233 $settings['enablePluginInAdmin'] = true;
234 }
235
236 return (object)$settings;
237 }
238 }
239