Yii 2.0: yii2-rss-writer-module

RSS generator module for Yii2
4 followers

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.

  • 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)]);
}

Resources

Be the first person to leave a comment

Please to leave your comment.

Create extension
Downloads
No downloadable files yet