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