Dynamic template.pl
EPrints 3 Reference: Directory Structure - Metadata Fields - Repository Configuration - XML Config Files - XML Export Format - EPrints data structure - Core API - Data Objects
dynamic_template.pl is superseded by template_core.pl but is linked into this through template_legacy.pl, so can still be used if so wanted.
This file contains the enabling (i.e. $c->{dynamic_template}->{enable} = 1;
) and the option to define a function for the dynamic template. This allow parts of the template (i.e. pins) to be defined on-the-fly.
$c->{dynamic_template}->{function} = sub { my( $repository, $parts ) = @_; $parts->{mypin} = $repository->xml->create_text_node( "Hello, World!" ); };
The above example sets the pin mypin to the text string Hello, World!. This can then be included in the archive's template (e.g. cfg/lane/en/templates/default.xml) with the markup:
<epc:pin ref="mypin"/>
As well as the dynamic template function there is configuration to define the order that the main options in EPrints' key_tools:
$c->{plugins}->{"Screen::Login"}->{appears}->{key_tools} = 100; $c->{plugins}->{"Screen::Register"}->{actions}->{register}->{appears}->{key_tools} = 150; $c->{plugins}->{"Screen::Logout"}->{appears}->{key_tools} = 10000; $c->{plugins}->{"Screen::Admin::Config::Edit::XPage"}->{actions}->{edit}->{appears}->{key_tools} = 1250; $c->{plugins}->{"Screen::Admin::Phrases"}->{actions}->{edit}->{appears}->{key_tools} = 1350; $c->{plugins}->{"Screen::OtherTools"}->{appears}->{key_tools} = 20000;