Contao\Automator::purgeXmlFiles PHP Method

purgeXmlFiles() public method

Remove old XML files from the share directory
public purgeXmlFiles ( boolean $blnReturn = false ) : array
$blnReturn boolean If true, only return the finds and don't delete
return array An array of old XML files
    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) {
            foreach (scan(TL_ROOT . '/web/share') as $file) {
                if (is_dir(TL_ROOT . '/web/share/' . $file)) {
                    continue;
                    // see #6652
                }
                $objFile = new \File('web/share/' . $file);
                if ($objFile->extension == 'xml' && !in_array($objFile->filename, $arrFeeds)) {
                    $objFile->delete();
                }
            }
        }
        return $arrFeeds;
    }