PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 4.0.2
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v4.0.2
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 2 years ago index.html 7 years ago
Handler.php
210 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_enqueue_style(EMBEDPRESS_PLG_NAME, 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.min.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
126 wp_localize_script('embedpress-front', 'eplocalize', array(
127 'ajaxurl' => admin_url('admin-ajax.php'),
128 'is_pro_plugin_active' => defined('EMBEDPRESS_SL_ITEM_SLUG'),
129 'nonce' => wp_create_nonce( 'ep_nonce' ),
130 ));
131 }
132
133 /**
134 * Passes any unlinked URLs to EmbedPress\Shortcode::do_shortcode() for potential embedding.
135 *
136 * @since 1.5.0
137 * @static
138 *
139 * @param string $content The content to be searched.
140 *
141 * @return string The potentially modified content.
142 */
143 public static function autoEmbedUrls($content)
144 {
145 $plgSettings = Core::getSettings();
146
147 if (!is_admin() && (bool) $plgSettings->enablePluginInFront === false) {
148 return $content;
149 }
150 // Replace line breaks from all HTML elements with placeholders.
151 $content = wp_replace_in_html_tags($content, ["\n" => '<!-- embedpress-line-break -->']);
152
153 // Look for links in the content (not wrapped by shortcode)
154 if (preg_match('#(^|\s|>)https?://#i', $content)) {
155 $callbackFingerprint = ['\\EmbedPress\\Ends\\Front\\Handler', 'autoEmbedUrlsCallback'];
156
157 // Find URLs on their own line.
158 $content = preg_replace_callback('|^(\s*)(https?://[^\s<>"]+)(\s*)$|im', $callbackFingerprint, $content);
159 // Find URLs in their own paragraph.
160 $content = preg_replace_callback(
161 '|(<p(?: [^>]*)?>\s*)(https?://[^\s<>"]+)(\s*<\/p>)|i',
162 $callbackFingerprint,
163 $content
164 );
165 }
166
167 // Put the line breaks back.
168 return str_replace('<!-- embedpress-line-break -->', "\n", $content);
169 }
170
171 /**
172 * Callback function for \EmbedPress\Ends\Front\Handler::autoEmbedUrls().
173 *
174 * @since 1.5.0
175 * @static
176 *
177 * @param array $match A regex match array.
178 *
179 * @return string The embed HTML on success, otherwise the original URL.
180 */
181 public static function autoEmbedUrlsCallback($match)
182 {
183 $return = Shortcode::do_shortcode([], $match[2]);
184
185 return $match[1] . $return . $match[3];
186 }
187
188 /**
189 * A callback called by the WP `the_editor` filter.
190 *
191 * @since 1.6.0
192 * @static
193 *
194 * @param string $editorHTML The HTML which will be rendered as an editor, like TinyMCE.
195 *
196 * @return string The HTML which will be rendered as an editor, like TinyMCE
197 */
198 public static function renderPreviewBoxInEditors($editorHTML)
199 {
200 $plgSettings = Core::getSettings();
201 if (!is_admin() && (bool) $plgSettings->enablePluginInFront) {
202 $backEndHandler = new BackEndHandler(EMBEDPRESS_PLG_NAME, EMBEDPRESS_VERSION);
203
204 $backEndHandler->enqueueScripts();
205 }
206
207 return $editorHTML;
208 }
209 }
210