Difference between revisions of "Customizing RSS Output"

From EPrints Documentation
Jump to: navigation, search
m
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.
 +
 +
This is valid for EPrints 2 only! in EPrints 3 RSS feeds are available for any search anyway.
  
 
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.
 
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.

Revision as of 10:56, 6 December 2007

How to customize RSS output to show an institution's or person's last n publications.

This is valid for EPrints 2 only! in EPrints 3 RSS feeds are available for any search anyway.

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