PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 4.1.10
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v4.1.10
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
247 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');
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-ads',
101 EMBEDPRESS_URL_ASSETS . 'js/ads.js',
102 ['jquery', 'wp-data'],
103 EMBEDPRESS_PLUGIN_VERSION,
104 true
105 );
106
107
108 wp_register_script(
109 'embedpress_documents_viewer_script',
110 EMBEDPRESS_URL_ASSETS . 'js/documents-viewer-script.js',
111 ['jquery'],
112 EMBEDPRESS_PLUGIN_VERSION,
113 true
114 );
115
116
117 wp_register_script(
118 'cg-carousel',
119 EMBEDPRESS_URL_ASSETS . 'js/carousel.min.js',
120 ['jquery'],
121 EMBEDPRESS_PLUGIN_VERSION,
122 true
123 );
124
125 wp_register_script(
126 'init-carousel',
127 EMBEDPRESS_URL_ASSETS . 'js/initCarousel.js',
128 ['jquery', 'cg-carousel'],
129 EMBEDPRESS_PLUGIN_VERSION,
130 true
131 );
132
133 wp_register_script(
134 'html2canvass',
135 EMBEDPRESS_URL_ASSETS . 'pdf-flip-book/js/html2canvas.min.js',
136 ['jquery'],
137 EMBEDPRESS_PLUGIN_VERSION,
138 true
139 );
140 wp_register_script(
141 'threes',
142 EMBEDPRESS_URL_ASSETS . 'pdf-flip-book/js/three.min.js',
143 ['jquery'],
144 EMBEDPRESS_PLUGIN_VERSION,
145 true
146 );
147 wp_register_script(
148 'pdfs',
149 EMBEDPRESS_URL_ASSETS . 'pdf-flip-book/js/pdf.min.js',
150 ['jquery'],
151 EMBEDPRESS_PLUGIN_VERSION,
152 true
153 );
154 wp_register_script(
155 '3dflipbooks',
156 EMBEDPRESS_URL_ASSETS . 'pdf-flip-book/js/3dflipbook.min.js',
157 ['jquery'],
158 EMBEDPRESS_PLUGIN_VERSION,
159 true
160 );
161
162
163 wp_localize_script('embedpress-front', 'eplocalize', array(
164 'ajaxurl' => admin_url('admin-ajax.php'),
165 'is_pro_plugin_active' => defined('EMBEDPRESS_SL_ITEM_SLUG'),
166 'nonce' => wp_create_nonce( 'ep_nonce' ),
167 ));
168 }
169
170 /**
171 * Passes any unlinked URLs to EmbedPress\Shortcode::do_shortcode() for potential embedding.
172 *
173 * @since 1.5.0
174 * @static
175 *
176 * @param string $content The content to be searched.
177 *
178 * @return string The potentially modified content.
179 */
180 public static function autoEmbedUrls($content)
181 {
182 $plgSettings = Core::getSettings();
183
184 if (!is_admin() && (bool) $plgSettings->enablePluginInFront === false) {
185 return $content;
186 }
187 // Replace line breaks from all HTML elements with placeholders.
188 $content = wp_replace_in_html_tags($content, ["\n" => '<!-- embedpress-line-break -->']);
189
190 // Look for links in the content (not wrapped by shortcode)
191 if (preg_match('#(^|\s|>)https?://#i', $content)) {
192 $callbackFingerprint = ['\\EmbedPress\\Ends\\Front\\Handler', 'autoEmbedUrlsCallback'];
193
194 // Find URLs on their own line.
195 $content = preg_replace_callback('|^(\s*)(https?://[^\s<>"]+)(\s*)$|im', $callbackFingerprint, $content);
196 // Find URLs in their own paragraph.
197 $content = preg_replace_callback(
198 '|(<p(?: [^>]*)?>\s*)(https?://[^\s<>"]+)(\s*<\/p>)|i',
199 $callbackFingerprint,
200 $content
201 );
202 }
203
204 // Put the line breaks back.
205 return str_replace('<!-- embedpress-line-break -->', "\n", $content);
206 }
207
208 /**
209 * Callback function for \EmbedPress\Ends\Front\Handler::autoEmbedUrls().
210 *
211 * @since 1.5.0
212 * @static
213 *
214 * @param array $match A regex match array.
215 *
216 * @return string The embed HTML on success, otherwise the original URL.
217 */
218 public static function autoEmbedUrlsCallback($match)
219 {
220 $return = Shortcode::do_shortcode([], $match[2]);
221
222 return $match[1] . $return . $match[3];
223 }
224
225 /**
226 * A callback called by the WP `the_editor` filter.
227 *
228 * @since 1.6.0
229 * @static
230 *
231 * @param string $editorHTML The HTML which will be rendered as an editor, like TinyMCE.
232 *
233 * @return string The HTML which will be rendered as an editor, like TinyMCE
234 */
235 public static function renderPreviewBoxInEditors($editorHTML)
236 {
237 $plgSettings = Core::getSettings();
238 if (!is_admin() && (bool) $plgSettings->enablePluginInFront) {
239 $backEndHandler = new BackEndHandler(EMBEDPRESS_PLG_NAME, EMBEDPRESS_VERSION);
240
241 $backEndHandler->enqueueScripts();
242 }
243
244 return $editorHTML;
245 }
246 }
247