Вход Регистрация
Файл: system/controllers/sitemap/hooks/cron_generate.php
Строк: 60
<?php

class onSitemapCronGenerate extends cmsAction {

    public function 
run(){

        
// автоматическое получение опций через $this->options здесь не
        // работает, потому что форма опций не содержит полей, они заполняются
        // динамически в админке
        
$options $this->loadOptions($this->name);

        if (!
$options) { return false; }

        
$sources_list $options['sources'];

        if (!
$sources_list) { return false; }

        
$config cmsConfig::getInstance();

        
$sources = array();
        
$sitemaps = array();

        foreach(
$sources_list as $item=>$is_enabled){
            if (!
$is_enabled) { continue; }
            list(
$controller_name$source) = explode('|'$item);
            
$sources[$controller_name][] = $source;
        }

        foreach(
$sources as $controller_name => $items){

            
$urls = array();

            
$controller cmsCore::getController($controller_name);

            foreach(
$items as $item){

                
$urls $controller->runHook('sitemap_urls', array($item));
                
                if (!
$urls) { continue; }

                
$xml cmsTemplate::getInstance()->renderInternal($this'sitemap', array(
                    
'urls' => $urls
                
));

                
$sitemap_file "sitemap_{$controller_name}_{$item}.xml";

                
file_put_contents($config->root_path "cache/static/sitemaps/{$sitemap_file}"$xml);

                
$sitemaps[] = $sitemap_file;

            }

        }

        
$xml cmsTemplate::getInstance()->renderInternal($this'sitemap_index', array(
            
'sitemaps' => $sitemaps,
            
'host' => $config->host
        
));

        
file_put_contents(cmsConfig::get('root_path') . 'cache/static/sitemaps/sitemap.xml'$xml);

        return 
true;

    }

}
Онлайн: 0
Реклама