entidi / feedreader
A new page type that can access the data of an external feed
Installs: 131
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 3
Forks: 3
Type:silverstripe-vendormodule
Requires
- guzzlehttp/guzzle: ^6.3
- silverstripe/framework: ^4.0
Requires (Dev)
- phpunit/phpunit: ^5.7
- silverstripe/cms: ^4.0
- squizlabs/php_codesniffer: ^3.0
Suggests
- entidi/silverstrap: A theme compatible with the default page template
README
The silverstripe-feedreader module
implements a new page type (FeedReaderPage) that can access the data
contained in an external RSS 2.0 or ATOM 1.0 feed. The feed format is
automatically deduced from its content, that is if the //channel/item
XPath expression resolves to a non-emtpy
list it is considered an RSS2 feed, otherwise it is considered ATOM1,
and the //feed/entry
expression will be used instead.
The main developement is done in dev
: that is merged into master
when
stable enough. When this happens, an appropriate 2.*
release is tagged.
dev
and master
branches, together with any 2.*
release, are compatibles
with SilverStripe 4. For SilverStripe 3 you should take a look at the ss3
branch and 1.*
releases.
Installation
With composer:
composer require entidi/feedreader
Without composer, download the tarball and unpack it under the base directory. This method is not really tested, so it can be possible you will need to tweak something.
Usage
The default template (templates/eNTiDi/FeedReader/Layout/FeedReaderPage.ss
)
is compatible with silverstrap ^4.0
but it can be easily overriden by redefining the FeedReaderPage.ss
file in
your own theme with higher priority.
To provide access to the latest news, you can define a function similar to the following:
public function LatestNews()
{
$news = DataObject::get_one('eNTiDi\FeedReader\FeedReaderPage');
return $news ? $news->Items(1)->first() : null;
}
Then you can enhance your feed page with a template snippet, e.g.:
<% with $LatestNews %>
<h2>Latest news</h2>
<section>
<p>$Date.Date: $Summary.XML</p>
<a href="$Link.ATT">More ...</a>
</section>
<% end_with %>
Support
This project has been developed by ntd. Its home page is shared by other SilverStripe modules and themes.
To check out the code, report issues or propose enhancements, go to the dedicated tracker. Alternatively, you can do the same things by leveraging the official github repository.