kotmonstr/yii2-sitemap

Yii2 站点地图扩展

安装次数: 35

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

公开问题: 0

类型:yii2-extension

dev-master 2018-12-24 13:01 UTC

This package is auto-updated.

Last update: 2024-09-25 08:15:20 UTC


README

安装

安装此扩展的首选方式是通过 composer

运行以下命令之一

php composer.phar require --prefer-dist mrssoft/yii2-sitemap "dev-master"

或将

"kotmonstr/yii2-sitemap": "dev-master"

添加到 composer.json 文件的 require 部分中。

使用方法

创建控制器 SitemapController.php

<?php
namespace app\controllers;

use \kotmonstr\sitemap\Sitemap;

class SitemapController extends \mrssoft\sitemap\SitemapController
{
    /**
     * @var int Cache duration, set null to disabled
     */
    protected $cacheDuration = 43200; // default 12 hour

    /**
     * @var string Cache filename
     */
    protected $cacheFilename = 'sitemap.xml';

    public function models()
    {
        return [
            [
                'class' => \app\models\Page::className(),
                'change' => Sitemap::MONTHLY,
                'priority' => 0.8
            ]
        ];
    }

    public function urls()
    {
        return [
            [
                'url' => 'about/index',
                'change' => Sitemap::MONTHLY,
                'priority' => 0.8
            ]
        ];
    }
}

\mrssoft\sitemap\SitemapInterface 添加到模型接口中

<?php
namespace app\models;

class Page extends \yii\db\ActiveRecord implements \mrssoft\sitemap\SitemapInterface
{
    ...
    
    /**
     * @return \yii\db\ActiveQuery
     */        
    public static function sitemap()
    {
        return self::find()->where('public=1');
    }

    /**
     * @return string
     */
    public function getSitemapUrl()
    {
        return  \yii\helpers\Url::toRoute(['page/view', 'url' => $this->url], true);
    }    
}

添加到配置 URL 规则。

'components' => [
    'urlManager' => [
        'rules' => [
            ...
            [
                'pattern' => 'sitemap', 
                'route' => 'sitemap/index', 
                'suffix' => '.xml'
            ],
            ...
        ]
    ],