rfe #618: Syndicated Content Asset: Make images in the downloaded RSS-feeds available in the template.
This commit is contained in:
parent
af15289cc0
commit
c8098e2ca6
7 changed files with 32 additions and 3 deletions
|
|
@ -3,6 +3,8 @@
|
||||||
- fixed #12065: "Data error" in AssetManager if URL is Cyrillic
|
- fixed #12065: "Data error" in AssetManager if URL is Cyrillic
|
||||||
- fixed #12075: Underground Style - Search does not search
|
- fixed #12075: Underground Style - Search does not search
|
||||||
- fixed #12084: Greenportal links are sometimes white on white
|
- fixed #12084: Greenportal links are sometimes white on white
|
||||||
|
- rfe #618: Syndicated Content Asset: Make images in the downloaded
|
||||||
|
RSS-feeds available in the template.
|
||||||
|
|
||||||
7.10.12
|
7.10.12
|
||||||
- fixed #12072: Product, related and accessory assets
|
- fixed #12072: Product, related and accessory assets
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,10 @@ upgrading from one version to the next, or even between multiple
|
||||||
versions. Be sure to heed the warnings contained herein as they will
|
versions. Be sure to heed the warnings contained herein as they will
|
||||||
save you many hours of grief.
|
save you many hours of grief.
|
||||||
|
|
||||||
|
7.10.13
|
||||||
|
--------------------------------------------------------------------
|
||||||
|
* WebGUI now depends on XML::FeedPP::MediaRSS.
|
||||||
|
|
||||||
7.10.12
|
7.10.12
|
||||||
--------------------------------------------------------------------
|
--------------------------------------------------------------------
|
||||||
* The Dashboard has been extended to include Asset Dashlets. This gives
|
* The Dashboard has been extended to include Asset Dashlets. This gives
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ use Class::C3;
|
||||||
use base qw(WebGUI::AssetAspect::RssFeed WebGUI::Asset::Wobject);
|
use base qw(WebGUI::AssetAspect::RssFeed WebGUI::Asset::Wobject);
|
||||||
use WebGUI::Macro;
|
use WebGUI::Macro;
|
||||||
use XML::FeedPP;
|
use XML::FeedPP;
|
||||||
|
use XML::FeedPP::MediaRSS;
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
|
|
@ -279,6 +279,7 @@ A reference to an XML::FeedPP object.
|
||||||
|
|
||||||
sub getTemplateVariables {
|
sub getTemplateVariables {
|
||||||
my ($self, $feed) = @_;
|
my ($self, $feed) = @_;
|
||||||
|
my $media = XML::FeedPP::MediaRSS->new($feed);
|
||||||
my @items = $feed->get_item;
|
my @items = $feed->get_item;
|
||||||
my %var;
|
my %var;
|
||||||
$var{channel_title} = WebGUI::HTML::filter(scalar $feed->title, 'javascript');
|
$var{channel_title} = WebGUI::HTML::filter(scalar $feed->title, 'javascript');
|
||||||
|
|
@ -295,6 +296,7 @@ sub getTemplateVariables {
|
||||||
$var{channel_image_height} = WebGUI::HTML::filter($image[5], 'javascript');
|
$var{channel_image_height} = WebGUI::HTML::filter($image[5], 'javascript');
|
||||||
foreach my $object (@items) {
|
foreach my $object (@items) {
|
||||||
my %item;
|
my %item;
|
||||||
|
$item{media} = [ $media->for_item($object) ];
|
||||||
$item{title} = WebGUI::HTML::filter(scalar $object->title, 'javascript');
|
$item{title} = WebGUI::HTML::filter(scalar $object->title, 'javascript');
|
||||||
$item{date} = WebGUI::HTML::filter(scalar $object->get_pubDate_epoch, 'javascript');
|
$item{date} = WebGUI::HTML::filter(scalar $object->get_pubDate_epoch, 'javascript');
|
||||||
$item{category} = WebGUI::HTML::filter(scalar $object->category, 'javascript');
|
$item{category} = WebGUI::HTML::filter(scalar $object->category, 'javascript');
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ our $HELP = {
|
||||||
{ 'name' => 'category' },
|
{ 'name' => 'category' },
|
||||||
{ 'name' => 'author' },
|
{ 'name' => 'author' },
|
||||||
{ 'name' => 'guid' },
|
{ 'name' => 'guid' },
|
||||||
|
{ 'name' => 'media' },
|
||||||
{ 'name' => 'description' },
|
{ 'name' => 'description' },
|
||||||
{ 'name' => 'descriptionFirst100words' },
|
{ 'name' => 'descriptionFirst100words' },
|
||||||
{ 'name' => 'descriptionFirst75words' },
|
{ 'name' => 'descriptionFirst75words' },
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,11 @@ our $I18N = {
|
||||||
lastUpdated => 0,
|
lastUpdated => 0,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
'media' => {
|
||||||
|
message => q|Any MediaRSS entries for this item: structure is directly copied from <a href="http://search.cpan.org/perldoc?XML::FeedPP::MediaRSS#KEYS" >XML::FeedPP::MediaRSS</a>|,
|
||||||
|
lastUpdated => 1301495766,
|
||||||
|
},
|
||||||
|
|
||||||
'channel_description' => {
|
'channel_description' => {
|
||||||
message => q|A description of the content available through this channel. This variable will be populated by the first feed in a multi-feed list.|,
|
message => q|A description of the content available through this channel. This variable will be populated by the first feed in a multi-feed list.|,
|
||||||
lastUpdated => 0,
|
lastUpdated => 0,
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,7 @@ checkModule("HTML::Template", 2.9 );
|
||||||
checkModule("HTML::Template::Expr", 0.07, 2 );
|
checkModule("HTML::Template::Expr", 0.07, 2 );
|
||||||
checkModule("Template", 2.20, 2 );
|
checkModule("Template", 2.20, 2 );
|
||||||
checkModule("XML::FeedPP", 0.40 );
|
checkModule("XML::FeedPP", 0.40 );
|
||||||
|
checkModule("XML::FeedPP::MediaRSS", 0.02 );
|
||||||
checkModule("JSON", 2.12 );
|
checkModule("JSON", 2.12 );
|
||||||
checkModule("Config::JSON", "1.3.1" );
|
checkModule("Config::JSON", "1.3.1" );
|
||||||
checkModule("Text::CSV_XS", "0.64" );
|
checkModule("Text::CSV_XS", "0.64" );
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ use Data::Dumper;
|
||||||
|
|
||||||
use WebGUI::Test;
|
use WebGUI::Test;
|
||||||
use WebGUI::Session;
|
use WebGUI::Session;
|
||||||
use Test::More tests => 29; # increment this value for each test you create
|
use Test::More tests => 30; # increment this value for each test you create
|
||||||
use Test::Deep;
|
use Test::Deep;
|
||||||
use WebGUI::Asset::Wobject::SyndicatedContent;
|
use WebGUI::Asset::Wobject::SyndicatedContent;
|
||||||
use XML::FeedPP;
|
use XML::FeedPP;
|
||||||
|
|
@ -144,7 +144,7 @@ ok( defined $vars->{item_loop}->[0]->{description}, 'getTemplateVariables: descr
|
||||||
##Construct a feed with a wrapped description, to check for paragraph handling.
|
##Construct a feed with a wrapped description, to check for paragraph handling.
|
||||||
$feed = XML::FeedPP->new(<<EOFEED);
|
$feed = XML::FeedPP->new(<<EOFEED);
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<rss version="2.0">
|
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss">
|
||||||
<channel>
|
<channel>
|
||||||
<title>The WebGUI buglist</title>
|
<title>The WebGUI buglist</title>
|
||||||
<link>/tbb</link>
|
<link>/tbb</link>
|
||||||
|
|
@ -165,6 +165,11 @@ character, creating invalid markup.</p>
|
||||||
<p>No more text is shown of the first paragraph beyond the bold characters of the first line.</p>
|
<p>No more text is shown of the first paragraph beyond the bold characters of the first line.</p>
|
||||||
<p>Third paragraph, for completeness.</p>
|
<p>Third paragraph, for completeness.</p>
|
||||||
</description>
|
</description>
|
||||||
|
<media:content
|
||||||
|
url="http://www.plainblack.com/wg_btn.jpg"
|
||||||
|
filesize="1415"
|
||||||
|
type="image/jpeg"
|
||||||
|
medium="image" />
|
||||||
</item>
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
</rss>
|
</rss>
|
||||||
|
|
@ -185,6 +190,15 @@ is $vars->{item_loop}->[0]->{descriptionFirstSentence},
|
||||||
Rich Text editor in the first sentence of the description.",
|
Rich Text editor in the first sentence of the description.",
|
||||||
'... first sentence, with HTML stripped';
|
'... first sentence, with HTML stripped';
|
||||||
|
|
||||||
|
is_deeply $vars->{item_loop}->[0]->{media}, [
|
||||||
|
{
|
||||||
|
url => 'http://www.plainblack.com/wg_btn.jpg',
|
||||||
|
type => 'image/jpeg',
|
||||||
|
medium => 'image',
|
||||||
|
filesize => 1415,
|
||||||
|
}
|
||||||
|
], 'MediaRSS';
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
#
|
#
|
||||||
# generateFeed, hasTerms
|
# generateFeed, hasTerms
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue