Вход Регистрация
Файл: app/core/classes/Index.php
Строк: 70
<?php

/**
 * A class for generating Sitemap index (http://www.sitemaps.org/)
 *
 */
class Index {

    
/**
     * @var XMLWriter
     */
    
private $writer;

    
/**
     * @var string index file path
     */
    
private $filePath;

    
/**
     * @param string $filePath index file path
     */
    
public function __construct($filePath) {
        
$this->filePath $filePath;
    }

    
/**
     * Creates new file
     */
    
private function createNewFile() {
        
$this->writer = new XMLWriter();
        
$this->writer->openMemory();
        
$this->writer->startDocument('1.0''UTF-8');
        
$this->writer->setIndent(true);
        
$this->writer->startElement('sitemapindex');
        
$this->writer->writeAttribute('xmlns''http://www.sitemaps.org/schemas/sitemap/0.9');
    }

    
/**
     * Adds sitemap link to the index file
     *
     * @param string $location URL of the sitemap
     * @param integer $lastModified unix timestamp of sitemap modification time
     * @throws InvalidArgumentException
     */
    
public function addSitemap($location$lastModified null) {
        if (
false === filter_var($locationFILTER_VALIDATE_URL)) {
            throw new 
InvalidArgumentException(
            
"The location must be a valid URL. You have specified: {$location}."
            
);
        }

        if (
$this->writer === null) {
            
$this->createNewFile();
        }

        
$this->writer->startElement('sitemap');
        
$this->writer->writeElement('loc'$location);

        if (
$lastModified !== null) {
            
$this->writer->writeElement('lastmod'date('c'$lastModified));
        }
        
$this->writer->endElement();
    }

    
/**
     * @return string index file path
     */
    
public function getFilePath() {
        return 
$this->filePath;
    }

    
/**
     * Finishes writing
     */
    
public function write() {
        if (
$this->writer instanceof XMLWriter) {
            
$this->writer->endElement();
            
$this->writer->endDocument();
            
file_put_contents($this->getFilePath(), $this->writer->flush());
        }
    }

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