core-bundle/src/Resources/contao/library/Contao/Database/Updater.php
public function run31Update()
	{
		// Get all page layouts that use the CSS framework
		$objLayout = $this->Database->query("SELECT `id`, `framework` FROM `tl_layout` WHERE `framework`!=''");

		// Rename "responsive.css" to "grid.css"
		while ($objLayout->next())
		{
			$arrCss = StringUtil::deserialize($objLayout->framework);

			if (($key = array_search('responsive.css', $arrCss)) !== false)
			{
				$arrCss[$key] = 'grid.css';
			}

			$this->Database->prepare("UPDATE `tl_layout` SET `framework`=? WHERE `id`=?")
						   ->execute(serialize($arrCss), $objLayout->id);
		}

		// Add the jQuery fields if they do not yet exist (see #5689)
		if (!$this->Database->fieldExists('addJQuery', 'tl_layout'))
		{
			$this->Database->query("ALTER TABLE `tl_layout` ADD `addJQuery` char(1) NOT NULL default ''");
			$this->Database->query("ALTER TABLE `tl_layout` ADD `jSource` varchar(16) NOT NULL default ''");
			$this->Database->query("ALTER TABLE `tl_layout` ADD `jquery` text NULL");
		}

		// Get all page layouts that use the moo_mediaelement template
		$objLayout = $this->Database->query("SELECT `id`, `addJQuery`, `jquery`, `mootools` FROM `tl_layout` WHERE `addMooTools`=1 AND `mootools` LIKE '%\"moo_mediaelement\"%'");

		// Activate the "j_mediaelement" template instead
		while ($objLayout->next())
		{
			$arrSet = array();

			// jQuery already activated
			if ($objLayout->addjQuery)
			{
				$arrJQuery = StringUtil::deserialize($objLayout->jquery);

				// Add j_mediaelement
				if (!\is_array($arrJQuery))
				{
					$arrSet['jquery'] = serialize(array('j_mediaelement'));
				}
				elseif (!\in_array('j_mediaelement', $arrJQuery))
				{
					$arrJQuery[] = 'j_mediaelement';
					$arrSet['jquery'] = serialize($arrJQuery);
				}
			}
			else
			{
				$arrSet['addJQuery'] = 1;
				$arrSet['jSource'] = 'j_local';
				$arrSet['jquery'] = serialize(array('j_mediaelement'));
			}

			$arrMooTools = StringUtil::deserialize($objLayout->mootools);

			// Unset the moo_mediaelement template
			if (($key = array_search('moo_mediaelement', $arrMooTools)) !== false)
			{
				unset($arrMooTools[$key]);
			}

			// Update the MooTools templates
			if (empty($arrMooTools))
			{
				$arrSet['mootools'] = '';
			}
			else
			{
				$arrSet['mootools'] = serialize(array_values($arrMooTools));
			}

			$this->Database->prepare("UPDATE `tl_layout` %s WHERE `id`=?")
						   ->set($arrSet)
						   ->execute($objLayout->id);
		}

		// Get all page layouts
		$objLayout = $this->Database->query("SELECT `id`, `modules` FROM `tl_layout`");

		// Add the "enable" flag to all modules
		while ($objLayout->next())
		{
			$arrModules = StringUtil::deserialize($objLayout->modules);

			foreach (array_keys($arrModules) as $key)
			{
				$arrModules[$key]['enable'] = true;
			}

			$this->Database->prepare("UPDATE `tl_layout` SET `modules`=? WHERE `id`=?")
						   ->execute(serialize($arrModules), $objLayout->id);
		}

		// Adjust the accordion elements
		$this->Database->query("UPDATE `tl_content` SET `type`='accordionStart' WHERE `type`='accordion' AND `mooType`='mooStart'");
		$this->Database->query("UPDATE `tl_content` SET `type`='accordionStop' WHERE `type`='accordion' AND `mooType`='mooStop'");
		$this->Database->query("UPDATE `tl_content` SET `type`='accordionSingle' WHERE `type`='accordion' AND `mooType`='mooSingle'");

		// White-space is now in the "alignment" section (see #4519)
		$this->Database->query("UPDATE `tl_style` SET `alignment`=1 WHERE `whitespace`!=''");
		$this->Database->query("ALTER TABLE `tl_style` CHANGE `whitespace` `whitespace` varchar(8) NOT NULL default ''");
		$this->Database->query("UPDATE `tl_style` SET `whitespace`='nowrap' WHERE `whitespace`!=''");

		// Drop the tl_files.path index (see #5598)
		if ($this->Database->indexExists('path', 'tl_files'))
		{
			$this->Database->query("ALTER TABLE `tl_files` DROP INDEX `path`");
		}

		// Remove the "mooType" field (triggers the version 3.1 update)
		$this->Database->query("ALTER TABLE `tl_content` DROP `mooType`");
	}
public function run31Update()
	{
		// Get all page layouts that use the CSS framework
		$objLayout = $this->Database->query("SELECT `id`, `framework` FROM `tl_layout` WHERE `framework`!=''");

		// Rename "responsive.css" to "grid.css"
		while ($objLayout->next())
		{
			$arrCss = StringUtil::deserialize($objLayout->framework);

			if (($key = array_search('responsive.css', $arrCss)) !== false)
			{
				$arrCss[$key] = 'grid.css';
			}

			$this->Database->prepare("UPDATE `tl_layout` SET `framework`=? WHERE `id`=?")
						   ->execute(serialize($arrCss), $objLayout->id);
		}

		// Add the jQuery fields if they do not yet exist (see #5689)
		if (!$this->Database->fieldExists('addJQuery', 'tl_layout'))
		{
			$this->Database->query("ALTER TABLE `tl_layout` ADD `addJQuery` char(1) NOT NULL default ''");
			$this->Database->query("ALTER TABLE `tl_layout` ADD `jSource` varchar(16) NOT NULL default ''");
			$this->Database->query("ALTER TABLE `tl_layout` ADD `jquery` text NULL");
		}

		// Get all page layouts that use the moo_mediaelement template
		$objLayout = $this->Database->query("SELECT `id`, `addJQuery`, `jquery`, `mootools` FROM `tl_layout` WHERE `addMooTools`=1 AND `mootools` LIKE '%\"moo_mediaelement\"%'");

		// Activate the "j_mediaelement" template instead
		while ($objLayout->next())
		{
			$arrSet = array();

			// jQuery already activated
			if ($objLayout->addjQuery)
			{
				$arrJQuery = StringUtil::deserialize($objLayout->jquery);

				// Add j_mediaelement
				if (!\is_array($arrJQuery))
				{
					$arrSet['jquery'] = serialize(array('j_mediaelement'));
				}
				elseif (!\in_array('j_mediaelement', $arrJQuery))
				{
					$arrJQuery[] = 'j_mediaelement';
					$arrSet['jquery'] = serialize($arrJQuery);
				}
			}
			else
			{
				$arrSet['addJQuery'] = 1;
				$arrSet['jSource'] = 'j_local';
				$arrSet['jquery'] = serialize(array('j_mediaelement'));
			}

			$arrMooTools = StringUtil::deserialize($objLayout->mootools);

			// Unset the moo_mediaelement template
			if (($key = array_search('moo_mediaelement', $arrMooTools)) !== false)
			{
				unset($arrMooTools[$key]);
			}

			// Update the MooTools templates
			if (empty($arrMooTools))
			{
				$arrSet['mootools'] = '';
			}
			else
			{
				$arrSet['mootools'] = serialize(array_values($arrMooTools));
			}

			$this->Database->prepare("UPDATE `tl_layout` %s WHERE `id`=?")
						   ->set($arrSet)
						   ->execute($objLayout->id);
		}

		// Get all page layouts
		$objLayout = $this->Database->query("SELECT `id`, `modules` FROM `tl_layout`");

		// Add the "enable" flag to all modules
		while ($objLayout->next())
		{
			$arrModules = StringUtil::deserialize($objLayout->modules);

			foreach (array_keys($arrModules) as $key)
			{
				$arrModules[$key]['enable'] = true;
			}

			$this->Database->prepare("UPDATE `tl_layout` SET `modules`=? WHERE `id`=?")
						   ->execute(serialize($arrModules), $objLayout->id);
		}

		// Adjust the accordion elements
		$this->Database->query("UPDATE `tl_content` SET `type`='accordionStart' WHERE `type`='accordion' AND `mooType`='mooStart'");
		$this->Database->query("UPDATE `tl_content` SET `type`='accordionStop' WHERE `type`='accordion' AND `mooType`='mooStop'");
		$this->Database->query("UPDATE `tl_content` SET `type`='accordionSingle' WHERE `type`='accordion' AND `mooType`='mooSingle'");

		// White-space is now in the "alignment" section (see #4519)
		$this->Database->query("UPDATE `tl_style` SET `alignment`=1 WHERE `whitespace`!=''");
		$this->Database->query("ALTER TABLE `tl_style` CHANGE `whitespace` `whitespace` varchar(8) NOT NULL default ''");
		$this->Database->query("UPDATE `tl_style` SET `whitespace`='nowrap' WHERE `whitespace`!=''");

		// Drop the tl_files.path index (see #5598)
		if ($this->Database->indexExists('path', 'tl_files'))
		{
			$this->Database->query("ALTER TABLE `tl_files` DROP INDEX `path`");
		}

		// Remove the "mooType" field (triggers the version 3.1 update)
		$this->Database->query("ALTER TABLE `tl_content` DROP `mooType`");
	}
