PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.0.0
Presto Player v2.0.0
4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 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.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / inc / Database / Table.php
presto-player / inc / Database Last commit date
Upgrades 5 years ago AudioPresets.php 4 years ago EmailCollection.php 5 years ago Migrations.php 3 years ago Presets.php 3 years ago Table.php 4 years ago Videos.php 4 years ago Visits.php 4 years ago Webhooks.php 3 years ago
Table.php
87 lines
1 <?php
2
3 namespace PrestoPlayer\Database;
4
5 class Table
6 {
7 /**
8 * Create a database table
9 *
10 * @param string $name
11 * @param string $columns
12 * @param integer $version
13 * @param array $opts
14 * @return void
15 */
16 public function create($name, $columns, $version = 1, $opts = [])
17 {
18 $current_version = get_option("{$name}_database_version", 0);
19
20 if ($version == $current_version) {
21 return;
22 }
23
24 global $wpdb;
25
26 $full_table_name = $wpdb->prefix . $name;
27
28 $opts = wp_parse_args($opts, [
29 'upgrade_method' => 'dbDelta',
30 'table_options' => '',
31 ]);
32
33 $charset_collate = '';
34 if ($wpdb->has_cap('collation')) {
35 if (!empty($wpdb->charset)) {
36 $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
37 }
38 if (!empty($wpdb->collate)) {
39 $charset_collate .= " COLLATE $wpdb->collate";
40 }
41 }
42
43 $table_options = $charset_collate . ' ' . $opts['table_options'];
44
45 // use dbDelta by default
46 if ('dbDelta' == $opts['upgrade_method']) {
47 require_once ABSPATH . 'wp-admin/includes/upgrade.php';
48 dbDelta("CREATE TABLE $full_table_name ( $columns ) $table_options");
49 update_option("{$name}_database_version", $version);
50 return;
51 }
52
53 if ('delete_first' == $opts['upgrade_method']) {
54 $wpdb->query("DROP TABLE IF EXISTS $full_table_name;");
55 }
56
57 $wpdb->query("CREATE TABLE IF NOT EXISTS $full_table_name ( $columns ) $table_options;");
58
59
60 update_option("{$name}_database_version", $version);
61 }
62
63 /**
64 * Drops the table and database option
65 *
66 * @param string $name
67 * @return void
68 */
69 public function drop($name)
70 {
71 global $wpdb;
72 $wpdb->query("DROP TABLE IF EXISTS " . $name);
73 delete_option("presto_courses_{$name}_database_version");
74 }
75
76 public function exists($name)
77 {
78 global $wpdb;
79 $table_name = $wpdb->prefix . $name;
80 $query = $wpdb->prepare('SHOW TABLES LIKE %s', $wpdb->esc_like($table_name));
81 if( $wpdb->get_var($query) == $table_name ){
82 return true;
83 }
84 return false;
85 }
86 }
87