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 / model / e2pdf-element.php

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

153 lines 4.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * E2pdf Template Model
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_Element extends Model_E2pdf_Model {
17
18 private $element = array();
19 private $table;
20
21 function __construct() {
22 global $wpdb;
23 parent::__construct();
24 $this->table = $wpdb->prefix . 'e2pdf_elements';
25 }
26
27 public function get_table() {
28 return $this->table;
29 }
30
31 public function set($key, $value) {
32 $this->element[$key] = $value;
33 }
34
35 public function get($key) {
36 if (isset($this->element[$key])) {
37 $value = $this->element[$key];
38 return $value;
39 } else {
40 switch ($key) {
41 case 'top':
42 case 'left':
43 case 'width':
44 case 'height':
45 case 'page_id':
46 case 'template_id':
47 $value = 0;
48 break;
49
50 case 'properties':
51 case 'actions':
52 $value = array();
53 break;
54
55 default:
56 $value = '';
57 break;
58 }
59 return $value;
60 }
61 }
62
63 public function get_element() {
64 return $this->element;
65 }
66
67 public function before_save() {
68 $element = array(
69 'type' => $this->get('type'),
70 'page_id' => $this->get('page_id'),
71 'template_id' => $this->get('template_id'),
72 'element_id' => $this->get('element_id'),
73 'top' => $this->get('top'),
74 'left' => $this->get('left'),
75 'width' => $this->get('width'),
76 'height' => $this->get('height'),
77 'value' => $this->get('value'),
78 'properties' => serialize($this->get('properties')),
79 'actions' => serialize($this->get('actions')),
80 );
81 return $element;
82 }
83
84 public function save() {
85 global $wpdb;
86
87 $element = $this->before_save();
88
89 if ($this->get('ID')) {
90 $where = array(
91 'ID' => $this->get('ID')
92 );
93 $wpdb->update($this->get_table(), $element, $where);
94 return $this->get('ID');
95 } else {
96 $wpdb->insert($this->get_table(), $element);
97 $this->set('ID', $wpdb->insert_id);
98 }
99 }
100
101 public function load($element_id) {
102 global $wpdb;
103 $element = $wpdb->get_row($wpdb->prepare("SELECT * FROM `{$this->get_table()}` WHERE ID = %d", $element_id), ARRAY_A);
104 if ($element) {
105 $this->element = $element;
106 $this->set('properties', unserialize($element['properties']));
107 $this->set('actions', unserialize($element['actions']));
108 return true;
109 }
110 return false;
111 }
112
113 public function get_last_element_id($template_id) {
114 global $wpdb;
115
116 $element = false;
117 if ($template_id) {
118 $element = $wpdb->get_row($wpdb->prepare("SELECT * FROM `{$this->get_table()}` WHERE template_id = %d ORDER BY element_id DESC", $template_id), ARRAY_A);
119 }
120
121 if ($element) {
122 return $element['element_id'];
123 } else {
124 return 0;
125 }
126 }
127
128 public function delete() {
129 global $wpdb;
130 if ($this->get('ID')) {
131 $where = array(
132 'ID' => $this->get('ID')
133 );
134 $wpdb->delete($this->get_table(), $where);
135 }
136 }
137
138 public function get_elements($page_id) {
139 global $wpdb;
140 $elements = $wpdb->get_results($wpdb->prepare("SELECT * FROM `{$this->get_table()}` WHERE page_id = %d", $page_id), ARRAY_A);
141 if ($elements) {
142 $elements_list = array();
143 foreach ($elements as $element_key => $element) {
144 $this->load($element['ID']);
145 $elements_list[] = $this->get_element();
146 }
147 return $elements_list;
148 }
149 return array();
150 }
151
152 }
153