PluginProbe
E2Pdf – Export Pdf Tool for WordPress / 1.06.02
E2Pdf – Export Pdf Tool for WordPress v1.06.02
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 1.08.09 All 71 releases
e2pdf / classes / model / e2pdf-loader.php

e2pdf-loader.php in E2Pdf – Export Pdf Tool for WordPress 1.06.02, at classes/model/e2pdf-loader.php

753 lines 31.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * E2pdf Loader Helper
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 Model_E2pdf_Loader extends Model_E2pdf_Model {
17
18 private $errors = array();
19 private $e2pdf_admin_pages = array(
20 'toplevel_page_e2pdf',
21 'e2pdf_page_e2pdf-templates',
22 'e2pdf_page_e2pdf-settings',
23 'e2pdf_page_e2pdf-license',
24 'e2pdf_page_e2pdf-debug'
25 );
26
27 /*
28 * On init
29 * Create instance of Main Helper
30 */
31
32 function __construct() {
33 parent::__construct();
34 }
35
36 /**
37 * Main loader of actions / filters / hooks
38 */
39 public function load() {
40
41 $this->load_translation();
42 $this->load_actions();
43 $this->load_filters();
44 $this->load_extensions();
45 $this->load_hooks();
46 $this->load_ajax();
47 $this->load_shortcodes();
48 }
49
50 public function load_translation() {
51 load_plugin_textdomain('e2pdf', false, '/e2pdf/languages/');
52 }
53
54 /**
55 * Load ajax
56 */
57 public function load_ajax() {
58 if (is_admin()) {
59 add_action('wp_ajax_e2pdf_save_form', array(new Controller_E2pdf_Templates(), 'ajax_save_form'));
60 add_action('wp_ajax_e2pdf_auto', array(new Controller_E2pdf_Templates(), 'ajax_auto'));
61 add_action('wp_ajax_e2pdf_upload', array(new Controller_E2pdf_Templates(), 'ajax_upload'));
62 add_action('wp_ajax_e2pdf_reupload', array(new Controller_E2pdf_Templates(), 'ajax_reupload'));
63 add_action('wp_ajax_e2pdf_extension', array(new Controller_E2pdf_Templates(), 'ajax_extension'));
64 add_action('wp_ajax_e2pdf_activate_template', array(new Controller_E2pdf_Templates(), 'ajax_activate_template'));
65 add_action('wp_ajax_e2pdf_deactivate_template', array(new Controller_E2pdf_Templates(), 'ajax_deactivate_template'));
66 add_action('wp_ajax_e2pdf_visual_mapper', array(new Controller_E2pdf_Templates(), 'ajax_visual_mapper'));
67 add_action('wp_ajax_e2pdf_get_styles', array(new Controller_E2pdf_Templates(), 'ajax_get_styles'));
68 add_action('wp_ajax_e2pdf_license_key', array(new Controller_E2pdf_License(), 'ajax_change_license_key'));
69 add_action('wp_ajax_e2pdf_templates', array(new Controller_E2pdf(), 'ajax_templates'));
70 add_action('wp_ajax_e2pdf_dataset', array(new Controller_E2pdf(), 'ajax_dataset'));
71 add_action('wp_ajax_e2pdf_delete_item', array(new Controller_E2pdf(), 'ajax_delete_item'));
72 add_action('wp_ajax_e2pdf_delete_items', array(new Controller_E2pdf(), 'ajax_delete_items'));
73 add_action('wp_ajax_e2pdf_delete_font', array(new Controller_E2pdf_Settings(), 'ajax_delete_font'));
74 add_action('wp_ajax_e2pdf_email', array(new Controller_E2pdf_Settings(), 'ajax_email'));
75 }
76 }
77
78 /**
79 * Load actions
80 */
81 public function load_actions() {
82 if (is_admin()) {
83 add_action('wpmu_new_blog', array(&$this, 'activate_new_network'), 10, 6);
84 add_action('admin_menu', array(&$this, 'admin_menu'));
85 add_action('admin_init', array(&$this, 'admin_settings'));
86 add_action('admin_enqueue_scripts', array(&$this, 'admin_js'));
87 add_action('admin_enqueue_scripts', array(&$this, 'admin_css'));
88 add_action('current_screen', array(&$this, 'admin_functions'));
89 add_action('plugins_loaded', array(&$this, 'after_load'));
90 }
91 add_action('wp_enqueue_scripts', array(&$this, 'frontend_js'));
92 add_action('wp', array(Helper_E2pdf_View::instance(), 'render_frontend_page'));
93 add_action('wp_loaded', array(&$this, 'wp_loaded'));
94 }
95
96 public function load_filters() {
97
98 }
99
100 public function after_load() {
101 if (get_option('e2pdf_version') !== $this->helper->get('version')) {
102 $this->activate();
103 }
104 }
105
106 /**
107 * Load extensions and its action/filters
108 */
109 public function load_extensions() {
110
111 $model_e2pdf_extension = new Model_E2pdf_Extension();
112 $extensions = $model_e2pdf_extension->extensions();
113 if (!empty($extensions)) {
114 foreach ($extensions as $extension => $extension_name) {
115 $model_e2pdf_extension->load($extension);
116 $model_e2pdf_extension->load_actions();
117 $model_e2pdf_extension->load_filters();
118 $model_e2pdf_extension->load_shortcodes();
119 }
120 }
121 }
122
123 /**
124 * Load filters
125 */
126 public function load_shortcodes() {
127 add_shortcode('e2pdf-download', array(new Model_E2pdf_Shortcode(), 'e2pdf_download'));
128 add_shortcode('e2pdf-attachment', array(new Model_E2pdf_Shortcode(), 'e2pdf_attachment'));
129 add_shortcode('e2pdf-adobesign', array(new Model_E2pdf_Shortcode(), 'e2pdf_adobesign'));
130 add_shortcode('e2pdf-save', array(new Model_E2pdf_Shortcode(), 'e2pdf_save'));
131 add_shortcode('e2pdf-view', array(new Model_E2pdf_Shortcode(), 'e2pdf_view'));
132 add_shortcode('e2pdf-format-number', array(new Model_E2pdf_Shortcode(), 'e2pdf_format_number'));
133 add_shortcode('e2pdf-format-date', array(new Model_E2pdf_Shortcode(), 'e2pdf_format_date'));
134 add_shortcode('e2pdf-format-output', array(new Model_E2pdf_Shortcode(), 'e2pdf_format_output'));
135 add_shortcode('e2pdf-user', array(new Model_E2pdf_Shortcode(), 'e2pdf_user'));
136 add_shortcode('e2pdf-wp', array(new Model_E2pdf_Shortcode(), 'e2pdf_wp'));
137 add_shortcode('e2pdf-content', array(new Model_E2pdf_Shortcode(), 'e2pdf_content'));
138 add_shortcode('e2pdf-exclude', array(new Model_E2pdf_Shortcode(), 'e2pdf_exclude'));
139 add_shortcode('e2pdf-filter', array(new Model_E2pdf_Shortcode(), 'e2pdf_filter'));
140 }
141
142 /**
143 * Load hooks
144 */
145 public function load_hooks() {
146 register_activation_hook($this->helper->get('plugin_file_path'), array(&$this, 'activate'));
147 register_deactivation_hook($this->helper->get('plugin_file_path'), array(&$this, 'deactivate'));
148 register_uninstall_hook($this->helper->get('plugin_file_path'), array('Model_E2pdf_Loader', 'uninstall'));
149 }
150
151 /**
152 * Load admin menu
153 */
154 public function admin_menu() {
155 ob_start();
156 add_menu_page('e2pdf', 'E2Pdf', 'manage_options', 'e2pdf', array(Helper_E2pdf_View::instance(), 'render_page'), '', '26');
157 add_submenu_page('e2pdf', __('Export', 'e2pdf'), __('Export', 'e2pdf'), 'manage_options', 'e2pdf', array(Helper_E2pdf_View::instance(), 'render_page'));
158 add_submenu_page('e2pdf', __('Templates', 'e2pdf'), __('Templates', 'e2pdf'), 'manage_options', 'e2pdf-templates', array(Helper_E2pdf_View::instance(), 'render_page'));
159 add_submenu_page('e2pdf', __('Settings', 'e2pdf'), __('Settings', 'e2pdf'), 'manage_options', 'e2pdf-settings', array(Helper_E2pdf_View::instance(), 'render_page'));
160 add_submenu_page('e2pdf', __('License', 'e2pdf'), __('License', 'e2pdf'), 'manage_options', 'e2pdf-license', array(Helper_E2pdf_View::instance(), 'render_page'));
161 if (get_option('e2pdf_debug') === '1') {
162 add_submenu_page('e2pdf', __('Debug', 'e2pdf'), __('Debug', 'e2pdf'), 'manage_options', 'e2pdf-debug', array(Helper_E2pdf_View::instance(), 'render_page'));
163 }
164 }
165
166 /**
167 * Setup settings page
168 */
169 public function admin_settings() {
170 register_setting('e2pdf-settings', 'e2pdf_debug');
171 }
172
173 /**
174 * Load admin css
175 */
176 public function admin_css($page) {
177 if (get_option('e2pdf_debug') === '1') {
178 $version = strtotime("now");
179 } else {
180 $version = $this->helper->get('version');
181 }
182
183 wp_register_style('e2pdf.backend', plugins_url('css/e2pdf.backend.css', $this->helper->get('plugin_file_path')), array(), $version);
184 wp_enqueue_style('e2pdf.backend');
185 }
186
187 /**
188 * Load admin javascript
189 *
190 * @param string $page - Current page
191 */
192 public function admin_js($page) {
193
194 if (!in_array($page, $this->e2pdf_admin_pages)) {
195 return;
196 }
197
198 if (get_option('e2pdf_debug') === '1') {
199 $version = strtotime("now");
200 } else {
201 $version = $this->helper->get('version');
202 }
203
204 wp_enqueue_script(
205 'js/e2pdf.backend', plugins_url('js/e2pdf.backend.js', $this->helper->get('plugin_file_path')), array('jquery'), $version
206 );
207
208 $js_lang = $this->get_js_lang();
209 wp_add_inline_script('js/e2pdf.backend', $js_lang, 'before');
210
211 $js_size = $this->get_js_template_sizes();
212 wp_add_inline_script('js/e2pdf.backend', $js_size, 'before');
213
214 $js_extension = $this->get_js_template_extensions();
215 wp_add_inline_script('js/e2pdf.backend', $js_extension, 'before');
216
217 $js_params = $this->get_js_params();
218 wp_add_inline_script('js/e2pdf.backend', $js_params, 'before');
219 }
220
221 /**
222 * Load admin javascript
223 *
224 * @param string $page - Current page
225 */
226 public function frontend_js() {
227
228 wp_register_script(
229 'js/e2pdf.frontend', plugins_url('js/e2pdf.frontend.js', $this->helper->get('plugin_file_path')), array('jquery'), $this->helper->get('version')
230 );
231 wp_enqueue_script(
232 'js/e2pdf.frontend'
233 );
234 }
235
236 /**
237 * Get nonce for JavaScript
238 *
239 * @return string - JS nonce
240 */
241 public function get_js_params() {
242 $params = array(
243 'nonce' => wp_create_nonce('e2pdf_ajax'),
244 'plugins_url' => plugins_url('', $this->helper->get('plugin_file_path')),
245 'upload_url' => $this->helper->get_upload_url(),
246 'license_type' => $this->helper->get('license')->get('type')
247 );
248
249 $js_params = $this->helper->load('js')->get_js_array('e2pdfParams', $params);
250 return $js_params;
251 }
252
253 /**
254 * Get Lang Key->Value for JavaScript
255 *
256 * @return string - JS language Key->Value
257 */
258 public function get_js_lang() {
259 $lang = array(
260 'Delete' => __('Delete', 'e2pdf'),
261 'Properties' => __('Properties', 'e2pdf'),
262 'License Key' => __('License Key', 'e2pdf'),
263 'Submit' => __('Submit', 'e2pdf'),
264 'Are you sure want to remove page?' => __('Are you sure want to remove page?', 'e2pdf'),
265 'Are you sure want to remove font?' => __('Are you sure want to remove font?', 'e2pdf'),
266 'Empty PDF' => __('Empty PDF', 'e2pdf'),
267 'Upload PDF' => __('Upload PDF', 'e2pdf'),
268 'Auto PDF' => __('Auto PDF', 'e2pdf'),
269 'Create PDF' => __('Create PDF', 'e2pdf'),
270 'Extension' => __('Extension', 'e2pdf'),
271 'Size' => __('Size', 'e2pdf'),
272 'Properties' => __('Properties', 'e2pdf'),
273 'Name' => __('Name', 'e2pdf'),
274 'Enter link here' => __('Enter link here', 'e2pdf'),
275 'Z-index' => __('Z-index', 'e2pdf'),
276 'Border' => __('Border', 'e2pdf'),
277 'Background' => __('Background', 'e2pdf'),
278 'Left' => __('Left', 'e2pdf'),
279 'Right' => __('Right', 'e2pdf'),
280 'Top' => __('Top', 'e2pdf'),
281 'Center' => __('Center', 'e2pdf'),
282 'Bottom' => __('Bottom', 'e2pdf'),
283 'Color' => __('Color', 'e2pdf'),
284 'Border Color' => __('Border Color', 'e2pdf'),
285 'Line Height' => __('Line Height', 'e2pdf'),
286 'Padding' => __('Padding', 'e2pdf'),
287 'Width' => __('Width', 'e2pdf'),
288 'Height' => __('Height', 'e2pdf'),
289 'Text Color' => __('Text Color', 'e2pdf'),
290 'Value' => __('Value', 'e2pdf'),
291 'Font' => __('Font', 'e2pdf'),
292 'Options' => __('Options', 'e2pdf'),
293 'Option' => __('Option', 'e2pdf'),
294 'Group' => __('Group', 'e2pdf'),
295 'Group Name' => __('Group Name', 'e2pdf'),
296 'Group Value' => __('Group Value', 'e2pdf'),
297 'Selector' => __('Selector', 'e2pdf'),
298 'Check' => __('Check', 'e2pdf'),
299 'Circle' => __('Circle', 'e2pdf'),
300 'Cross' => __('Cross', 'e2pdf'),
301 'Diamond' => __('Diamond', 'e2pdf'),
302 'Square' => __('Square', 'e2pdf'),
303 'Star' => __('Star', 'e2pdf'),
304 'Type' => __('Type', 'e2pdf'),
305 'Scale' => __('Scale', 'e2pdf'),
306 'Width&Height' => __('Width&Height', 'e2pdf'),
307 'Width' => __('Width', 'e2pdf'),
308 'Height' => __('Height', 'e2pdf'),
309 'Choose Image' => __('Choose Image', 'e2pdf'),
310 'PDF Options' => __('PDF Options', 'e2pdf'),
311 'PDF Upload' => __('PDF Upload', 'e2pdf'),
312 'Item' => __('Item', 'e2pdf'),
313 'Position' => __('Position', 'e2pdf'),
314 'Copy' => __('Copy', 'e2pdf'),
315 'Cut' => __('Cut', 'e2pdf'),
316 'Paste' => __('Paste', 'e2pdf'),
317 'Paste in Place' => __('Paste in Place', 'e2pdf'),
318 'Apply' => __('Apply', 'e2pdf'),
319 'Dynamic Height' => __('Dynamic Height', 'e2pdf'),
320 'Text Align' => __('Text Align', 'e2pdf'),
321 'Readonly' => __('Readonly', 'e2pdf'),
322 'Multiline' => __('Multiline', 'e2pdf'),
323 'Required' => __('Required', 'e2pdf'),
324 'Settings' => __('Settings', 'e2pdf'),
325 'Relative' => __('Relative', 'e2pdf'),
326 'Page Size' => __('Page Size', 'e2pdf'),
327 'Custom' => __('Custom', 'e2pdf'),
328 'Size Preset' => __('Size Preset', 'e2pdf'),
329 'Page Options' => __('Page Options', 'e2pdf'),
330 'Select' => __('Select', 'e2pdf'),
331 'Saved Template will be overwritten! Are you sure want to continue?' => __('Saved Template will be overwritten! Are you sure want to continue?', 'e2pdf'),
332 'All pages will be removed! Are you sure want to continue?' => __('All pages will be removed! Are you sure want to continue?', 'e2pdf'),
333 'Adding new pages not available in "Uploaded PDF"' => __('Adding new pages not available in "Uploaded PDF"', 'e2pdf'),
334 'Dataset will be removed! Are you sure want to continue?' => __('Dataset will be removed! Are you sure want to continue?', 'e2pdf'),
335 'All datasets will be removed! Are you sure want to continue?' => __('All datasets will be removed! Are you sure want to continue?', 'e2pdf'),
336 'WARNING: Template has changes after last save! Changes will be lost!' => __('WARNING: Template has changes after last save! Changes will be lost!', 'e2pdf'),
337 'Element will be removed! Are you sure want to continue?' => __('Element will be removed! Are you sure want to continue?', 'e2pdf'),
338 'Elements will be removed! Are you sure want to continue?' => __('Elements will be removed! Are you sure want to continue?', 'e2pdf'),
339 'Action will be removed! Are you sure want to continue?' => __('Action will be removed! Are you sure want to continue?', 'e2pdf'),
340 'Condition will be removed! Are you sure want to continue?' => __('Condition will be removed! Are you sure want to continue?', 'e2pdf'),
341 'All Field Values will be overwritten! Are you sure want to continue?' => __('All Field Values will be overwritten! Are you sure want to continue?', 'e2pdf'),
342 'RTL' => __('RTL', 'e2pdf'),
343 'Hide' => __('Hide', 'e2pdf'),
344 'Show' => __('Show', 'e2pdf'),
345 'Password' => __('Password', 'e2pdf'),
346 'Map Field' => __('Map Field', 'e2pdf'),
347 'Parent' => __('Parent', 'e2pdf'),
348 'Hide Empty' => __('Hide Empty', 'e2pdf'),
349 '--- Select ---' => __('--- Select ---', 'e2pdf'),
350 'Activated' => __('Activated', 'e2pdf'),
351 'Not Activated' => __('Not Activated', 'e2pdf'),
352 'Page ID' => __('Page ID', 'e2pdf'),
353 'New Position' => __('New Position', 'e2pdf'),
354 'Render New Fields' => __('Render New Fields', 'e2pdf'),
355 'Flush Elements' => __('Flush Elements', 'e2pdf'),
356 'Keep dimension' => __('Keep dimension', 'e2pdf'),
357 'ID' => __('ID', 'e2pdf'),
358 'Only 1 page allowed with "FREE" license type' => __('Only 1 page allowed with "FREE" license type', 'e2pdf'),
359 'Last condition can\'t be removed' => __('Last condition can\'t be removed', 'e2pdf'),
360 'Confirmation code' => __('Confirmation code', 'e2pdf'),
361 'Code' => __('Code', 'e2pdf'),
362 'Visual Mapper' => __('Visual Mapper', 'e2pdf'),
363 'Auto' => __('Auto', 'e2pdf'),
364 'Actions' => __('Actions', 'e2pdf'),
365 'Save' => __('Save', 'e2pdf'),
366 'Resize' => __('Resize', 'e2pdf'),
367 'Horizontal align' => __('Horizontal align', 'e2pdf'),
368 'Vertical align' => __('Vertical align', 'e2pdf'),
369 'Middle' => __('Middle', 'e2pdf'),
370 'Apply If' => __('Apply If', 'e2pdf'),
371 'Action' => __('Action', 'e2pdf'),
372 'Property' => __('Property', 'e2pdf'),
373 'If' => __('If', 'e2pdf'),
374 'Condition' => __('Condition', 'e2pdf'),
375 'Change' => __('Change', 'e2pdf'),
376 'Any' => __('Any', 'e2pdf'),
377 'All' => __('All', 'e2pdf'),
378 'Order' => __('Order', 'e2pdf'),
379 'E-signature' => __('E-signature', 'e2pdf'),
380 'Contact' => __('Contact', 'e2pdf'),
381 'Location' => __('Location', 'e2pdf'),
382 'Reason' => __('Reason', 'e2pdf'),
383 'Placeholder' => __('Placeholder', 'e2pdf'),
384 'Length' => __('Length', 'e2pdf'),
385 'Comb' => __('Comb', 'e2pdf'),
386 'None' => __('None', 'e2pdf'),
387 'Highlight' => __('Highlight', 'e2pdf'),
388 'Invert' => __('Invert', 'e2pdf'),
389 'Outline' => __('Outline', 'e2pdf'),
390 'Push' => __('Push', 'e2pdf'),
391 'Title' => __('Title', 'e2pdf'),
392 'Status' => __('Status', 'e2pdf'),
393 'Add Action' => __('Add Action', 'e2pdf'),
394 'Shortcodes' => __('Shortcodes', 'e2pdf'),
395 'Labels' => __('Labels', 'e2pdf'),
396 'Field Values' => __('Field Values', 'e2pdf'),
397 'Field Names' => __('Field Names', 'e2pdf'),
398 'Field Name' => __('Field Name', 'e2pdf'),
399 'As Field Name' => __('As Field Name', 'e2pdf'),
400 'Confirm' => __('Confirm', 'e2pdf'),
401 'Cancel' => __('Cancel', 'e2pdf')
402 );
403
404 $js_lang = $this->helper->load('js')->get_js_array('e2pdfLang', $lang);
405 return $js_lang;
406 }
407
408 /**
409 * Get Template sizes for JavaScript
410 *
411 * @return string - JS template sizes
412 */
413 public function get_js_template_sizes() {
414 $controller_e2pdf_templates = new Controller_E2pdf_Templates();
415 $sizes = $controller_e2pdf_templates->get_sizes_list();
416
417 $js_template_sizes = $this->helper->load('js')->get_js_array('e2pdfTemplateSizes', $sizes);
418
419 return $js_template_sizes;
420 }
421
422 /**
423 * Get Extensions list for JavaScript
424 *
425 * @return string - JS Extensions list
426 */
427 public function get_js_template_extensions() {
428 $model_e2pdf_extension = new Model_E2pdf_Extension();
429 $extensions = $model_e2pdf_extension->extensions();
430
431 $js_template_extensions = $this->helper->load('js')->get_js_array('e2pdfTemplateExtensions', $extensions);
432
433 return $js_template_extensions;
434 }
435
436 /**
437 * Check requirenments before activation
438 */
439 public function requirenments() {
440 if (version_compare(PHP_VERSION, '5.3.3', '<')) {
441 throw new Exception(
442 sprintf(__("E2Pdf requires PHP version 5.3.3 or later. Your PHP version is %s", 'e2pdf'), PHP_VERSION)
443 );
444 }
445 }
446
447 public function admin_functions() {
448 $current_screen = get_current_screen();
449 if (!$current_screen || !in_array($current_screen->id, $this->e2pdf_admin_pages)) {
450 return;
451 }
452
453 if ($current_screen->id == 'e2pdf_page_e2pdf-templates' && !isset($_GET['action'])) {
454 $screen_option = array(
455 'label' => __('Templates per page', 'e2pdf') . ':',
456 'default' => get_option('e2pdf_templates_screen_per_page') ? get_option('e2pdf_templates_screen_per_page') : '20',
457 'option' => 'e2pdf_templates_screen_per_page'
458 );
459 add_screen_option('per_page', $screen_option);
460 }
461
462 $this->helper->set('license', new Model_E2pdf_License());
463 }
464
465 public function wp_loaded() {
466 if (!get_transient('e2pdf_adobesign_refresh_token')) {
467 new Model_E2pdf_AdobeSign();
468 }
469 }
470
471 /**
472 * On plugin activation
473 */
474 public function activate() {
475 global $wpdb;
476
477 try {
478 $this->requirenments();
479 if (is_multisite() && is_super_admin() && is_main_site()) {
480 foreach ($wpdb->get_col("SELECT blog_id FROM $wpdb->blogs") as $blog_id) {
481 $this->activate_site($blog_id);
482 }
483 } else {
484 $this->activate_site();
485 }
486 } catch (Exception $e) {
487 echo "<div style='line-height: 70px;'>";
488 echo $e->getMessage();
489 echo "</div>";
490 exit();
491 }
492 }
493
494 public function activate_new_network($blog_id, $user_id, $domain, $path, $site_id, $meta) {
495 if (is_plugin_active_for_network('e2pdf/e2pdf.php')) {
496 $this->activate_site($blog_id);
497 }
498 }
499
500 public function activate_site($blog_id = false) {
501 global $wpdb;
502
503 $db_prefix = $wpdb->prefix;
504
505 $wp_upload_dir = wp_upload_dir();
506
507 if ($blog_id) {
508 switch_to_blog($blog_id);
509 $wp_upload_dir = wp_upload_dir();
510 $db_prefix = $wpdb->get_blog_prefix($blog_id);
511 if (!is_main_site($blog_id)) {
512 $this->helper->set('upload_dir', $wp_upload_dir['basedir'] . '/e2pdf/');
513 $this->helper->set('tmp_dir', $this->helper->get('upload_dir') . 'tmp/');
514 $this->helper->set('pdf_dir', $this->helper->get('upload_dir') . 'pdf/');
515 $this->helper->set('fonts_dir', $this->helper->get('upload_dir') . 'fonts/');
516 $this->helper->set('tpl_dir', $this->helper->get('upload_dir') . 'tpl/');
517 }
518 }
519
520 $dirs = array(
521 $this->helper->get('upload_dir'),
522 $this->helper->get('tmp_dir'),
523 $this->helper->get('pdf_dir'),
524 $this->helper->get('fonts_dir'),
525 $this->helper->get('tpl_dir'),
526 );
527
528 if (!is_main_site($blog_id)) {
529 array_unshift($dirs, $wp_upload_dir['basedir']);
530 }
531
532 foreach ($dirs as $dir) {
533 if ($this->helper->create_dir($dir)) {
534 if ($dir == $this->helper->get('fonts_dir')) {
535 copy($this->helper->get('plugin_dir') . "data/fonts/NotoSans-Regular.ttf", $this->helper->get('fonts_dir') . "NotoSans-Regular.ttf");
536 }
537 } else {
538 throw new Exception(
539 sprintf(__("Can't create folder %s", 'e2pdf'), $dir)
540 );
541 }
542 }
543
544 $options = Model_E2pdf_Options::get_options();
545 foreach ($options as $option_key => $option_value) {
546 if (get_option($option_key) === false) {
547 add_option($option_key, $option_value);
548 }
549 }
550
551 $wpdb->query("CREATE TABLE IF NOT EXISTS `" . $db_prefix . "e2pdf_templates` (
552 `ID` int(11) NOT NULL AUTO_INCREMENT,
553 `uid` varchar(255) NOT NULL,
554 `pdf` text,
555 `title` text,
556 `created_at` datetime NOT NULL,
557 `updated_at` datetime NOT NULL,
558 `flatten` enum('0','1','2') NOT NULL DEFAULT '0',
559 `compression` int(1) NOT NULL DEFAULT '-1',
560 `appearance` enum('0','1') NOT NULL DEFAULT '0',
561 `width` int(11) NOT NULL DEFAULT '0',
562 `height` int(11) NOT NULL DEFAULT '0',
563 `extension` varchar(255) NOT NULL,
564 `item` varchar(255) NOT NULL,
565 `format` enum('pdf') NOT NULL DEFAULT 'pdf',
566 `dataset_title` text NOT NULL,
567 `button_title` text NOT NULL,
568 `inline` enum('0','1') NOT NULL DEFAULT '0',
569 `auto` enum('0','1') NOT NULL DEFAULT '0',
570 `name` text NOT NULL,
571 `password` text NOT NULL,
572 `meta_title` text NOT NULL,
573 `meta_subject` text NOT NULL,
574 `meta_author` text NOT NULL,
575 `meta_keywords` text NOT NULL,
576 `font` varchar(255) NOT NULL,
577 `font_size` varchar(255) NOT NULL,
578 `font_color` varchar(255) NOT NULL,
579 `line_height` varchar(255) NOT NULL,
580 `fonts` longtext NOT NULL,
581 `trash` enum('0','1') NOT NULL DEFAULT '0',
582 `activated` enum('0','1') NOT NULL DEFAULT '0',
583 `locked` enum('0','1') NOT NULL DEFAULT '0',
584 `author` int(11) NOT NULL,
585 PRIMARY KEY (`ID`)
586 ) CHARSET=utf8 COLLATE=utf8_general_ci");
587
588 if (version_compare(get_option('e2pdf_version'), '0.01.54', '<')) {
589 $wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_templates` DROP COLUMN `blank`");
590 }
591
592 if (version_compare(get_option('e2pdf_version'), '1.06.00', '<')) {
593 $wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_templates` ADD COLUMN `meta_title` text NOT NULL AFTER password");
594 $wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_templates` ADD COLUMN `meta_subject` text NOT NULL AFTER meta_title");
595 $wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_templates` ADD COLUMN `meta_author` text NOT NULL AFTER meta_subject");
596 $wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_templates` ADD COLUMN `meta_keywords` text NOT NULL AFTER meta_author");
597 }
598
599 $wpdb->query("CREATE TABLE IF NOT EXISTS `" . $db_prefix . "e2pdf_entries` (
600 `ID` int(11) NOT NULL AUTO_INCREMENT,
601 `uid` varchar(255) NOT NULL,
602 `entry` longtext,
603 `pdf_num` int(11) NOT NULL DEFAULT '0',
604 PRIMARY KEY (`ID`)
605 ) CHARSET=utf8 COLLATE=utf8_general_ci");
606
607 if (version_compare(get_option('e2pdf_version'), '0.01.33', '<')) {
608 $wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_entries` ADD COLUMN `pdf_num` int(11) NOT NULL DEFAULT '0'");
609 }
610
611 $wpdb->query("CREATE TABLE IF NOT EXISTS `" . $db_prefix . "e2pdf_datasets` (
612 `ID` int(11) NOT NULL AUTO_INCREMENT,
613 `extension` varchar(255) NOT NULL,
614 `item` varchar(255) NOT NULL,
615 `entry` longtext,
616 PRIMARY KEY (`ID`)
617 ) CHARSET=utf8 COLLATE=utf8_general_ci");
618
619 $wpdb->query("CREATE TABLE IF NOT EXISTS `" . $db_prefix . "e2pdf_pages` (
620 `page_id` int(11) NOT NULL DEFAULT '0',
621 `template_id` int(11) NOT NULL DEFAULT '0',
622 `properties` longtext NOT NULL,
623 `actions` longtext NOT NULL
624 ) CHARSET=utf8 COLLATE=utf8_general_ci");
625
626 if (version_compare(get_option('e2pdf_version'), '0.01.63', '<')) {
627 $wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_pages` ADD COLUMN `actions` longtext NOT NULL");
628 }
629
630 $wpdb->query("CREATE TABLE IF NOT EXISTS `" . $db_prefix . "e2pdf_elements` (
631 `page_id` int(11) NOT NULL DEFAULT '0',
632 `template_id` int(11) NOT NULL DEFAULT '0',
633 `element_id` int(11) NOT NULL DEFAULT '0',
634 `name` text NOT NULL,
635 `type` varchar(255) NOT NULL,
636 `top` int(11) NOT NULL DEFAULT '0',
637 `left` int(11) NOT NULL DEFAULT '0',
638 `width` int(11) NOT NULL DEFAULT '0',
639 `height` int(11) NOT NULL DEFAULT '0',
640 `value` longtext NOT NULL,
641 `properties` longtext NOT NULL,
642 `actions` longtext NOT NULL
643 ) CHARSET=utf8 COLLATE=utf8_general_ci");
644
645 if (version_compare(get_option('e2pdf_version'), '0.01.63', '<')) {
646 $wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_elements` ADD COLUMN `actions` longtext NOT NULL");
647 }
648
649 if (version_compare(get_option('e2pdf_version'), '1.04.00', '<')) {
650 $wpdb->query("UPDATE `" . $db_prefix . "e2pdf_elements` ee INNER JOIN `" . $db_prefix . "e2pdf_pages` ep ON ee.page_id = ep.ID set ee.page_id = ep.page_id ");
651 $wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_pages` DROP COLUMN `ID`");
652 $wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_elements` DROP COLUMN `ID`");
653 }
654
655 if (version_compare(get_option('e2pdf_version'), '1.06.00', '<')) {
656 $wpdb->query("ALTER TABLE `" . $db_prefix . "e2pdf_elements` ADD COLUMN `name` text NOT NULL AFTER element_id");
657 }
658
659 if (get_option('e2pdf_version') !== $this->helper->get('version')) {
660 update_option('e2pdf_version', $this->helper->get('version'));
661 }
662
663 $model_e2pdf_api = new Model_E2pdf_Api();
664 $model_e2pdf_api->set(array(
665 'action' => 'common/activate'
666 ));
667 $model_e2pdf_api->request();
668
669 $model_e2pdf_license = new Model_E2pdf_License();
670
671 if ($blog_id) {
672 restore_current_blog();
673 $wp_upload_dir = wp_upload_dir();
674 $this->helper->set('upload_dir', $wp_upload_dir['basedir'] . '/e2pdf/');
675 $this->helper->set('tmp_dir', $this->helper->get('upload_dir') . 'tmp/');
676 $this->helper->set('pdf_dir', $this->helper->get('upload_dir') . 'pdf/');
677 $this->helper->set('fonts_dir', $this->helper->get('upload_dir') . 'fonts/');
678 $this->helper->set('tpl_dir', $this->helper->get('upload_dir') . 'tpl/');
679 }
680 }
681
682 /**
683 * On plugin deactivation
684 */
685 public function deactivate() {
686
687 }
688
689 /**
690 * On plugin uninstall
691 */
692 public static function uninstall() {
693 global $wpdb;
694
695 if (is_multisite() && is_super_admin() && is_main_site()) {
696 foreach ($wpdb->get_col("SELECT blog_id FROM $wpdb->blogs") as $blog_id) {
697 self::uninstall_site($blog_id);
698 }
699 } else {
700 self::uninstall_site();
701 }
702 }
703
704 public static function uninstall_site($blog_id = false) {
705 global $wpdb;
706
707 $db_prefix = $wpdb->prefix;
708
709 $wp_upload_dir = wp_upload_dir();
710
711 $helper_e2pdf_helper = Helper_E2pdf_Helper::instance();
712
713 if ($blog_id) {
714 switch_to_blog($blog_id);
715 $wp_upload_dir = wp_upload_dir();
716 $db_prefix = $wpdb->get_blog_prefix($blog_id);
717
718 if (!is_main_site($blog_id)) {
719 $helper_e2pdf_helper->set('upload_dir', $wp_upload_dir['basedir'] . '/e2pdf/');
720 }
721 }
722
723
724 $model_e2pdf_api = new Model_E2pdf_Api();
725 $model_e2pdf_api->set(array(
726 'action' => 'common/uninstall'
727 ));
728 $model_e2pdf_api->request();
729
730 $options = Model_E2pdf_Options::get_options();
731 foreach ($options as $option_key => $option_value) {
732 delete_option($option_key, $option_value);
733 }
734
735 $wpdb->query('DROP TABLE IF EXISTS `' . $db_prefix . 'e2pdf_templates' . '`');
736 $wpdb->query('DROP TABLE IF EXISTS `' . $db_prefix . 'e2pdf_entries' . '`');
737 $wpdb->query('DROP TABLE IF EXISTS `' . $db_prefix . 'e2pdf_datasets' . '`');
738 $wpdb->query('DROP TABLE IF EXISTS `' . $db_prefix . 'e2pdf_pages' . '`');
739 $wpdb->query('DROP TABLE IF EXISTS `' . $db_prefix . 'e2pdf_elements' . '`');
740
741 $wpdb->query($wpdb->prepare('DELETE FROM `' . $db_prefix . 'options' . '` WHERE option_name LIKE %s OR option_name LIKE %s', '_transient_e2pdf_%', '_transient_e2pdf_%'));
742
743 $helper_e2pdf_helper->delete_dir($helper_e2pdf_helper->get('upload_dir'));
744
745 if ($blog_id) {
746 restore_current_blog();
747 $wp_upload_dir = wp_upload_dir();
748 $helper_e2pdf_helper->set('upload_dir', $wp_upload_dir['basedir'] . '/e2pdf/');
749 }
750 }
751
752 }
753