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: | + | 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 searched 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 | + | Instead, we add a new parameter <tt>allow_user_value</tt> to a latest_tool mode's configuration. When <tt>allow_user_value</tt> is set to "true" in the filter definition the value of the CGI parameter <tt>value</tt> will be searched for in the metadata fields that are defined in the archive configuration. |
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: |
Revision as of 14:11, 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 searched 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 allow_user_value is set to "true" in the filter definition the value of the CGI parameter value will be searched for in the metadata fields that are defined in the archive configuration.
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