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