Ejemplo n.º 1
0
 public function actionSitemap()
 {
     if (Yii::$app->request->isPost) {
         $sitemap = new Sitemap(Yii::getAlias('@webroot/sitemap.xml'));
         $sitemap->addItem(Url::to(['/main/default/index'], true), time(), Sitemap::WEEKLY, 1);
         $sitemap->addItem(Url::to(['/main/contact/index'], true), time(), Sitemap::MONTHLY, 1);
         $pages = Page::findAll(['status' => 1]);
         foreach ($pages as $page) {
             $sitemap->addItem(Url::to(['/page/node/view', 'slug' => $page->slug], true), $page->updated_at, Sitemap::MONTHLY, 1);
         }
         $posts = Post::findAll(['status' => 1]);
         foreach ($posts as $post) {
             $sitemap->addItem(Url::to(['/post/node/view', 'slug' => $post->slug], true), $post->updated_at, Sitemap::NEVER, 0.8);
         }
         $sitemap->write();
         Yii::$app->session->setFlash('success', "Файл sitemap.xml успешно обновлен.");
         Yii::$app->request->referrer ? $this->redirect(Yii::$app->request->referrer) : $this->goHome();
     } else {
         throw new NotFoundHttpException('Страница не найдена');
     }
 }