Bitrix-D7  20.0.0
Класс SitemapRuntime
Граф наследования:SitemapRuntime:
SitemapFile File FileEntry IFileStream FileSystemEntry

Открытые члены

 __construct ($PID, $fileName, $arSettings)
 
 putSitemapContent (SitemapFile $sitemapFile)
 
 setOriginalFile (SitemapFile $sitemapFile)
 
 appendIBlockEntry ($url, $modifiedDate)
 Overwrite parent method to creating temp-files and correctly work with multipart Appends new IBlock entry to the existing finished sitemap. Подробнее...
 
 finish ()
 Rename runtime file to original name. Подробнее...
 
- Открытые члены унаследованные от SitemapFile
 __construct ($fileName, $settings)
 
 addHeader ()
 Adds header to the current sitemap file. Подробнее...
 
 addEntry ($entry)
 Adds new entry to the current sitemap file. Подробнее...
 
 split ()
 Creates next sitemap file part. Подробнее...
 
 getNameList ()
 Returns list of file parts. Подробнее...
 
 getPathDirectory ()
 Divide path to directory and filemname. Подробнее...
 
 isNotEmpty ()
 Returns if the whole sitemap is empty (not only current part). Подробнее...
 
 isCurrentPartNotEmpty ()
 Returns if current sitemap part contains something besides header. Подробнее...
 
 appendEntry ($entry)
 Appends new entry to the existing and finished sitemap file. Подробнее...
 
 removeEntry ($url)
 Searches and removes entry to the existing and finished sitemap file. Подробнее...
 
 addFileEntry (File $f)
 Adds new file entry to the current sitemap. Подробнее...
 
 addIBlockEntry ($url, $modifiedDate)
 Adds new IBlock entry to the current sitemap. Подробнее...
 
 addFooter ()
 Adds footer to the current sitemap part. Подробнее...
 
 getSiteRoot ()
 Returns sitemap site root. Подробнее...
 
 getUrl ()
 Returns sitemap file URL. Подробнее...
 
 parse ()
 Parses sitemap file. Подробнее...
 
- Открытые члены унаследованные от File
 open ($mode)
 Opens the file and returns the file pointer. Подробнее...
 
 close ()
 Closes the file. Подробнее...
 
 isExists ()
 
 getContents ()
 
 putContents ($data, $flags=self::REWRITE)
 
 getSize ()
 Returns the file size. Подробнее...
 
 seek ($position)
 Seeks on the file pointer from the beginning (SEEK_SET only). Подробнее...
 
 isWritable ()
 
 isReadable ()
 
 readFile ()
 
 getCreationTime ()
 
 getLastAccessTime ()
 
 getModificationTime ()
 
 markWritable ()
 
 getPermissions ()
 
 delete ()
 
 getContentType ()
 
- Открытые члены унаследованные от FileEntry
 getExtension ()
 
 putContents ($data)
 
 getFileSize ()
 
 isDirectory ()
 
 isFile ()
 
 isLink ()
 
- Открытые члены унаследованные от FileSystemEntry
 isSystem ()
 
 getName ()
 
 getDirectoryName ()
 
 getPath ()
 
 getDirectory ()
 
 getPhysicalPath ()
 
 rename ($newPath)
 

Открытые статические члены

static showProgress ($text, $title, $v)
 
- Открытые статические члены унаследованные от File
static isFileExists ($path)
 
static getFileContents ($path)
 
static putFileContents ($path, $data, $flags=self::REWRITE)
 
static deleteFile ($path)
 

Поля данных

const PROGRESS_WIDTH = 500
 
- Поля данных унаследованные от SitemapFile
const XML_HEADER = '<?xml version="1.0" encoding="UTF-8"?>'
 
const FILE_HEADER = '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'
 
const FILE_FOOTER = '</urlset>'
 
const ENTRY_TPL = '<url><loc>%s</loc><lastmod>%s</lastmod></url>'
 
const ENTRY_TPL_SEARCH = '<url><loc>%s</loc>'
 
const XPATH_URL = '/urlset/url'
 
const MAX_SIZE = 5000000
 
const FILE_EXT = '.xml'
 
const FILE_PART_SUFFIX = '.part'
 
- Поля данных унаследованные от File
const REWRITE = 0
 
const APPEND = 1
 

Защищенные члены

 reInit ($fileName)
 Recreate file with same settings to new part. Подробнее...
 
 getPrefix ()
 
- Защищенные члены унаследованные от SitemapFile
 prepareFileName ($fileName)
 
 isSplitNeeded ()
 Checks is it needed to create new part of sitemap file. Подробнее...
 
 getFileUrl (File $f)
 Returns file relative path for URL. Подробнее...
 

