himiklab/yii2-sitemap-module

This package is abandoned and no longer maintained. No replacement package was suggested.

Yii2 module for automatically generation XML Sitemap

Maintainers

👁 himiklab

Package info

github.com/himiklab/yii2-sitemap-module

Type:yii2-extension

pkg:composer/himiklab/yii2-sitemap-module

Statistics

Installs: 197 070

Dependents: 6

Suggesters: 0

Stars: 91

Open Issues: 3

1.2.1 2019-02-11 07:32 UTC

Requires

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT e680cb50049102c47342d27f497f77d8c0e447b3

xmlmoduleSitemapyii2

This package is auto-updated.

Last update: 2022-01-12 15:40:21 UTC


README

Yii2 module for automatically generating XML Sitemap.

👁 Packagist
👁 Packagist
👁 license

Installation

The preferred way to install this extension is through composer.

  • Either run
php composer.phar require --prefer-dist "himiklab/yii2-sitemap-module" "*"

or add

"himiklab/yii2-sitemap-module" : "*"

to the require section of your application's composer.json file.

  • Configure the cache component of your application's configuration file, for example:
'components' => [
 'cache' => [
 'class' => 'yii\caching\FileCache',
 ],
]
  • Add use himiklab\sitemap\behaviors\SitemapBehavior; to the beginning of configuration file

  • Add a new module in modules section of your application's configuration file, for example:

'modules' => [
 'sitemap' => [
 'class' => 'himiklab\sitemap\Sitemap',
 'models' => [
 // your models
 'app\modules\news\models\News',
 // or configuration for creating a behavior
 [
 'class' => 'app\modules\news\models\News',
 'behaviors' => [
 'sitemap' => [
 'class' => SitemapBehavior::className(),
 'scope' => function ($model) {
 /** @var \yii\db\ActiveQuery $model */
 $model->select(['url', 'lastmod']);
 $model->andWhere(['is_deleted' => 0]);
 },
 'dataClosure' => function ($model) {
 /** @var self $model */
 return [
 'loc' => Url::to($model->url, true),
 'lastmod' => strtotime($model->lastmod),
 'changefreq' => SitemapBehavior::CHANGEFREQ_DAILY,
 'priority' => 0.8,
 'xhtml:link' => [
 [
 'hreflang' => 'en',
 'href' => Url::to(['url_en'], true),
 ],
 [
 'hreflang' => 'de',
 'href' => Url::to(['url_de'], true),
 ],
 //...
 ],
 ];
 }
 ],
 ],
 ],
 ],
 ],
 'urls'=> [
 // your additional urls
 [
 'loc' => '/news/index',
 'changefreq' => SitemapBehavior::CHANGEFREQ_DAILY,
 'priority' => 0.8,
 'news' => [
 'publication' => [
 'name' => 'Example Blog',
 'language' => 'en',
 ],
 'access' => 'Subscription',
 'genres' => 'Blog, UserGenerated',
 'publication_date' => 'YYYY-MM-DDThh:mm:ssTZD',
 'title' => 'Example Title',
 'keywords' => 'example, keywords, comma-separated',
 'stock_tickers' => 'NASDAQ:A, NASDAQ:B',
 ],
 'images' => [
 [
 'loc' => 'http://example.com/image.jpg',
 'caption' => 'This is an example of a caption of an image',
 'geo_location' => 'City, State',
 'title' => 'Example image',
 'license' => 'http://example.com/license',
 ],
 ],
 ],
 ],
 'enableGzip' => true, // default is false
 'cacheExpire' => 1, // 1 second. Default is 24 hours
 ],
],
  • Add behavior in the AR models, for example:
use himiklab\sitemap\behaviors\SitemapBehavior;

public function behaviors()
{
 return [
 'sitemap' => [
 'class' => SitemapBehavior::className(),
 'scope' => function ($model) {
 /** @var \yii\db\ActiveQuery $model */
 $model->select(['url', 'lastmod']);
 $model->andWhere(['is_deleted' => 0]);
 },
 'dataClosure' => function ($model) {
 /** @var self $model */
 return [
 'loc' => Url::to($model->url, true),
 'lastmod' => strtotime($model->lastmod),
 'changefreq' => SitemapBehavior::CHANGEFREQ_DAILY,
 'priority' => 0.8
 ];
 }
 ],
 ];
}
  • Add a new rule for urlManager of your application's configuration file, for example:
'urlManager' => [
 'rules' => [
 ['pattern' => 'sitemap', 'route' => 'sitemap/default/index', 'suffix' => '.xml'],
 ],
],

Resources