PluginProbe
E2Pdf – Export Pdf Tool for WordPress / 1.01.01
E2Pdf – Export Pdf Tool for WordPress v1.01.01
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.01.01, at classes/controller/e2pdf.php

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