Changeset 769
- Timestamp:
- 04/20/06 10:42:05 (3 years ago)
- Location:
- trunk
- Files:
-
- 6 modified
-
Build.PL (modified) (1 diff)
-
Changes (modified) (1 diff)
-
PREREQUISITES (modified) (1 diff)
-
lib/OpenGuides.pm (modified) (3 diffs)
-
lib/OpenGuides/Feed.pm (modified) (7 diffs)
-
wiki.cgi (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Build.PL
r753 r769 221 221 'CGI::Wiki' => '0.62', # fixed delete version 222 222 'CGI::Wiki::Formatter::UseMod' => '0.16', # macros 223 'CGI::Wiki::Plugin::Atom' => 0,224 223 'CGI::Wiki::Plugin::Categoriser' => 0, 225 224 'CGI::Wiki::Plugin::Diff' => '0.08', # earlier buggy -
trunk/Changes
r765 r769 5 5 #42 New "About" screen. Try action=about and action=about;format=rdf. 6 6 #97 Use "summary" metadata to generate HTML meta descriptions. 7 Support for Atom feeds for RecentChanges; new OpenGuides::Feed 8 module to handle feed generation (code was previously in 9 OpenGuides::RDF). 7 New OpenGuides::Feed module to handle feed generation (code was 8 previously in OpenGuides::RDF). 10 9 Generate URIs for locales and contributors in RDF output. 11 10 -
trunk/PREREQUISITES
r753 r769 9 9 CGI::Wiki (version 0.62 or later) 10 10 CGI::Wiki::Formatter::UseMod (version 0.16 or later) 11 CGI::Wiki::Plugin::Atom12 11 CGI::Wiki::Plugin::Categoriser 13 12 CGI::Wiki::Plugin::Diff (version 0.08 or later) -
trunk/lib/OpenGuides.pm
r765 r769 156 156 $tt_vars{"rss_".lc($type)."_url"} = 157 157 $config->script_name . "?action=rc;format=rss;" 158 . lc($type) . "=" . lc(CGI->escape($2));159 $tt_vars{"atom_".lc($type)."_url"} =160 $config->script_name . "?action=rc;format=atom;"161 158 . lc($type) . "=" . lc(CGI->escape($2)); 162 159 } … … 651 648 ); 652 649 653 # All edits bob has made to pub pages in the last week in Atom format654 $guide->display_feed(655 feed_type => 'atom',656 days => 7,657 username => "bob",658 category => "Pubs",659 );660 661 650 C<feed_type> is a mandatory parameter. Supported values at present are 662 "rss" and "atom".651 "rss". 663 652 664 653 As with other methods, the C<return_output> parameter can be used to … … 705 694 if ($feed_type eq 'rss') { 706 695 $output = "Content-Type: application/rdf+xml\n"; 707 } 708 elsif ($feed_type eq 'atom') { 709 $output = "Content-Type: application/atom+xml\n"; 710 } 711 else { 696 } else { 712 697 croak "Unknown feed type given: $feed_type"; 713 698 } -
trunk/lib/OpenGuides/Feed.pm
r753 r769 6 6 $VERSION = '0.01'; 7 7 8 use CGI::Wiki::Plugin::Atom;9 8 use CGI::Wiki::Plugin::RSS::ModWiki; 10 9 use Time::Piece; … … 64 63 my %known_types = ( 65 64 'rss' => 1, 66 'atom' => 1,67 65 ); 68 66 … … 73 71 return $self->rss_maker->recent_changes(%args); 74 72 } 75 elsif ($feed_type eq 'atom') {76 return $self->atom_maker->recent_changes(%args);77 }78 }79 80 sub atom_maker {81 my $self = shift;82 83 unless ($self->{atom_maker}) {84 $self->{atom_maker} = CGI::Wiki::Plugin::Atom->new(85 wiki => $self->{wiki},86 site_name => $self->{site_name},87 site_url => $self->{config}->script_url,88 site_description => $self->{site_description},89 make_node_url => $self->{make_node_url},90 recent_changes_link => $self->{config}->script_url . '?action=rc',91 atom_link => $self->{config}->script_url . '?action=rc&format=atom',92 software_name => 'OpenGuides',93 software_homepage => 'http://openguides.org/',94 software_version => $self->{og_version},95 );96 }97 98 $self->{atom_maker};99 73 } 100 74 … … 133 107 =head1 DESCRIPTION 134 108 135 Produces RSS 1.0 and Atom 1.0feeds for OpenGuides. Distributed and109 Produces RSS 1.0 feeds for OpenGuides. Distributed and 136 110 installed as part of the OpenGuides project, not intended for independent 137 111 installation. This documentation is probably only useful to OpenGuides … … 177 151 invoked this module with. 178 152 179 =item B<atom_maker>180 181 Returns a raw L<CGI::Wiki::Plugin::Atom> object created with the values you182 invoked this module with.183 184 153 =item B<make_feed> 185 154 … … 191 160 print $rdf_writer->make_feed( %args ); 192 161 193 # All the changes made by bob in the past week, ignoring minor edits, in Atom.194 $args{days} = 7;195 $args{ignore_minor_edits = 1;196 $args{filter_on_metadata} => { username => "bob" };197 198 print "Content-Type: application/atom+xml\n";199 print "Last-Modified: " . $feed->feed_timestamp( %args ) . "\n\n";200 print $feed->make_feed( %args );201 202 162 =item B<feed_timestamp> 203 163 … … 216 176 =over 4 217 177 218 =item * L<CGI::Wiki> , L<CGI::Wiki::Plugin::RSS::ModWiki> and L<CGI::Wiki::Plugin::Atom>178 =item * L<CGI::Wiki> and L<CGI::Wiki::Plugin::RSS::ModWiki> 219 179 220 180 =item * L<http://openguides.org/> -
trunk/wiki.cgi
r753 r769 111 111 croak "Unknown RSS feed type '$feed'"; 112 112 } 113 } elsif ($format && $format eq 'atom') {114 my %args = map { $_ => ( $q->param($_) || "" ) }115 qw( feed items days ignore_minor_edits username116 category locale );117 $args{feed_type} = 'atom';118 $guide->display_feed( %args );119 113 } else { 120 114 $guide->display_node( id => 'RecentChanges' );
