public function purgeXmlFiles($blnReturn=false)
	{
		$arrFeeds = array();
		$objDatabase = Database::getInstance();

		// XML sitemaps
		$objFeeds = $objDatabase->execute("SELECT sitemapName FROM tl_page WHERE type='root' AND createSitemap=1 AND sitemapName!=''");

		while ($objFeeds->next())
		{
			$arrFeeds[] = $objFeeds->sitemapName;
		}

		// HOOK: preserve third party feeds
		if (isset($GLOBALS['TL_HOOKS']['removeOldFeeds']) && \is_array($GLOBALS['TL_HOOKS']['removeOldFeeds']))
		{
			foreach ($GLOBALS['TL_HOOKS']['removeOldFeeds'] as $callback)
			{
				$this->import($callback[0]);
				$arrFeeds = array_merge($arrFeeds, $this->{$callback[0]}->{$callback[1]}());
			}
		}

		// Delete the old files
		if (!$blnReturn)
		{
			$shareDir = System::getContainer()->getParameter('contao.web_dir') . '/share';

			foreach (scan($shareDir) as $file)
			{
				if (is_dir($shareDir . '/' . $file))
				{
					continue; // see #6652
				}

				$objFile = new File(StringUtil::stripRootDir($shareDir) . '/' . $file);

				if ($objFile->extension == 'xml' && !\in_array($objFile->filename, $arrFeeds))
				{
					$objFile->delete();
				}
			}
		}

		return $arrFeeds;
	}
public function purgeXmlFiles($blnReturn=false)
	{
		$arrFeeds = array();
		$objDatabase = Database::getInstance();

		
		$objFeeds = $objDatabase->execute("SELECT sitemapName FROM tl_page WHERE type='root' AND createSitemap=1 AND sitemapName!=''");

		while ($objFeeds->next())
		{
			$arrFeeds[] = $objFeeds->sitemapName;
		}

		
		if (isset($GLOBALS['TL_HOOKS']['removeOldFeeds']) && \is_array($GLOBALS['TL_HOOKS']['removeOldFeeds']))
		{
			foreach ($GLOBALS['TL_HOOKS']['removeOldFeeds'] as $callback)
			{
				$this->import($callback[0]);
				$arrFeeds = array_merge($arrFeeds, $this->{$callback[0]}->{$callback[1]}());
			}
		}

		
		if (!$blnReturn)
		{
			$shareDir = System::getContainer()->getParameter('contao.web_dir') . '/share';

			foreach (scan($shareDir) as $file)
			{
				if (is_dir($shareDir . '/' . $file))
				{
					continue; 
				}

				$objFile = new File(StringUtil::stripRootDir($shareDir) . '/' . $file);

				if ($objFile->extension == 'xml' && !\in_array($objFile->filename, $arrFeeds))
				{
					$objFile->delete();
				}
			}
		}

		return $arrFeeds;
	}
public function purgeXmlFiles ( $ blnReturn = false ) { $ arrFeeds = array ( ) ; $ objDatabase = Database :: getInstance ( ) ; // XML sitemaps $ objFeeds = $ objDatabase -> execute ( "SELECT sitemapName FROM tl_page WHERE type='root' AND createSitemap=1 AND sitemapName!=''" ) ; while ( $ objFeeds -> next ( ) ) { $ arrFeeds [ ] = $ objFeeds -> sitemapName ; } // HOOK: preserve third party feeds if ( isset ( $ GLOBALS [ 'TL_HOOKS' ] [ 'removeOldFeeds' ] ) && \ is_array ( $ GLOBALS [ 'TL_HOOKS' ] [ 'removeOldFeeds' ] ) ) { foreach ( $ GLOBALS [ 'TL_HOOKS' ] [ 'removeOldFeeds' ] as $ callback ) { $ this -> import ( $ callback [ 0 ] ) ; $ arrFeeds = array_merge ( $ arrFeeds , $ this -> { $ callback [ 0 ] } -> { $ callback [ 1 ] } ( ) ) ; } } // Delete the old files if ( ! $ blnReturn ) { $ shareDir = System :: getContainer ( ) -> getParameter ( 'contao.web_dir' ) . '/share' ; foreach ( scan ( $ shareDir ) as $ file ) { if ( is_dir ( $ shareDir . '/' . $ file ) ) { continue ; // see #6652 } $ objFile = new File ( StringUtil :: stripRootDir ( $ shareDir ) . '/' . $ file ) ; if ( $ objFile -> extension == 'xml' && ! \ in_array ( $ objFile -> filename , $ arrFeeds ) ) { $ objFile -> delete ( ) ; } } } return $ arrFeeds ; }
Remove old XML files from the share directory

@param boolean $blnReturn If true, only return the finds and don't delete

@return array An array of old XML files
Remove old XML files from the share directory