Yii2 module for automatically generation RSS 2.0 feeds.
Main features:
The preferred way to install this extension is through composer.
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.
migrations
folder:$ php yii migrate/up --migrationPath=@vendor/himiklab/yii2-rss-writer-module/migrations
cache
component of your application's configuration file, for example:'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
]
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'
],
]
],
],
urlManager
of your application's configuration file, for example:'urlManager' => [
'rules' => [
['pattern' => '<id:rss>', 'route' => 'rss/default/index', 'suffix' => '.xml'],
],
],
<link>
tag to your <head>
tag, for example:<link rel="alternate" type="application/rss+xml" title="RSS feed" href="/rss.xml" />
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)]);
}
Comments