himiklab / yii2-rss-writer-module
Yii2 module for automatically generation RSS 2.0 feeds
Installs: 662
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 3
Forks: 7
Type:yii2-extension
This package has no released version yet, and little information is available.
README
Yii2 module for automatically generation RSS 2.0 feeds.
Main features:
- automatic caching of rss feeds
- unlimited number of rss feeds
- flexible module configuration
Installation
The preferred way to install this extension is through composer.
- Either run
php composer.phar require --prefer-dist "himiklab/yii2-rss-writer-module" "*"
or add
"himiklab/yii2-rss-writer-module" : "*"
to the require section of your application's composer.json
file.
- Apply all available migrations in
migrations
folder:
$ php yii migrate/up --migrationPath=@vendor/himiklab/yii2-rss-writer-module/migrations
- Configure the
cache
component of your application's configuration file, for example:
'components' => [ 'cache' => [ 'class' => 'yii\caching\FileCache', ], ]
- Add a new module in
modules
section of your application's configuration file, for example:
'modules' => [ 'rss' => [ 'class' => 'himiklab\rss\Rss', 'feeds' => [ 'rss' => [ 'title' => 'Feed title', 'description' => 'feed description', 'link' => 'http://your.site.com/', 'language' => 'en-US' ], ] ], ],
- Add a new rule for
urlManager
of your application's configuration file, for example:
'urlManager' => [ 'rules' => [ ['pattern' => '<id:rss>', 'route' => 'rss/default/index', 'suffix' => '.xml'], ], ],
- Add a new
<link>
tag to your<head>
tag, for example:
<link rel="alternate" type="application/rss+xml" title="RSS feed" href="/rss.xml" />
Usage
For example:
... public function beforeSave($insert) { if (parent::beforeSave($insert)) { if ($insert) { $rss = Yii::$app->getModule('rss'); $rssItem = $rss->createNewItem(); $rssItem->title = $this->title; $rssItem->description = $this->description; $rssItem->link = Url::to($this->url, true); $rssItem->pubDate = time(); return $rss->addItemToFeed('rss', $rssItem); } return true; } return false; } public function afterDelete() { parent::afterDelete(); $rss = Yii::$app->getModule('rss'); $rss->deleteItems('rss', ['link' => Url::to($this->url, true)]); }