PluginProbe
E2Pdf – Export Pdf Tool for WordPress / 1.08.00
E2Pdf – Export Pdf Tool for WordPress v1.08.00
1.32.49 1.32.48 1.32.43 1.32.40 1.32.34 1.32.32 1.32.31 1.32.26 1.32.22 1.32.23 1.32.18 1.32.17 1.32.15 trunk 1.00.00 1.00.13 1.01.01 1.02.02 1.03.07 1.04.07 1.05.03 1.06.02 1.07.11 1.08.00 1.08.06 All 72 releases
e2pdf / classes / controller / frontend / e2pdf-download.php

e2pdf-download.php in E2Pdf – Export Pdf Tool for WordPress 1.08.00, at classes/controller/frontend/e2pdf-download.php

157 lines 5.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * E2pdf Frontend Download Controller
5 *
6 * @copyright Copyright 2017 https://e2pdf.com
7 * @license GPL v2
8 * @version 1
9 * @link https://e2pdf.com
10 * @since 0.00.01
11 */
12 if (!defined('ABSPATH')) {
13 die('Access denied.');
14 }
15
16 class Controller_Frontend_E2pdf_Download extends Helper_E2pdf_View {
17
18 /**
19 * Frontend download action
20 *
21 * @url page=e2pdf-download&uid=$uid
22 */
23 public function index_action() {
24 global $wp_query;
25
26 $name = '';
27 $download = false;
28 $uid = $this->get->get('uid');
29
30 $entry = new Model_E2pdf_Entry();
31 if ($entry->load_by_uid($uid)) {
32
33 $uid_params = $entry->get('entry');
34 $template = new Model_E2pdf_Template();
35
36 if (isset($uid_params['pdf']) && $uid_params['pdf'] && file_exists($uid_params['pdf']) && !isset($uid_params['template_id']) && !isset($uid_params['dataset'])) {
37
38 $download = true;
39 $disposition = 'attachment';
40 if (isset($uid_params['inline']) && $uid_params['inline']) {
41 $disposition = 'inline';
42 }
43
44 if (isset($uid_params['name']) && $uid_params['name']) {
45 $name = $uid_params['name'];
46 } else {
47 $name = basename($uid_params['pdf'], ".pdf");
48 }
49
50 $file = base64_encode(file_get_contents($uid_params['pdf']));
51 $this->download_response('pdf', $file, $name, $disposition);
52 } elseif (isset($uid_params['template_id']) && isset($uid_params['dataset']) && $template->load($uid_params['template_id'])) {
53
54 $template->extension()->set('dataset', $uid_params['dataset']);
55
56 if (isset($uid_params['flatten'])) {
57 $template->set('flatten', $uid_params['flatten']);
58 }
59
60 if (isset($uid_params['format'])) {
61 $template->set('format', $uid_params['format']);
62 }
63
64 if (isset($uid_params['password'])) {
65 $template->set('password', $uid_params['password']);
66 } else {
67 $template->set('password', $template->extension()->render($template->get('password'), 'value'));
68 }
69
70 if (isset($uid_params['meta_title'])) {
71 $template->set('meta_title', $uid_params['meta_title']);
72 } else {
73 $template->set('meta_title', $template->extension()->render($template->get('meta_title'), 'value'));
74 }
75
76 if (isset($uid_params['meta_subject'])) {
77 $template->set('meta_subject', $uid_params['meta_subject']);
78 } else {
79 $template->set('meta_subject', $template->extension()->render($template->get('meta_subject'), 'value'));
80 }
81
82 if (isset($uid_params['meta_author'])) {
83 $template->set('meta_author', $uid_params['meta_author']);
84 } else {
85 $template->set('meta_author', $template->extension()->render($template->get('meta_author'), 'value'));
86 }
87
88 if (isset($uid_params['meta_keywords'])) {
89 $template->set('meta_keywords', $uid_params['meta_keywords']);
90 } else {
91 $template->set('meta_keywords', $template->extension()->render($template->get('meta_keywords'), 'value'));
92 }
93
94 if (isset($uid_params['name'])) {
95 $template->set('name', $uid_params['name']);
96 } else {
97 $template->set('name', $template->extension()->render($template->get('name'), 'value'));
98 }
99
100 $disposition = 'attachment';
101 if ((isset($uid_params['inline']) && $uid_params['inline']) || $template->get('inline')) {
102 $disposition = 'inline';
103 }
104
105 if (isset($uid_params['pdf']) && file_exists($uid_params['pdf'])) {
106 $entry->set('pdf_num', $entry->get('pdf_num') + 1);
107 $entry->save();
108
109 $download = true;
110
111 if ($template->get('name')) {
112 $name = $template->get('name');
113 } else {
114 $name = $template->extension()->render($template->get_filename(), 'value');
115 }
116
117 if (!$name) {
118 $name = basename($uid_params['pdf'], ".pdf");
119 }
120
121 $file = base64_encode(file_get_contents($uid_params['pdf']));
122 $this->download_response('pdf', $file, $name, $disposition);
123 } elseif ($template->extension()->verify()) {
124 $template->fill($uid_params['dataset'], $uid);
125 $request = $template->render();
126 if (isset($request['error'])) {
127 wp_die($request['error']);
128 } elseif ($request['file'] === '') {
129 wp_die(__('Something went wrong!', 'e2pdf'));
130 } else {
131 $entry->set('pdf_num', $entry->get('pdf_num') + 1);
132 $entry->save();
133
134 $download = true;
135
136 if ($template->get('name')) {
137 $name = $template->get('name');
138 } else {
139 $name = $template->extension()->render($template->get_filename(), 'value');
140 }
141
142 $file = $request['file'];
143 $this->download_response('pdf', $file, $name, $disposition);
144 }
145 }
146 }
147 }
148
149 if (!$download) {
150 $wp_query->set_404();
151 status_header(404);
152 nocache_headers();
153 }
154 }
155
156 }
157