Защищенные данные

 $PID = 0
 
- Защищенные данные унаследованные от SitemapFile
 $documentRoot
 
 $settings = array()
 
 $parser = false
 
 $siteRoot = ''
 
 $partFile = ''
 
 $partList = array()
 
 $part = 0
 
 $partChanged = false
 
 $footerClosed = false
 
 $urlToSearch = ''
 
 $urlFound = false
 
- Защищенные данные унаследованные от File
 $filePointer
 
- Защищенные данные унаследованные от FileSystemEntry
 $path
 
 $originalPath
 
 $pathPhysical
 
 $siteId
 

Дополнительные унаследованные члены

- Защищенные статические члены унаследованные от FileSystemEntry
static getDocumentRoot ($siteId)
 

Подробное описание

См. определение в файле sitemapruntime.php строка 107

Конструктор(ы)

◆ __construct()

__construct (   $PID,
  $fileName,
  $arSettings 
)

См. определение в файле sitemapruntime.php строка 115

116  {
117  $this->PID = $PID;
118 
119  if ($this->partFile == '')
120  {
121  $this->partFile = $fileName;
122  }
123 
124 // normalize slashes
125  $fileName = Path::normalize($fileName);
126 // divide directory and path tp correctly add prefix
127  $lastSlashPosition = strrpos($fileName, "/");
128  $fileDirectory = '';
129  if ($lastSlashPosition !== false)
130  {
131  $fileDirectory = substr($fileName, 0, $lastSlashPosition + 1);
132  $fileName = substr($fileName, $lastSlashPosition + 1);
133  }
134 
135  parent::__construct($fileDirectory . $this->getPrefix() . $fileName, $arSettings);
136  }

Методы

◆ appendIBlockEntry()

appendIBlockEntry (   $url,
  $modifiedDate 
)

Overwrite parent method to creating temp-files and correctly work with multipart Appends new IBlock entry to the existing finished sitemap.

Аргументы
string$urlIBlock entry URL.
string$modifiedDateIBlock entry modify timestamp.
Возвращает
void

Переопределяет метод предка SitemapFile.

См. определение в файле sitemapruntime.php строка 182

183  {
184 // if not set original file - to use as common sitemap file
185  if(!$this->originalFile)
186  {
187  parent::appendIBlockEntry($url, $modifiedDate);
188  return;
189  }
190 
191  if ($this->originalFile->isExists())
192  {
193 // move sitemapfile to end, find name of last part
194  while ($this->originalFile->isSplitNeeded())
195  {
196  $filename = $this->originalFile->split();
197  }
198 
199 // if part was changed - create new runtime part file
200  if (isset($filename) && $filename)
201  $this->reInit($filename);
202 
203  $this->putSitemapContent($this->originalFile);
204  $this->appendEntry(array(
205  'XML_LOC' => $this->settings['PROTOCOL'] . '://' . \CBXPunycode::toASCII($this->settings['DOMAIN'], $e = NULL) . $url,
206  'XML_LASTMOD' => date('c', $modifiedDate - \CTimeZone::getOffset()),
207  ));
208  }
209  else
210  {
211  $this->addHeader();
212  $this->addIBlockEntry($url, $modifiedDate);
213  $this->addFooter();
214  }
215  }

◆ finish()

finish ( )

Rename runtime file to original name.

If runtime have part - rename them all

См. определение в файле sitemapruntime.php строка 220

221  {
222  foreach ($this->partList as $key => $partName)
223  {
224  $f = new File(Path::combine($this->getDirectoryName(), $partName));
225  $f->rename(str_replace($this->getPrefix(), '', $f->getPath()));
226  $this->partList[$key] = $f->getName();
227  }
228 
229  if ($this->isCurrentPartNotEmpty())
230  {
231  if (!$this->footerClosed)
232  $this->addFooter();
233  $this->rename(str_replace($this->getPrefix(), '', $this->getPath()));
234  }
235  }

◆ getPrefix()

getPrefix ( )
protected

См. определение в файле sitemapruntime.php строка 237

238  {
239  return '~' . $this->PID;
240  }

◆ putSitemapContent()

putSitemapContent ( SitemapFile  $sitemapFile)

См. определение в файле sitemapruntime.php строка 148

149  {
150 // always write in new empty file - this is necessary
151  if ($this->isExists())
152  $this->delete();
153 
154  if ($sitemapFile->isExists())
155  {
156  $this->putContents($sitemapFile->getContents());
157  $this->partChanged = true;
158  $this->footerClosed = true;
159  }
160  else
161  {
162  $this->addHeader();
163  }
164  }

