Difference between revisions of "Customizing RSS Output"
| Line 1: | Line 1: | ||
| − | How to customize RSS output to show an institution's or person's last n publications: | + | How to customize RSS output to show an institution's or person's last ''n'' publications. |
| + | |||
| + | RSS output is generated by <tt>/opt/eprints2/cgi/<b>latest_tool</b></tt> (URL: *<nowiki>http://<base_url>/perl/latest_tool</nowiki>). In the default configuration <tt>latest_tool</tt> will generate output for fixed searches (filters) only. These filters define both metadata fields and values in the archive configuration. One would have to add a filter to the archive configuration for every person or institution that would like its own RSS feed. | ||
| + | |||
| + | Instead, we add a new parameter <tt>allow_user_value</tt> to a latest tool mode's configuration. When set to "true" a CGI parameter <tt>value</tt> will be searched for in the metadata fields defined in the filter definition. | ||
1. Edit <tt>/opt/eprints2/archives/<archive_id>/cfg/<b>ArchiveConfig.pm</b></tt>'s "Latest_tool Configuration" section to read: | 1. Edit <tt>/opt/eprints2/archives/<archive_id>/cfg/<b>ArchiveConfig.pm</b></tt>'s "Latest_tool Configuration" section to read: | ||
| Line 22: | Line 26: | ||
} | } | ||
}; | }; | ||
| + | |||
2. Alter <tt>/opt/eprints2/cgi/<b>latest_tool</b></tt> (starting from line 45) to read: | 2. Alter <tt>/opt/eprints2/cgi/<b>latest_tool</b></tt> (starting from line 45) to read: | ||
Revision as of 14:06, 7 August 2006
How to customize RSS output to show an institution's or person's last n publications.
RSS output is generated by /opt/eprints2/cgi/latest_tool (URL: *http://<base_url>/perl/latest_tool). In the default configuration latest_tool will generate output for fixed searches (filters) only. These filters define both metadata fields and values in the archive configuration. One would have to add a filter to the archive configuration for every person or institution that would like its own RSS feed.
Instead, we add a new parameter allow_user_value to a latest tool mode's configuration. When set to "true" a CGI parameter value will be searched for in the metadata fields defined in the filter definition.
1. Edit /opt/eprints2/archives/<archive_id>/cfg/ArchiveConfig.pm's "Latest_tool Configuration" section to read:
$c->{latest_tool_modes} = {
default => { citation => "neat" },
person => {
citation => "neat",
filters => [
{ meta_fields => [ "creators.id", "editors.id" ], value => "" }
],
allow_user_value => 1,
max => 10
},
institution => {
citation => "neat",
filters => [
{ meta_fields => [ "institutions" ], value => "" }
],
allow_user_value => 1,
max => 20
}
};
2. Alter /opt/eprints2/cgi/latest_tool (starting from line 45) to read:
if( defined $conf )
{
my $allow_user_value = 0;
foreach my $key (keys %{$conf} )
{
$citation = $conf->{"citation"} if( $key eq "citation" );
$filters = $conf->{"filters"} if( $key eq "filters" );
$allow_user_value = $conf->{"allow_user_value"} if( $key eq "allow_user_value" );
$max = $conf->{"max"} if( $key eq "max" );
}
if ( $allow_user_value ) {
my $value = $session->param( "value" );
if ( defined $value ) {
@$filters[0]->{"value"} = $value;
}
}
$class.= "_".$mode;
}
...
3. Restart Apache.
Your customized RSS feeds will be located at
- http://<base_url>/perl/latest_tool?mode=person&value=<person_id>&output=rss
- http://<base_url>/perl/latest_tool?mode=institution&value=<institution_id>&output=rss