File "400.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/redirection/database/schema/400.php
File
size: 2.73 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
class Red_Database_400 extends Red_Database_Upgrader
{
public function get_stages()
{
return ['add_match_url_400' => 'Add a matched URL column', 'add_match_url_index' => 'Add match URL index', 'add_redirect_data_400' => 'Add column to store new flags', 'convert_existing_urls_400' => 'Convert existing URLs to new format'];
}
private function has_column($wpdb, $column)
{
$existing = $wpdb->get_row("SHOW CREATE TABLE `{$wpdb->prefix}redirection_items`", ARRAY_N);
if (isset($existing[1]) && strpos(strtolower($existing[1]), strtolower($column)) !== false) {
return true;
}
return false;
}
private function has_match_index($wpdb)
{
$existing = $wpdb->get_row("SHOW CREATE TABLE `{$wpdb->prefix}redirection_items`", ARRAY_N);
if (isset($existing[1]) && strpos(strtolower($existing[1]), 'key `match_url') !== false) {
return true;
}
return false;
}
protected function add_match_url_400($wpdb)
{
if (!$this->has_column($wpdb, '`match_url` varchar(2000)')) {
return $this->do_query($wpdb, "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD `match_url` VARCHAR(2000) NULL DEFAULT NULL AFTER `url`");
}
return true;
}
protected function add_match_url_index($wpdb)
{
if (!$this->has_match_index($wpdb)) {
return $this->do_query($wpdb, "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX `match_url` (`match_url`(191))");
}
}
protected function add_redirect_data_400($wpdb)
{
if (!$this->has_column($wpdb, '`match_data` TEXT')) {
return $this->do_query($wpdb, "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD `match_data` TEXT NULL DEFAULT NULL AFTER `match_url`");
}
return true;
}
protected function convert_existing_urls_400($wpdb)
{
$this->do_query($wpdb, "UPDATE `{$wpdb->prefix}redirection_items` SET match_url='regex' WHERE regex=1");
$this->do_query($wpdb, "UPDATE `{$wpdb->prefix}redirection_items` SET match_url=LOWER(url) WHERE regex=0");
$this->do_query($wpdb, $wpdb->prepare("UPDATE `{$wpdb->prefix}redirection_items` SET match_data=%s WHERE regex=0 AND match_url LIKE '%?%'", '{"source":{"flag_query":"exactorder"}}'));
$this->do_query($wpdb, "UPDATE `{$wpdb->prefix}redirection_items` SET match_url=LEFT(match_url,LENGTH(match_url)-1) WHERE regex=0 AND match_url != '/' AND RIGHT(match_url, 1) = '/'");
$this->do_query($wpdb, "UPDATE `{$wpdb->prefix}redirection_items` SET match_url=REPLACE(match_url, '/?', '?') WHERE regex=0");
return $this->do_query($wpdb, "UPDATE `{$wpdb->prefix}redirection_items` SET match_url='/' WHERE match_url=''");
}
}