<?php
// SiteMapDBGenerator
// Данный скрипт поможет вам сгенерировать карту на автомате с учетом добавления последнего вашего контента
// Автор: Пиминов Никита (pimnik98)
// https://vk.com/piminov_remont

class SiteMapGenerator{
    public function __construct($DOMAIN){
        $this->domain   = $DOMAIN;
        $this->modify   = false;
        $this->priority = 0.80;
        $this->sitemap  = false;
    }
    
    /**
     * @param int $time
     * Преобразует из Unix Time в валидное значение
     */
     
    public function timeModify($time=false){
        return date("c",($time==false?time():$time));
    }
    
    /**
     * @param varchar $loc
     * @param int $modify
     * @param float $priority
     * Добавляет одну позицию в карту сайта
     */
     
    public function addItemMap($loc=false,$modify=false,$priority=false){
        $this->sitemap[] = [
                            'loc'       =>  $loc==false?$this->domain:$this->domain.$loc,
                            'lastmod'   =>  $modify==false?$this->timeModify(time()):$this->timeModify($modify),
                            'priority'  =>  $priority==false?$this->priority:$priority,
                        ];
    }
    
    /**
     * Генерирует карту сайта
     */
    
    public function ViewMap(){
        $xml = new SimpleXMLElement('<urlset></urlset>');
        
        $urlset = $xml;
        $urlset->addAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9');
        $urlset->addAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
        $urlset->addAttribute('xsi:schemaLocation', 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd');
        
        foreach ($this->sitemap as &$sitemap){
            $url = $urlset->addChild('url');
            $url->addChild('loc', $sitemap['loc']);
            $url->addChild('lastmod', $sitemap['lastmod']);
            $url->addChild('priority', $sitemap['priority']);
        }
        
        header('Content-type: text/xml');
        print($xml->asXML());
        exit();
    }
}

?>