himiklab/yii2-rss-writer-module

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

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