public function run31Update ( ) { // Get all page layouts that use the CSS framework $ objLayout = $ this -> Database -> query ( "SELECT `id`, `framework` FROM `tl_layout` WHERE `framework`!=''" ) ; // Rename "responsive.css" to "grid.css" while ( $ objLayout -> next ( ) ) { $ arrCss = StringUtil :: deserialize ( $ objLayout -> framework ) ; if ( ( $ key = array_search ( 'responsive.css' , $ arrCss ) ) !== false ) { $ arrCss [ $ key ] = 'grid.css' ; } $ this -> Database -> prepare ( "UPDATE `tl_layout` SET `framework`=? WHERE `id`=?" ) -> execute ( serialize ( $ arrCss ) , $ objLayout -> id ) ; } // Add the jQuery fields if they do not yet exist (see #5689) if ( ! $ this -> Database -> fieldExists ( 'addJQuery' , 'tl_layout' ) ) { $ this -> Database -> query ( "ALTER TABLE `tl_layout` ADD `addJQuery` char(1) NOT NULL default ''" ) ; $ this -> Database -> query ( "ALTER TABLE `tl_layout` ADD `jSource` varchar(16) NOT NULL default ''" ) ; $ this -> Database -> query ( "ALTER TABLE `tl_layout` ADD `jquery` text NULL" ) ; } // Get all page layouts that use the moo_mediaelement template $ objLayout = $ this -> Database -> query ( "SELECT `id`, `addJQuery`, `jquery`, `mootools` FROM `tl_layout` WHERE `addMooTools`=1 AND `mootools` LIKE '%\"moo_mediaelement\"%'" ) ; // Activate the "j_mediaelement" template instead while ( $ objLayout -> next ( ) ) { $ arrSet = array ( ) ; // jQuery already activated if ( $ objLayout -> addjQuery ) { $ arrJQuery = StringUtil :: deserialize ( $ objLayout -> jquery ) ; // Add j_mediaelement if ( ! \ is_array ( $ arrJQuery ) ) { $ arrSet [ 'jquery' ] = serialize ( array ( 'j_mediaelement' ) ) ; } elseif ( ! \ in_array ( 'j_mediaelement' , $ arrJQuery ) ) { $ arrJQuery [ ] = 'j_mediaelement' ; $ arrSet [ 'jquery' ] = serialize ( $ arrJQuery ) ; } } else { $ arrSet [ 'addJQuery' ] = 1 ; $ arrSet [ 'jSource' ] = 'j_local' ; $ arrSet [ 'jquery' ] = serialize ( array ( 'j_mediaelement' ) ) ; } $ arrMooTools = StringUtil :: deserialize ( $ objLayout -> mootools ) ; // Unset the moo_mediaelement template if ( ( $ key = array_search ( 'moo_mediaelement' , $ arrMooTools ) ) !== false ) { unset ( $ arrMooTools [ $ key ] ) ; } // Update the MooTools templates if ( empty ( $ arrMooTools ) ) { $ arrSet [ 'mootools' ] = '' ; } else { $ arrSet [ 'mootools' ] = serialize ( array_values ( $ arrMooTools ) ) ; } $ this -> Database -> prepare ( "UPDATE `tl_layout` %s WHERE `id`=?" ) -> set ( $ arrSet ) -> execute ( $ objLayout -> id ) ; } // Get all page layouts $ objLayout = $ this -> Database -> query ( "SELECT `id`, `modules` FROM `tl_layout`" ) ; // Add the "enable" flag to all modules while ( $ objLayout -> next ( ) ) { $ arrModules = StringUtil :: deserialize ( $ objLayout -> modules ) ; foreach ( array_keys ( $ arrModules ) as $ key ) { $ arrModules [ $ key ] [ 'enable' ] = true ; } $ this -> Database -> prepare ( "UPDATE `tl_layout` SET `modules`=? WHERE `id`=?" ) -> execute ( serialize ( $ arrModules ) , $ objLayout -> id ) ; } // Adjust the accordion elements $ this -> Database -> query ( "UPDATE `tl_content` SET `type`='accordionStart' WHERE `type`='accordion' AND `mooType`='mooStart'" ) ; $ this -> Database -> query ( "UPDATE `tl_content` SET `type`='accordionStop' WHERE `type`='accordion' AND `mooType`='mooStop'" ) ; $ this -> Database -> query ( "UPDATE `tl_content` SET `type`='accordionSingle' WHERE `type`='accordion' AND `mooType`='mooSingle'" ) ; // White-space is now in the "alignment" section (see #4519) $ this -> Database -> query ( "UPDATE `tl_style` SET `alignment`=1 WHERE `whitespace`!=''" ) ; $ this -> Database -> query ( "ALTER TABLE `tl_style` CHANGE `whitespace` `whitespace` varchar(8) NOT NULL default ''" ) ; $ this -> Database -> query ( "UPDATE `tl_style` SET `whitespace`='nowrap' WHERE `whitespace`!=''" ) ; // Drop the tl_files.path index (see #5598) if ( $ this -> Database -> indexExists ( 'path' , 'tl_files' ) ) { $ this -> Database -> query ( "ALTER TABLE `tl_files` DROP INDEX `path`" ) ; } // Remove the "mooType" field (triggers the version 3.1 update) $ this -> Database -> query ( "ALTER TABLE `tl_content` DROP `mooType`" ) ; }
Version 3.1.0 update
Version 3 . 1 . 0 update