PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 3.8.1
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v3.8.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 / Elementor / Widgets / Embedpress_Document.php
embedpress / EmbedPress / Elementor / Widgets Last commit date
Embedpress_Calendar.php 3 years ago Embedpress_Document.php 3 years ago Embedpress_Elementor.php 3 years ago Embedpress_Pdf.php 3 years ago
Embedpress_Document.php
677 lines
1 <?php
2
3 namespace EmbedPress\Elementor\Widgets;
4
5
6 use \Elementor\Controls_Manager as Controls_Manager;
7 use \Elementor\Modules\DynamicTags\Module as TagsModule;
8 use \Elementor\Widget_Base as Widget_Base;
9 use \Elementor\Plugin;
10 use EmbedPress\Includes\Traits\Branding;
11 use EmbedPress\Includes\Classes\Helper;
12
13 ( defined( 'ABSPATH' ) ) or die( "No direct script access allowed." );
14
15 class Embedpress_Document extends Widget_Base
16 {
17 use Branding;
18 protected $pro_class = '';
19 protected $pro_text = '';
20 public function get_name()
21 {
22 return 'embedpres_document';
23 }
24
25 public function get_title()
26 {
27 return esc_html__( 'EmbedPress Document', 'embedpress' );
28 }
29
30 public function get_categories()
31 {
32 return ['embedpress'];
33 }
34
35 public function get_custom_help_url()
36 {
37 return 'https://embedpress.com/documentation';
38 }
39
40 public function get_icon()
41 {
42 return 'icon-document';
43 }
44
45 /**
46 * Get widget keywords.
47 *
48 * Retrieve the list of keywords the widget belongs to.
49 *
50 * @return array Widget keywords.
51 * @since 2.5.5
52 * @access public
53 *
54 */
55 public function get_keywords()
56 {
57 return ['embedpress', 'pdf', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'embedpress-document'];
58 }
59
60 protected function register_controls()
61 {
62 $this->pro_class = is_embedpress_pro_active() ? '': 'embedpress-pro-control not-active';
63 $this->pro_text = is_embedpress_pro_active() ? '': '<sup class="embedpress-pro-label" style="color:red">'.__('Pro', 'embedpress').'</sup>';
64 /**
65 * EmbedPress Content Settings
66 */
67 $this->start_controls_section(
68 'embedpress_document_content_settings',
69 [
70 'label' => esc_html__( 'General', 'embedpress' ),
71 ]
72 );
73
74 $this->add_control(
75 'embedpress_document_type',
76 [
77 'label' => __( 'Document Type', 'embedpress' ),
78 'type' => Controls_Manager::SELECT,
79 'default' => 'file',
80 'options' => [
81 'file' => __( 'File', 'embedpress' ),
82 'url' => __( 'URL', 'embedpress' )
83 ],
84 ]
85 );
86
87 $this->add_control(
88 'embedpress_document_Uploader',
89 [
90
91 'label' => __( 'Upload File', 'embedpress' ),
92 'type' => Controls_Manager::MEDIA,
93 'dynamic' => [
94 'active' => true,
95 'categories' => [
96 TagsModule::MEDIA_CATEGORY,
97 ],
98 ],
99 'media_type' => [
100 'application/pdf',
101 'application/msword',
102 'application/vnd.ms-powerpoint',
103 'application/vnd.ms-excel',
104 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
105 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
106 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
107 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' // Added PPSX MIME type
108
109 ],
110 'description' => __( 'Upload a file or pick one from your media library for embed. Supported File Type: PDF, DOC/DOCX, PPT/PPTX, XLS/XLSX etc.',
111 'embedpress' ),
112 'condition' => [
113 'embedpress_document_type' => 'file'
114 ],
115 ]
116 );
117
118 $this->add_control(
119 'embedpress_document_file_link',
120 [
121 'label' => __( 'URL', 'embedpress' ),
122 'type' => Controls_Manager::URL,
123 'placeholder' => __( 'https://your-link.com/file.pdf', 'embedpress' ),
124 'show_external' => false,
125 'dynamic' => [
126 'active' => true,
127 ],
128 'default' => [
129 'url' => ''
130 ],
131 'condition' => [
132 'embedpress_document_type' => 'url'
133 ],
134 ]
135 );
136
137 $this->add_responsive_control(
138 'embedpress_elementor_document_width',
139 [
140 'type' => \Elementor\Controls_Manager::SLIDER,
141 'label' => esc_html__( 'Width', 'embedpress' ),
142 'range' => [
143 'px' => [
144 'min' => 1,
145 'max' => 1000,
146 ],
147 ],
148 'devices' => [ 'desktop', 'tablet', 'mobile' ],
149 'default' => [
150 'unit' => 'px',
151 'size' => 600,
152 ],
153 'desktop_default' => [
154 'unit' => 'px',
155 'size' => 600,
156 ],
157 'tablet_default' => [
158 'size' => 400,
159 'unit' => 'px',
160 ],
161 'mobile_default' => [
162 'size' => 300,
163 'unit' => 'px',
164 ],
165 'selectors' => [
166 '{{WRAPPER}} .embedpress-document-embed iframe' => 'width: {{SIZE}}{{UNIT}} !important; max-width: 100%',
167 '{{WRAPPER}} .embedpress-document-embed .pdfobject-container' => 'width: {{SIZE}}{{UNIT}} !important; max-width: 100%',
168 '{{WRAPPER}} .embedpress-document-embed' => 'width: {{SIZE}}{{UNIT}} !important; max-width: 100%',
169 ],
170 ]
171 );
172 $this->add_responsive_control(
173 'embedpress_elementor_document_height',
174 [
175 'type' => \Elementor\Controls_Manager::SLIDER,
176 'label' => esc_html__( 'Height', 'embedpress' ),
177 'range' => [
178 'px' => [
179 'min' => 1,
180 'max' => 1000,
181 ],
182 ],
183 'devices' => [ 'desktop', 'tablet', 'mobile' ],
184 'default' => [
185 'unit' => 'px',
186 'size' => 600,
187 ],
188 'desktop_default' => [
189 'unit' => 'px',
190 'size' => 600,
191 ],
192 'tablet_default' => [
193 'size' => 400,
194 'unit' => 'px',
195 ],
196 'mobile_default' => [
197 'size' => 300,
198 'unit' => 'px',
199 ],
200 'selectors' => [
201 '{{WRAPPER}} .embedpress-document-embed iframe' => 'height: {{SIZE}}{{UNIT}}!important;',
202 '{{WRAPPER}} .embedpress-document-embed .pdfobject-container' => 'height: {{SIZE}}{{UNIT}};',
203 '{{WRAPPER}} .embedpress-document-embed ' => 'max-height: {{SIZE}}{{UNIT}};',
204 ],
205 ]
206 );
207
208 $this->add_responsive_control(
209 'embedpress_elementor_document_align',
210 [
211 'label' => __( 'Alignment', 'embedpress' ),
212 'type' => Controls_Manager::CHOOSE,
213 'options' => [
214 'left' => [
215 'title' => __( 'Left', 'embedpress' ),
216 'icon' => 'eicon-text-align-left',
217 ],
218 'center' => [
219 'title' => __( 'Center', 'embedpress' ),
220 'icon' => 'eicon-text-align-center',
221 ],
222 'right' => [
223 'title' => __( 'Right', 'embedpress' ),
224 'icon' => 'eicon-text-align-right',
225 ]
226 ],
227 'prefix_class' => 'elementor%s-align-',
228 'default' => '',
229 ]
230 );
231
232 $this->add_control(
233 'embedpress_document_powered_by',
234 [
235 'label' => __( 'Powered By', 'embedpress' ),
236 'type' => Controls_Manager::SWITCHER,
237 'label_on' => __( 'Show', 'embedpress' ),
238 'label_off' => __( 'Hide', 'embedpress' ),
239 'return_value' => 'yes',
240 'default' => apply_filters( 'embedpress_document_powered_by_control', 'yes' ),
241 ]
242 );
243
244 $this->init_branding_controls( 'document');
245
246 $this->end_controls_section();
247
248 /**
249 * EmbedPress Document control settings
250 */
251
252 $this->start_controls_section(
253 'embedpress_doc_content_settings',
254 [
255 'label' => esc_html__('Controls', 'embedpress'),
256 ]
257 );
258
259 $this->add_control(
260 'important_note',
261 [
262 'type' => \Elementor\Controls_Manager::RAW_HTML,
263 'raw' => esc_html__( 'Download feature is available when link has the document extension at the end.', 'embedpress' ),
264 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
265 'condition' => [
266 'embedpress_document_type' => 'url',
267 ],
268 ]
269 );
270
271 $this->add_control(
272 'embedpress_theme_mode',
273 [
274 'label' => __('Theme', 'embedpress'),
275 'type' => Controls_Manager::SELECT,
276 'default' => 'default',
277 'options' => [
278 'default' => __('System Default', 'embedpress'),
279 'dark' => __('Dark', 'embedpress'),
280 'light' => __('Light', 'embedpress'),
281 'custom' => __('Custom', 'embedpress')
282 ],
283 ]
284 );
285
286 $this->add_control(
287 'embedpress_doc_custom_color',
288 [
289 'label' => esc_html__( 'Color', 'embedpress' ),
290 'type' => \Elementor\Controls_Manager::COLOR,
291 'condition' => [
292 'embedpress_theme_mode' => 'custom',
293 ],
294 ]
295 );
296
297 $this->add_control(
298 'doc_toolbar',
299 [
300 'label' => sprintf(__('Toolbar %s', 'embedpress'), $this->pro_text),
301 'type' => Controls_Manager::SWITCHER,
302 'label_on' => __('Show', 'embedpress'),
303 'label_off' => __('Hide', 'embedpress'),
304 'return_value' => 'yes',
305 'default' => 'yes',
306 'classes' => $this->pro_class,
307 ]
308 );
309
310
311 $this->add_control(
312 'doc_fullscreen_mode',
313 [
314 'label' => __('Fullscreen', 'embedpress'),
315 'type' => Controls_Manager::SWITCHER,
316 'label_on' => __('Show', 'embedpress'),
317 'label_off' => __('Hide', 'embedpress'),
318 'return_value' => 'yes',
319 'default' => 'yes',
320 'condition' => [
321 'doc_toolbar' => 'yes',
322 ],
323 ]
324 );
325
326 $this->add_control(
327 'doc_print_download',
328 [
329 'label' => sprintf(__('Print/Download %s', 'embedpress'), $this->pro_text),
330 'type' => Controls_Manager::SWITCHER,
331 'label_on' => __('Show', 'embedpress'),
332 'label_off' => __('Hide', 'embedpress'),
333 'return_value' => 'yes',
334 'default' => 'yes',
335 'classes' => $this->pro_class,
336 'condition' => [
337 'doc_toolbar' => 'yes',
338 ],
339 ]
340 );
341
342
343 $this->add_control(
344 'doc_draw',
345 [
346 'label' => __('Draw', 'embedpress'),
347 'type' => Controls_Manager::SWITCHER,
348 'label_on' => __('Show', 'embedpress'),
349 'label_off' => __('Hide', 'embedpress'),
350 'return_value' => 'yes',
351 'default' => 'yes',
352 'condition' => [
353 'doc_toolbar' => 'yes',
354 ],
355 ]
356 );
357
358
359 $this->end_controls_section();
360
361 do_action( 'extend_elementor_controls', $this, '_doc_', $this->pro_text, $this->pro_class);
362
363 if (! is_embedpress_pro_active()) {
364 $this->start_controls_section(
365 'embedpress_pro_section',
366 [
367 'label' => __('Go Premium for More Features', 'embedpress'),
368 ]
369 );
370
371 $this->add_control(
372 'embedpress_pro_cta',
373 [
374 'label' => __('Unlock more possibilities', 'embedpress'),
375 'type' => Controls_Manager::CHOOSE,
376 'options' => [
377 '1' => [
378 'title' => '',
379 'icon' => 'eicon-lock',
380 ],
381 ],
382 'default' => '1',
383 'description' => '<span class="pro-feature"> Get the <a href="https://wpdeveloper.com/in/upgrade-embedpress" target="_blank">Pro version</a> for more provider support and customization options.</span>',
384 ]
385 );
386
387 $this->end_controls_section();
388 }
389 }
390
391 private function is_pdf( $url )
392 {
393 $arr = explode( '.', $url );
394 return end( $arr ) === 'pdf';
395 }
396
397 protected function render()
398 {
399 $settings = $this->get_settings();
400
401 $client_id = $this->get_id();
402 $pass_hash_key = md5($settings['embedpress_doc_lock_content_password']);
403 $url = $this->get_file_url();
404 $id = 'embedpress-pdf-' . $this->get_id();
405
406 if($settings['embedpress_document_type'] === 'url') {
407 if(class_exists( 'ACF' ) && function_exists('get_field')){
408 if(!empty($settings['__dynamic__']) && !empty($settings['__dynamic__']['embedpress_document_file_link'])){
409 $decode_url = urldecode(($settings['__dynamic__']['embedpress_document_file_link']));
410 preg_match('/"key":"([^"]+):([^"]+)"/', $decode_url, $matches);
411 if (isset($matches[0])) {
412 if (isset($matches[1])) {
413 $get_acf_key = $matches[1];
414 $url = get_field($get_acf_key);
415
416 if(empty($url)){
417 $pattern = '/"fallback":"([^"]+)"/';
418 preg_match($pattern, $decode_url, $matches);
419
420 if (isset($matches[1])) {
421 $url = $matches[1];
422 }
423 }
424 }
425 }
426 }
427 }
428 }
429 $hash_pass = hash('sha256', wp_salt(32) . md5($settings['embedpress_doc_lock_content_password']));
430
431 $dimension = '';
432 if(empty($settings['embedpress_doc_lock_content']) && empty($settings['embedpress_doc_lock_content_password'])){
433 $dimension = "width: {$settings['embedpress_elementor_document_width']['size']}px;height: {$settings['embedpress_elementor_document_height']['size']}px";
434 }
435
436 $content_locked_class = '';
437 if(!empty($settings['embedpress_doc_lock_content']) && !empty($settings['embedpress_doc_lock_content_password'])){
438 $content_locked_class = 'ep-content-locked';
439 }
440
441
442 $this->add_render_attribute( 'embedpres-pdf-render', [
443 'class' => ['embedpress-embed-document-pdf', $id],
444 'data-emid' => $id
445 ] );
446
447 Helper::get_source_data(md5($this->get_id()).'_eb_elementor', $url, 'elementor_source_data', 'elementor_temp_source_data');
448
449 $this->add_render_attribute( 'embedpress-document', [
450 'class' => ['embedpress-document-embed', 'ep-doc-'.md5( $id), 'ose-document', $content_locked_class]
451 ] );
452
453 $embed_settings = [];
454 $embed_settings['customThumbnail'] = !empty($settings['embedpress_doc_content_share_custom_thumbnail']['url']) ? $settings['embedpress_doc_content_share_custom_thumbnail']['url'] : '';
455
456 $embed_settings['customTitle'] = !empty($settings['embedpress_doc_content_title']) ? $settings['embedpress_doc_content_title'] : Helper::get_file_title($url);
457
458 $embed_settings['customDescription'] = !empty($settings['embedpress_doc_content_descripiton']) ? $settings['embedpress_doc_content_descripiton'] : Helper::get_file_title($url);
459
460 $embed_settings['sharePosition'] = !empty($settings['embedpress_doc_content_share_position']) ? $settings['embedpress_doc_content_share_position'] : 'right';
461
462 $embed_settings['lockHeading'] = !empty($settings['embedpress_doc_lock_content_heading']) ? $settings['embedpress_doc_lock_content_heading'] : '';
463
464 $embed_settings['lockSubHeading'] = !empty($settings['embedpress_doc_lock_content_sub_heading']) ? $settings['embedpress_doc_lock_content_sub_heading'] : '';
465
466 $embed_settings['lockErrorMessage'] = !empty($settings['embedpress_doc_lock_content_error_message']) ? $settings['embedpress_doc_lock_content_error_message'] : '';
467
468
469 $embed_settings['passwordPlaceholder'] = !empty($settings['embedpress_doc_password_placeholder']) ? $settings['embedpress_doc_password_placeholder'] : '';
470
471 $embed_settings['submitButtonText'] = !empty($settings['embedpress_doc_submit_button_text']) ? $settings['embedpress_doc_submit_button_text'] : '';
472
473 $embed_settings['submitUnlockingText'] = !empty($settings['embedpress_doc_submit_Unlocking_text']) ? $settings['embedpress_doc_submit_Unlocking_text'] : '';
474
475
476 $embed_settings['enableFooterMessage'] = !empty($settings['embedpress_doc_enable_footer_message']) ? $settings['embedpress_doc_enable_footer_message'] : '';
477
478 $embed_settings['footerMessage'] = !empty($settings['embedpress_doc_lock_content_footer_message']) ? $settings['embedpress_doc_lock_content_footer_message'] : '';
479
480
481 $content_share_class = '';
482 $share_position_class = '';
483 $share_position = isset($settings['embedpress_doc_content_share_position']) ? $settings['embedpress_doc_content_share_position'] : 'right';
484
485 if(!empty($settings['embedpress_doc_content_share'])) {
486 $content_share_class = 'ep-content-share-enabled';
487 $share_position_class = 'ep-share-position-'.$share_position;
488 }
489
490 $password_correct = isset($_COOKIE['password_correct_'.$client_id]) ? $_COOKIE['password_correct_'.$client_id] : '';
491
492 $content_protection_class = 'ep-content-protection-enabled';
493 if(empty($settings['embedpress_doc_lock_content']) || empty($settings['embedpress_doc_lock_content_password']) || $hash_pass === $password_correct) {
494 $content_protection_class = 'ep-content-protection-disabled';
495 }
496
497 ?>
498
499
500 <div <?php echo $this->get_render_attribute_string('embedpress-document'); ?> style="<?php echo esc_attr($dimension); ?>; max-width:100%; display: inline-block">
501
502 <?php
503
504
505 do_action( 'embedpress_document_after_embed', $settings, $url, $id, $this);
506
507 if ( $url != '' ) {
508 if ( $this->is_pdf( $url ) ) {
509 $this->add_render_attribute( 'embedpres-pdf-render', 'data-emsrc', $url );
510 $embed_content = '<div ' . $this->get_render_attribute_string( 'embedpres-pdf-render' ) . '>';
511
512 $embed_content .= '<iframe title="' . esc_attr( Helper::get_file_title($url) ) . '" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" style="' . esc_attr( $dimension ) . '; max-width:100%;" src="' . esc_url( $url ) . '"></iframe>';
513
514 if ( $settings[ 'embedpress_document_powered_by' ] === 'yes' ) {
515 $embed_content .= sprintf( '<p class="embedpress-el-powered">%s</p>', __( 'Powered By EmbedPress', 'embedpress' ) );
516 }
517 $embed_content .= '</div>';
518
519 if ( Plugin::$instance->editor->is_edit_mode() ) {
520 $embed_content .= $this->render_editor_script( $id, $url );
521 }
522
523 } else {
524 if(Helper::is_file_url($url)){
525 $view_link = '//view.officeapps.live.com/op/embed.aspx?src=' . urlencode($url) . '&embedded=true';
526 }
527 else{
528 $view_link = 'https://drive.google.com/viewerng/viewer?url=' . urlencode($url) . '&embedded=true&chrome=false';
529 }
530
531 $hostname = parse_url($url, PHP_URL_HOST);
532 $domain = implode(".", array_slice(explode(".", $hostname), -2));
533
534 if ($domain == "google.com") {
535 $view_link = $url.'?embedded=true';
536 if(strpos($view_link, '/presentation/')){
537 $view_link = Helper::get_google_presentation_url($url);
538 }
539 }
540
541 $embed_content = '<div ' . $this->get_render_attribute_string( 'embedpres-pdf-render' ) . '>';
542
543 $is_powered_by = '';
544 if ( $settings[ 'embedpress_document_powered_by' ] === 'yes' ) {
545 $is_powered_by = 'ep-powered-by-enabled';
546 }
547
548 $is_download_enabled = ' enabled-file-download';
549 if ( $settings[ 'doc_print_download' ] !== 'yes' ) {
550 $is_download_enabled = '';
551 }
552
553 $file_extenstion = 'link';
554 if(!empty(Helper::is_file_url($url))){
555 $file_extenstion = Helper::get_extension_from_file_url($url);
556 }
557
558 $is_custom_theme = '';
559 if($settings['embedpress_theme_mode'] == 'custom'){
560 $is_custom_theme = 'data-custom-color='.esc_attr($settings['embedpress_doc_custom_color']).'';
561 }
562
563 $embed_content.='<div class="ep-file-download-option-masked ep-file-'.esc_attr($file_extenstion).' '.$is_powered_by.''.$is_download_enabled.'" data-theme-mode="'.esc_attr($settings['embedpress_theme_mode']).'"'.esc_attr( $is_custom_theme ).' data-id="'.esc_attr( $this->get_id() ).'">';
564
565
566 $sandbox = '';
567 if ( $settings[ 'doc_print_download' ] === 'yes') {
568 $sandbox = 'sandbox="allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-presentation allow-same-origin allow-scripts allow-top-navigation allow-top-navigation-by-user-activation"';
569 }
570
571 $embed_content.='<iframe title="' . esc_attr( Helper::get_file_title($url) ) . '" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" style="' . esc_attr( $dimension ) . '; max-width:100%;" src="' . esc_url( $view_link ) . '" '.$sandbox.'>
572 </iframe>';
573
574
575 if ( $settings[ 'doc_print_download' ] === 'yes' && (Helper::get_extension_from_file_url($url) === 'pptx' || Helper::get_extension_from_file_url($url) === 'ppt' || Helper::get_extension_from_file_url($url) === 'xls' || Helper::get_extension_from_file_url($url) === 'xlsx')) {
576 $embed_content.='<div class="embed-download-disabled"></div>';
577 }
578
579 if ( $settings[ 'doc_draw' ] === 'yes') {
580 $embed_content.='<canvas class="ep-doc-canvas" width="'.esc_attr( $settings['embedpress_elementor_document_width']['size'] ).'" height="'.esc_attr( $settings['embedpress_elementor_document_height']['size'] ).'" ></canvas>';
581 }
582
583 if ( $settings[ 'doc_print_download' ] === 'yes' && Helper::get_extension_from_file_url($url) !== 'pptx') {
584 $embed_content.='<div style="width: 40px; height: 40px; position: absolute; opacity: 0; right: 12px; top: 12px;"></div>';
585 }
586
587 if(!empty($settings['doc_toolbar'])){
588 $embed_content.= '<div class="ep-external-doc-icons">';
589
590 if(empty(Helper::is_file_url($url))){
591 $embed_content.= Helper::ep_get_popup_icon();
592 }
593
594 if(!empty(Helper::is_file_url($url))){
595 if(!empty($settings['doc_print_download'])){
596 $embed_content.= Helper::ep_get_print_icon();
597 $embed_content.= Helper::ep_get_download_icon();
598 }
599 }
600 if(!empty($settings['doc_draw'])){
601 $embed_content.= Helper::ep_get_draw_icon();
602 }
603 if(!empty($settings['doc_fullscreen_mode'])){
604 $embed_content.= Helper::ep_get_fullscreen_icon();
605 $embed_content.= Helper::ep_get_minimize_icon();
606 }
607
608 $embed_content.= '</div>';
609 }
610 $embed_content .='</div>';
611
612 if ( $settings[ 'embedpress_document_powered_by' ] === 'yes' ) {
613 $embed_content.= '<div>';
614 $embed_content .= sprintf( '<p class="embedpress-el-powered">%s</p>', __( 'Powered By EmbedPress', 'embedpress' ) );
615 $embed_content .='</div>';
616 }
617
618 $embed_content .='</div>';
619 }
620 }
621
622
623 ?>
624 <div id="ep-elementor-content-<?php echo esc_attr($client_id) ?>" class="ep-elementor-content <?php if(!empty($settings['embedpress_doc_content_share'])) : echo esc_attr( 'position-'.$settings['embedpress_doc_content_share_position'].'-wraper' ); endif; ?> <?php echo esc_attr($content_share_class.' '.$share_position_class.' '.$content_protection_class); ?>">
625 <div id="<?php echo esc_attr( $this->get_id() ); ?>" class="ep-embed-content-wraper">
626 <?php
627
628 $content_id = $client_id;
629 if ((empty($settings['embedpress_doc_lock_content']) || $settings['embedpress_doc_lock_content'] == 'no' || empty($settings['embedpress_doc_lock_content_password'])) || (!empty(Helper::is_password_correct($client_id)) && ($hash_pass === $_COOKIE['password_correct_' . $client_id]))) {
630
631 if(!empty($settings['embedpress_doc_content_share'])){
632 $embed_content .= Helper::embed_content_share($content_id, $embed_settings);
633 }
634 if(!empty($embed_content)){
635 echo $embed_content;
636 }
637 } else {
638 if(!empty($settings['embedpress_doc_content_share'])){
639 $embed_content .= Helper::embed_content_share($content_id, $embed_settings);
640 }
641 Helper::display_password_form($client_id, $embed_content, $pass_hash_key, $embed_settings);
642 }
643 ?>
644 </div>
645 </div>
646 </div>
647
648 <?php
649 }
650
651 private function get_file_url()
652 {
653 $settings = $this->get_settings();
654 return $settings[ 'embedpress_document_type' ] === 'url' ? $settings[ 'embedpress_document_file_link' ][ 'url' ] : $settings[ 'embedpress_document_Uploader' ][ 'url' ];
655 }
656
657 protected function render_editor_script( $id, $url )
658 {
659 ?>
660 <script>
661 (function ($) {
662 'use strict';
663 $(document).ready(function () {
664 var selector = $('.embedpress-embed-document-pdf');
665 let option = {
666 forceObject: false,
667 };
668 if (selector.length) {
669 PDFObject.embed("<?php echo $url; ?>", "<?php echo '.' . $id; ?>", option);
670 }
671 });
672 })(jQuery);
673 </script>
674 <?php
675 }
676 }
677