◆ reInit()

reInit (   $fileName)
protected

Recreate file with same settings to new part.

Аргументы
string$fileName

Переопределяет метод предка SitemapFile.

См. определение в файле sitemapruntime.php строка 143

144  {
145  $this->__construct($this->PID, $fileName, $this->settings);
146  }

◆ setOriginalFile()

setOriginalFile ( SitemapFile  $sitemapFile)

См. определение в файле sitemapruntime.php строка 167

168  {
169  if (isset($sitemapFile))
170  $this->originalFile = $sitemapFile;
171  }

◆ showProgress()

static showProgress (   $text,
  $title,
  $v 
)
static

См. определение в файле sitemapruntime.php строка 242

243  {
244  $v = $v >= 0 ? $v : 0;
245 
246  if ($v < 100)
247  {
248  $msg = new \CAdminMessage(array(
249  "TYPE" => "PROGRESS",
250  "HTML" => true,
251  "MESSAGE" => $title,
252  "DETAILS" => "#PROGRESS_BAR#<div style=\"width: " . self::PROGRESS_WIDTH . "px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-top: 20px;\">" . Converter::getHtmlConverter()->encode($text) . "</div>",
253  "PROGRESS_TOTAL" => 100,
254  "PROGRESS_VALUE" => $v,
255  "PROGRESS_TEMPLATE" => '#PROGRESS_PERCENT#',
256  "PROGRESS_WIDTH" => self::PROGRESS_WIDTH,
257  ));
258  }
259  else
260  {
261  $msg = new \CAdminMessage(array(
262  "TYPE" => "OK",
263  "MESSAGE" => $title,
264  "DETAILS" => $text,
265  ));
266  }
267 
268  return $msg->show();
269  }

Поля

◆ $PID

$PID = 0
protected

См. определение в файле sitemapruntime.php строка 112

◆ PROGRESS_WIDTH

const PROGRESS_WIDTH = 500

См. определение в файле sitemapruntime.php строка 110


Объявления и описания членов класса находятся в файле:
Bitrix\Seo\SitemapRuntime\reInit
reInit($fileName)
Recreate file with same settings to new part.
Definition: sitemapruntime.php:143
Bitrix\Seo\SitemapFile\addHeader
addHeader()
Adds header to the current sitemap file.
Definition: sitemapfile.php:107
Bitrix\Seo\SitemapRuntime\__construct
__construct($PID, $fileName, $arSettings)
Definition: sitemapruntime.php:115
Bitrix\Main\IO\File\isExists
isExists()
Definition: main/lib/io/file.php:51
Bitrix\Main\IO\FileSystemEntry\rename
rename($newPath)
Definition: filesystementry.php:98
Bitrix\Main\IO\Path\normalize
static normalize($path)
Definition: main/lib/io/path.php:26
Bitrix\Main\IO\Path\combine
static combine()
Definition: main/lib/io/path.php:221
Bitrix\Seo\SitemapRuntime\getPrefix
getPrefix()
Definition: sitemapruntime.php:237
Bitrix\Seo\SitemapRuntime\putSitemapContent
putSitemapContent(SitemapFile $sitemapFile)
Definition: sitemapruntime.php:148
Bitrix\Seo\SitemapFile\isCurrentPartNotEmpty
isCurrentPartNotEmpty()
Returns if current sitemap part contains something besides header.
Definition: sitemapfile.php:225
Bitrix\Seo\SitemapFile\addFooter
addFooter()
Adds footer to the current sitemap part.
Definition: sitemapfile.php:397
Bitrix\Seo\SitemapFile\addIBlockEntry
addIBlockEntry($url, $modifiedDate)
Adds new IBlock entry to the current sitemap.
Definition: sitemapfile.php:359
Bitrix\Seo\SitemapRuntime\$PID
$PID
Definition: sitemapruntime.php:112
Bitrix\Seo\SitemapFile\appendEntry
appendEntry($entry)
Appends new entry to the existing and finished sitemap file.
Definition: sitemapfile.php:247
Bitrix\Sender\Connector\__construct
__construct(Base $connector)
Constructor.
Definition: resultview.php:40
Bitrix\Main\IO\File\putContents
putContents($data, $flags=self::REWRITE)
Definition: main/lib/io/file.php:65
Bitrix\Main\IO\FileSystemEntry\getPath
getPath()
Definition: filesystementry.php:66
Bitrix\Main\IO\FileSystemEntry\getDirectoryName
getDirectoryName()
Definition: filesystementry.php:61
Bitrix\Main\Text\Converter\getHtmlConverter
static getHtmlConverter()
Definition: main/lib/text/converter.php:13