PluginProbe
Chartify – WordPress Chart Plugin / 3.1.3
Chartify – WordPress Chart Plugin v3.1.3
3.8.0 3.7.9 3.7.8 3.7.7 3.7.6 3.7.5 trunk 1.0.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 All 83 releases
chart-builder / includes / class-chart-builder-activator.php

class-chart-builder-activator.php in Chartify – WordPress Chart Plugin 3.1.3, at includes/class-chart-builder-activator.php

267 lines 9.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 global $ays_chart_db_version;
3 $ays_chart_db_version = '1.0.2';
4
5 /**
6 * Fired during plugin activation
7 *
8 * @link https://ays-pro.com/
9 * @since 1.0.0
10 *
11 * @package Chart_Builder
12 * @subpackage Chart_Builder/includes
13 */
14
15 /**
16 * Fired during plugin activation.
17 *
18 * This class defines all code necessary to run during the plugin's activation.
19 *
20 * @since 1.0.0
21 * @package Chart_Builder
22 * @subpackage Chart_Builder/includes
23 * @author Chart Builder Team <info@ays-pro.com>
24 */
25 class Chart_Builder_Activator {
26
27 /**
28 * Short Description. (use period)
29 *
30 * Long Description.
31 *
32 * @since 1.0.0
33 */
34 public static function activate() {
35
36 global $wpdb;
37 global $ays_chart_db_version;
38 require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
39
40 $installed_ver = get_option( "ays_chart_db_version" );
41 $charts_table = $wpdb->prefix . CHART_BUILDER_DB_PREFIX . 'charts';
42 $charts_meta_table = $wpdb->prefix . CHART_BUILDER_DB_PREFIX . 'charts_meta';
43 $settings_table = $wpdb->prefix . CHART_BUILDER_DB_PREFIX . 'settings';
44 $charset_collate = $wpdb->get_charset_collate();
45
46 if( $installed_ver != $ays_chart_db_version ) {
47
48 $sql = "CREATE TABLE `".$charts_table."` (
49 `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
50 `author_id` INT(16) UNSIGNED NOT NULL DEFAULT '0',
51 `title` TEXT NOT NULL,
52 `description` TEXT NOT NULL DEFAULT '',
53 `type` VARCHAR(256) NOT NULL DEFAULT '',
54 `source_chart_type` VARCHAR(256) NOT NULL DEFAULT '',
55 `source_type` VARCHAR(256) NOT NULL DEFAULT '',
56 `source` LONGTEXT NOT NULL DEFAULT '',
57 `date_created` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00',
58 `date_modified` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00',
59 `status` VARCHAR(256) NOT NULL DEFAULT 'published',
60 `trash_status` VARCHAR(256) NOT NULL DEFAULT '',
61 `ordering` INT(16) NOT NULL,
62 `quiz_query` VARCHAR(256) DEFAULT '',
63 `quiz_id` INT(16) UNSIGNED DEFAULT '0',
64 `options` TEXT NOT NULL DEFAULT '',
65 PRIMARY KEY (`id`)
66 )$charset_collate;";
67
68 $sql_schema = "SELECT * FROM INFORMATION_SCHEMA.TABLES
69 WHERE table_schema = '".DB_NAME."' AND table_name = '".$charts_table."' ";
70 $results = $wpdb->get_results($sql_schema);
71
72 if( empty( $results ) ){
73 $wpdb->query( $sql );
74 }else{
75 dbDelta( $sql );
76 }
77
78
79 $sql = "CREATE TABLE `".$charts_meta_table."` (
80 `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
81 `chart_id` INT(11) UNSIGNED NOT NULL,
82 `meta_key` TEXT NOT NULL DEFAULT '',
83 `meta_value` TEXT NOT NULL DEFAULT '',
84 `note` TEXT NOT NULL DEFAULT '',
85 `options` TEXT NOT NULL DEFAULT '',
86 PRIMARY KEY (`id`)
87 )$charset_collate;";
88
89 $sql_schema = "SELECT * FROM INFORMATION_SCHEMA.TABLES
90 WHERE table_schema = '".DB_NAME."' AND table_name = '".$charts_meta_table."' ";
91 $results = $wpdb->get_results($sql_schema);
92
93 if(empty($results)){
94 $wpdb->query( $sql );
95 }else{
96 dbDelta( $sql );
97 }
98
99
100 $sql = "CREATE TABLE `".$settings_table."` (
101 `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
102 `meta_key` TEXT NOT NULL DEFAULT '',
103 `meta_value` TEXT NOT NULL DEFAULT '',
104 `note` TEXT NOT NULL DEFAULT '',
105 `options` TEXT NOT NULL DEFAULT '',
106 PRIMARY KEY (`id`)
107 )$charset_collate;";
108
109 $sql_schema = "SELECT * FROM INFORMATION_SCHEMA.TABLES
110 WHERE table_schema = '".DB_NAME."' AND table_name = '".$settings_table."' ";
111 $results = $wpdb->get_results($sql_schema);
112
113 if(empty($results)){
114 $wpdb->query( $sql );
115 }else{
116 dbDelta( $sql );
117 }
118
119 update_option( 'ays_chart_db_version', $ays_chart_db_version );
120
121 }
122
123 $metas = array(
124 "user_roles",
125 "google",
126 "options"
127 );
128
129 foreach($metas as $meta_key){
130 $meta_val = "";
131 if($meta_key == "user_roles"){
132 $meta_val = json_encode(array('administrator'));
133 }
134 $sql = "SELECT COUNT(*) FROM `".$settings_table."` WHERE `meta_key` = '". esc_sql( $meta_key ) ."'";
135 $result = $wpdb->get_var($sql);
136 if(intval($result) == 0){
137 $result = $wpdb->insert(
138 $settings_table,
139 array(
140 'meta_key' => $meta_key,
141 'meta_value' => $meta_val,
142 'note' => "",
143 'options' => ""
144 ),
145 array( '%s', '%s', '%s', '%s' )
146 );
147 }
148 }
149
150 self::create_default_chart();
151 }
152
153 public static function db_update_check() {
154 global $ays_chart_db_version;
155 if ( get_site_option( 'ays_chart_db_version' ) != $ays_chart_db_version ) {
156 self::activate();
157 }
158 }
159
160 public static function create_default_chart() {
161 global $wpdb;
162 global $ays_chart_db_version;
163
164 $charts_table = $wpdb->prefix . CHART_BUILDER_DB_PREFIX . 'charts';
165 $charts_meta_table = $wpdb->prefix . CHART_BUILDER_DB_PREFIX . 'charts_meta';
166 $settings_table = $wpdb->prefix . CHART_BUILDER_DB_PREFIX . 'settings';
167
168 $chart_count = $wpdb->get_var("SELECT COUNT(*) FROM " . $charts_table);
169 $chart_meta_count = $wpdb->get_var("SELECT COUNT(*) FROM " . $charts_meta_table);
170 if ($chart_count == 0 && $chart_meta_count == 0) {
171 $default_chart_source = array(
172 "0" => ["User roles", "Visits"],
173 "1" => ["Administrator","11"],
174 "2" => ["Author","2"],
175 "3" => ["Editor","5"],
176 "4" => ["Guest","2"],
177 "5" => ["Subscriber","7"]
178 );
179
180 $default_chart_options = array(
181 //
182 );
183
184 $default_chart = array(
185 'title' => 'Default chart',
186 'description' => '',
187 'type' => 'google-charts',
188 'source_chart_type' => 'pie_chart',
189 'source_type' => 'manual',
190 'source' => json_encode($default_chart_source),
191 'date_created' => current_time('mysql'),
192 'date_modified' => current_time('mysql'),
193 'status' => 'published',
194 'trash_status' => '',
195 'ordering' => '0',
196 'options' => json_encode($default_chart_options),
197 'author_id' => get_current_user_id()
198 );
199
200 $wpdb->insert($charts_table, $default_chart);
201 $chart_id = $wpdb->insert_id;
202
203 $default_chart_meta = array(
204 array(
205 'chart_id' => $chart_id,
206 'meta_key' => 'width',
207 'meta_value' => '100',
208 'note' => '',
209 'options' => ''
210 ),
211 array(
212 'chart_id' => $chart_id,
213 'meta_key' => 'height',
214 'meta_value' => '400',
215 'note' => '',
216 'options' => ''
217 ),
218 array(
219 'chart_id' => $chart_id,
220 'meta_key' => 'title_color',
221 'meta_value' => '#000000',
222 'note' => '',
223 'options' => ''
224 ),
225 array(
226 'chart_id' => $chart_id,
227 'meta_key' => 'font_size',
228 'meta_value' => '14',
229 'note' => '',
230 'options' => ''
231 ),
232 array(
233 'chart_id' => $chart_id,
234 'meta_key' => 'tooltip_trigger',
235 'meta_value' => 'hover',
236 'note' => '',
237 'options' => ''
238 ),
239 array(
240 'chart_id' => $chart_id,
241 'meta_key' => 'show_color_code',
242 'meta_value' => 'off',
243 'note' => '',
244 'options' => ''
245 )
246 );
247
248 foreach ($default_chart_meta as $key => $value) {
249 $wpdb->insert($charts_meta_table, $value);
250 }
251
252 $default_chart['type'] = 'chart-js';
253 $wpdb->insert($charts_table, $default_chart);
254 } else {
255 $wpdb->update(
256 $charts_table,
257 array(
258 'type' => 'google-charts',
259 ),
260 array(
261 'type' => 'google_charts',
262 )
263 );
264 }
265 }
266 }
267