PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 3.2.0
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v3.2.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 / CoreLegacy.php
embedpress / EmbedPress Last commit date
AMP 6 years ago Elementor 4 years ago Ends 4 years ago Includes 4 years ago Plugins 4 years ago Providers 5 years ago ThirdParty 6 years ago AutoLoader.php 6 years ago Compatibility.php 6 years ago Core.php 4 years ago CoreLegacy.php 4 years ago DisablerLegacy.php 6 years ago Loader.php 6 years ago RestAPI.php 5 years ago Shortcode.php 4 years ago index.html 7 years ago simple_html_dom.php 4 years ago
CoreLegacy.php
375 lines
1 <?php
2
3 namespace EmbedPress;
4
5 use EmbedPress\Ends\Back\Handler as EndHandlerAdmin;
6 use EmbedPress\Ends\Back\Settings\EmbedpressSettings;
7 use EmbedPress\Ends\Front\Handler as EndHandlerPublic;
8 use EmbedPress\Includes\Traits\Shared;
9
10 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
11
12 /**
13 * Entity that glues together all pieces that the plugin is made of, for WordPress before 5.0.
14 *
15 * @package EmbedPress
16 * @author EmbedPress <help@embedpress.com>
17 * @copyright Copyright (C) 2020 WPDeveloper. All rights reserved.
18 * @license GPLv3 or later
19 * @since 1.0.0
20 */
21 class CoreLegacy
22 {
23 use Shared;
24 /**
25 * The name of the plugin.
26 *
27 * @since 1.0.0
28 * @access protected
29 *
30 * @var string $pluginName The name of the plugin.
31 */
32 protected $pluginName;
33
34 /**
35 * The version of the plugin.
36 *
37 * @since 1.0.0
38 * @access protected
39 *
40 * @var string $pluginVersion The version of the plugin.
41 */
42 protected $pluginVersion;
43
44 /**
45 * An instance of the plugin loader.
46 * @since 1.0.0
47 * @access protected
48 * @var Loader $pluginVersion The version of the plugin.
49 */
50 protected $loaderInstance;
51
52 /**
53 * An associative array storing all registered/active EmbedPress plugins and their namespaces.
54 *
55 * @since 1.4.0
56 * @access private
57 * @static
58 *
59 * @var array
60 */
61 private static $plugins = [];
62
63 /**
64 * Initialize the plugin and set its properties.
65 *
66 * @since 1.0.0
67 *
68 * @return void
69 */
70 public function __construct()
71 {
72 $this->pluginName = EMBEDPRESS_PLG_NAME;
73 $this->pluginVersion = EMBEDPRESS_VERSION;
74
75 $this->loaderInstance = new Loader();
76 add_action('admin_notices',[$this,'embedpress_admin_notice']);
77 }
78
79 /**
80 * Method that retrieves the plugin name.
81 *
82 * @since 1.0.0
83 *
84 * @return string
85 */
86 public function getPluginName()
87 {
88 return $this->pluginName;
89 }
90
91 /**
92 * Method that retrieves the plugin version.
93 *
94 * @since 1.0.0
95 *
96 * @return string
97 */
98 public function getPluginVersion()
99 {
100 return $this->pluginVersion;
101 }
102
103 /**
104 * Method that retrieves the loader instance.
105 *
106 * @since 1.0.0
107 *
108 * @return Loader
109 */
110 public function getLoader()
111 {
112 return $this->loaderInstance;
113 }
114
115 /**
116 * Method responsible to connect all required hooks in order to make the plugin work.
117 *
118 * @since 1.0.0
119 *
120 * @return void
121 */
122 public function initialize()
123 {
124 global $wp_actions;
125
126 if (is_admin()) {
127 new EmbedpressSettings();
128 $plgSettings = self::getSettings();
129 $this->admin_notice();
130
131 add_filter('plugin_action_links_embedpress/embedpress.php',
132 ['\\EmbedPress\\CoreLegacy', 'handleActionLinks'], 10, 2);
133
134 add_action('admin_enqueue_scripts', ['\\EmbedPress\\Ends\\Back\\Handler', 'enqueueStyles']);
135 add_action('wp_ajax_embedpress_notice_dismiss', ['\\EmbedPress\\Ends\\Back\\Handler', 'embedpress_notice_dismiss']);
136 add_action('init', ['\\EmbedPress\\DisablerLegacy', 'run'], 1);
137 add_action('init', [$this, 'configureTinyMCE'], 1);
138
139 $plgHandlerAdminInstance = new EndHandlerAdmin($this->getPluginName(), $this->getPluginVersion());
140
141 if ( $plgSettings->enablePluginInAdmin ) {
142 $this->loaderInstance->add_action('admin_enqueue_scripts', $plgHandlerAdminInstance, 'enqueueScripts');
143 }
144
145 $onAjaxCallbackName = "doShortcodeReceivedViaAjax";
146 $this->loaderInstance->add_action('wp_ajax_embedpress_do_ajax_request', $plgHandlerAdminInstance,
147 $onAjaxCallbackName);
148 $this->loaderInstance->add_action('wp_ajax_nopriv_embedpress_do_ajax_request', $plgHandlerAdminInstance,
149 $onAjaxCallbackName);
150
151 $this->loaderInstance->add_action('wp_ajax_embedpress_get_embed_url_info', $plgHandlerAdminInstance,
152 "getUrlInfoViaAjax");
153
154 unset($onAjaxCallbackName, $plgHandlerAdminInstance);
155 } else {
156 add_action('init', ['\\EmbedPress\\DisablerLegacy', 'run'], 1);
157
158 $plgSettings = Core::getSettings();
159
160 if (!is_admin() && $plgSettings->enablePluginInFront ) {
161 $plgHandlerPublicInstance = new EndHandlerPublic($this->getPluginName(), $this->getPluginVersion());
162
163 $this->loaderInstance->add_action('wp_enqueue_scripts', $plgHandlerPublicInstance, 'enqueueScripts');
164 $this->loaderInstance->add_action('wp_enqueue_scripts', $plgHandlerPublicInstance, 'enqueueStyles');
165
166 unset($plgHandlerPublicInstance);
167 }
168
169 }
170
171 // Add support for embeds on AMP pages
172 add_filter('pp_embed_parsed_content', ['\\EmbedPress\\AMP\\EmbedHandler', 'processParsedContent'], 10, 3);
173
174 // Add support for our embeds on Beaver Builder. Without this it only run the native embeds.
175 add_filter('fl_builder_before_render_shortcodes',
176 ['\\EmbedPress\\ThirdParty\\BeaverBuilder', 'before_render_shortcodes']);
177
178 $this->start_plugin_tracking();
179 $this->loaderInstance->run();
180 }
181
182 /**
183 * Callback called right after the plugin has been activated.
184 *
185 * @since 1.0.0
186 * @static
187 *
188 * @return void
189 */
190 public static function onPluginActivationCallback()
191 {
192 add_filter('rewrite_rules_array', ['\\EmbedPress\\DisablerLegacy', 'disableDefaultEmbedRewriteRules']);
193 flush_rewrite_rules();
194 }
195
196 /**
197 * Callback called right after the plugin has been deactivated.
198 *
199 * @since 1.0.0
200 * @static
201 *
202 * @return void
203 */
204 public static function onPluginDeactivationCallback()
205 {
206 remove_filter('rewrite_rules_array', ['\\EmbedPress\\DisablerLegacy', 'disableDefaultEmbedRewriteRules']);
207 flush_rewrite_rules();
208 }
209
210 /**
211 * Method that retrieves all additional service providers defined in the ~<plugin_root_path>/providers.php file.
212 *
213 * @since 1.0.0
214 * @static
215 *
216 * @return array
217 */
218 public static function getAdditionalServiceProviders()
219 {
220 $additionalProvidersFilePath = EMBEDPRESS_PATH_BASE . 'providers.php';
221 if (file_exists($additionalProvidersFilePath)) {
222 include $additionalProvidersFilePath;
223 if (isset($additionalServiceProviders)) {
224 return apply_filters( 'embedpress_additional_service_providers', $additionalServiceProviders);
225 }
226 }
227
228 return apply_filters( 'embedpress_additional_service_providers', []);
229 }
230
231 /**
232 * Method that checks if an embed of a given service provider can be responsive.
233 *
234 * @since 1.0.0
235 * @static
236 *
237 * @param string $serviceProviderAlias The service's slug.
238 *
239 * @return boolean
240 */
241 public static function canServiceProviderBeResponsive($serviceProviderAlias)
242 {
243 return in_array($serviceProviderAlias, [
244 "dailymotion",
245 "kickstarter",
246 "rutube",
247 "ted",
248 "vimeo",
249 "youtube",
250 "ustream",
251 "google-docs",
252 "animatron",
253 "amcharts",
254 "on-aol-com",
255 "animoto",
256 "videojug",
257 'issuu',
258 ]);
259 }
260
261 /**
262 * Method that retrieves the plugin settings defined by the user.
263 *
264 * @since 1.0.0
265 * @static
266 *
267 * @return object
268 */
269 public static function getSettings()
270 {
271 $settings = get_option(EMBEDPRESS_PLG_NAME);
272
273 if ( ! isset($settings['enablePluginInAdmin'])) {
274 $settings['enablePluginInAdmin'] = true;
275 }
276
277 if ( ! isset($settings['enablePluginInFront'])) {
278 $settings['enablePluginInFront'] = true;
279 }
280
281 return (object)$settings;
282 }
283
284
285 /**
286 * Retrieve all registered plugins.
287 *
288 * @since 1.4.0
289 * @static
290 *
291 * @return array
292 */
293 public static function getPlugins()
294 {
295 return self::$plugins;
296 }
297
298 /**
299 * Handle links displayed below the plugin name in the WordPress Installed Plugins page.
300 *
301 * @since 1.4.0
302 * @static
303 *
304 * @return array
305 */
306 public static function handleActionLinks($links, $file)
307 {
308 $settingsLink = '<a href="' . admin_url('admin.php?page=embedpress') . '" aria-label="' . __('Open settings page',
309 'embedpress') . '">' . __('Settings', 'embedpress') . '</a>';
310
311 array_unshift($links, $settingsLink);
312 if ( !is_embedpress_pro_active() ) {
313 $links[] = '<a href="https://wpdeveloper.net/in/upgrade-embedpress" target="_blank" class="embedpress-go-pro-action" style="color: green">'.__('Go Pro', 'embedpress').'</a>';
314 }
315 return $links;
316 }
317
318
319 /**
320 * Method that ensures the API's url are whitelisted to WordPress external requests.
321 *
322 * @since 1.4.0
323 * @static
324 *
325 * @param boolean $isAllowed
326 * @param string $host
327 * @param string $url
328 *
329 * @return boolean
330 */
331 public static function allowApiHost($isAllowed, $host, $url)
332 {
333 if ($host === EMBEDPRESS_LICENSES_API_HOST) {
334 $isAllowed = true;
335 }
336
337 return $isAllowed;
338 }
339
340 /**
341 * Add filters to configure the TinyMCE editor.
342 *
343 * @since 1.6.2
344 */
345 public function configureTinyMCE()
346 {
347 add_filter('teeny_mce_before_init', [$this, 'hookOnPaste']);
348 add_filter('tiny_mce_before_init', [$this, 'hookOnPaste']);
349 }
350
351 /**
352 * Hook the onPaste methof to the paste_preprocess config in the editor.
353 *
354 * @since 1.6.2
355 *
356 * @param array $mceInit
357 *
358 * @return array
359 */
360 public function hookOnPaste($mceInit)
361 {
362 $settings = self::getSettings();
363
364 if (isset($settings->enablePluginInAdmin) && $settings->enablePluginInAdmin) {
365 // We hook here because the onPaste is sometimes called after the content was already added to the editor.
366 // If you copy text from the editor and paste there, it will give no way to use a normal onPaste event hook
367 // to modify the input since it was already injected.
368 $mceInit['paste_preprocess'] = 'function (plugin, args) { if (typeof EmbedPress !== "undefined") {EmbedPress.onPaste(plugin, args); } }';
369 }
370
371
372 return $mceInit;
373 }
374 }
375