PluginProbe
Redirection / 2.2.12
Redirection v2.2.12
5.10.0 5.9.0 5.8.1 5.8.0 3.7.2 3.7.3 4.0 4.0.1 4.1 4.1.1 4.2 4.2.1 4.2.2 4.2.3 4.3 4.3.1 4.3.2 4.3.3 4.4 4.4.1 4.4.2 4.5 4.5.1 4.6.2 4.7.1 All 130 releases
redirection / models / database.php

database.php in Redirection 2.2.12, at models/database.php

211 lines 7.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class A_Redirector_URL {
4 }
5
6 class Redirector_Login {
7 }
8
9 class Redirector_LuckyDip {
10 }
11
12 class Redirector_Random {
13 }
14
15 class Redirector_Referrer {
16 }
17
18 class RE_Database {
19 function install() {
20 global $wpdb;
21
22 $create = array(
23 "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}redirection_items`(
24 `id` int(11) unsigned NOT NULL auto_increment,
25 `url` mediumtext NOT NULL,
26 `regex` int(11) unsigned NOT NULL default '0',
27 `position` int(11) unsigned NOT NULL default '0',
28 `last_count` int(10) unsigned NOT NULL default '0',
29 `last_access` datetime NOT NULL,
30 `group_id` int(11) NOT NULL default '0',
31 `status` enum('enabled','disabled' ) NOT NULL default 'enabled',
32 `action_type` varchar(20) NOT NULL,
33 `action_code` int(11) unsigned NOT NULL,
34 `action_data` mediumtext,
35 `match_type` varchar(20) NOT NULL,
36 `title` varchar(50) NULL,
37 PRIMARY KEY ( `id`),
38 KEY `url` (`url`(200)),
39 KEY `status` (`status`),
40 KEY `regex` (`regex`),
41 KEY `group_idpos` (`group_id`,`position`),
42 KEY `group` (`group_id`)
43 )",
44
45 "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}redirection_groups`(
46 `id` int(11) NOT NULL auto_increment,
47 `name` varchar(50) NOT NULL,
48 `tracking` int(11) NOT NULL default '1',
49 `module_id` int(11) unsigned NOT NULL default '0',
50 `status` enum('enabled','disabled' ) NOT NULL default 'enabled',
51 `position` int(11) unsigned NOT NULL default '0',
52 PRIMARY KEY ( `id`),
53 KEY `module_id` (`module_id`),
54 KEY `status` (`status`)
55 )",
56
57 "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}redirection_logs`(
58 `id` int(11) unsigned NOT NULL auto_increment,
59 `created` datetime NOT NULL,
60 `url` mediumtext NOT NULL,
61 `sent_to` mediumtext,
62 `agent` mediumtext NOT NULL,
63 `referrer` mediumtext,
64 `redirection_id` int(11) unsigned default NULL,
65 `ip` varchar(17) NOT NULL default '',
66 `module_id` int(11) unsigned NOT NULL,
67 `group_id` int(11) unsigned default NULL,
68 PRIMARY KEY ( `id`),
69 KEY `created` (`created`),
70 KEY `redirection_id` (`redirection_id`),
71 KEY `ip` (`ip`),
72 KEY `group_id` (`group_id`),
73 KEY `module_id` (`module_id`)
74 )",
75
76 "CREATE TABLE `{$wpdb->prefix}redirection_modules`(
77 `id` int(11) unsigned NOT NULL auto_increment,
78 `type` varchar(20) NOT NULL default '',
79 `name` varchar(50) NOT NULL default '',
80 `options` mediumtext,
81 PRIMARY KEY ( `id`),
82 KEY `name` (`name`),
83 KEY `type` (`type`)
84 )",
85 );
86
87 foreach ( $create AS $sql ) {
88 if ( $wpdb->query( $sql ) === false )
89 return false;
90 }
91
92 // Modules
93 if ( $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->prefix}redirection_modules" ) == 0 ) {
94 $wpdb->insert( $wpdb->prefix.'redirection_modules', array( 'type' => 'wp', 'name' => __( 'WordPress', 'redirection' ), 'options' => '' ) );
95 $wpdb->insert( $wpdb->prefix.'redirection_modules', array( 'type' => 'apache', 'name' => __( 'Apache', 'redirection' ), 'options' => '' ) );
96 $wpdb->insert( $wpdb->prefix.'redirection_modules', array( 'type' => '404', 'name' => __( '404', 'redirection' ), 'options' => '' ) );
97 }
98
99 // Groups
100 if ( $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->prefix}redirection_groups" ) == 0 ) {
101 $wpdb->insert( $wpdb->prefix.'redirection_groups', array( 'name' => __( 'Redirections' ), 'module_id' => 1, 'position' => 0 ) );
102 $wpdb->insert( $wpdb->prefix.'redirection_groups', array( 'name' => __( 'Modified Posts' ), 'module_id' => 1, 'position' => 1 ) );
103
104 $options = get_option( 'redirection_options' );
105 $options['monitor_post'] = 2;
106 $options['monitor_category'] = 2;
107
108 update_option( 'redirection_options', $options );
109 }
110 }
111
112 function upgrade( $current, $target ) {
113 global $wpdb;
114
115 $wpdb->show_errors();
116
117 // No previous version? Install the DB tables
118 if ( $current === false )
119 $success = $this->install();
120 else {
121 // Try and upgrade from a previous version
122 if ( $current == '2.0' )
123 $this->upgrade_from_20();
124 elseif ( $current == '2.0.1' )
125 $this->upgrade_from_21();
126 elseif ( $current == '2.0.2' )
127 $this->upgrade_from_22();
128
129 if ( version_compare( $current, '2.1.16' ) == -1 )
130 $this->upgrade_to_216();
131
132 if ( version_compare( $current, '2.2' ) == -1 )
133 $this->upgrade_to_220();
134 }
135
136 // Set our current version
137 update_option( 'redirection_version', $target );
138
139 $wpdb->hide_errors();
140 return $success;
141 }
142
143 function upgrade_from_20() {
144 global $wpdb;
145
146 $this->upgrade_from_21();
147 $this->upgrade_from_22();
148 }
149
150 function upgrade_from_21() {
151 global $wpdb;
152
153 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD `title` varchar(50) NULL" );
154
155 $this->upgrade_from_22();
156 }
157
158 function upgrade_from_22() {
159 global $wpdb;
160
161 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` CHANGE `title` `title` varchar(50) NULL" );
162 }
163
164 function upgrade_to_216() {
165 global $wpdb;
166
167 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_groups` ADD INDEX(module_id)" );
168 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_groups` ADD INDEX(status)" );
169 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX(url(200))" );
170 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX(status)" );
171 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX(regex)" );
172 }
173
174 function upgrade_to_220() {
175 global $wpdb;
176
177 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX `group_idpos` (`group_id`,`position`)" );
178 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX `group` (`group_id`)" );
179
180 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `group` (`group_id`)" );
181 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `redirection_id` (`redirection_id`)" );
182 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `created` (`created`)" );
183 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `ip` (`ip`)" );
184 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `group_id` (`group_id`)" );
185 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `module_id` (`module_id`)" );
186
187 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_modules` ADD INDEX `name` (`name`)" );
188 $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_modules` ADD INDEX `type` (`type`)" );
189 }
190
191 function remove( $plugin ) {
192 global $wpdb;
193
194 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection;" );
195 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_items;" );
196 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_logs;" );
197 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_groups;" );
198 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_modules;" );
199
200 delete_option( 'redirection_lookup' );
201 delete_option( 'redirection_post' );
202 delete_option( 'redirection_root' );
203 delete_option( 'redirection_index' );
204 delete_option( 'redirection_version' );
205
206 $current = get_option( 'active_plugins' );
207 array_splice( $current, array_search( basename( dirname( $plugin ) ).'/'.basename( $plugin ), $current ), 1 );
208 update_option( 'active_plugins', $current );
209 }
210 }
211