Наследование: extends yupe\models\YModel
Пример #1
0
 public function actionCreatePage()
 {
     if ($data = Yii::app()->getRequest()->getPost('SitemapPage')) {
         $model = new SitemapPage();
         $model->setAttributes($data);
         $model->save();
     }
     $this->redirect(['settings']);
 }
 public function testShowInMenusRespected()
 {
     $sitemap = new SitemapPage();
     $homePage = $this->objFromFixture('SiteTree', 'home');
     $this->assertContains($homePage->Link(), HTTP::getLinksIn($sitemap->getSitemap()), 'The page is displayed by default.');
     $homePage->ShowInMenus = false;
     $homePage->write();
     $this->assertNotContains($homePage->Link(), HTTP::getLinksIn($sitemap->getSitemap()), 'The page is displayed by default.');
 }
Пример #3
0
 /**
  * Creates a default {@link SitemapPage} object if one does not currently exist.
  */
 public function requireDefaultRecords()
 {
     if (!($sitemap = DataObject::get_one('SitemapPage'))) {
         $sitemap = new SitemapPage();
         $sitemap->Title = _t('SitemapPage.SITEMAP', 'Sitemap');
         $sitemap->Content = sprintf('<p>%s</p>', _t('SitemapPage.DEFAULTCONTENT', 'This page displays a sitemap of the pages in your site.'));
         $sitemap->write();
         $sitemap->doPublish();
         if (method_exists('DB', 'alteration_message')) {
             DB::alteration_message('Created default Sitemap page.', 'created');
         } else {
             Database::alteration_message('Created default Sitemap page.', 'created');
         }
     }
     parent::requireDefaultRecords();
 }
Пример #4
0
 /**
  *
  */
 public function actionIndex()
 {
     $module = Yii::app()->getModule('sitemap');
     $sitemapFile = $module->getSiteMapPath();
     if (!file_exists($sitemapFile)) {
         $staticPages = SitemapPage::model()->getData();
         $this->generator->generate($sitemapFile, $staticPages);
     }
     $this->redirect(['/sitemap/sitemap/index'], 301);
 }
Пример #5
0
 public function actionIndex()
 {
     if (!($numberParts = Yii::app()->getCache()->get($this->cacheKeyNumberParts))) {
         if (!Yii::app()->getCache()->get($this->cacheKeyLock)) {
             Yii::app()->getCache()->set($this->cacheKeyLock, true, 90);
             set_time_limit(120);
             $urls = [];
             $cacheTime = $this->getModule()->cacheTime * 3600 + 1;
             $modules = (require_once Yii::getPathOfAlias('sitemap.config') . DIRECTORY_SEPARATOR . 'modules.php');
             foreach ($modules as $name => $moduleModels) {
                 $module = Yii::app()->getModule($name);
                 if (null != $module && $module->getIsInstalled()) {
                     foreach ($moduleModels as $options) {
                         $dataProvider = $options['getDataProvider']();
                         $iterator = new CDataProviderIterator($dataProvider, 100);
                         foreach ($iterator as $model) {
                             $urls[] = $this->getUrlRow($options['getUrl']($model), $options['changeFreq'], $options['priority'], $options['getLastMod']($model));
                         }
                     }
                 }
             }
             $host = Yii::app()->getRequest()->hostInfo;
             $pagesDataProvider = new CActiveDataProvider(SitemapPage::model()->active(), []);
             $pagesIterator = new CDataProviderIterator($pagesDataProvider, 100);
             foreach ($pagesIterator as $page) {
                 $urls[] = $this->getUrlRow($host . '/' . ltrim(str_replace($host, '', $page->url), '/'), $page->changefreq, $page->priority);
             }
             $parts = array_chunk($urls, $this->maxLinksCount);
             foreach ($parts as $key => $part) {
                 $xml = join("", $part);
                 Yii::app()->getCache()->set($this->cacheKeyPart . $key, $xml, $cacheTime);
             }
             $numberParts = count($parts);
             Yii::app()->getCache()->set($this->cacheKeyNumberParts, $numberParts, $cacheTime);
             Yii::app()->getCache()->delete($this->cacheKeyLock);
         }
     }
     header("Content-type: text/xml");
     echo $this->getXmlHead();
     if ($numberParts == 1) {
         echo $this->getUrlSetFromCache(0);
     } else {
         echo $this->getSitemapIndex($numberParts);
     }
     Yii::app()->end();
 }
Пример #6
0
<?php

/**
 * @package MediaWiki
 * @addtopackage maintenance
 *
 * @author Krzysztof Krzyżaniak <*****@*****.**>
 */
ini_set("include_path", dirname(__FILE__) . "/../../../maintenance/");
require_once "commandLine.inc";
$sitemap = new SitemapPage();
$namespaces = $sitemap->getNamespacesList();
wfOut("Caching {$wgDBname} ({$wgCityId}) for {$sitemap->mCacheTime} sec.\n");
/*
 * DPL causes some problems while parsing wiki text ( Video description )
 * so let's unset DPL parser hooks for maintenance script
 */
$key = array_search("ExtDynamicPageList::setupDPL", $wgHooks['ParserFirstCallInit']);
if ($key > 0) {
    unset($wgHooks['ParserFirstCallInit'][$key]);
}
$indexes = array();
foreach ($namespaces as $namespace) {
    echo "Caching namespace {$namespace}...";
    $indexes[$namespace] = $sitemap->cachePages($namespace);
    echo " pages " . count($indexes[$namespace]);
    echo " done\n";
    $includeVideo = (bool) F::app()->wg->EnableVideoSitemaps;
    if ($includeVideo && $namespace != NS_FILE) {
        $includeVideo = false;
    }
Пример #7
0
 /**
  * @return array
  */
 public function getData()
 {
     $provider = new CActiveDataProvider(SitemapPage::model()->active());
     $data = [];
     foreach (new CDataProviderIterator($provider) as $page) {
         $data[] = ['location' => $page->url === '/' ? Yii::app()->getBaseUrl(true) : Yii::app()->getBaseUrl(true) . '/' . $page->url, 'changeFrequency' => $page->changefreq, 'priority' => $page->priority, 'lastModified' => null];
     }
     return $data;
 }