PluginProbe
Chartify – WordPress Chart Plugin / 1.0.0
Chartify – WordPress Chart Plugin v1.0.0
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 1.0.0, at includes/class-chart-builder-activator.php

258 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 = '20.0.0';
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 `options` TEXT NOT NULL DEFAULT '',
63 PRIMARY KEY (`id`)
64 )$charset_collate;";
65
66 $sql_schema = "SELECT * FROM INFORMATION_SCHEMA.TABLES
67 WHERE table_schema = '".DB_NAME."' AND table_name = '".$charts_table."' ";
68 $results = $wpdb->get_results($sql_schema);
69
70 if( empty( $results ) ){
71 $wpdb->query( $sql );
72 }else{
73 dbDelta( $sql );
74 }
75
76
77 $sql = "CREATE TABLE `".$charts_meta_table."` (
78 `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
79 `chart_id` INT(11) UNSIGNED NOT NULL,
80 `meta_key` TEXT NOT NULL DEFAULT '',
81 `meta_value` TEXT NOT NULL DEFAULT '',
82 `note` TEXT NOT NULL DEFAULT '',
83 `options` TEXT NOT NULL DEFAULT '',
84 PRIMARY KEY (`id`)
85 )$charset_collate;";
86
87 $sql_schema = "SELECT * FROM INFORMATION_SCHEMA.TABLES
88 WHERE table_schema = '".DB_NAME."' AND table_name = '".$charts_meta_table."' ";
89 $results = $wpdb->get_results($sql_schema);
90
91 if(empty($results)){
92 $wpdb->query( $sql );
93 }else{
94 dbDelta( $sql );
95 }
96
97
98 $sql = "CREATE TABLE `".$settings_table."` (
99 `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
100 `meta_key` TEXT NOT NULL DEFAULT '',
101 `meta_value` TEXT NOT NULL DEFAULT '',
102 `note` TEXT NOT NULL DEFAULT '',
103 `options` TEXT NOT NULL DEFAULT '',
104 PRIMARY KEY (`id`)
105 )$charset_collate;";
106
107 $sql_schema = "SELECT * FROM INFORMATION_SCHEMA.TABLES
108 WHERE table_schema = '".DB_NAME."' AND table_name = '".$settings_table."' ";
109 $results = $wpdb->get_results($sql_schema);
110
111 if(empty($results)){
112 $wpdb->query( $sql );
113 }else{
114 dbDelta( $sql );
115 }
116
117 update_option( 'ays_chart_db_version', $ays_chart_db_version );
118
119 }
120
121 $metas = array(
122 "user_roles",
123 "google",
124 "options"
125 );
126
127 foreach($metas as $meta_key){
128 $meta_val = "";
129 if($meta_key == "user_roles"){
130 $meta_val = json_encode(array('administrator'));
131 }
132 $sql = "SELECT COUNT(*) FROM `".$settings_table."` WHERE `meta_key` = '". esc_sql( $meta_key ) ."'";
133 $result = $wpdb->get_var($sql);
134 if(intval($result) == 0){
135 $result = $wpdb->insert(
136 $settings_table,
137 array(
138 'meta_key' => $meta_key,
139 'meta_value' => $meta_val,
140 'note' => "",
141 'options' => ""
142 ),
143 array( '%s', '%s', '%s', '%s' )
144 );
145 }
146 }
147
148 self::create_default_chart();
149 }
150
151 public static function db_update_check() {
152 global $ays_chart_db_version;
153 if ( get_site_option( 'ays_chart_db_version' ) != $ays_chart_db_version ) {
154 self::activate();
155 }
156 }
157
158 public static function create_default_chart() {
159 global $wpdb;
160 global $ays_chart_db_version;
161
162 $charts_table = $wpdb->prefix . CHART_BUILDER_DB_PREFIX . 'charts';
163 $charts_meta_table = $wpdb->prefix . CHART_BUILDER_DB_PREFIX . 'charts_meta';
164 $settings_table = $wpdb->prefix . CHART_BUILDER_DB_PREFIX . 'settings';
165
166 $chart_count = $wpdb->get_var("SELECT COUNT(*) FROM " . $charts_table);
167 $chart_meta_count = $wpdb->get_var("SELECT COUNT(*) FROM " . $charts_meta_table);
168 if ($chart_count == 0 && $chart_meta_count == 0) {
169 $default_chart_source = array(
170 "1" => ["Administrator","11"],
171 "2" => ["Author","2"],
172 "3" => ["Editor","5"],
173 "4" => ["Guest","2"],
174 "5" => ["Subscriber","7"]
175 );
176
177 $default_chart_options = array(
178 //
179 );
180
181 $default_chart = array(
182 'title' => 'Default chart',
183 'description' => '',
184 'type' => 'google_charts',
185 'source_chart_type' => 'pie_chart',
186 'source_type' => 'manual',
187 'source' => json_encode($default_chart_source),
188 'date_created' => current_time('mysql'),
189 'date_modified' => current_time('mysql'),
190 'status' => 'published',
191 'trash_status' => '',
192 'ordering' => '0',
193 'options' => json_encode($default_chart_options),
194 'author_id' => get_current_user_id()
195 );
196
197 $wpdb->insert($charts_table, $default_chart);
198 $chart_id = $wpdb->insert_id;
199
200 $default_chart_meta = array(
201 array(
202 'chart_id' => $chart_id,
203 'meta_key' => 'width',
204 'meta_value' => '100',
205 'note' => '',
206 'option' => ''
207 ),
208 array(
209 'chart_id' => $chart_id,
210 'meta_key' => 'height',
211 'meta_value' => '400',
212 'note' => '',
213 'option' => ''
214 ),
215 array(
216 'chart_id' => $chart_id,
217 'meta_key' => 'width',
218 'meta_value' => '100',
219 'note' => '',
220 'option' => ''
221 ),
222 array(
223 'chart_id' => $chart_id,
224 'meta_key' => 'title_color',
225 'meta_value' => '#000000',
226 'note' => '',
227 'option' => ''
228 ),
229 array(
230 'chart_id' => $chart_id,
231 'meta_key' => 'font_size',
232 'meta_value' => '14',
233 'note' => '',
234 'option' => ''
235 ),
236 array(
237 'chart_id' => $chart_id,
238 'meta_key' => 'tooltip_trigger',
239 'meta_value' => 'hover',
240 'note' => '',
241 'option' => ''
242 ),
243 array(
244 'chart_id' => $chart_id,
245 'meta_key' => 'show_color_code',
246 'meta_value' => 'off',
247 'note' => '',
248 'option' => ''
249 )
250 );
251
252 foreach ($default_chart_meta as $key => $value) {
253 $wpdb->insert($charts_meta_table, $value);
254 }
255 }
256 }
257 }
258