Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Entity/SitemapLog.php
<?php

namespace XF\Entity;

use
XF\Mvc\Entity\Entity;
use
XF\Mvc\Entity\Structure;

/**
 * COLUMNS
 * @property int $sitemap_id
 * @property bool $is_active
 * @property int $file_count
 * @property int $entry_count
 * @property bool $is_compressed
 * @property int $complete_date
 */
class SitemapLog extends Entity
{
    public function
getAbstractedSitemapFileName($fileNumber)
    {
       
/** @var \XF\Repository\SitemapLog $sitemapRepo */
       
$sitemapRepo = $this->repository('XF:SitemapLog');
        return
$sitemapRepo->getAbstractedSitemapFileName($this->sitemap_id, $fileNumber, $this->is_compressed);
    }

    protected function
_postSave()
    {
        if (
$this->isUpdate() && $this->is_active == false && $this->getPreviousValue('is_active') == true)
        {
           
$this->removeSitemapFiles();
        }
    }

    protected function
_postDelete()
    {
        if (
$this->is_active)
        {
           
$this->removeSitemapFiles();
        }
    }

    protected function
removeSitemapFiles()
    {
        for (
$i = 1; $i <= $this->file_count; $i++)
        {
            \
XF\Util\File::deleteFromAbstractedPath($this->getAbstractedSitemapFileName($i));
        }
    }

    public static function
getStructure(Structure $structure)
    {
       
$structure->table = 'xf_sitemap';
       
$structure->shortName = 'XF:SitemapLog';
       
$structure->primaryKey = 'sitemap_id';
       
$structure->columns = [
           
'sitemap_id' => ['type' => self::UINT, 'required' => true],
           
'is_active' => ['type' => self::BOOL, 'required' => true],
           
'file_count' => ['type' => self::UINT],
           
'entry_count' => ['type' => self::UINT],
           
'is_compressed' => ['type' => self::BOOL],
           
'complete_date' => ['type' => self::UINT, 'default' => \XF::$time]
        ];
       
$structure->getters = [];
       
$structure->relations = [];

        return
$structure;
    }
}