lan143 / yii2-rss
This extension adds support rss to your project
Installs: 78
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 1
Open Issues: 0
Type:yii2-extension
Requires
- php: >=7.1
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-06-09 03:34:31 UTC
README
Yii2 module for automatically generating RSS 2.0 feed.
Installation
The preferred way to install this extension is through composer.
- Either run
php composer.phar require "lan143/yii2_rss" "*"
or add
{ "require": { "lan143/yii2_rss": "*" } }
to the require
section of your application's composer.json
file and run composer update
.
Configuration
- Configure the
cache
component of your application's configuration file, for example:
'components' => [ 'cache' => [ 'class' => \yii\caching\FileCache::class, ], ]
- Add a new module in
modules
section of your application's configuration file, for example:
'modules' => [ 'rss' => [ 'class' => \lan143\yii2_rss\Rss::class, 'channels' => [ // one model per channel [ 'model' => \app\models\Records::class, ], // or configuration for creating a behavior [ 'title' => 'Liftoff News', // not required, default Application name 'link' => 'http://liftoff.msfc.nasa.gov/', // not required, default Url::home 'description' => 'Liftoff to Space Exploration.', // default empty 'language' => 'en-us', // not required, default Application language 'model' => [ 'class' => \app\models\Records::class, 'behaviors' => [ 'rss' => [ 'class' => \lan143\yii2_rss\RssBehavior::class, 'scope' => function (\yii\db\ActiveQuery $query) { $query->orderBy(['created_at' => SORT_DESC]); }, 'dataClosure' => function (\app\models\Records $model) { return [ 'title' => $model->title, 'link' => \yii\helpers\Url::to(['records/view', 'id' => $model->id], true), 'description' => $model->description, 'pubDate' => (new \DateTime($this->created_at))->format(\DateTime::RFC822), ]; } ], ], ], ], ], 'cacheExpire' => 1, // 1 second. Default is 15 minutes ], ],
- Add behavior in the AR models, for example:
use DateTime; use lan143\yii2_rss\RssBehavior; use yii\db\ActiveQuery; use yii\helpers\Url; public function behaviors(): array { return [ 'rss' => [ 'class' => RssBehavior::class, 'scope' => function (ActiveQuery $query) { $query->orderBy(['created_at' => SORT_DESC]); }, 'dataClosure' => function (self $model) { return [ 'title' => $model->title, 'link' => Url::to(['records/view', 'id' => $model->id], true), 'description' => $model->description, 'pubDate' => (new DateTime($this->created_at))->format(DateTime::RFC822), ]; } ], ]; }
- Add a new rule for
urlManager
of your application's configuration file, for example:
'urlManager' => [ 'rules' => [ ['pattern' => 'rss', 'route' => 'rss/rss/index', 'suffix' => '.xml'], ], ],