PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.2.1
Presto Player v4.2.1
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 1 month ago AudioPresets.php 1 year ago EmailCollection.php 1 year ago Migrations.php 1 year ago Presets.php 1 year ago Table.php 1 year ago Videos.php 1 year ago Visits.php 1 year ago Webhooks.php 1 year ago
Table.php
86 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 = array() ) {
17 $current_version = get_option( "{$name}_database_version", 0 );
18
19 if ( $version == $current_version ) {
20 return;
21 }
22
23 global $wpdb;
24
25 $full_table_name = $wpdb->prefix . $name;
26
27 $opts = wp_parse_args(
28 $opts,
29 array(
30 'upgrade_method' => 'dbDelta',
31 'table_options' => '',
32 )
33 );
34
35 $charset_collate = '';
36 if ( $wpdb->has_cap( 'collation' ) ) {
37 if ( ! empty( $wpdb->charset ) ) {
38 $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
39 }
40 if ( ! empty( $wpdb->collate ) ) {
41 $charset_collate .= " COLLATE $wpdb->collate";
42 }
43 }
44
45 $table_options = $charset_collate . ' ' . $opts['table_options'];
46
47 // use dbDelta by default
48 if ( 'dbDelta' == $opts['upgrade_method'] ) {
49 require_once ABSPATH . 'wp-admin/includes/upgrade.php';
50 dbDelta( "CREATE TABLE $full_table_name ( $columns ) $table_options" );
51 update_option( "{$name}_database_version", $version );
52 return;
53 }
54
55 if ( 'delete_first' == $opts['upgrade_method'] ) {
56 $wpdb->query( "DROP TABLE IF EXISTS $full_table_name;" );
57 }
58
59 $wpdb->query( "CREATE TABLE IF NOT EXISTS $full_table_name ( $columns ) $table_options;" );
60
61 update_option( "{$name}_database_version", $version );
62 }
63
64 /**
65 * Drops the table and database option
66 *
67 * @param string $name
68 * @return void
69 */
70 public function drop( $name ) {
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 global $wpdb;
78 $table_name = $wpdb->prefix . $name;
79 $query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table_name ) );
80 if ( $wpdb->get_var( $query ) == $table_name ) {
81 return true;
82 }
83 return false;
84 }
85 }
86