Contao\Database\Updater::run300Update PHP Method

run300Update() public method

Version 3.0.0 update
public run300Update ( )
    public function run300Update()
    {
        // Create the files table
        $this->Database->query("CREATE TABLE `tl_files` (\n\t\t\t  `id` int(10) unsigned NOT NULL auto_increment,\n\t\t\t  `pid` binary(16) NULL,\n\t\t\t  `tstamp` int(10) unsigned NOT NULL default '0',\n\t\t\t  `uuid` binary(16) NULL,\n\t\t\t  `type` varchar(16) NOT NULL default '',\n\t\t\t  `path` varchar(1022) NOT NULL default '',\n\t\t\t  `extension` varchar(16) NOT NULL default '',\n\t\t\t  `hash` varchar(32) NOT NULL default '',\n\t\t\t  `found` char(1) NOT NULL default '1',\n\t\t\t  `name` varchar(255) NOT NULL default '',\n\t\t\t  `meta` blob NULL,\n\t\t\t  PRIMARY KEY  (`id`),\n\t\t\t  KEY `pid` (`pid`),\n\t\t\t  UNIQUE KEY `uuid` (`uuid`),\n\t\t\t  KEY `extension` (`extension`)\n\t\t\t) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
        // Add the "numberOfItems" field
        $this->Database->query("ALTER TABLE `tl_module` ADD `numberOfItems` smallint(5) unsigned NOT NULL default '0'");
        $this->Database->query("UPDATE `tl_module` SET `numberOfItems`=`rss_numberOfItems` WHERE `rss_numberOfItems`>0");
        $this->Database->query("UPDATE `tl_module` SET `numberOfItems`=`news_numberOfItems` WHERE `news_numberOfItems`>0");
        // Add the "addMooTools" field
        $this->Database->query("ALTER TABLE `tl_layout` ADD `addMooTools` char(1) NOT NULL default ''");
        $this->Database->query("UPDATE `tl_layout` SET `addMooTools`=1 WHERE `mootools`!=''");
        // Add the "notified" field
        $this->Database->query("ALTER TABLE `tl_comments` ADD `notified` char(1) NOT NULL default ''");
        $this->Database->query("UPDATE `tl_comments` SET `notified`=1");
        // Add the "rows" field
        $this->Database->query("ALTER TABLE `tl_layout` ADD `rows` varchar(8) NOT NULL default ''");
        $this->Database->query("UPDATE `tl_layout` SET `rows`='1rw' WHERE `header`='' AND `footer`=''");
        $this->Database->query("UPDATE `tl_layout` SET `rows`='2rwh' WHERE `header`!='' AND `footer`=''");
        $this->Database->query("UPDATE `tl_layout` SET `rows`='2rwf' WHERE `header`='' AND `footer`!=''");
        $this->Database->query("UPDATE `tl_layout` SET `rows`='3rw' WHERE `header`!='' AND `footer`!=''");
        // Update the "mooType" field
        $this->Database->query("UPDATE `tl_content` SET `mooType`='mooStart' WHERE `mooType`='start'");
        $this->Database->query("UPDATE `tl_content` SET `mooType`='mooStop' WHERE `mooType`='stop'");
        $this->Database->query("UPDATE `tl_content` SET `mooType`='mooSingle' WHERE `mooType`='single'");
        // Add the "framework" field
        $this->Database->query("ALTER TABLE `tl_layout` ADD `framework` varchar(255) NOT NULL default ''");
        $this->Database->query("UPDATE `tl_layout` SET `framework`='a:2:{i:0;s:10:\"layout.css\";i:1;s:11:\"tinymce.css\";}'");
        $this->Database->query("UPDATE `tl_layout` SET `framework`='a:1:{i:0;s:10:\"layout.css\";}' WHERE skipTinymce=1");
        // Make sure the "skipFramework" field exists (see #4624)
        if ($this->Database->fieldExists('skipFramework', 'tl_layout')) {
            $this->Database->query("UPDATE `tl_layout` SET `framework`='' WHERE skipFramework=1");
        }
        // Add the "ptable" field
        $this->Database->query("ALTER TABLE `tl_content` ADD ptable varchar(64) NOT NULL default ''");
        // Create a content element for each news article
        $objNews = $this->Database->execute("SELECT * FROM tl_news WHERE text!='' AND source='default'");
        while ($objNews->next()) {
            $this->createContentElement($objNews, 'tl_news', 'text');
        }
        // Create a content element for each event
        $objEvents = $this->Database->execute("SELECT * FROM tl_calendar_events WHERE details!='' AND source='default'");
        while ($objEvents->next()) {
            $this->createContentElement($objEvents, 'tl_calendar_events', 'details');
        }
        // Convert the gradient angle syntax (see #4569)
        if ($this->Database->fieldExists('gradientAngle', 'tl_style')) {
            $objStyle = $this->Database->execute("SELECT id, gradientAngle FROM tl_style WHERE gradientAngle!=''");
            while ($objStyle->next()) {
                $angle = '';
                if (strpos($objStyle->gradientAngle, 'deg') !== false) {
                    $angle = abs(450 - intval($objStyle->gradientAngle)) % 360 . 'deg';
                } else {
                    switch ($objStyle->gradientAngle) {
                        case 'top':
                            $angle = 'to bottom';
                            break;
                        case 'right':
                            $angle = 'to left';
                            break;
                        case 'bottom':
                            $angle = 'to top';
                            break;
                        case 'left':
                            $angle = 'to right';
                            break;
                        case 'top left':
                            $angle = 'to bottom right';
                            break;
                        case 'top right':
                            $angle = 'to bottom left';
                            break;
                        case 'bottom left':
                            $angle = 'to top right';
                            break;
                        case 'bottom right':
                            $angle = 'to top left';
                            break;
                    }
                }
                $this->Database->prepare("UPDATE tl_style SET gradientAngle=? WHERE id=?")->execute($angle, $objStyle->id);
            }
        }
        // Make unlimited recurrences end on 2038-01-01 00:00:00 (see #4862)
        $this->Database->query("UPDATE `tl_calendar_events` SET `repeatEnd`=2145913200 WHERE `recurring`=1 AND `recurrences`=0");
    }