PluginProbe
E2Pdf – Export Pdf Tool for WordPress / 1.00.13
E2Pdf – Export Pdf Tool for WordPress v1.00.13
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 / e2pdf.php

e2pdf.php in E2Pdf – Export Pdf Tool for WordPress 1.00.13, at classes/controller/e2pdf.php

339 lines 9.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * E2pdf 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_E2pdf extends Helper_E2pdf_View {
17
18 /**
19 * @url admin.php?page=e2pdf
20 */
21 public function index_action() {
22
23 }
24
25 /**
26 * @url admin.php?page=e2pdf&action=export
27 */
28 public function export_action() {
29
30 $template_id = (int) $this->get->get('template_id');
31 $dataset_id = $this->get->get('dataset_id');
32
33 if ($template_id && $dataset_id) {
34
35 $template = new Model_E2pdf_Template();
36 $template->load($template_id);
37 foreach ($this->post->get('options') as $key => $value) {
38 $template->set($key, $value);
39 }
40
41
42 /*
43 * @since 0.01.34
44 */
45 $uid = false;
46 $uid_params = array();
47 $uid_params['template_id'] = $template_id;
48 $uid_params['dataset'] = $dataset_id;
49
50 $entry = new Model_E2pdf_Entry();
51 $entry->set('entry', $uid_params);
52
53 if ($entry->load_by_uid($entry->get('uid'))) {
54 $uid = $entry->get('uid');
55 }
56
57 $template->fill($dataset_id, $uid);
58 $request = $template->render();
59
60 if (isset($request['error'])) {
61 $this->add_notification('error', $request['error']);
62 $this->render('blocks', 'notifications');
63 } else {
64 $filename = $template->get_filename();
65 $file = $request['file'];
66 $this->download_response('pdf', $file, $filename);
67 }
68 } else {
69 $this->error('404');
70 }
71 }
72
73 /**
74 * Get activated templates list
75 *
76 * @return array() - Activated templates list
77 */
78 public function get_active_templates() {
79 global $wpdb;
80 $model_e2pdf_template = new Model_E2pdf_Template();
81 $helper_e2pdf_db = new Helper_E2pdf_Db();
82
83 $condition = array(
84 'trash' => array(
85 'condition' => '<>',
86 'value' => '1',
87 'type' => '%d'
88 ),
89 'activated' => array(
90 'condition' => '=',
91 'value' => '1',
92 'type' => '%d'
93 )
94 );
95
96 $order_condition = array(
97 'orderby' => 'id',
98 'order' => 'desc',
99 );
100
101 $where = $helper_e2pdf_db->prepare_where($condition);
102 $orderby = $helper_e2pdf_db->prepare_orderby($order_condition);
103
104
105 $templates = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . $model_e2pdf_template->get_table() . $where['sql'] . $orderby . "", $where['filter']));
106 $export_templates = array();
107
108 $export_templates[] = array(
109 'key' => '',
110 'value' => __('--- Select ---', 'e2pdf')
111 );
112
113 if (!empty($templates)) {
114 foreach ($templates as $key => $value) {
115 $export_templates[] = array(
116 'key' => $value->ID,
117 'value' => $value->title
118 );
119 }
120 }
121
122 return $export_templates;
123 }
124
125 /**
126 * Get entries for template
127 *
128 * @return array() - Entries for template
129 */
130 public function get_datasets($template_id = false) {
131
132 $datasets = array();
133
134 $datasets[] = array(
135 'key' => '',
136 'value' => __('--- Select ---', 'e2pdf')
137 );
138
139 if ($template_id) {
140 $template = new Model_E2pdf_Template();
141 $template->load($template_id);
142
143 $extension = new Model_E2pdf_Extension();
144 $extension->load($template->get('extension'));
145
146 $datasets_tmp = $extension->
147 get_datasets(
148 $template->get('item'), $template->get('dataset_title')
149 );
150
151 if ($datasets_tmp && is_array($datasets_tmp)) {
152 $datasets = array_merge($datasets, $datasets_tmp);
153 }
154 }
155
156 return $datasets;
157 }
158
159 /**
160 * Get options to overwrite on template
161 *
162 * @return array() - List of options to overwrite
163 */
164 public function get_options($template_id = false) {
165
166 $options = array();
167
168 if ($template_id) {
169 $template = new Model_E2pdf_Template();
170 $template->load($template_id);
171 $options['name'] = $template->get('name');
172 $options['password'] = $template->get('password');
173 $options['flatten'] = $template->get('flatten');
174 }
175
176 return $options;
177 }
178
179 /**
180 * Get templates list via ajax
181 * action: wp_ajax_e2pdf_templates
182 * function: e2pdf_templates
183 *
184 * @return json - Templates list
185 */
186 public function ajax_templates() {
187
188 $this->check_nonce($this->get->get('_nonce'), 'e2pdf_ajax');
189
190 $template_id = (int) $this->post->get('data');
191 $content = array();
192 $content['datasets'] = $this->get_datasets($template_id);
193 $content['options'] = $this->get_options($template_id);
194 $content['url'] = $this->helper->get_url(array('page' => 'e2pdf-templates', 'action' => 'edit', 'id' => $template_id));
195
196 $template = new Model_E2pdf_Template();
197 $extension = new Model_E2pdf_Extension();
198
199 if ($template->load($template_id) && $extension->load($template->get('extension'))) {
200 $content['delete_items'] = method_exists($extension->extension(), 'delete_items');
201 }
202
203 $response = array(
204 'content' => $content,
205 );
206
207 $this->json_response($response);
208 }
209
210 /**
211 * Get entries list via ajax
212 * action: wp_ajax_e2pdf_entry
213 * function: e2pdf_entry
214 *
215 * @return json - Entries list
216 */
217 public function ajax_dataset() {
218
219 $this->check_nonce($this->get->get('_nonce'), 'e2pdf_ajax');
220
221 $data = $this->post->get('data');
222
223 $template_id = (int) $data['template'];
224 $dataset_id = (int) $data['dataset'];
225
226 $template = new Model_E2pdf_Template();
227 $template->load($template_id);
228
229 $extension = new Model_E2pdf_Extension();
230 $extension->load($template->get('extension'));
231
232 $dataset = $extension->get_dataset($dataset_id);
233
234 $content = array();
235 if ($dataset) {
236 $content['export'] = true;
237 $content['view'] = isset($dataset->url) && $dataset->url ? true : false;
238 $content['delete_item'] = method_exists($extension->extension(), 'delete_item');
239 $content['dataset'] = $dataset;
240 } else {
241 $content['export'] = false;
242 $content['view'] = false;
243 $content['delete_item'] = false;
244 $content['dataset'] = false;
245 }
246
247 $response = array(
248 'content' => $content,
249 );
250
251 $this->json_response($response);
252 }
253
254 public function ajax_delete_item() {
255
256 $this->check_nonce($this->get->get('_nonce'), 'e2pdf_ajax');
257
258 $data = $this->post->get('data');
259
260 $template_id = (int) $data['template'];
261 $dataset_id = (int) $data['dataset'];
262
263 if (!$template_id || !$dataset_id) {
264 return;
265 }
266
267 $template = new Model_E2pdf_Template();
268 $extension = new Model_E2pdf_Extension();
269
270 $action = false;
271
272 if ($template->load($template_id) && $extension->load($template->get('extension'))) {
273 if (method_exists($extension->extension(), 'delete_item')) {
274 $action = $extension->delete_item($template_id, $dataset_id);
275 }
276 }
277
278 if ($action) {
279 $response = array(
280 'redirect' => $this->helper->get_url(array(
281 'page' => 'e2pdf',
282 'template_id' => $template_id
283 )
284 )
285 );
286
287 $this->add_notification('update', __('Dataset removed successfully', 'e2pdf'));
288 } else {
289 $response = array(
290 'error' => __("Dataset can't be removed!", 'e2pdf')
291 );
292 }
293
294 $this->json_response($response);
295 }
296
297 public function ajax_delete_items() {
298 $this->check_nonce($this->get->get('_nonce'), 'e2pdf_ajax');
299
300 $data = $this->post->get('data');
301 $template_id = (int) $data['template'];
302
303
304 if (!$template_id) {
305 return;
306 }
307
308 $template = new Model_E2pdf_Template();
309 $extension = new Model_E2pdf_Extension();
310
311 $action = false;
312
313 if ($template->load($template_id) && $extension->load($template->get('extension'))) {
314 if (method_exists($extension->extension(), 'delete_items')) {
315 $action = $extension->delete_items($template_id);
316 }
317 }
318
319 if ($action) {
320 $response = array(
321 'redirect' => $this->helper->get_url(array(
322 'page' => 'e2pdf',
323 'template_id' => $template_id
324 )
325 )
326 );
327
328 $this->add_notification('update', __('Datasets removed successfully', 'e2pdf'));
329 } else {
330 $response = array(
331 'error' => __("Datasets can't be removed!", 'e2pdf')
332 );
333 }
334
335 $this->json_response($response);
336 }
337
338 }
339