PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 4.3.1
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v4.3.1
4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.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 / Ends / Front / Handler.php
embedpress / EmbedPress / Ends / Front Last commit date
Handler.php 1 year ago index.html 7 years ago
Handler.php
255 lines
1 <?php
2
3 namespace EmbedPress\Ends\Front;
4
5 use EmbedPress\Core;
6 use EmbedPress\Ends\Back\Handler as BackEndHandler;
7 use EmbedPress\Ends\Handler as EndHandlerAbstract;
8 use EmbedPress\Shortcode;
9
10 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
11
12 /**
13 * The public-facing functionality of the plugin.
14 * Defines the plugin name, version, and enqueue the public-specific stylesheets and scripts.
15 *
16 * @package EmbedPress
17 * @subpackage EmbedPress/Ends/Front
18 * @author EmbedPress <help@embedpress.com>
19 * @copyright Copyright (C) 2023 WPDeveloper. All rights reserved.
20 * @license GPLv3 or later
21 * @since 1.0.0
22 */
23 class Handler extends EndHandlerAbstract
24 {
25 /**
26 * Method that register all stylesheets for the public area.
27 *
28 * @since 1.0.0
29 * @static
30 *
31 * @return void
32 */
33
34
35 public static function enqueueStyles()
36 {
37 wp_register_style('embedpress-style', EMBEDPRESS_URL_ASSETS . 'css/embedpress.css', [], EMBEDPRESS_PLUGIN_VERSION);
38 }
39
40 public function enqueueScripts()
41 {
42
43 $elements = (array) get_option(EMBEDPRESS_PLG_NAME . ":elements", []);
44 $g_elementor = isset($elements['elementor']) ? (array) $elements['elementor'] : [];
45 $g_blocks = isset($elements['gutenberg']) ? (array) $elements['gutenberg'] : [];
46
47 // register style
48 wp_register_style('plyr', EMBEDPRESS_URL_ASSETS . 'css/plyr.css');
49 wp_register_style('cg-carousel', EMBEDPRESS_URL_ASSETS . 'css/carousel.min.css');
50
51 wp_register_script(
52 'embedpress-pdfobject',
53 EMBEDPRESS_URL_ASSETS . 'js/pdfobject.js',
54 ['jquery'],
55 EMBEDPRESS_PLUGIN_VERSION,
56 true
57 );
58
59 wp_register_script(
60 'plyr.polyfilled',
61 EMBEDPRESS_URL_ASSETS . 'js/plyr.polyfilled.js',
62 EMBEDPRESS_PLUGIN_VERSION,
63 true
64 );
65 wp_register_script(
66 'initplyr',
67 EMBEDPRESS_URL_ASSETS . 'js/initplyr.js',
68 ['plyr.polyfilled'],
69 EMBEDPRESS_PLUGIN_VERSION,
70 true
71 );
72
73 wp_register_script(
74 'vimeo-player',
75 EMBEDPRESS_URL_ASSETS . 'js/vimeo-player.js',
76 ['jquery'],
77 EMBEDPRESS_PLUGIN_VERSION,
78 true
79 );
80
81 $dependencies = ['jquery'];
82
83 wp_register_script(
84 'embedpress-front',
85 EMBEDPRESS_URL_ASSETS . 'js/front.js',
86 $dependencies,
87 EMBEDPRESS_PLUGIN_VERSION,
88 true
89 );
90
91 wp_register_script(
92 'embedpress-google-photos-album',
93 EMBEDPRESS_URL_ASSETS . 'js/embed-ui.min.js',
94 $dependencies,
95 EMBEDPRESS_PLUGIN_VERSION,
96 true
97 );
98
99 wp_register_script(
100 'embedpress-remove-round-button',
101 EMBEDPRESS_URL_ASSETS . 'js/remove-round-button.js',
102 ['embedpress-google-photos-album'],
103 EMBEDPRESS_PLUGIN_VERSION,
104 true
105 );
106
107 wp_register_script(
108 'embedpress-ads',
109 EMBEDPRESS_URL_ASSETS . 'js/ads.js',
110 ['jquery', 'wp-data'],
111 EMBEDPRESS_PLUGIN_VERSION,
112 true
113 );
114
115
116 wp_register_script(
117 'embedpress_documents_viewer_script',
118 EMBEDPRESS_URL_ASSETS . 'js/documents-viewer-script.js',
119 ['jquery'],
120 EMBEDPRESS_PLUGIN_VERSION,
121 true
122 );
123
124
125 wp_register_script(
126 'cg-carousel',
127 EMBEDPRESS_URL_ASSETS . 'js/carousel.min.js',
128 ['jquery'],
129 EMBEDPRESS_PLUGIN_VERSION,
130 true
131 );
132
133 wp_register_script(
134 'init-carousel',
135 EMBEDPRESS_URL_ASSETS . 'js/initCarousel.js',
136 ['jquery', 'cg-carousel'],
137 EMBEDPRESS_PLUGIN_VERSION,
138 true
139 );
140
141 wp_register_script(
142 'html2canvass',
143 EMBEDPRESS_URL_ASSETS . 'pdf-flip-book/js/html2canvas.min.js',
144 ['jquery'],
145 EMBEDPRESS_PLUGIN_VERSION,
146 true
147 );
148 wp_register_script(
149 'threes',
150 EMBEDPRESS_URL_ASSETS . 'pdf-flip-book/js/three.min.js',
151 ['jquery'],
152 EMBEDPRESS_PLUGIN_VERSION,
153 true
154 );
155 wp_register_script(
156 'pdfs',
157 EMBEDPRESS_URL_ASSETS . 'pdf-flip-book/js/pdf.min.js',
158 ['jquery'],
159 EMBEDPRESS_PLUGIN_VERSION,
160 true
161 );
162 wp_register_script(
163 '3dflipbooks',
164 EMBEDPRESS_URL_ASSETS . 'pdf-flip-book/js/3dflipbook.min.js',
165 ['jquery'],
166 EMBEDPRESS_PLUGIN_VERSION,
167 true
168 );
169
170
171 wp_localize_script('embedpress-front', 'eplocalize', array(
172 'ajaxurl' => admin_url('admin-ajax.php'),
173 'is_pro_plugin_active' => defined('EMBEDPRESS_SL_ITEM_SLUG'),
174 'nonce' => wp_create_nonce( 'ep_nonce' ),
175 ));
176 }
177
178 /**
179 * Passes any unlinked URLs to EmbedPress\Shortcode::do_shortcode() for potential embedding.
180 *
181 * @since 1.5.0
182 * @static
183 *
184 * @param string $content The content to be searched.
185 *
186 * @return string The potentially modified content.
187 */
188 public static function autoEmbedUrls($content)
189 {
190 $plgSettings = Core::getSettings();
191
192 if (!is_admin() && (bool) $plgSettings->enablePluginInFront === false) {
193 return $content;
194 }
195 // Replace line breaks from all HTML elements with placeholders.
196 $content = wp_replace_in_html_tags($content, ["\n" => '<!-- embedpress-line-break -->']);
197
198 // Look for links in the content (not wrapped by shortcode)
199 if (preg_match('#(^|\s|>)https?://#i', $content)) {
200 $callbackFingerprint = ['\\EmbedPress\\Ends\\Front\\Handler', 'autoEmbedUrlsCallback'];
201
202 // Find URLs on their own line.
203 $content = preg_replace_callback('|^(\s*)(https?://[^\s<>"]+)(\s*)$|im', $callbackFingerprint, $content);
204 // Find URLs in their own paragraph.
205 $content = preg_replace_callback(
206 '|(<p(?: [^>]*)?>\s*)(https?://[^\s<>"]+)(\s*<\/p>)|i',
207 $callbackFingerprint,
208 $content
209 );
210 }
211
212 // Put the line breaks back.
213 return str_replace('<!-- embedpress-line-break -->', "\n", $content);
214 }
215
216 /**
217 * Callback function for \EmbedPress\Ends\Front\Handler::autoEmbedUrls().
218 *
219 * @since 1.5.0
220 * @static
221 *
222 * @param array $match A regex match array.
223 *
224 * @return string The embed HTML on success, otherwise the original URL.
225 */
226 public static function autoEmbedUrlsCallback($match)
227 {
228 $return = Shortcode::do_shortcode([], $match[2]);
229
230 return $match[1] . $return . $match[3];
231 }
232
233 /**
234 * A callback called by the WP `the_editor` filter.
235 *
236 * @since 1.6.0
237 * @static
238 *
239 * @param string $editorHTML The HTML which will be rendered as an editor, like TinyMCE.
240 *
241 * @return string The HTML which will be rendered as an editor, like TinyMCE
242 */
243 public static function renderPreviewBoxInEditors($editorHTML)
244 {
245 $plgSettings = Core::getSettings();
246 if (!is_admin() && (bool) $plgSettings->enablePluginInFront) {
247 $backEndHandler = new BackEndHandler(EMBEDPRESS_PLG_NAME, EMBEDPRESS_VERSION);
248
249 $backEndHandler->enqueueScripts();
250 }
251
252 return $editorHTML;
253 }
254 }
255