Difference between revisions of "Config Options by File"

From EPrints Documentation
Jump to: navigation, search
(misc.pl)
(No longer a work in progress)
 
(152 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
[[#0-9|0-9]] | [[#A|A]] | [[#B|B]] | [[#C|C]] | [[#D|D]] | [[#E|E]] | [[#F|F]] | [[#G|G]] | [[#H|H]] | [[#I|I]] | [[#J|J]] | [[#K|K]] | [[#L|L]] | [[#M|M]] | [[#N|N]] | [[#O|O]] | [[#P|P]] | [[#Q|Q]] | [[#R|R]] | [[#S|S]] | [[#T|T]] | [[#U|U]] | [[#V|V]] | [[#W|W]] | [[#X|X]] | [[#Y|Y]] | [[#Z|Z]]
 
[[#0-9|0-9]] | [[#A|A]] | [[#B|B]] | [[#C|C]] | [[#D|D]] | [[#E|E]] | [[#F|F]] | [[#G|G]] | [[#H|H]] | [[#I|I]] | [[#J|J]] | [[#K|K]] | [[#L|L]] | [[#M|M]] | [[#N|N]] | [[#O|O]] | [[#P|P]] | [[#Q|Q]] | [[#R|R]] | [[#S|S]] | [[#T|T]] | [[#U|U]] | [[#V|V]] | [[#W|W]] | [[#X|X]] | [[#Y|Y]] | [[#Z|Z]]
 
</div>
 
</div>
{{Work in Progress|Only some of the config files have full lists of settings with descriptions and other configuration files have yet to be added.}}
 
  
 
As well as options that exist in configuration files there are further [[Miscellaneous Config Options]].
 
As well as options that exist in configuration files there are further [[Miscellaneous Config Options]].
Line 10: Line 9:
 
== 0-9 ==
 
== 0-9 ==
  
=== 00_version.pl ===
+
=== [[00_flavour.pl]] ===
 +
* '''flavour''' - The flavour for the particular repository archive.  (e.g. <code>pub</code>, <code>zero</code>, etc.).  (Configuration generated on repository archive creation).
 +
 
 +
=== [[00_version.pl]] ===
 
* '''version_long''' - The long version name of EPrints (e.g. <code>EPrints 3.4.5</code>).
 
* '''version_long''' - The long version name of EPrints (e.g. <code>EPrints 3.4.5</code>).
 
* '''version_alias''' - The alias/codename for the core EPrints release version (e.g. <code>Smoothie Squall</code>).
 
* '''version_alias''' - The alias/codename for the core EPrints release version (e.g. <code>Smoothie Squall</code>).
Line 17: Line 19:
 
* '''version_description''' - A fully description of the EPrints software version using above version/vendor settings.
 
* '''version_description''' - A fully description of the EPrints software version using above version/vendor settings.
  
=== 10_core.pl ===
+
=== [[10_core.pl]] ===
* '''aliases''' - Other hostnames for the repository archive and whether they should redirect to the primary hostname.
+
* '''aliases''' - Other hostnames for the repository archive and whether they should redirect to the primary hostname. (Configuration generated on repository archive creation).
* '''host''' - The primary hostname of the repository archive on HTTP.
+
* '''host''' - The primary hostname of the repository archive on HTTP. (Configuration generated on repository archive creation).
* '''port''' - The TCP port number to connect to the repository archiver over HTTP.  (Typically <code>80</code>).
+
* '''port''' - The TCP port number to connect to the repository archiver over HTTP.  (Configuration generated on repository archive creation. Typically <code>80</code>).  
* '''securehost''' - The primary hostname of the repository archive on HTTPS.  Normally the same as '''host''', so typically can be a reference.
+
* '''securehost''' - The primary hostname of the repository archive on HTTPS.  Normally the same as <code>host</code>, so typically can be a reference. (Configuration initially generated on repository archive creation).
* '''secureport''' - The TCP port number to connect to the repository archiver over HTTPS.  (Typically <code>443</code>).
+
* '''secureport''' - The TCP port number to connect to the repository archive over HTTPS.  (Configuration generated on repository archive creation. Typically <code>443</code>).
* '''http_root''' - Where the repository archive will be hosted.  (Typically undefined).
+
* '''http_root''' - The base path where the repository archive URLs can be found.  (Typically undefined, so just <code><nowiki>https://eprints.example.org/...</nowiki></code> rather than <code><nowiki>https://eprints.example.org/eprints/...</nowiki></code>). (Configuration generated on repository archive creation).
  
=== 20_baseurls.pl ===
+
=== [[20_baseurls.pl]] ===
* '''base_url''' - URL including protocol and hostname, used as a basis whenever a full URL for a specific location needs to be generated.
+
* '''base_url''' - URL including protocol and hostname, used as a basis whenever a full URL for a specific location needs to be generated. (By default generated from other settings).
* '''perl_url''' - URL including protocol and hostname, used as a basis whenever a full URL for a specific CGI script needs to be generated.
+
* '''perl_url''' - URL including protocol and hostname, used as a basis whenever a full URL for a specific CGI script needs to be generated. (By default generated from other settings).
* '''use_long_url_format''' - Use long URLs for abstract pages / documents (e.g. <code>/id/eprint/1234</code> or <code>/id/eprint/1234/1/paper.pdf</code> rather than <code>/1234</code> or <code>/1234/1/paper.pdf</code>.  Will redirect from short to long URL rather than the long to short.  (Default is <code>0</code> to not use long URLs).
+
* '''use_long_url_format''' - Use long URLs for abstract pages / documents (e.g. <code>/id/eprint/1234</code> or <code>/id/eprint/1234/1/paper.pdf</code> rather than <code>/1234</code> or <code>/1234/1/paper.pdf</code>.  Will redirect from short to long URL rather than long to short.  (Default is <code>0</code>, do not use long URLs).
 +
* '''uri_url''' - Set the base URL for URIs for data objects (e.g. eprint items). If the EPrints was originally HTTP but has been [[Simplified HTTPS Configuration|reconfigured to be an HTTPS only]], then the URIs for eprints will also change to HTTPS.  This may be undesirable, as URIs may only serve their purpose if they match exactly.  This allows HTTP to be retained for URIs but they should still be able to redirect to HTTPS if used as URLs.  (By default this is commented out so URIs will just use <code>base_url</code>).
  
 
== A ==
 
== A ==
  
=== adminemail.pl ===
+
=== [[adminemail.pl]] ===
* '''adminemail''' - The email address for the administrator of the repository archive.  Will be displayed in contact page and default address email will be sent to and from.
+
* '''adminemail''' - The email address of the administrator of the repository archive.  Will be displayed on the <code>/contact.html</code> and <code>/information.html</code> pages and the default email address the repository archive will send email to and from.  (Configuration generated when repository archive is created).
* '''sendermail''' - Alternative email address to send email for the repository archive from.  Useful if restrictions on where email can be sent from for the domain of the adminemail address.  Will still set adminemail in reply-to.
+
* '''senderemail''' - Alternative email address from which to send email for the repository archive.  Useful if restrictions on where email can be sent from for the domain of the <code>adminemail</code> address.  Will still set <ocde>adminemail</code> as reply to email address.
  
 
== B ==
 
== B ==
  
=== branding.pl ===
+
=== [[branding.pl]] ===
 
* '''site_logo''' - Default logo to use for the site.  Probably only useful if using default template for EPrints.
 
* '''site_logo''' - Default logo to use for the site.  Probably only useful if using default template for EPrints.
  
=== build_attributes.pl ===
+
=== [[build_attributes.pl]] ===
 
* '''build_node_attributes''' - Defines function for manipulating attributes that can be called by <code>EPrints::XML::create_element</code>.
 
* '''build_node_attributes''' - Defines function for manipulating attributes that can be called by <code>EPrints::XML::create_element</code>.
  
 
== C ==
 
== C ==
  
=== citation_default.pl ===
+
=== [[citation_default.pl]] ===
 
* '''citation_default'''
 
* '''citation_default'''
 
** '''document'''
 
** '''document'''
Line 56: Line 59:
 
*** '''for_summary_page''' - The default eprint citation to use when rendering a eprint of an abstract/summary page.
 
*** '''for_summary_page''' - The default eprint citation to use when rendering a eprint of an abstract/summary page.
  
=== citationcaches.pl ===
+
=== [[citationcaches.pl]] ===
 
* '''datasets'''
 
* '''datasets'''
 
** '''citationcache''' - Defines dataset configuration for <code>EPrints::DataObj::CitationCache</code>.
 
** '''citationcache''' - Defines dataset configuration for <code>EPrints::DataObj::CitationCache</code>.
Line 64: Line 67:
 
** '''excluded_style''' - Citation styles that should not be cache because they are dynamic/context dependent. (Default <code>[ 'result' ]</code>).
 
** '''excluded_style''' - Citation styles that should not be cache because they are dynamic/context dependent. (Default <code>[ 'result' ]</code>).
  
=== csrf_protection.pl ===
+
=== [[csrf_protection.pl]] ===
 
* '''csrf_token_salt''' - A salt to ensure generated [https://owasp.org/www-community/attacks/csrf CSRF] tokens are not guessable.
 
* '''csrf_token_salt''' - A salt to ensure generated [https://owasp.org/www-community/attacks/csrf CSRF] tokens are not guessable.
  
 
== D ==
 
== D ==
  
=== database.pl ===
+
=== [[database.pl]] ===
* '''dbhost''' - The hostname or IP address where the database for the repository archive is hosted.  (Typically <code>localhost</code>).
+
* '''dbname''' - The name of the database where the repository archive is hosted. (Configuration generated on repository archive creation. Typically the same as the archive's ID).
* '''dbname''' - The name of the database where the repository archive is hosted. (Typically the same as the archive's ID).
+
* '''dbhost''' - The hostname or IP address where the database for the repository archive is hosted.  (Configuration generated on repository archive creation. Typically <code>localhost</code>).  
* '''dbpass''' - The password to connect to the database where the repository archive is hosted. (Typically automatically generated 16 character string).
+
* '''dbport''' - The TCP port over which the database for the repository archive can be accessed. (Configuration generated on repository archive creation. Typically <code>undef</code> as database client assume default port).
* '''dbuser''' - The username to connect to the database where the repository archive is hosted. (Often the same as the archive's ID).
+
* '''dbsock''' - The socket over which the database for the repository archive can be accessed. (Configuration generated on repository archive creation. Typically <code>undef</code>, as sockets are not used).
* '''dbengine''' - The database table engine to use when creating new tables in the database where the repository archive is hosted. (Default is <code>InnoDB</code>, previously has been <code>MyISAM</code>).
+
* '''dbuser''' - The username to connect to the database where the repository archive is hosted. (Configuration generated on repository archive creation. Often the same as the archive's ID).
 +
* '''dbpass''' - The password to connect to the database where the repository archive is hosted. (Configuration generated on repository archive creation. Typically automatically generated 16 character string).
 +
* '''dbengine''' - The database table engine to use when creating new tables in the database where the repository archive is hosted. (Configuration generated on repository archive creation. Default is <code>InnoDB</code>, previously has been <code>MyISAM</code>).
  
=== datasets.pl ===
+
=== [[datasets.pl]] ===
 
* '''datasets''' - Initialises hash reference (if not already) so other configuration files can add bespoke datasets.
 
* '''datasets''' - Initialises hash reference (if not already) so other configuration files can add bespoke datasets.
  
=== doc_rewrite.pl ===
+
=== [[doc_rewrite.pl]] ===
Adds an EP_TRIGGER_DOC_URL_REWRITE [[Triggers|trigger]] to handle relation-based document redirects.
+
Adds an [[Triggers#EP_TRIGGER_DOC_URL_REWRITE|<code>EP_TRIGGER_DOC_URL_REWRITE</code> trigger function]] to handle relation-based document redirects.
  
=== document_fields_automatic.pl ===
+
=== [[document_fields_automatic.pl]] ===
* '''set_document_automatic_fields''' - A function that updates specified fields for a document when its data object is committed.  By default no fields are updated.
+
* '''set_document_automatic_fields''' - Defines a function that updates specified fields for a document when its data object is committed.  (By default no fields are updated).
  
=== document_fields_default.pl ===
+
=== [[document_fields_default.pl]] ===
 
* '''set_document_defaults''' - A function that sets the initial values specified fields for a document when its data object is created.  (By default the <code>language</code> field is set to the default language for the repository and the <code>security</code> field is set to <code>public</code>).
 
* '''set_document_defaults''' - A function that sets the initial values specified fields for a document when its data object is created.  (By default the <code>language</code> field is set to the default language for the repository and the <code>security</code> field is set to <code>public</code>).
 
* '''eprint_details_document_fields''' - The document fields that should be displayed in the Upload section of Details tab of the eprint view page.  (Default: <code>[ "content", "format", "format_desc", "language", "security", "license", "date_embargo", "embargo_reason" ]</code>
 
* '''eprint_details_document_fields''' - The document fields that should be displayed in the Upload section of Details tab of the eprint view page.  (Default: <code>[ "content", "format", "format_desc", "language", "security", "license", "date_embargo", "embargo_reason" ]</code>
  
=== document_fields.pl ===
+
=== [[document_fields.pl]] ===
 
* '''fields'''
 
* '''fields'''
** ''-document''' - Extra fields to add to the document data object beyond those defined by <code>EPrints::DataObj::Document</code>.  (By default this configuration is commented out.  I.e. no new fields will be added).
+
** '''document''' - Extra fields to add to the document data object beyond those defined by <code>EPrints::DataObj::Document</code>.  (By default this configuration is commented out.  I.e. no new fields will be added).
  
=== document_upload.pl ===
+
=== [[document_upload.pl]] ===
* '''diskspace_error_threshold''' -
+
* '''diskspace_error_threshold''' - The minimum amount of space left on a disk before using the next disk available if present. (Default is <code>64 * 1024</code> kilobytes, i.e. 64 MiB).
* '''diskspace_warn_threshold''' -
+
* '''diskspace_warn_threshold''' - The minimum amount of space left on a disk before the administrator receives a warning email about disk space running low. (Default is <code>512 * 1024</code> kilobytes, i.e. 512 MiB).
* '''guess_doc_type''' -
+
* '''mimemap''' - Additional entries can be added to the <code>mimemap</code>.  (By default no additional entries are added).
* '''on_files_modified''' -
+
* '''archive_max_files''' - Maximum number of files in an archive (e.g. zip file) that can be expanded in individual documents for an eprint record.  (Commented out by default but core default is <code>100</code> files).
* '''required_formats''' -
 
  
=== document_validate.pl ===
+
=== [[document_validate.pl]] ===
* '''validate_document''' - A function that validates the metadata for a document data object.   
+
* '''validate_document''' - A function that validates the metadata for a document data object.  (<font style="color: red;">This option is partially deprecated.  Rather than adding extra validations, use a  [[Triggers#EP_TRIGGER_VALIDATE|<code>EP_TRIGGER_VALIDATE</code> dataset trigger function]] for the document dataset</font>).
  
 
The following validation tests are performed on a document data object:
 
The following validation tests are performed on a document data object:
Line 110: Line 114:
 
# If <code>security</code> is set to <code>public</code> then <code>date_embargo</code> cannot be in the future (and can only be in the past if <code>retain_embargo_dates</code> config option is set true).
 
# If <code>security</code> is set to <code>public</code> then <code>date_embargo</code> cannot be in the future (and can only be in the past if <code>retain_embargo_dates</code> config option is set true).
  
=== dynamic_template.pl ===
+
=== [[dynamic_template.pl]] ===
For more information see '''[[API:EPrints/Apache/Template#Dynamic_Pins|Dynamic Pins]]'''.
+
For more information see '''[[API:EPrints/Apache/Template#Dynamic_Pins|Dynamic Pins]]'''.  (<font style="color: red;">This option is partially deprecated.  Consider using a [[Triggers#EP_TRIGGER_DYNAMIC_TEMPLATE|<code>EP_TRIGGER_DYNAMIC_TEMPLATE</code>  trigger function]] instead</font>).
 
* '''dynamic_template'''  
 
* '''dynamic_template'''  
 
** '''enable''' - Enables dynamic template. (Default is <code>1</code>).
 
** '''enable''' - Enables dynamic template. (Default is <code>1</code>).
Line 138: Line 142:
 
** '''Screen::OtherTools'''
 
** '''Screen::OtherTools'''
 
*** '''appears'''
 
*** '''appears'''
**** '''key_tools''' - Where Other Tools page link should appear in the key tools menu bar.
+
**** '''key_tools''' - Where Other Tools page link should appear in the key tools menu bar.  (<code>Screen::OtherTools</code> plugin does not exist by default so will not appear in the key tools meny bar).
  
 
== E ==
 
== E ==
=== element_classes.pl ===
+
=== [[element_classes.pl]] ===
These can be useful if you are trying use an existing [[https://wiki.eprints.org/w/Branding_with_confidence|branding]] template. CSS, etc. for your institution.  
+
These can be useful if you are trying use an existing [[Branding_with_confidence|branding]] template, e.g. CSS, JavaScript, etc. for your institution.  
 
* '''eprint'''
 
* '''eprint'''
** '''summary_content_class''' - The classes that should be used for HTML div elements around the abstract/summary page.  Default is as follows:
+
** '''summary_content_class''' - The classes that should be used for HTML <code>&lt;div&gt;</code> elements around the abstract/summary page.  Default is as follows:
 
  {
 
  {
 
   ROOT => 'ep_summary_content',
 
   ROOT => 'ep_summary_content',
Line 157: Line 161:
 
* '''toolbar_class''' - The class that should be used for key tools menu bar.
 
* '''toolbar_class''' - The class that should be used for key tools menu bar.
  
=== email.pl ===
+
=== [[email.pl]] ===
* '''send_email''' - A function for send email from your EPrints repository.  (By defaults this calls <code>EPrints::Email::send_mail_via_smtp</code>, which will then use whatever hostname is set for <code>smtp_server</code> under <code>EPrints::SystemSettings</code>. if this is <code>localhost</code> or <code>127.0.0.1</code> you have set up an application on your server to relay email from the server, e.g. Sendmail or Postfix).
+
* '''send_email''' - Defines a function for sending email from your repository archive.  (By default this calls <code>EPrints::Email::send_mail_via_smtp</code>, which will then use whatever hostname is set for <code>smtp_server</code> under <code>EPrints::SystemSettings</code>. If this is <code>localhost</code> or <code>127.0.0.1</code>, you will have to set up an application on your server to relay this email. E.g. Sendmail, Postfix, etc.).
  
=== eprint_fields_automatic.pl ===
+
=== [[epm.pl]] ===
* '''set_eprint_automatic_fields''' - What fields to automatically update when an eprint data object record is committed.  (By default for the pub_lib flavour, <code>ispublished</code> is set to <code>pub</code> if <code>type</code> is <code>patent</code> and not yet set <code>ispublished</code> is set to <code>unpub</code> if <code>type</code> is <code>thesis</code>.  Also, <code>full_text_status</code> is set to <code>none</code> if there are no documents, <code>restricted</code> if any documents are restricted and <code>public</code> if all documents are unrestricted.  Default configuration for zero flavour does not set any eprint fields automatically).
+
* '''datasets'''
 +
** '''epm''' - Defines the dataset for Bazaar plugins / EPrints Package Manager (EPM) objects. I.e. <code>EPrints::DataObj::EPM</code>.
 +
*** '''sqlname''' - Name of EPM dataset when referred to in SQL statements.
 +
*** '''class''' - The package name of the class for data objects belonging to the EPM dataset.
 +
*** '''virtual''' - Whether the EPM dataset exists in the dataset. (By default <code>1</code> is not in the database. SHOULD NOT BE CHANGED).
 +
*** '''sources''' - Array reference of locations where EPMs can be installed from.  Each entry contains a <code>name</code> and <code>base_url</code>.  (By default one entry with <code>name</code> of <code>EPrints Bazaar</code> and <code>base_url</code> of <code>https://bazaar.eprints.org</code>).
 +
=== [[eprint_fields_automatic.pl]] ===
 +
* '''set_eprint_automatic_fields''' - What fields to automatically update when an eprint data object record is committed.  (By default for the pub_lib flavour, <code>ispublished</code> is set to <code>pub</code> if <code>type</code> is <code>patent</code>. If not already set,<code>ispublished</code> is set to <code>unpub</code> if <code>type</code> is <code>thesis</code>.  Also, <code>full_text_status</code> is set to <code>none</code> if there are no documents, <code>restricted</code> if any documents are restricted and <code>public</code> if all documents are unrestricted.  Default configuration for zero flavour does not set any eprint fields automatically).
  
=== eprint_fields_common.pl ===
+
=== [[eprint_fields_common.pl]] ===
 
* '''fields'''
 
* '''fields'''
 
** '''eprint''' - Adds <code>contact_email</code> field to the eprint data object.
 
** '''eprint''' - Adds <code>contact_email</code> field to the eprint data object.
  
=== eprint_fields_default.pl ===
+
=== [[eprint_fields_default.pl]] ===
 
* '''set_eprint_defaults''' - Sets default values for fields when eprint data object is created.  (By default pub_lib flavour sets <code>type</code> to <code>article</code>, for zero flavour its set it to <code>other</code>).
 
* '''set_eprint_defaults''' - Sets default values for fields when eprint data object is created.  (By default pub_lib flavour sets <code>type</code> to <code>article</code>, for zero flavour its set it to <code>other</code>).
  
=== eprint_fields.pl ===
+
=== [[eprint_fields.pl]] ===
 
* '''fields'''
 
* '''fields'''
 
** '''eprint''' - Adds extra fields to eprint data object.  (The following fields are added by default for the pub_lib and zero flavours).
 
** '''eprint''' - Adds extra fields to eprint data object.  (The following fields are added by default for the pub_lib and zero flavours).
Line 177: Line 188:
 
  '''zero''': title, subjects
 
  '''zero''': title, subjects
  
=== eprint_fields_pub.pl ===
+
=== [[eprint_fields_pub.pl]] ===
 
* '''fields'''
 
* '''fields'''
 
** '''eprint''' - Adds extra fields to eprint data object.  (The following fields are added by default for the pub_lib flavour: <code>full_text_status, monograph_type, pres_type, series, publication, volume, number, article_number, place_of_pub, pagerange, pages, event_title, event_location, event_dates, event_type, patent_applicant, institution, department, thesis_type, thesis_name, refereed, isbn, issn, book_title, edition, editors, related_url, referencetext, funders, projects, output_media, num_pieces, composition_type, pedagogic_type, completion_tome, task_purpose, skills_area, learning_level, gscholar</code>).
 
** '''eprint''' - Adds extra fields to eprint data object.  (The following fields are added by default for the pub_lib flavour: <code>full_text_status, monograph_type, pres_type, series, publication, volume, number, article_number, place_of_pub, pagerange, pages, event_title, event_location, event_dates, event_type, patent_applicant, institution, department, thesis_type, thesis_name, refereed, isbn, issn, book_title, edition, editors, related_url, referencetext, funders, projects, output_media, num_pieces, composition_type, pedagogic_type, completion_tome, task_purpose, skills_area, learning_level, gscholar</code>).
  
=== eprint_locking.pl ===
+
=== [[eprint_locking.pl]] ===
 
* '''locking'''
 
* '''locking'''
 
** ''' eprint'''  
 
** ''' eprint'''  
Line 187: Line 198:
 
*** '''timeout''' - Number of seconds before a lock is released if the current user does not complete or cancel editing. (Default <code>3600</code>, i.e. 1 hour).
 
*** '''timeout''' - Number of seconds before a lock is released if the current user does not complete or cancel editing. (Default <code>3600</code>, i.e. 1 hour).
  
=== eprint_render.pl ===
+
=== [[eprint_render.pl]] ===
 
* '''summary_page_metadata''' - eprint metadata fields to include in the summary table on abstract/summary pages.  (The following fields are added by default for the pub_lib and zero flavours).
 
* '''summary_page_metadata''' - eprint metadata fields to include in the summary table on abstract/summary pages.  (The following fields are added by default for the pub_lib and zero flavours).
 
  '''pub_lib''': commentary, note, keywords, subjects, divisions, sword_depositor, userid, datestamp, lastmod
 
  '''pub_lib''': commentary, note, keywords, subjects, divisions, sword_depositor, userid, datestamp, lastmod
Line 194: Line 205:
 
* '''eprint_render''' - Function that generates XHTML DOM objects for the page, title and links for the abstract/summary page.
 
* '''eprint_render''' - Function that generates XHTML DOM objects for the page, title and links for the abstract/summary page.
  
=== eprint_search_advanced.pl ===
+
=== [[eprint_search_advanced.pl]] ===
 
* '''search'''
 
* '''search'''
 
** '''advanced''' - The configuration for the advanced search for eprint data objects.
 
** '''advanced''' - The configuration for the advanced search for eprint data objects.
Line 207: Line 218:
 
*** '''show_zero_results''' - Whether to go to results page with no results or say on search form page. (Default: <code>1</code>, i.e. go to search results page).
 
*** '''show_zero_results''' - Whether to go to results page with no results or say on search form page. (Default: <code>1</code>, i.e. go to search results page).
  
=== eprint_search_simple.pl ===
+
=== [[eprint_search_simple.pl]] ===
 
* '''search'''
 
* '''search'''
 
** '''simple''' - The configuration for the simple search for eprint data objects.
 
** '''simple''' - The configuration for the simple search for eprint data objects.
Line 221: Line 232:
 
*** '''show_zero_results''' - Whether to go to results page with no results or say on search form page. (Default: <code>1</code>, i.e. go to search results page).
 
*** '''show_zero_results''' - Whether to go to results page with no results or say on search form page. (Default: <code>1</code>, i.e. go to search results page).
  
=== eprint_search_staff.pl ===
+
=== [[eprint_search_staff.pl]] ===
 
* '''datasets'''  
 
* '''datasets'''  
 
** '''eprint'''
 
** '''eprint'''
Line 236: Line 247:
 
**** '''staff''' - Whether search is only accessible to staff (Default <code>1</code>, i.e. only available to staff).
 
**** '''staff''' - Whether search is only accessible to staff (Default <code>1</code>, i.e. only available to staff).
  
=== eprint_validate.pl ===
+
=== [[eprint_validate.pl]] ===
* '''validate_eprint''' - Function that performs complex (i.e. containing multiple metadata fields) validation on eprint data objects and generate XHTML DOM objects describe any problems found.  (Function varies depending of flavour.  Zero function does no further validation.  pub_lib flavour checks at least one creator or editor is set).
+
* '''validate_eprint''' - Defines a function that performs complex (i.e. containing multiple metadata fields) validation on <code>eprint</code>  data objects and generate XHTML DOM objects describe any problems found.  (Function varies depending of flavour.  Zero function does no further validation.  pub_lib flavour checks at least one creator or editor is set).
 +
 
 +
=== [[eprint_warnings.pl]] ===
 +
* '''eprint_warnings''' - Defines a function that performs complex (i.e. containing multiple metadata fields) checks on <code>eprint</code> data objects and generate XHTML DOM objects describe warnings where metadata may not have been correctly completed. (Function varies depending of flavour. All flavours  warn if no documents have been uploaded. pub_lib flavour also warns if not <code>contact_email</code> has been set).
  
=== eprint_warnings.pl ===
+
=== [[executables.pl]] ===
* '''eprint_warnings''' - Function that performs complex (i.e. containing multiple metadata fields) checks on eprint data objects and generate XHTML DOM objects describe warnings where metadata may not have been correctly completed. (Function varies depending of flavour. All flavours warn if no documents have been uploaded. pub_lib flavour also warns if not <code>contact_email</code> has been set.
+
* '''disable_df''' - Whether to disable use of Unix <code>df</code> command to check free space of disk partitions and just use the one that comes last alphanumerically.  (By default <code>0</code>, i.e. do use <code>df</code>, unless already defined in <code>perl_lib/EPrints/SystemSettings.pm</code>).
 +
* '''executables''' - File paths to external applications or internal scripts used by EPrintsIncludes the following applications/scripts: <code>convert, tar, rm, dvips, gunzip, sendmail, unzip, html2text, cp, latex, perl, pdftotext, wget, antiword, ffmpeg, file, doc2txt, unoconv, txt2refs, ffprobe, cal, ncal</code>.
  
=== exports.pl ===
+
=== [[exports.pl]] ===
 
* '''export'''
 
* '''export'''
 
** '''publication_status_type_override''' - Allows certain export formats (BibTeX and RIS) to change the type of exported object if certain conditions are met. (e.g. <code>ispublished</code> is set to <code>unpub</code>.).  (Default is <code>1</code> types can be changed).
 
** '''publication_status_type_override''' - Allows certain export formats (BibTeX and RIS) to change the type of exported object if certain conditions are met. (e.g. <code>ispublished</code> is set to <code>unpub</code>.).  (Default is <code>1</code> types can be changed).
Line 248: Line 263:
 
== F ==
 
== F ==
  
=== field_property_defaults.pl ===
+
=== [[field_property_defaults.pl]] ===
 
* '''field_defaults'''  
 
* '''field_defaults'''  
 
** '''input_cols''' - The default number of <code>cols</code> (columns) in a <code>&lt;textarea&gt;</code> or <code>size</code> of <code>&lt;input&gt;</code> HTML form field.  (Default <code>60</code>).
 
** '''input_cols''' - The default number of <code>cols</code> (columns) in a <code>&lt;textarea&gt;</code> or <code>size</code> of <code>&lt;input&gt;</code> HTML form field.  (Default <code>60</code>).
** '''input_rows''' - The default number of <code>rows</code> in a <code>&lt;textarea&gt</code> HTML form field.  (Default <code>10</code>).
+
** '''input_rows''' - The default number of <code>rows</code> in a <code>&lt;textarea&gt;</code> HTML form field.  (Default <code>10</code>).
 
** '''input_name_cols''' - The default <code>size</code> of <code>&lt;input&gt;</code> HTML form field for various sub-fields of a <code>name</code> metadata field.
 
** '''input_name_cols''' - The default <code>size</code> of <code>&lt;input&gt;</code> HTML form field for various sub-fields of a <code>name</code> metadata field.
 
*** '''honourific''' -  The honourific sub-field. (Default is <code>8</code>).
 
*** '''honourific''' -  The honourific sub-field. (Default is <code>8</code>).
Line 260: Line 275:
 
** '''input_boxes''' - The initial number of rows for metadata field that allows multiple values. (Default is <code>3</code>).
 
** '''input_boxes''' - The initial number of rows for metadata field that allows multiple values. (Default is <code>3</code>).
 
** '''digits''' - The maximum number of digits that can be added for an <code>int</code> (integer) metadata field. (Default is <code>9</code>. Any higher might exceed the biggest number the database can store).
 
** '''digits''' - The maximum number of digits that can be added for an <code>int</code> (integer) metadata field. (Default is <code>9</code>. Any higher might exceed the biggest number the database can store).
** '''search_cols''' - The default number of <code>cols</code> (columns) in a <code>&lt;textarea&gt</code> or <code>size</code> of <code>&lt;input&gt;</code> HTML form field when part of a search form.  (Default <code>40</code>).
+
** '''search_cols''' - The default number of <code>cols</code> (columns) in a <code>&lt;textarea&gt;</code> or <code>size</code> of <code>&lt;input&gt;</code> HTML form field when part of a search form.  (Default <code>40</code>).
** '''search_rows''' - The default number of <code>rows</code> in a <code>&lt;textarea&gt</code> HTML form field when part of a search form. (Default <code>12</code>).
+
** '''search_rows''' - The default number of <code>rows</code> in a <code>&lt;textarea&gt;</code> HTML form field when part of a search form. (Default <code>12</code>).
 
** '''hide_honourific''' - Whether the <code>honourific</code> sub-field when rendering <code>name</code> metadata field in an HTML input form (Default <code>0</code>, do not hide).
 
** '''hide_honourific''' - Whether the <code>honourific</code> sub-field when rendering <code>name</code> metadata field in an HTML input form (Default <code>0</code>, do not hide).
 
** '''hide_lineage''' - Whether the <code>lineage</code> sub-field when rendering a <code>name</code> metadata field in an HTML input form (Default <code>1</code>, do hide).
 
** '''hide_lineage''' - Whether the <code>lineage</code> sub-field when rendering a <code>name</code> metadata field in an HTML input form (Default <code>1</code>, do hide).
** '''family_first''' - Whether the <code>family</code> name sub-field should appear before the <code>given</code> name sub-field in an HTML input form Default <code>0</code>, given name should come first).
+
** '''family_first''' - Whether the <code>family</code> name sub-field should appear before the <code>given</code> name sub-field in an HTML input form. (Default <code>0</code>, given name should come first).
  
=== field_validate.pl ===
+
=== [[field_validate.pl]] ===
* '''validate_field''' - Function that validates particular metadata fields.  Currently only used on user and eprint data objects.  Default validations include:
+
* '''validate_field''' - Function that validates particular metadata fields.  Currently only used on <code>user</code>  and <code>eprint</code>  data objects.  Default validations include:
*# [[url field|<code>url</code> fields]] starts with a protocol (e.g. <code>http:</code>, <code>https:</code> etc.). Checking
+
*# [[url field|<code>url</code> fields]] starts with a protocol (e.g. <code>http:</code>, <code>https:</code> etc.).
 
*# [[name field|<code>name</code> fields]] has a <code>family</code> and <code>given</code> name set.  
 
*# [[name field|<code>name</code> fields]] has a <code>family</code> and <code>given</code> name set.  
*# [[email field|<code>email</code> fields]] contains only one <code>@</code>, which is not at the start and end and no spaces.  
+
*# [[email field|<code>email</code> fields]] contains only one <code>@</code>, which is not at the start or end and also has no spaces.  
 
*# [[id field|<code>id</code> fields]] and sub-classes (e.g. <code>text</code>, <code>longtext</code> <code>url</code>, etc.) are no longer than the specified <code>maxlength</code> attribute for the field.  
 
*# [[id field|<code>id</code> fields]] and sub-classes (e.g. <code>text</code>, <code>longtext</code> <code>url</code>, etc.) are no longer than the specified <code>maxlength</code> attribute for the field.  
 
*# User's <code>username</code> field is not a duplicate.
 
*# User's <code>username</code> field is not a duplicate.
  
=== flavour_info.pl ===
+
=== [[flavour_info.pl]] ===
 
* '''flavour_id''' - The ID of the flavour. (E.g. <code>zero</code> or <code>pub</code>).
 
* '''flavour_id''' - The ID of the flavour. (E.g. <code>zero</code> or <code>pub</code>).
 
* '''flavour_name''' - The name of the flavour. (E.g. <code>Zero</code> or <code>Publication</code>).
 
* '''flavour_name''' - The name of the flavour. (E.g. <code>Zero</code> or <code>Publication</code>).
Line 284: Line 299:
 
== I ==
 
== I ==
  
=== indexing.pl ===
+
=== [[indexing.pl]] ===
 
* '''index''' - Should data objects in the repository archive be indexed.  (Default <code>1</code>, should be indexed).
 
* '''index''' - Should data objects in the repository archive be indexed.  (Default <code>1</code>, should be indexed).
 
* '''indexing'''
 
* '''indexing'''
** '''freetext_min_word_size''' - The minimum length of a word in freetext for it to be indexed for the freetext (Default is <code>3</code> characters).
+
** '''freetext_min_word_size''' - The minimum length of a word in freetext for it to be indexed. (Default is <code>3</code> characters).
 
** '''freetext_stop_words''' - Common words that will not be indexed from a freetext.  (E.g. <code>the</code>, , <code>and</code>, <code>are</code>, etc.).
 
** '''freetext_stop_words''' - Common words that will not be indexed from a freetext.  (E.g. <code>the</code>, , <code>and</code>, <code>are</code>, etc.).
** '''freetext_always_words''' - Words that do not meet other criteria but still should be indexed from freetext (e.g. <code>ok</code> because it is too short).
+
** '''freetext_always_words''' - Words that do not meet other criteria but still should be indexed from a freetext (e.g. <code>ok</code> because it is too short).
** '''freetext_separator_chars''' - Characters other that spaces that should be treated as a seperate of words.  (E.g. <code>@</code>, <code>&</code>, <code>_</code>, etc.)
+
** '''freetext_separator_chars''' - Characters other that spaces that should be treated as a separator of words.  (E.g. <code>@</code>, <code>&</code>, <code>_</code>, etc.)
* '''extract_words''' - Function that takes a text input and extracts and returns array references for good and bad words from the text.
+
* '''extract_words''' - Function that takes a text input and extracts and returns array references for good and bad words from the text input.
  
=== issues_search.pl ===
+
=== [[invocations.pl]] ===
 +
* '''invocation''' - Invocations (i.e. command lines) of external applications on internal scripts used by EPrints (as defined in [[executables.pl]]).  Includes the following invocations: <code>convert_crop_white, dvips, sendmail, html2text, latex, targz, antiwordpdf, pdftotext, zip, unzzip, cpall, wget, antiword, doc2txt, rmall, ffmpeg_i, ffmpeg_video_mp4, ffmpeg_video_ogg, ffmpeg_video_webm, ffmpeg_audio_mp4, ffmpeg_audio_off, ffmpeg_cell, unoconv, txt2refs, ffprobe, cal, ncal</code>.
 +
 
 +
=== [[issues_search.pl]] ===
 
* '''issues_search'''
 
* '''issues_search'''
** '''search_fields''' - Metadata fields (from eprint data object) to include in issues search (Default varies depending on flavour.  zero contains: <code>item_issues_type, item_issues_timestamp, userid.username, subjects, type</code>.  pub_lib also has <code>eprint_status, creators_name, date</code>.
+
** '''search_fields''' - Metadata fields (from <code>eprint</code>  data object) to include in issues search (Default varies depending on flavour.  zero contains: <code>item_issues_type, item_issues_timestamp, userid.username, subjects, type</code>.  pub_lib also has <code>eprint_status, creators_name, date</code>.
 
** '''preamble_phrase''' - The phrase at the top of the issues search form.  I.e. to explain how to use it. (Default: <code>search/issues:preamble</code>).
 
** '''preamble_phrase''' - The phrase at the top of the issues search form.  I.e. to explain how to use it. (Default: <code>search/issues:preamble</code>).
 
** '''title_phrase''' - The phrase to use for the page title of the issues search form. (Default: <code>cgi/issues:title</code>).
 
** '''title_phrase''' - The phrase to use for the page title of the issues search form. (Default: <code>cgi/issues:title</code>).
** '''citation''' - The eprint citation style to use for search results. (Default: <code>issue</code>).
+
** '''citation''' - The <code>eprint</code> citation style to use for search results. (Default: <code>issue</code>).
 
** '''page_size''' - How many results to display per page. (Default: <code>100</code>).
 
** '''page_size''' - How many results to display per page. (Default: <code>100</code>).
 
** '''staff''' - Whether search is only accessible to staff (Default <code>1</code>, i.e. only available to staff).
 
** '''staff''' - Whether search is only accessible to staff (Default <code>1</code>, i.e. only available to staff).
Line 309: Line 327:
 
== L ==
 
== L ==
  
=== languages.pl ===
+
=== [[languages.pl]] ===
 
* '''defaultlanguage''' - The default language for the repository archive as a ISO-639-1 two-character code. (Default is <code>en</code>, i.e. English).
 
* '''defaultlanguage''' - The default language for the repository archive as a ISO-639-1 two-character code. (Default is <code>en</code>, i.e. English).
 
* '''languages''' - The languages supported by the repository archive as ISO-639-1 two-character codes. (Default us <code>[ 'en' ]</code>, i.e. only English).
 
* '''languages''' - The languages supported by the repository archive as ISO-639-1 two-character codes. (Default us <code>[ 'en' ]</code>, i.e. only English).
  
=== latest_tool.pl ===
+
=== [[latest_tool.pl]] ===
 
* '''latest_tool_modes''' - The different modes supported by the "latest" tool.
 
* '''latest_tool_modes''' - The different modes supported by the "latest" tool.
 
** '''default''' - By default uses <code>result</code> citation.  Does not specify <code>max</code> so uses <code>/cgi/latest_tool</code> default of <code>20</code>.
 
** '''default''' - By default uses <code>result</code> citation.  Does not specify <code>max</code> so uses <code>/cgi/latest_tool</code> default of <code>20</code>.
Line 322: Line 340:
 
** '''RSS2''' - Enabled and with label <code>RSS 2.0</code> by default.
 
** '''RSS2''' - Enabled and with label <code>RSS 2.0</code> by default.
  
=== limit_names_shown.pl ===
+
=== [[limit_names_shown.pl]] ===
* '''limit_names_shown''' - Defines function to reduce the number of creators/editors names initially show in a citation.  See [[Limiting names shown]] for instructions on how to configure relevant fields to make use of this,
+
* '''limit_names_shown''' - Defines function to reduce the number of creators/editors names initially shown in a citation.  See [[Limiting names shown]] for instructions on how to configure relevant fields to make use of this.
  
=== log.pl ===
+
=== [[log.pl]] ===
 
* '''loghandler'''
 
* '''loghandler'''
 
** '''enable''' - Whether the log handler is enabled.  (By default <code>1</code>, the log handler is enabled).
 
** '''enable''' - Whether the log handler is enabled.  (By default <code>1</code>, the log handler is enabled).
Line 335: Line 353:
 
== M ==
 
== M ==
  
=== make_orderkey.pl ===
+
=== [[make_orderkey.pl]] ===
 
* '''make_orderkey_ignore_extras''' - Defines a generic function for order keys that removes any not alphanumeric characters (except underscore).
 
* '''make_orderkey_ignore_extras''' - Defines a generic function for order keys that removes any not alphanumeric characters (except underscore).
 
* '''make_name_orderkey''' - Defines a function for an order key that order based on <code>family</code> name, then <code>given</code> name and finally <code>honourific</code> of a <code>name</code> type metadata field.  (Uses <code>make_orderkey_ignore_extras</code> to remove non-alphanumeric characters).
 
* '''make_name_orderkey''' - Defines a function for an order key that order based on <code>family</code> name, then <code>given</code> name and finally <code>honourific</code> of a <code>name</code> type metadata field.  (Uses <code>make_orderkey_ignore_extras</code> to remove non-alphanumeric characters).
Line 341: Line 359:
 
* '''make_sanitised_value_orderkey''' - Defines a function to sanitise the value for an order key by just applying the generic <code>make_orderkey_ignore_extras</code> function.
 
* '''make_sanitised_value_orderkey''' - Defines a function to sanitise the value for an order key by just applying the generic <code>make_orderkey_ignore_extras</code> function.
  
=== media_info.pl ===
+
=== [[media_info.pl]] ===
 
* '''guess_doc_type''' - Defines a function that tries to determine the type of document (e.g. <code>text</code>, <code>image</code>, <code>audio</code>, <code>video</code>) by evaluating it MIME type or file extension.
 
* '''guess_doc_type''' - Defines a function that tries to determine the type of document (e.g. <code>text</code>, <code>image</code>, <code>audio</code>, <code>video</code>) by evaluating it MIME type or file extension.
Also contains four <code>EP_TRIGGER_MEDIA_INFO</code> trigger functions.
+
Also contains four [[Triggers#EP_TRIGGER_MEDIA_INFO|<code>EP_TRIGGER_MEDIA_INFO</code> trigger functions]].
 
# Tries to set the <code>mime_type</code> metadata field for the document, if it can be determined using GNU's <code>file</code>
 
# Tries to set the <code>mime_type</code> metadata field for the document, if it can be determined using GNU's <code>file</code>
 
# If an audio or video file tries to determine values for the following document metadata fields: <code>media_duration, media_audio_codec, media_video_codec, media_width, media_height, media_aspect_ratio</code>
 
# If an audio or video file tries to determine values for the following document metadata fields: <code>media_duration, media_audio_codec, media_video_codec, media_width, media_height, media_aspect_ratio</code>
Line 349: Line 367:
 
# Tries to set the <code>format</code> metadata field for the document using the <code>guess_doc_type</code> function.
 
# Tries to set the <code>format</code> metadata field for the document using the <code>guess_doc_type</code> function.
  
=== mime_types.pl ===
+
=== [[mime_types.pl]] ===
 
* '''mimemap''' - A hash reference mapping file extension to MIME type. Loaded from <code>EPRINTS_PATH/lib/mime.types</code>. Used by <code>guess_doc_type</code> configuration function and a <code>EP_TRIGGER_MEDIA_INFO</code> trigger function used to determine a document's <code>mime_type</code> metadata field value, if cannot otherwise be determined.
 
* '''mimemap''' - A hash reference mapping file extension to MIME type. Loaded from <code>EPRINTS_PATH/lib/mime.types</code>. Used by <code>guess_doc_type</code> configuration function and a <code>EP_TRIGGER_MEDIA_INFO</code> trigger function used to determine a document's <code>mime_type</code> metadata field value, if cannot otherwise be determined.
  
=== misc.pl ===
+
=== [[misc.pl]] ===
 
* '''use_mimetex''' - Use the <code>mimetex.cgi</code> script rather than <code>/cgi/latex2png</code> script for <code>EPrints::Latex::render_string</code>.  (Default is <code>0</code>, do not use mimetex.cgi as it is not present by default).
 
* '''use_mimetex''' - Use the <code>mimetex.cgi</code> script rather than <code>/cgi/latex2png</code> script for <code>EPrints::Latex::render_string</code>.  (Default is <code>0</code>, do not use mimetex.cgi as it is not present by default).
 
* '''cookie_auth''' - Whether to used cookie-based or basic authentication for maintaining user sessions.  (Default is <code>1</code> use cookie-based authentication as more modern/secure than basic authentication).
 
* '''cookie_auth''' - Whether to used cookie-based or basic authentication for maintaining user sessions.  (Default is <code>1</code> use cookie-based authentication as more modern/secure than basic authentication).
Line 364: Line 382:
 
* '''cache_max''' - Maximum number of persistent cache tables (of search results) that can exist in the repository archive's database.  If exceeded, oldest table is deleted. (By default <code>100</code>, i.e. 100 tables).
 
* '''cache_max''' - Maximum number of persistent cache tables (of search results) that can exist in the repository archive's database.  If exceeded, oldest table is deleted. (By default <code>100</code>, i.e. 100 tables).
  
Also commented out <code>EP_TRIGGER_LOCAL_SITEMAP_URLS</code> trigger function which can be used to add extra entries to the repository archive's sitemap file, if you are NOT using the <code>generate_sitemap</script> to generate the sitemap.
+
Also commented out[[Triggers#EP_TRIGGER_LOCAL_SITEMAP_URLS|<code>EP_TRIGGER_LOCAL_SITEMAP_URLS</code> trigger function]] which can be used to add extra entries to the repository archive's sitemap file, if you are NOT using the <code>generate_sitemap</code> script to generate the sitemap.
  
 
== N ==
 
== N ==
 
== O ==
 
== O ==
  
=== oai.pl ===
+
=== [[oai.pl]] ===
* '''oai''' -
+
* '''oai''' - Configuration for OAI-PMH.
 +
** '''v2'''
 +
** '''archive_id''' - The ID to use for this repository archive for OAI-PMH.  (By default commented out, so will use primary hostname of the repository archive, i.e. <code>$c->{host}</code> otherwise <code>$c->{securehost}</code>).
 +
*** '''base_url''' - The base URL for accessing OAI-PMH version 2.  (By default <code>/cgi/oai2</code>).
 +
** '''sets''' - Sets to organise (live archive) items accessible over OAI-PMH.  (Default varies depending on flavour.  Zero only have sets for <code>subjects</code> and <code>type</code>.  pub_lib also has a <code>status</code> set based on value of <code>ispublished</code>.  Other possible sets commented out by default).
 +
** '''custom_sets''' - More complex sets based on specific search expression.  (Default varies depending on flavour.  Zero has no custom sets enabled by default.  pub_lib has <code>Open Access DRIVERset</code> includes all (live archive) items that have <code>full_text_status</code> set to <code>public</code>.
 +
** '''filters''' - Search expression to further filter results available through OAI-PMH, beyond being in the live archive.  E.g. only since 2003.  (By default no additional filters are applied).
 +
** '''mime_types''' -  Maps eprints' document types to mime types if they are not the same.  (By default there are no mappings).
 +
** '''content''' - Describes content of repository available through OAI-PMH.
 +
*** '''text''' - A text description of the content of repository. (Undefined by default).
 +
*** '''url''' - A URL that points to a page describing the content of repository. (link to <code>/policies.html</code> by default).
 +
** '''metadata_policy''' - Describes the metadata policy of the repository.
 +
*** '''text''' - A text description of the metadata policy of the repository. (By default text explaining the metadata policy has not been defined).
 +
*** '''url''' - A URL that points at a page describing the metadata policy of the repository. (Undefined by default).
 +
** '''data_policy''' -  Describes the data policy of the repository.
 +
*** '''text''' - A text description of the data policy of the repository. (By default text explaining the data policy has not been defined).
 +
*** '''url''' - A URL that points at a page describing the data policy of the repository. (Undefined by default).
 +
** '''submission_policy''' -  Describes the submission policy of the repository.
 +
*** '''text''' - A text description of the submission policy of the repository.  (By default text explaining the submission policy has not been defined).
 +
*** '''url''' - A URL that points at a page describing the submission policy of the repository. (Undefined by default).
 +
** '''comments''' - Any additional comments to add at the end of the OAI-PMH identify page.  (By default some text describing the version and origin of the EPrints software).
  
=== optional_filename_sanitise.pl ===
+
=== [[optional_filename_sanitise.pl]] ===
''TO BE ADDED''
+
* '''optional_filename_sanitise''' - Defines a function that can further sanitise a filename (beyond <code>EPrints::System->sanitise</code>) of an uploaded file before is written to the filesystem / added to the database.  (By default commented out but has example for replacing one or more of spaces, parentheses and <code>@</code>s with underscores).
  
 
== P ==
 
== P ==
  
=== paths.pl ===
+
=== [[paths.pl]] ===
* '''config_path''' -
+
* '''documents_path''' - Sets the path where uploaded documents for the repository archive are stored. (By default a sub-directory of the archive's parent directory called <code>documents</code>).
* '''documents_path''' -
+
* '''config_path''' - Sets the path where configuration files for the repository archive are located. (By default a sub-directory of the archive's parent directory called <code>cfg</code>).
* '''htdocs_path''' -  
+
* '''htdocs_path''' - Sets the path where cached HTML files for the repository archive are located. (By default a sub-directory of the archive's parent directory called <code>html</code>).
  
=== plugins.pl ===
+
=== [[plugins.pl]] ===
''TO BE ADDED''
+
* '''plugins''' - Defines various settings for EPrints plugins.
 +
** '''PLUGIN::NAME''' - This must follow <code>$c->{plugins}</code> (e.g. <code>$c->{plugins}->{Export::Thing}</code>).
 +
*** '''params'''
 +
**** '''disable''' - If set to <code>1</code> disable the plugin.
 +
**** '''visible''' - Who should the plugin be visble to? <code>public</code>, <code>staff</code> or <code>api</code>.
 +
**** '''advertise''' - Should the plugin be advertised in dropdowns or other listing. If set to <code>0</code> not advertised.
 +
** '''Import::DOI''' - Only uncommented in pub_lib flavour.
 +
*** '''params'''
 +
**** '''pid''' - The PID (username:password) for the repository archive's CrossRef account. (Placeholder by default).
 +
**** '''doi_field''' - The eprint metadata field that stores DOIs.  (By default <code>id_number</code>).
 +
**** '''use_prefix''' - If prefix should be added at start of DOI.  (By default <code>1</code>, do use prefix).
 +
** '''Import::DOI_UNIXREF''' - Only present in pub_lib flavour.
 +
*** '''params''' - Uses <code>Import::DOI</code> params with <code>Import::DOI_UNIXREF</code>.
 +
* '''export_privacy''' - Restricts certain export plugins being available to non-logged in users where export may contain information covered by privacy laws (e.g. email addresses) and can be found in [[y_export_privacy.pl]].  (By default set to <code>1</code> enforce export privacy for pub_lib flavour.  Zero flavour does not define this configuration option as none of its export plugins have privacy concerns by default).
 +
* '''plugin_alias_map''' - Allows an alternative plugin to be aliased to an existing one.  Useful if you want to augment an existing plugin, without modifying the original plugin file.  (E.g. <code>$c->{plugin_alias_map}->{"Export::DC"} = "Export::LocalDC";</code> uses extended <code>Export::LocalDC</code> plugin to replace <code>Export::DC</code> plugin it extends).
  
=== private_ips.pl ===
+
=== [[private_ips.pl]] ===
''TO BE ADDED''
+
* '''ignore_x_forwarded_for_private_ip_prefixes''' - Lists private IP address subnets that if the X-Forwarded IP address is set and lies within then the original remote IP address is logged in the access table/file instead.
  
 
== Q ==
 
== Q ==
 
== R ==
 
== R ==
  
=== rdf_license.pl ===
+
=== [[rdf_license.pl]] ===
''TO BE ADDED''
+
* '''rdf'''
 +
** '''license''' - URL for licence for RDF data.  (Commented out by default).
 +
** '''attributionName''' - Who RDF data should be attributed to.  (Commented out by default).
 +
** '''attributionURL''' - URL for information on who the RDF data should be attributed.  (Commented out by default).
  
=== rdf_triples_bibo.pl ===
+
=== [[rdf_triples_bibo.pl]] ===
''TO BE ADDED''
+
* '''rdf''' -
 +
** '''xmlns''' - Defines URIs for the following XML namespaces: <code>event, bibo, geo, doi</code>.
 +
** '''bibo_type''' - Defines URIs (using namespaces) for following eprint types: <code>article, book_section, monograph, conference_item, book, thesis, patent, composition, performance, image, video, audio</code>.
 +
Also includes 3 eprint [[Triggers#EP_TRIGGER_RDF|<code>EP_TRIGGER_RDF</code> dataset trigger functions]] for adding extra Bibo-related triples to the RDF.
  
=== rdf_triples_eprints.pl ===
+
=== [[rdf_triples_eprints.pl]] ===
''TO BE ADDED''
+
* '''rdf''' -
 +
** '''xmlns''' - Defines URIs for the following XML namespaces: <code>ep, eprel, cc</code>.
 +
** '''license_uri''' - Defines URIs for the following licences (used by <code>document</code> data object's <code>license</code> metadata field): <code>cc_by_nd, cc_by, cc_by_nc, cc_by_nc_nd, cc_by_nc_sa, cc_by_sa, cc_gnu_gpl, cc_gnu_lgpl, cc_public_domain, odc_odbl, odc_by</code>.
 +
** '''content_rel_dc''' - Defines the following Dublin Core namespaced URIs for <code>content</code> metadata field values of document data object: <code>draft, submitted, accepted, published, updated</code>.
 +
** '''content_rel_ep''' - Defines the following EPrints namespaced URIs for <code>content</code> metadata field values of document data object: <code>draft, submitted, accepted, published, updated, supplemental, presentation, coverimage, metadata, other</code>.
  
=== rdf_triples_formats.pl ===
+
Also includes an <code>eprint</code> [[Triggers#EP_TRIGGER_RDF|<code>EP_TRIGGER_RDF</code> dataset trigger function]] for adding extra EPrints-related triples to the RDF.
''TO BE ADDED''
 
  
=== rdf_triples_general.pl ===
+
=== [[rdf_triples_formats.pl]] ===
''TO BE ADDED''
+
Just an eprint [[Triggers#EP_TRIGGER_RDF|<code>EP_TRIGGER_RDF</code> dataset trigger function]] for adding extra format-related triples to the RDF.
  
=== rdf_triples_repository.pl ===
+
=== [[rdf_triples_general.pl]] ===
''TO BE ADDED''
+
Just a [[Triggers#EP_TRIGGER_BOILERPLATE_RDF|<code>EP_TRIGGER_BOILERPLATE_RDF</code> trigger function]] for adding generic boilerplate triples to the RDF.
  
=== rdf_triples_skos.pl ===
+
=== [[rdf_triples_repository.pl]] ===
''TO BE ADDED''
+
* '''rdf''' -
 +
** '''xmlns''' - Defines URI <code>void</code> XML namespace.
  
=== rdf_triples_bibo.pl ===
+
Also includes a [[Triggers#EP_TRIGGER_REPOSITORY_RDF|<code>EP_TRIGGER_REPOSITORY_RDF</code> trigger function]] for adding repository-related triples to the RDF.
''TO BE ADDED''
 
  
=== rdf_uris.pl ===
+
=== [[rdf_triples_skos.pl]] ===
''TO BE ADDED''
+
* '''rdf''' -
 +
** '''xmlns''' - Defines URI <code>skos</code> XML namespace.
  
=== registration.pl ===
+
Also includes an eprint [[Triggers#EP_TRIGGER_RDF|<code>EP_TRIGGER_RDF</code> dataset trigger function]] for adding extra skos-related triples to the RDF.
* '''allow_reset_password''' -
 
* '''allow_web_signup''' -
 
* '''default_user_type''' -
 
* '''signup_style''' -
 
* '''user_registration_fields''' -
 
  
=== render_paras.pl ===
+
=== [[rdf_uris.pl]] ===
''TO BE ADDED''
+
* '''rdf''' -
 +
** '''event_uri''' - Defines function for generating an event URI. (By default using <code>event_title</code>, <code>event_dates</code> and <code>event_location</code> fields).
 +
** '''event_location uri''' - Defines function for generating an event location URI. (By default using a MD5 checksum of the <code>event_location</code> field).
 +
** '''org_uri''' - Defines function for generating an organisation URI. (By default using a MD5 checksum of the provided organisation name).
 +
** '''person_uri''' - Defines function for generating an person URI.  (By default using a MD5 checksum of the provided person's name from an EPrints name metadata field.  I.e. has <code>given</code> and <code>family</code> sub-fields).
 +
** '''publication_uri''' - Defines function for generating an publication URI.  (By default using either the <code>issn</code> field or a MD5 checksum of the <code>publication</code> field).
  
=== request_copy.pl ===
+
=== [[registration.pl]] ===
* '''email_for_doc_request''' -
+
* '''allow_web_signup''' - Whether user accounts can be requested and created via the EPrints repository's web interface / email verification.  (Default is <code>1</code>, user accounts can be requested through the web interface).
 +
* '''allow_reset_password''' - Whether forgotten passwords can be reset via the EPrints repository's web interface / email verification. (Default is <code>1</code>, passwords can be reset through the web interface).
 +
* '''default_user_type''' - When a new user account is created what is its initial type.  (Default is <code>user</code>).
 +
* '''check_registration_email''' - Defines a function that restricts the email addresses that can be used to register (and verify an account).  Useful if you only want sign ups from people in your organisation. (Commented out by default, meaning no restriction).
 +
* '''use_request_copy_pin_security''' - Whether to use pin based request copy security, so users approving requests don't have to login or have an account to approve requests from emails.  (By default commented out so not enabled).
  
=== restrict_paths.pl ===
+
=== [[render_paras.pl]] ===
''TO BE ADDED''
+
* '''render_paras''' - Converts text stored with new lines in the database so it still appears as paragraphs when rendered as HTML.  Useful to apply to metadata fields like <code>abstract</code>.  This has been superseded by <code>EPrints::Extras::render_paras</code> but could be useful if tweaks are needed to this function.
  
=== rewrite_url_demo.pl ===
+
=== [[request_copy.pl]] ===
''TO BE ADDED''
+
* '''email_for_doc_request''' - Defines a function for determining which email address to send emails from visitors who have requested a copy of a restricted document.  (By default this returns the email address set in <code>contact_email</code> metadata field if set.  Otherwise, it returns <code>undef</code>, which means the a request copy link will not be added to the abstract/summary page).
 +
 
 +
=== [[restrict_paths.pl]] ===
 +
* '''restrict_paths''' - Defines an array reference of hash references that allows paths that can be request over HTTP/HTTPS to be restricted for particular IP addresses or subnets.  This is useful if a search engine bot is crawling processor-intensive pages that there is little point indexing. Each hash reference contains a <code>path</code> (e.g. <code>/cgi/exportview</code>) and <code>ips</code>, an array reference of IP addresses or class A/B/C IP subnets (e.g. <code>[ '1.2.3.4', '5.6.7.' ]</code>.
 +
 
 +
=== [[rewrite_url_demo.pl]] ===
 +
Defines a commented out a [[Triggers#EP_TRIGGER_URL_REWRITE|<code>EP_TRIGGER_URL_REWRITE</code> trigger function]] that evaluates the URI of the request and rewrites it if it meets certain criteria.  Can be useful if certain publications' primary hosting location is no longer this repository archive.
  
 
== S ==
 
== S ==
  
=== search.pl ===
+
=== [[search.pl]] ===
* '''editor_limit_fields''' -
+
* '''match_start_of_name''' - Whether searches should match start of family names rather than just the complete family name (e.g. <code>smi</code> rather than <code>smith</code>.  (Default is <code>0</code>, do not match on start of name).
* '''issues_search''' -
+
* '''latest_citation''' - The <code>eprint</code> citation style file to use on <code>/cgi/latest</code> page for items published in the last 7 days.
* '''latest_citation''' -
+
 
* '''latest_tool_modes''' -
+
=== [[search_xapian.pl]] ===
* '''match_start_of_name''' -
+
* '''xapian_index_restricted_fulltext''' - Whether to index the full text of documents not publicly accessible. As clever searches may allow users to discover certain contents of these documents.  (Default is <code>0</code>, do not restrict the full texts from being indexed).
* '''search''' -
+
 
 +
Also adds [[Triggers#EP_TRIGGER_INDEX_FIELDS|<code>EP_TRIGGER_INDEX_FIELDS</code>]] and [[Triggers#EP_TRIGGER_REMOVED|<code>EP_TRIGGER_REMOVED</code> trigger functions]] to index fields in the Xapian database index or remove the Xapian database index if the <code>eprint</code> data iobject is removed.
  
=== search_xapian.pl ===
+
=== [[security.pl]] ===
''TO BE ADDED''
+
* '''can_request_view_document''' - Defines a function to determine if a particular document can be viewed.  (By default allows documents with <code>security</code> set to <code>public</code> to be viewed as well as restricted documents that include an authorised "request copy" code).
 +
* '''can_user_view_document''' - Defines a function to determine if a particular document can be viewed by a specific user. (By default allows documents with <code>security</code> set to <code>public</code> to be viewed as well as <code>validuser</code> for <code>security</code> documents to be viewed by logged in user unless their <code>usertype</code> is <code>minuser</code>.  Also allows access to  <code>staffonly</code> for <code>security</code> documents for users of type <code>editor</code> or <code>admin</code> or the owner of the eprint item).
  
=== security.pl ===
+
=== [[session.pl]] ===
* '''can_request_view_document''' -
+
* '''session_init''' - Defines a function to carry out any actions when a session is initialised.  (No actions by default).
* '''can_user_view_document''' -
+
* '''session_close''' - Defines a function to carry out any actions when a session is closed.  (No actions by default).
  
=== session.pl ===
+
=== [[signposting.pl]] ===
* '''session_close''' -
+
* '''plugins'''
* '''session_init''' -
+
** '''Export::BibTeX'''
 +
*** '''params'''
 +
**** '''signposting''' - Specifies <code>Export::BibTeX</code> plugin can be used in [https://signposting.org/ Signposting].
 +
** '''Export::DC'''
 +
*** '''params'''
 +
**** '''signposting''' - Specifies <code>Export::DC</code> plugin can be used in Signposting.
 +
** '''Export::JSON'''
 +
*** '''params'''
 +
**** '''signposting''' - Specifies <code>Export::JSON</code> plugin can be used in Signposting.
 +
** '''Export::XML'''
 +
*** '''params'''
 +
**** '''signposting''' - Specifies <code>Export::XML</code> plugin can be used in Signposting.
  
=== sword.pl ===
+
=== [[Perl_lib/EPrints/SystemSettings.pm|SystemSettings.pm]] ===
* '''sword''' -
+
* '''version''' - The core version of EPrints (By default <code>EPrints 3.x.y</code>.  <code>x.y</code> varies dependent on version).
 +
* '''version_id''' - The core version ID of EPrints (By default <code>eprints-3.x.y</code>.  <code>x.y</code> varies dependent on version).
 +
* '''base_path''' - The base path for EPrints on the filesystem. (By default <code>/opt/eprints3</code>).
 +
* '''show_ids_in_log''' - Whether to show repoistory archive ID is log messages. (By default <code>0</code> do not show archive ID in log messages).
 +
* '''group''' - The Unix group to set when EPrints creates new files (By default <code>eprints</code>).
 +
* '''version_history''' - An array reference of version IDs that proceeded the current version.
 +
* '''smtp_server''' - The SMTP server to connect to for sending emails (By default <code>127.0.0.1</code>, i.e. localhost).
 +
* '''user''' - The Unix user to set when EPrints creates new files (By default <code>eprints</code>).
 +
* '''file_perms''' The Unix permissions mask to use when EPrints creates new files. (By default <code>0664</code>).
 +
* '''invocation''' - Invocation commands for external executables and internal scripts. (By default an empty hash reference, as populated by [[invocations.pl]]).
 +
* '''executables''' - External executable and internal script paths. (By default a hash reference with one entry for <code>perl</code>.  Further populated by [[executables.pl]]).
 +
* '''dir_perms''' - The Unix permissions mask to use when EPrints creates new directories. (By default <code>02775</code>).
 +
* '''flavours''' - Flavours available for this EPrints installation.  (By default <code>zero</code> plus any flavours found under the <code>flavours/</code> sub-directory).
 +
* '''perl_module_isolation''' - If running multiple archives should Perl modules be isolated between each archive. (By default <code>0</code> they should not be isolated, as this can severely affect performance).
 +
* '''indexer_daemon'''
 +
** '''loglevel''' - What level of log messages to write to the indexer log file. (By default messages of at up to level <code>1</code>).
 +
** '''rollcount''' - How many old log files to retain after the log file has been rolled/rotated (By default <code>5</code> old log files should be retained).
 +
** '''maxwait''' - How many seconds to wait after gracefully trying to kill the child indexer process before forcefully killing the child indexer process.  (By default <code>8</code> seconds before the child indexer process should forcefully be killed).
 +
** '''interval''' - How many seconds to wait between checking if there are any indexer tasks ready to be run.  (By default <code>30</code> seconds to wait for any indexer tasks ready to be run).
 +
** '''respawn''' - How many seconds before the child process of the indexer should respawn, prompting the indexer log to be rotated. (By default <code>86400</code> seconds, i.e. 1 day).
 +
** '''timeout''' - How many seconds the indexer should allow to complete a task before killing it.  (By default <code>600</code> seconds, i.e. 10 minutes).
 +
** '''interrupt''' - Should the indexer immediately break out of loop checking for indexer tasks (By default <code>0</code>, no it should not break out of loops. This is a nonsensical setting, as <code>1</code> would affectively disable the indexer whilst it kept running).
  
=== signposting.pl ===
+
== T ==
''TO BE ADDED''
 
  
=== template_core.pl ===
+
=== [[template_core.pl]] ===
''TO BE ADDED''
+
Just adds a [[Triggers#EP_TRIGGER_DYNAMIC_TEMPLATE|<code>EP_TRIGGER_DYNAMIC_TEMPLATE</code> trigger function]] to build the <code>&lt;head&gt;</code> section of the dynamic template.
  
=== template_edit_phrases.pl ===
+
=== [[template_edit_phrases.pl]] ===
''TO BE ADDED''
+
Just adds a [[Triggers#EP_TRIGGER_DYNAMIC_TEMPLATE|<code>EP_TRIGGER_DYNAMIC_TEMPLATE</code> trigger function]] to build the <code>page</code> and <code>title</code> pins of the "edit phrases" page for a particular page.
  
=== template_legacy.pl ===
+
=== [[template_legacy.pl]] ===
''TO BE ADDED''
+
Just adds a [[Triggers#EP_TRIGGER_DYNAMIC_TEMPLATE|<code>EP_TRIGGER_DYNAMIC_TEMPLATE</code> trigger function]]  to add legacy support for the <code>$c->{dynamic_template}->{function}</code> function that can be defined in configuration.
  
=== template_leinks.pl ===
+
=== [[template_links.pl]] ===
''TO BE ADDED''
+
Just adds a [[Triggers#EP_TRIGGER_DYNAMIC_TEMPLATE|<code>EP_TRIGGER_DYNAMIC_TEMPLATE</code> trigger function]] to add various <code>&lt;link&gt;</code>s to the <code>&lt;head&gt;</code> section of the dynamic template.
  
 
== U ==
 
== U ==
  
=== upload.pl ===
+
=== [[upload.pl]] ===
''TO BE ADDED''
+
* '''max_upload_filesize''' - Maximum size of a file that can be uploaded to EPrints.  This gets set in both Apache (HTTP and HTTPS) configuration and <code>99_uploadmethod_file_max_size.js</code> under the archive's <code>cfg/static/javascript/auto/</code> directory, when the <code>generate_apacheconf</code> is run.  (By default <code>1 * 1024 * 1024 * 1024</code>, i.e. 1 GiB).
  
=== urls.pl ===
+
=== [[user_auth_limits.pl]] ===
* '''frontpage''' -
+
* '''max_login_attempts''' - The maximum number of failed login attempts before an account is temporarily locked.  (Default is <code>10</code> failed login attempts).
* '''rewrite_exceptions'''
+
* '''lockout_minutes''' - The number of minutes an account is locked out if there have been too many failed login attempts.  (Default is <code>10</code> minutes the account is locked out).
* '''userhome''' -
+
* '''reset_request_recent_hours''' - How many hours between a user being able to request password reset links. (Default is <code>24</code> hours between reset password emails to avoid users being spammed incessantly, if reset password misused).
 +
* '''max_account_requests''' - The maximum number of new user accounts can be requested (through <code>/cgi/register</code> in <code>max_account_requests_minutes</code>.  (Default is <code>100</code> user accounts.  This is quite high, as you may get a lot of people all trying to sign up at once if a mass email is sent round to an organisation asking everyone to sign up).
 +
* '''max_account_requests_minutes''' - The size of the window in minutes to check if <code>max_account_requests has been exceeded</code>.  (By default <code>60</code> minutes, 1 hour).
 +
* '''password_maxlength''' - Sounds counter-intuitive but really long passwords can take a long time and a lot of resources to hash.  So a limit prevents such a DoS attack. (By default <code>200</code> characters).
 +
Also adds a [[Triggers#EP_TRIGGER_VALIDATE_FIELD|<code>EP_TRIGGER_VALIDATE_FIELD</code> trigger function]] to validate that the length of the password submitted is not too long.
 +
* '''login_monitoring'''
 +
** '''enabled''' - Whether monitoring of logins (both failed and successful) are logged to archive's <code>var/login_attempts/</code> directory in CSV format.  (By default <code>1</code>, i.e. enabled).
 +
** '''fields''' - Array reference of field names to include at start of file as column headers.  (Commented out by default and only needed if <code>function</code> is also defined.  The commented out fields: <code>timestamp, username, password_length,ip_address, user_agent, target, login_status, userid, securecode</code> are the same as those hard-coded).
 +
** '''function''' - Defines a function for generating a bespoke log message (CSV line) for a login attempt. (Commented out by default but function is the same as what is hard-coded).
  
=== user_auth_limits.pl ===
+
=== [[user_fields_automatic.pl]] ===
''TO BE ADDED''
+
* '''set_user_automatic_fields''' -  What fields to automatically update when an <code>user</code> data object record is committed.  (By default <code>frequency</code> (to receive emails for editor alerts/saved searches) is set to <code>never</code> if not already set).
  
=== user_fields_automatic.pl ===
+
=== [[user_fields_default.pl]] ===
* '''set_user_automatic_fields''' -
+
* '''set_user_defaults''' - Sets default values for fields when <code>user</code> data object is created.  (By default <code>hideemail</code> is set to the string <code>TRUE</code>, <code>item_fields</code> is set to <code>[ "lastmod", "title", "type", "eprint_status" ]</code> and <code>review_fields</code> is set to <code>[ "status_changed", "title", "type", "userid" ]</code>.
  
=== user_fields_default.pl ===
+
=== [[user_fields.pl]] ===
* '''set_user_defaults''' -
+
* '''fields'''
 +
** '''user''' - Adds the following extra fields to <code>user</code> data object: <code>name, dept, org, address, country, hideemail, url</code>.
  
=== user_fields.pl ===
+
=== [[user_render.pl]] ===
* '''fields''' -
+
* '''user_render''' - Defines a function that specifies how to display a user's metadata on their profile page.
  
=== user_render.pl ===
+
=== [[user_review_scope.pl]] ===
* '''user_render''' -
+
* '''editor_limit_fields''' - Specifies an array reference of <code>eprint</code> metadata fields that are presented when an <code>admin</code> user is configuring what items an <code>editor</code> user can see to review.  (By default for zero this is <code>subjects</code> and <code>type</code>.  For pub_lib, <code>divisions</code> is also included).
  
=== user_review_scope.pl ===
+
=== [[user_roles.pl]] ===
''TO BE ADDED''
+
* '''user_roles'''
 +
** '''user''' - Permitted actions for a regular user, i.e <code>usertype</code> of <code>user</code>.  (By default: <code>general, edit-own-record, saved-searches, set-password, deposit, change-email</code>).
 +
** '''editor''' - Permitted actions for a editor user, i.e <code>usertype</code> of <code>editor</code>.  (By default: <code>general, edit-own-record, saved-searches, set-password, deposit, change-email, editor, view-status, staff-view</code>).
 +
** '''admin''' - Permitted actions for a admin user, i.e <code>usertype</code> of <code>editor</code>.  (By default: <code>general, edit-own-record, saved-searches, set-password, deposit, change-email, editor, view-status, staff-view, admin edit-config</code>).
 +
** '''min_user''' - Permitted actions for a minimal user, i.e <code>usertype</code> of <code>minuser</code>.  (By default: <code>general, edit-own-record, saved-searches, set-password, lock-username-to-email</code>).
 +
* '''public_roles''' - Permitted actions for all users including those not logged in. (By default: <code>+eprint/archive/rest/get, +subject/rest/get</code>).
 +
* '''roles''' - Allows extra roles to be added together that collate a set of permissions.  Sometimes referred to as "hats".  (By default this is not defined but there is a commented out example for <code>approve-hat</code>).
  
=== user_roles.pl ===
+
=== [[user_search.pl]] ===
* '''user_roles''' -
+
* '''search'''
 +
** '''user''' - The configuration for the search for <code>user</code> data objects.
 +
*** '''search_fields''' - Array reference of <code>meta_fields</code> to include in the user search form. (Defaults are: <code>name, username, userid, dept, org, address, country, usertype, email</code>).
 +
*** '''citation''' - The <code>user</code> citation style to use for search results. (Default: <code>result</code>).
 +
*** '''page_size''' - How many results to display per page. (Default: <code>20</code>).
 +
*** '''order_methods''' - Different ways or ordering search results (Defaults are: <code>byname, byjoin, byrevjoin, bytype</code>).
 +
*** '''default_order''' - Default order for search results (Default: <code>byname</code>).
 +
*** '''show_zero_results''' - Whether to go to results page with no results or say on search form page. (Default: <code>1</code>, i.e. go to search results page).
  
=== user_search.pl ===
+
=== [[user_validate.pl]] ===
''TO BE ADDED''
+
* '''validate_user''' - Defines a function to perform complex validations the metadata for a user data object. (<font style="color: red;">This option is deprecated.  Rather than adding validations to this configuration option, use a  [[Triggers#EP_TRIGGER_VALIDATE|<code>EP_TRIGGER_VALIDATE</code> dataset trigger function]] for the <code>user</code> dataset</font>).
  
=== user_validate.pl ===
+
== V ==
* '''validate_user''' -
 
  
== V ==
+
=== [[views.pl]] ===
 +
* '''browse_views''' - An array reference of difference views for browsing the publications in the repository archive.  See [[Adding new views]] for more details.  The following flavours have browse views with following IDs (commented out views in brackets):
 +
<b>zero</b>: subjects (year, person, people, type)
  
=== views.pl ===
+
<b>pub_lib</b>: year, subjects, divisions, creators, (person, people, type)
* '''browse_views''' -
 
  
=== views_render_items_example.pl ===
+
=== [[views_render_items_example.pl]] ===
''TO BE ADDED''
+
'''render_view_items_3col_boxes''' - Defines an example render function that can be used under browse view's <code>variations</code>  attribute to lay out the listing of items differently, (i.e. in three columns).
  
=== views_render_menu_example.pl ===
+
=== [[views_render_menu_example.pl]] ===
''TO BE ADDED''
+
'''render_view_menu_3col_boxes''' - Defines an example render function that can be used under browse view's <code>render_menu</code> attribute to lay out the menu of options differently, (i.e. in three columns).
  
=== vlit.pl ===
+
=== [[vlit.pl]] ===
* '''vlit''' -
+
* '''vlit'''
 +
** '''enable''' - Whether vlit is enabled. (By default <code>1</code>, vlit is enabled).
 +
** '''copyright_url''' - The URL that points to a page that describes the copyright for vlit. (By default <code>/vlit.html</code>).
  
 
== W ==  
 
== W ==  
Line 531: Line 660:
 
== Y ==
 
== Y ==
  
=== y_export_privacy.pl ===
+
=== [[y_export_privacy.pl]] ===
''TO BE ADDED''
+
Logic which checks whether <code>export_privacy</code> is enabled and if so, restricts the following export plugins (that likely could contain information that may be a privacy concern) to staff (logged in users) only: <code>JSON, XML, RDFN3, RDFNT, RDFXML, CSV, Simple</code>.
  
 
== Z ==
 
== Z ==
  
=== zz_version.pl ===
+
=== [[zz_version.pl]] ===
* '''version_description''' -
+
* '''version_description''' - Builds the version description from the final values for <code>version_long</code>, <code>version_alias</code>, <code>vendor_long</code>.

Latest revision as of 16:28, 26 July 2024

0-9 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

As well as options that exist in configuration files there are further Miscellaneous Config Options.

0-9

00_flavour.pl

  • flavour - The flavour for the particular repository archive. (e.g. pub, zero, etc.). (Configuration generated on repository archive creation).

00_version.pl

  • version_long - The long version name of EPrints (e.g. EPrints 3.4.5).
  • version_alias - The alias/codename for the core EPrints release version (e.g. Smoothie Squall).
  • vendor_long - The long name of the vendor responsible for the EPrints software release (e.g. EPrints Services).
  • vendor_short - The short name / abbreviation of the vendor responsible for the EPrints software release (e.g. eps).
  • version_description - A fully description of the EPrints software version using above version/vendor settings.

10_core.pl

  • aliases - Other hostnames for the repository archive and whether they should redirect to the primary hostname. (Configuration generated on repository archive creation).
  • host - The primary hostname of the repository archive on HTTP. (Configuration generated on repository archive creation).
  • port - The TCP port number to connect to the repository archiver over HTTP. (Configuration generated on repository archive creation. Typically 80).
  • securehost - The primary hostname of the repository archive on HTTPS. Normally the same as host, so typically can be a reference. (Configuration initially generated on repository archive creation).
  • secureport - The TCP port number to connect to the repository archive over HTTPS. (Configuration generated on repository archive creation. Typically 443).
  • http_root - The base path where the repository archive URLs can be found. (Typically undefined, so just https://eprints.example.org/... rather than https://eprints.example.org/eprints/...). (Configuration generated on repository archive creation).

20_baseurls.pl

  • base_url - URL including protocol and hostname, used as a basis whenever a full URL for a specific location needs to be generated. (By default generated from other settings).
  • perl_url - URL including protocol and hostname, used as a basis whenever a full URL for a specific CGI script needs to be generated. (By default generated from other settings).
  • use_long_url_format - Use long URLs for abstract pages / documents (e.g. /id/eprint/1234 or /id/eprint/1234/1/paper.pdf rather than /1234 or /1234/1/paper.pdf. Will redirect from short to long URL rather than long to short. (Default is 0, do not use long URLs).
  • uri_url - Set the base URL for URIs for data objects (e.g. eprint items). If the EPrints was originally HTTP but has been reconfigured to be an HTTPS only, then the URIs for eprints will also change to HTTPS. This may be undesirable, as URIs may only serve their purpose if they match exactly. This allows HTTP to be retained for URIs but they should still be able to redirect to HTTPS if used as URLs. (By default this is commented out so URIs will just use base_url).

A

adminemail.pl

  • adminemail - The email address of the administrator of the repository archive. Will be displayed on the /contact.html and /information.html pages and the default email address the repository archive will send email to and from. (Configuration generated when repository archive is created).
  • senderemail - Alternative email address from which to send email for the repository archive. Useful if restrictions on where email can be sent from for the domain of the adminemail address. Will still set <ocde>adminemail as reply to email address.

B

branding.pl

  • site_logo - Default logo to use for the site. Probably only useful if using default template for EPrints.

build_attributes.pl

  • build_node_attributes - Defines function for manipulating attributes that can be called by EPrints::XML::create_element.

C

citation_default.pl

  • citation_default
    • document
      • for_summary_page - The default document citation to use when rendering a document of an abstract/summary page.
    • eprint
      • export - The default eprint citation to use with export plugins.
      • for_issue - The default eprint citation to use when rendering an issue.
      • for_result - The default eprint citation to use when rendering a set of eprint search results.
      • for_summary_page - The default eprint citation to use when rendering a eprint of an abstract/summary page.

citationcaches.pl

  • datasets
    • citationcache - Defines dataset configuration for EPrints::DataObj::CitationCache.
  • citation_caching
    • enabled - Whether citation caching is enabled. (Default is 0, i.e. not enabled).
    • excluded_dataobjs - Data objects that should not cache citations because they are dynamic/context dependent. (Default [ 'epm', 'loginticket', 'subject']).
    • excluded_style - Citation styles that should not be cache because they are dynamic/context dependent. (Default [ 'result' ]).

csrf_protection.pl

  • csrf_token_salt - A salt to ensure generated CSRF tokens are not guessable.

D

database.pl

  • dbname - The name of the database where the repository archive is hosted. (Configuration generated on repository archive creation. Typically the same as the archive's ID).
  • dbhost - The hostname or IP address where the database for the repository archive is hosted. (Configuration generated on repository archive creation. Typically localhost).
  • dbport - The TCP port over which the database for the repository archive can be accessed. (Configuration generated on repository archive creation. Typically undef as database client assume default port).
  • dbsock - The socket over which the database for the repository archive can be accessed. (Configuration generated on repository archive creation. Typically undef, as sockets are not used).
  • dbuser - The username to connect to the database where the repository archive is hosted. (Configuration generated on repository archive creation. Often the same as the archive's ID).
  • dbpass - The password to connect to the database where the repository archive is hosted. (Configuration generated on repository archive creation. Typically automatically generated 16 character string).
  • dbengine - The database table engine to use when creating new tables in the database where the repository archive is hosted. (Configuration generated on repository archive creation. Default is InnoDB, previously has been MyISAM).

datasets.pl

  • datasets - Initialises hash reference (if not already) so other configuration files can add bespoke datasets.

doc_rewrite.pl

Adds an EP_TRIGGER_DOC_URL_REWRITE trigger function to handle relation-based document redirects.

document_fields_automatic.pl

  • set_document_automatic_fields - Defines a function that updates specified fields for a document when its data object is committed. (By default no fields are updated).

document_fields_default.pl

  • set_document_defaults - A function that sets the initial values specified fields for a document when its data object is created. (By default the language field is set to the default language for the repository and the security field is set to public).
  • eprint_details_document_fields - The document fields that should be displayed in the Upload section of Details tab of the eprint view page. (Default: [ "content", "format", "format_desc", "language", "security", "license", "date_embargo", "embargo_reason" ]

document_fields.pl

  • fields
    • document - Extra fields to add to the document data object beyond those defined by EPrints::DataObj::Document. (By default this configuration is commented out. I.e. no new fields will be added).

document_upload.pl

  • diskspace_error_threshold - The minimum amount of space left on a disk before using the next disk available if present. (Default is 64 * 1024 kilobytes, i.e. 64 MiB).
  • diskspace_warn_threshold - The minimum amount of space left on a disk before the administrator receives a warning email about disk space running low. (Default is 512 * 1024 kilobytes, i.e. 512 MiB).
  • mimemap - Additional entries can be added to the mimemap. (By default no additional entries are added).
  • archive_max_files - Maximum number of files in an archive (e.g. zip file) that can be expanded in individual documents for an eprint record. (Commented out by default but core default is 100 files).

document_validate.pl

  • validate_document - A function that validates the metadata for a document data object. (This option is partially deprecated. Rather than adding extra validations, use a EP_TRIGGER_VALIDATE dataset trigger function for the document dataset).

The following validation tests are performed on a document data object:

  1. formatdesc is set if the format is other.
  2. Unless retain_embargo_dates config option is set true, if security is set to public then the date_embargo field must be unset.
  3. If the year part of date_embargo is set then the month and day most also be set to ensure clarity on when an embargo expires.
  4. Unless retain_embargo_dates config option is set true, date_embargo must be in the past.
  5. If security is set to public then date_embargo cannot be in the future (and can only be in the past if retain_embargo_dates config option is set true).

dynamic_template.pl

For more information see Dynamic Pins. (This option is partially deprecated. Consider using a EP_TRIGGER_DYNAMIC_TEMPLATE trigger function instead).

  • dynamic_template
    • enable - Enables dynamic template. (Default is 1).
  • plugins
    • Screen::Login
      • appears
        • key_tools - Where login page link should appear in the key tools menu bar, if the user is not already logged in.
    • Screen::Register
      • actions
        • register
          • appears
            • key_tools - Where the user registration page link should appear in the key tools menu bar.
    • Screen::Logout
      • appears
        • key_tools - Where logout page link should appear in the key tools menu bar, if the user is already logged in.
    • Screen::Admin::Config::Edit::XPage
      • actions
        • edit
          • appears
            • key_tools - Where the edit static page (if current page is a static page) link should appear in the key tools menu bar.
    • Screen::Admin::Phrases
      • actions
        • edit
          • appears
            • key_tools - Where the edit page phrases link should appear in the key tools menu bar.
    • Screen::OtherTools
      • appears
        • key_tools - Where Other Tools page link should appear in the key tools menu bar. (Screen::OtherTools plugin does not exist by default so will not appear in the key tools meny bar).

E

element_classes.pl

These can be useful if you are trying use an existing branding template, e.g. CSS, JavaScript, etc. for your institution.

  • eprint
    • summary_content_class - The classes that should be used for HTML <div> elements around the abstract/summary page. Default is as follows:
{
  ROOT => 'ep_summary_content',
  top => 'ep_summary_content_top',
  left => 'ep_summary_content_left',
  main => 'ep_summary_content_main',
  right => 'ep_summary_content_right',
  bottom =>'ep_summary_content_bottom',
  after => 'ep_summary_content_after'
};
  • item_list_class - The class that should be used for items in the key tools menu bar.
  • toolbar_class - The class that should be used for key tools menu bar.

email.pl

  • send_email - Defines a function for sending email from your repository archive. (By default this calls EPrints::Email::send_mail_via_smtp, which will then use whatever hostname is set for smtp_server under EPrints::SystemSettings. If this is localhost or 127.0.0.1, you will have to set up an application on your server to relay this email. E.g. Sendmail, Postfix, etc.).

epm.pl

  • datasets
    • epm - Defines the dataset for Bazaar plugins / EPrints Package Manager (EPM) objects. I.e. EPrints::DataObj::EPM.
      • sqlname - Name of EPM dataset when referred to in SQL statements.
      • class - The package name of the class for data objects belonging to the EPM dataset.
      • virtual - Whether the EPM dataset exists in the dataset. (By default 1 is not in the database. SHOULD NOT BE CHANGED).
      • sources - Array reference of locations where EPMs can be installed from. Each entry contains a name and base_url. (By default one entry with name of EPrints Bazaar and base_url of https://bazaar.eprints.org).

eprint_fields_automatic.pl

  • set_eprint_automatic_fields - What fields to automatically update when an eprint data object record is committed. (By default for the pub_lib flavour, ispublished is set to pub if type is patent. If not already set,ispublished is set to unpub if type is thesis. Also, full_text_status is set to none if there are no documents, restricted if any documents are restricted and public if all documents are unrestricted. Default configuration for zero flavour does not set any eprint fields automatically).

eprint_fields_common.pl

  • fields
    • eprint - Adds contact_email field to the eprint data object.

eprint_fields_default.pl

  • set_eprint_defaults - Sets default values for fields when eprint data object is created. (By default pub_lib flavour sets type to article, for zero flavour its set it to other).

eprint_fields.pl

  • fields
    • eprint - Adds extra fields to eprint data object. (The following fields are added by default for the pub_lib and zero flavours).
pub_lib: creators, contributors, corp_creators, title, ispublished, subjects, divisions, keywords, note, suggestions, abstract, date, date_type, publisher, official_url, id_number, data_type, opyright_holders
zero: title, subjects

eprint_fields_pub.pl

  • fields
    • eprint - Adds extra fields to eprint data object. (The following fields are added by default for the pub_lib flavour: full_text_status, monograph_type, pres_type, series, publication, volume, number, article_number, place_of_pub, pagerange, pages, event_title, event_location, event_dates, event_type, patent_applicant, institution, department, thesis_type, thesis_name, refereed, isbn, issn, book_title, edition, editors, related_url, referencetext, funders, projects, output_media, num_pieces, composition_type, pedagogic_type, completion_tome, task_purpose, skills_area, learning_level, gscholar).

eprint_locking.pl

  • locking
    • eprint
      • enable - Enables locking of eprint data objects so they cannot be edited whilst another user is editing. (By default enabled, i.e. 1).
      • timeout - Number of seconds before a lock is released if the current user does not complete or cancel editing. (Default 3600, i.e. 1 hour).

eprint_render.pl

  • summary_page_metadata - eprint metadata fields to include in the summary table on abstract/summary pages. (The following fields are added by default for the pub_lib and zero flavours).
pub_lib: commentary, note, keywords, subjects, divisions, sword_depositor, userid, datestamp, lastmod
zero: commentary, subjects, sword_depositor, userid, datestamp, lastmod
  • eprint_render - Function that generates XHTML DOM objects for the page, title and links for the abstract/summary page.

eprint_search_advanced.pl

  • search
    • advanced - The configuration for the advanced search for eprint data objects.
      • search_fields - Array reference of meta_fields to include in the advanced search form. (Default varies depending on flavour).
      • template - The page template to use when displaying the advanced search form. (Default: default).
      • preamble_phrase - The phrase at the top of the advanced search form. I.e. to explain how to use it. (Default: cgi/advsearch:preamble).
      • title_phrase - The phrase to use for the page title of the advanced search form. (Default: cgi/advsearch:adv_search).
      • citation - The eprint citation style to use for search results. (Default: result).
      • page_size - How many results to display per page. (Default: 20).
      • order_methods - Different ways or ordering search results (Default varies depending on flavour).
      • default_order - Default order for search results (Default: byyear for pub_lib, bytitle for zero).
      • show_zero_results - Whether to go to results page with no results or say on search form page. (Default: 1, i.e. go to search results page).

eprint_search_simple.pl

  • search
    • simple - The configuration for the simple search for eprint data objects.
      • search_fields
        • id - The name to give to the single input field for the simple search form.
        • meta_fields - The eprint metadata fields that will be search over for the input in the simple search form. (Default varies on flavour. documents, title for zero, documents, title, abstract, creators_name, date for pub_lib).
      • template - The page template to use when displaying the simple search form. (Default: default).
      • title_phrase - The phrase to use for the page title of the dimple search form. (Default: cgi/search:simple_search).
      • citation - The eprint citation style to use for search results. (Default: result).
      • page_size - How many results to display per page. (Default: 20).
      • order_methods - Different ways or ordering search results (Default varies depending on flavour).
      • default_order - Default order for search results (Default: byyear for pub_lib, bytitle for zero).
      • show_zero_results - Whether to go to results page with no results or say on search form page. (Default: 1, i.e. go to search results page).

eprint_search_staff.pl

  • datasets
    • eprint
      • search
        • staff - The configuration for the staff (i.e. admins/editors only) search for eprint data objects.
        • search_fields - Array reference of meta_fields to include in the staff search form. (Default varies depending on flavour. Advanced search fields plus: eprintid, userid.username, userid.name, dir. Also eprint_status for pub_lib flavour.
        • preamble_phrase - The phrase at the top of the staff search form. I.e. to explain how to use it. (Default: Plugin/Screen/Staff/EPrintSearch:description).
        • title_phrase - The phrase to use for the page title of the staff search form. (Default: Plugin/Screen/Staff/EPrintSearch:titl).
        • citation - The eprint citation style to use for search results. (Default: result).
        • page_size - How many results to display per page. (Default: 20).
        • order_methods - Different ways or ordering search results (Default varies depending on flavour).
        • default_order - Default order for search results (Default: byyear for pub_lib, bytitle for zero).
        • show_zero_results - Whether to go to results page with no results or say on search form page. (Default: 1, i.e. go to search results page).
        • staff - Whether search is only accessible to staff (Default 1, i.e. only available to staff).

eprint_validate.pl

  • validate_eprint - Defines a function that performs complex (i.e. containing multiple metadata fields) validation on eprint data objects and generate XHTML DOM objects describe any problems found. (Function varies depending of flavour. Zero function does no further validation. pub_lib flavour checks at least one creator or editor is set).

eprint_warnings.pl

  • eprint_warnings - Defines a function that performs complex (i.e. containing multiple metadata fields) checks on eprint data objects and generate XHTML DOM objects describe warnings where metadata may not have been correctly completed. (Function varies depending of flavour. All flavours warn if no documents have been uploaded. pub_lib flavour also warns if not contact_email has been set).

executables.pl

  • disable_df - Whether to disable use of Unix df command to check free space of disk partitions and just use the one that comes last alphanumerically. (By default 0, i.e. do use df, unless already defined in perl_lib/EPrints/SystemSettings.pm).
  • executables - File paths to external applications or internal scripts used by EPrints. Includes the following applications/scripts: convert, tar, rm, dvips, gunzip, sendmail, unzip, html2text, cp, latex, perl, pdftotext, wget, antiword, ffmpeg, file, doc2txt, unoconv, txt2refs, ffprobe, cal, ncal.

exports.pl

  • export
    • publication_status_type_override - Allows certain export formats (BibTeX and RIS) to change the type of exported object if certain conditions are met. (e.g. ispublished is set to unpub.). (Default is 1 types can be changed).

F

field_property_defaults.pl

  • field_defaults
    • input_cols - The default number of cols (columns) in a <textarea> or size of <input> HTML form field. (Default 60).
    • input_rows - The default number of rows in a <textarea> HTML form field. (Default 10).
    • input_name_cols - The default size of <input> HTML form field for various sub-fields of a name metadata field.
      • honourific - The honourific sub-field. (Default is 8).
      • given - The given name sub-field. (Default is 20).
      • family - The family name sub-field. (Default is 20).
      • lineage - The lineage sub-field. (Default is 8).
    • input_add_boxes - The number of rows to add to a metadata field that allows multiple values when clicking the More input rows button. (Default is 2).
    • input_boxes - The initial number of rows for metadata field that allows multiple values. (Default is 3).
    • digits - The maximum number of digits that can be added for an int (integer) metadata field. (Default is 9. Any higher might exceed the biggest number the database can store).
    • search_cols - The default number of cols (columns) in a <textarea> or size of <input> HTML form field when part of a search form. (Default 40).
    • search_rows - The default number of rows in a <textarea> HTML form field when part of a search form. (Default 12).
    • hide_honourific - Whether the honourific sub-field when rendering name metadata field in an HTML input form (Default 0, do not hide).
    • hide_lineage - Whether the lineage sub-field when rendering a name metadata field in an HTML input form (Default 1, do hide).
    • family_first - Whether the family name sub-field should appear before the given name sub-field in an HTML input form. (Default 0, given name should come first).

field_validate.pl

  • validate_field - Function that validates particular metadata fields. Currently only used on user and eprint data objects. Default validations include:
    1. url fields starts with a protocol (e.g. http:, https: etc.).
    2. name fields has a family and given name set.
    3. email fields contains only one @, which is not at the start or end and also has no spaces.
    4. id fields and sub-classes (e.g. text, longtext url, etc.) are no longer than the specified maxlength attribute for the field.
    5. User's username field is not a duplicate.

flavour_info.pl

  • flavour_id - The ID of the flavour. (E.g. zero or pub).
  • flavour_name - The name of the flavour. (E.g. Zero or Publication).
  • flavour_version - The release version of the flavour. (Different to the EPrints release version).
  • version_alias - Updates the alias for the EPrints version with a particular flavour. (I.e. not updated for zero flavour).

G

H

I

indexing.pl

  • index - Should data objects in the repository archive be indexed. (Default 1, should be indexed).
  • indexing
    • freetext_min_word_size - The minimum length of a word in freetext for it to be indexed. (Default is 3 characters).
    • freetext_stop_words - Common words that will not be indexed from a freetext. (E.g. the, , and, are, etc.).
    • freetext_always_words - Words that do not meet other criteria but still should be indexed from a freetext (e.g. ok because it is too short).
    • freetext_separator_chars - Characters other that spaces that should be treated as a separator of words. (E.g. @, &, _, etc.)
  • extract_words - Function that takes a text input and extracts and returns array references for good and bad words from the text input.

invocations.pl

  • invocation - Invocations (i.e. command lines) of external applications on internal scripts used by EPrints (as defined in executables.pl). Includes the following invocations: convert_crop_white, dvips, sendmail, html2text, latex, targz, antiwordpdf, pdftotext, zip, unzzip, cpall, wget, antiword, doc2txt, rmall, ffmpeg_i, ffmpeg_video_mp4, ffmpeg_video_ogg, ffmpeg_video_webm, ffmpeg_audio_mp4, ffmpeg_audio_off, ffmpeg_cell, unoconv, txt2refs, ffprobe, cal, ncal.

issues_search.pl

  • issues_search
    • search_fields - Metadata fields (from eprint data object) to include in issues search (Default varies depending on flavour. zero contains: item_issues_type, item_issues_timestamp, userid.username, subjects, type. pub_lib also has eprint_status, creators_name, date.
    • preamble_phrase - The phrase at the top of the issues search form. I.e. to explain how to use it. (Default: search/issues:preamble).
    • title_phrase - The phrase to use for the page title of the issues search form. (Default: cgi/issues:title).
    • citation - The eprint citation style to use for search results. (Default: issue).
    • page_size - How many results to display per page. (Default: 100).
    • staff - Whether search is only accessible to staff (Default 1, i.e. only available to staff).
    • order_methods - Different ways or ordering search results (Default varies depending on flavour).
    • default_order - Default order for search results (Default: byfirstseen).
    • show_zero_results - Whether to go to results page with no results or say on search form page. (Default: 0, i.e. say on search form page).

J

K

L

languages.pl

  • defaultlanguage - The default language for the repository archive as a ISO-639-1 two-character code. (Default is en, i.e. English).
  • languages - The languages supported by the repository archive as ISO-639-1 two-character codes. (Default us [ 'en' ], i.e. only English).

latest_tool.pl

  • latest_tool_modes - The different modes supported by the "latest" tool.
    • default - By default uses result citation. Does not specify max so uses /cgi/latest_tool default of 20.
    • fplatest - By default uses result citation and max set to 3.
  • latest_tool_feeds - The different feeds displayed on the /cgi/latest_tool page.
    • Atom - Commented out by default.
    • RSS - Commented out by default.
    • RSS2 - Enabled and with label RSS 2.0 by default.

limit_names_shown.pl

  • limit_names_shown - Defines function to reduce the number of creators/editors names initially shown in a citation. See Limiting names shown for instructions on how to configure relevant fields to make use of this.

log.pl

  • loghandler
    • enable - Whether the log handler is enabled. (By default 1, the log handler is enabled).
  • log_submission_timing - Commented out by default. If uncommented it will log the amount of time users spend during the submission process, (e.g. what pages they spend longer on).
  • show_timestamps_in_log - Commented out by default. If uncommented it will also include the timestamp in the log message.
  • show_ids_in_log - Commented out by default. If uncommented it will also include the repository archive ID in the log message.
  • log - Defines a function for how log messages should be formatted. (By default this just outputs the message to STDERR).

M

make_orderkey.pl

  • make_orderkey_ignore_extras - Defines a generic function for order keys that removes any not alphanumeric characters (except underscore).
  • make_name_orderkey - Defines a function for an order key that order based on family name, then given name and finally honourific of a name type metadata field. (Uses make_orderkey_ignore_extras to remove non-alphanumeric characters).
  • make_title_orderkey - Defines a function for an order key that strips out titles that start with a definite or indefinite article (i.e. the, a and an).
  • make_sanitised_value_orderkey - Defines a function to sanitise the value for an order key by just applying the generic make_orderkey_ignore_extras function.

media_info.pl

  • guess_doc_type - Defines a function that tries to determine the type of document (e.g. text, image, audio, video) by evaluating it MIME type or file extension.

Also contains four EP_TRIGGER_MEDIA_INFO trigger functions.

  1. Tries to set the mime_type metadata field for the document, if it can be determined using GNU's file
  2. If an audio or video file tries to determine values for the following document metadata fields: media_duration, media_audio_codec, media_video_codec, media_width, media_height, media_aspect_ratio
  3. Tries to set the mime_type metadata field for the document, if it can be determined by its file extension (and not already determined by GNU file trigger function.
  4. Tries to set the format metadata field for the document using the guess_doc_type function.

mime_types.pl

  • mimemap - A hash reference mapping file extension to MIME type. Loaded from EPRINTS_PATH/lib/mime.types. Used by guess_doc_type configuration function and a EP_TRIGGER_MEDIA_INFO trigger function used to determine a document's mime_type metadata field value, if cannot otherwise be determined.

misc.pl

  • use_mimetex - Use the mimetex.cgi script rather than /cgi/latex2png script for EPrints::Latex::render_string. (Default is 0, do not use mimetex.cgi as it is not present by default).
  • cookie_auth - Whether to used cookie-based or basic authentication for maintaining user sessions. (Default is 1 use cookie-based authentication as more modern/secure than basic authentication).
  • skip_buffer - Whether deposited eprint items should be moved straight to the live archive or first moved to the review buffer. (Default is 0. Items should be first moved to the review buffer).
  • skip_buffer_owners - Whether deposited eprint items for specific users, (based on their userid should be moved straight to the live archive or first moved to the review buffer. (Default is an empty array reference. No user's items should be moved straight to the live archive).
  • cookie_domain - The domain used for the any EPrints specific cookies, (e.g. eprints_session, secure_eprints_session, eprints_lang etc.). (By default the same as host and/or securehost depending on which is/are set).
  • cookie_auth_set_user - Set user in requests to the username of logged in user, so this appears in Apache access logs. (By default 0, do not set user in requests).
  • pin_timeout - Number of hours before pin for resetting user password expires. (By default 24*7, i.e. 7 days).
  • cache_timeout - Number of minutes a cache table (of search results) must be unused before it is scheduled for deletion. (By default 10, i.e. 10 minutes).
  • cache_maxlife - Number of hours a cache table (of search results) can exists before it is scheduled for deletion (unused or otherwise). (By default 12, i.e. 12 hours).
  • cache_max - Maximum number of persistent cache tables (of search results) that can exist in the repository archive's database. If exceeded, oldest table is deleted. (By default 100, i.e. 100 tables).

Also commented outEP_TRIGGER_LOCAL_SITEMAP_URLS trigger function which can be used to add extra entries to the repository archive's sitemap file, if you are NOT using the generate_sitemap script to generate the sitemap.

N

O

oai.pl

  • oai - Configuration for OAI-PMH.
    • v2
    • archive_id - The ID to use for this repository archive for OAI-PMH. (By default commented out, so will use primary hostname of the repository archive, i.e. $c->{host} otherwise $c->{securehost}).
      • base_url - The base URL for accessing OAI-PMH version 2. (By default /cgi/oai2).
    • sets - Sets to organise (live archive) items accessible over OAI-PMH. (Default varies depending on flavour. Zero only have sets for subjects and type. pub_lib also has a status set based on value of ispublished. Other possible sets commented out by default).
    • custom_sets - More complex sets based on specific search expression. (Default varies depending on flavour. Zero has no custom sets enabled by default. pub_lib has Open Access DRIVERset includes all (live archive) items that have full_text_status set to public.
    • filters - Search expression to further filter results available through OAI-PMH, beyond being in the live archive. E.g. only since 2003. (By default no additional filters are applied).
    • mime_types - Maps eprints' document types to mime types if they are not the same. (By default there are no mappings).
    • content - Describes content of repository available through OAI-PMH.
      • text - A text description of the content of repository. (Undefined by default).
      • url - A URL that points to a page describing the content of repository. (link to /policies.html by default).
    • metadata_policy - Describes the metadata policy of the repository.
      • text - A text description of the metadata policy of the repository. (By default text explaining the metadata policy has not been defined).
      • url - A URL that points at a page describing the metadata policy of the repository. (Undefined by default).
    • data_policy - Describes the data policy of the repository.
      • text - A text description of the data policy of the repository. (By default text explaining the data policy has not been defined).
      • url - A URL that points at a page describing the data policy of the repository. (Undefined by default).
    • submission_policy - Describes the submission policy of the repository.
      • text - A text description of the submission policy of the repository. (By default text explaining the submission policy has not been defined).
      • url - A URL that points at a page describing the submission policy of the repository. (Undefined by default).
    • comments - Any additional comments to add at the end of the OAI-PMH identify page. (By default some text describing the version and origin of the EPrints software).

optional_filename_sanitise.pl

  • optional_filename_sanitise - Defines a function that can further sanitise a filename (beyond EPrints::System->sanitise) of an uploaded file before is written to the filesystem / added to the database. (By default commented out but has example for replacing one or more of spaces, parentheses and @s with underscores).

P

paths.pl

  • documents_path - Sets the path where uploaded documents for the repository archive are stored. (By default a sub-directory of the archive's parent directory called documents).
  • config_path - Sets the path where configuration files for the repository archive are located. (By default a sub-directory of the archive's parent directory called cfg).
  • htdocs_path - Sets the path where cached HTML files for the repository archive are located. (By default a sub-directory of the archive's parent directory called html).

plugins.pl

  • plugins - Defines various settings for EPrints plugins.
    • PLUGIN::NAME - This must follow $c->{plugins} (e.g. $c->{plugins}->{Export::Thing}).
      • params
        • disable - If set to 1 disable the plugin.
        • visible - Who should the plugin be visble to? public, staff or api.
        • advertise - Should the plugin be advertised in dropdowns or other listing. If set to 0 not advertised.
    • Import::DOI - Only uncommented in pub_lib flavour.
      • params
        • pid - The PID (username:password) for the repository archive's CrossRef account. (Placeholder by default).
        • doi_field - The eprint metadata field that stores DOIs. (By default id_number).
        • use_prefix - If prefix should be added at start of DOI. (By default 1, do use prefix).
    • Import::DOI_UNIXREF - Only present in pub_lib flavour.
      • params - Uses Import::DOI params with Import::DOI_UNIXREF.
  • export_privacy - Restricts certain export plugins being available to non-logged in users where export may contain information covered by privacy laws (e.g. email addresses) and can be found in y_export_privacy.pl. (By default set to 1 enforce export privacy for pub_lib flavour. Zero flavour does not define this configuration option as none of its export plugins have privacy concerns by default).
  • plugin_alias_map - Allows an alternative plugin to be aliased to an existing one. Useful if you want to augment an existing plugin, without modifying the original plugin file. (E.g. $c->{plugin_alias_map}->{"Export::DC"} = "Export::LocalDC"; uses extended Export::LocalDC plugin to replace Export::DC plugin it extends).

private_ips.pl

  • ignore_x_forwarded_for_private_ip_prefixes - Lists private IP address subnets that if the X-Forwarded IP address is set and lies within then the original remote IP address is logged in the access table/file instead.

Q

R

rdf_license.pl

  • rdf
    • license - URL for licence for RDF data. (Commented out by default).
    • attributionName - Who RDF data should be attributed to. (Commented out by default).
    • attributionURL - URL for information on who the RDF data should be attributed. (Commented out by default).

rdf_triples_bibo.pl

  • rdf -
    • xmlns - Defines URIs for the following XML namespaces: event, bibo, geo, doi.
    • bibo_type - Defines URIs (using namespaces) for following eprint types: article, book_section, monograph, conference_item, book, thesis, patent, composition, performance, image, video, audio.

Also includes 3 eprint EP_TRIGGER_RDF dataset trigger functions for adding extra Bibo-related triples to the RDF.

rdf_triples_eprints.pl

  • rdf -
    • xmlns - Defines URIs for the following XML namespaces: ep, eprel, cc.
    • license_uri - Defines URIs for the following licences (used by document data object's license metadata field): cc_by_nd, cc_by, cc_by_nc, cc_by_nc_nd, cc_by_nc_sa, cc_by_sa, cc_gnu_gpl, cc_gnu_lgpl, cc_public_domain, odc_odbl, odc_by.
    • content_rel_dc - Defines the following Dublin Core namespaced URIs for content metadata field values of document data object: draft, submitted, accepted, published, updated.
    • content_rel_ep - Defines the following EPrints namespaced URIs for content metadata field values of document data object: draft, submitted, accepted, published, updated, supplemental, presentation, coverimage, metadata, other.

Also includes an eprint EP_TRIGGER_RDF dataset trigger function for adding extra EPrints-related triples to the RDF.

rdf_triples_formats.pl

Just an eprint EP_TRIGGER_RDF dataset trigger function for adding extra format-related triples to the RDF.

rdf_triples_general.pl

Just a EP_TRIGGER_BOILERPLATE_RDF trigger function for adding generic boilerplate triples to the RDF.

rdf_triples_repository.pl

  • rdf -
    • xmlns - Defines URI void XML namespace.

Also includes a EP_TRIGGER_REPOSITORY_RDF trigger function for adding repository-related triples to the RDF.

rdf_triples_skos.pl

  • rdf -
    • xmlns - Defines URI skos XML namespace.

Also includes an eprint EP_TRIGGER_RDF dataset trigger function for adding extra skos-related triples to the RDF.

rdf_uris.pl

  • rdf -
    • event_uri - Defines function for generating an event URI. (By default using event_title, event_dates and event_location fields).
    • event_location uri - Defines function for generating an event location URI. (By default using a MD5 checksum of the event_location field).
    • org_uri - Defines function for generating an organisation URI. (By default using a MD5 checksum of the provided organisation name).
    • person_uri - Defines function for generating an person URI. (By default using a MD5 checksum of the provided person's name from an EPrints name metadata field. I.e. has given and family sub-fields).
    • publication_uri - Defines function for generating an publication URI. (By default using either the issn field or a MD5 checksum of the publication field).

registration.pl

  • allow_web_signup - Whether user accounts can be requested and created via the EPrints repository's web interface / email verification. (Default is 1, user accounts can be requested through the web interface).
  • allow_reset_password - Whether forgotten passwords can be reset via the EPrints repository's web interface / email verification. (Default is 1, passwords can be reset through the web interface).
  • default_user_type - When a new user account is created what is its initial type. (Default is user).
  • check_registration_email - Defines a function that restricts the email addresses that can be used to register (and verify an account). Useful if you only want sign ups from people in your organisation. (Commented out by default, meaning no restriction).
  • use_request_copy_pin_security - Whether to use pin based request copy security, so users approving requests don't have to login or have an account to approve requests from emails. (By default commented out so not enabled).

render_paras.pl

  • render_paras - Converts text stored with new lines in the database so it still appears as paragraphs when rendered as HTML. Useful to apply to metadata fields like abstract. This has been superseded by EPrints::Extras::render_paras but could be useful if tweaks are needed to this function.

request_copy.pl

  • email_for_doc_request - Defines a function for determining which email address to send emails from visitors who have requested a copy of a restricted document. (By default this returns the email address set in contact_email metadata field if set. Otherwise, it returns undef, which means the a request copy link will not be added to the abstract/summary page).

restrict_paths.pl

  • restrict_paths - Defines an array reference of hash references that allows paths that can be request over HTTP/HTTPS to be restricted for particular IP addresses or subnets. This is useful if a search engine bot is crawling processor-intensive pages that there is little point indexing. Each hash reference contains a path (e.g. /cgi/exportview) and ips, an array reference of IP addresses or class A/B/C IP subnets (e.g. [ '1.2.3.4', '5.6.7.' ].

rewrite_url_demo.pl

Defines a commented out a EP_TRIGGER_URL_REWRITE trigger function that evaluates the URI of the request and rewrites it if it meets certain criteria. Can be useful if certain publications' primary hosting location is no longer this repository archive.

S

search.pl

  • match_start_of_name - Whether searches should match start of family names rather than just the complete family name (e.g. smi rather than smith. (Default is 0, do not match on start of name).
  • latest_citation - The eprint citation style file to use on /cgi/latest page for items published in the last 7 days.

search_xapian.pl

  • xapian_index_restricted_fulltext - Whether to index the full text of documents not publicly accessible. As clever searches may allow users to discover certain contents of these documents. (Default is 0, do not restrict the full texts from being indexed).

Also adds EP_TRIGGER_INDEX_FIELDS and EP_TRIGGER_REMOVED trigger functions to index fields in the Xapian database index or remove the Xapian database index if the eprint data iobject is removed.

security.pl

  • can_request_view_document - Defines a function to determine if a particular document can be viewed. (By default allows documents with security set to public to be viewed as well as restricted documents that include an authorised "request copy" code).
  • can_user_view_document - Defines a function to determine if a particular document can be viewed by a specific user. (By default allows documents with security set to public to be viewed as well as validuser for security documents to be viewed by logged in user unless their usertype is minuser. Also allows access to staffonly for security documents for users of type editor or admin or the owner of the eprint item).

session.pl

  • session_init - Defines a function to carry out any actions when a session is initialised. (No actions by default).
  • session_close - Defines a function to carry out any actions when a session is closed. (No actions by default).

signposting.pl

  • plugins
    • Export::BibTeX
      • params
        • signposting - Specifies Export::BibTeX plugin can be used in Signposting.
    • Export::DC
      • params
        • signposting - Specifies Export::DC plugin can be used in Signposting.
    • Export::JSON
      • params
        • signposting - Specifies Export::JSON plugin can be used in Signposting.
    • Export::XML
      • params
        • signposting - Specifies Export::XML plugin can be used in Signposting.

SystemSettings.pm

  • version - The core version of EPrints (By default EPrints 3.x.y. x.y varies dependent on version).
  • version_id - The core version ID of EPrints (By default eprints-3.x.y. x.y varies dependent on version).
  • base_path - The base path for EPrints on the filesystem. (By default /opt/eprints3).
  • show_ids_in_log - Whether to show repoistory archive ID is log messages. (By default 0 do not show archive ID in log messages).
  • group - The Unix group to set when EPrints creates new files (By default eprints).
  • version_history - An array reference of version IDs that proceeded the current version.
  • smtp_server - The SMTP server to connect to for sending emails (By default 127.0.0.1, i.e. localhost).
  • user - The Unix user to set when EPrints creates new files (By default eprints).
  • file_perms The Unix permissions mask to use when EPrints creates new files. (By default 0664).
  • invocation - Invocation commands for external executables and internal scripts. (By default an empty hash reference, as populated by invocations.pl).
  • executables - External executable and internal script paths. (By default a hash reference with one entry for perl. Further populated by executables.pl).
  • dir_perms - The Unix permissions mask to use when EPrints creates new directories. (By default 02775).
  • flavours - Flavours available for this EPrints installation. (By default zero plus any flavours found under the flavours/ sub-directory).
  • perl_module_isolation - If running multiple archives should Perl modules be isolated between each archive. (By default 0 they should not be isolated, as this can severely affect performance).
  • indexer_daemon
    • loglevel - What level of log messages to write to the indexer log file. (By default messages of at up to level 1).
    • rollcount - How many old log files to retain after the log file has been rolled/rotated (By default 5 old log files should be retained).
    • maxwait - How many seconds to wait after gracefully trying to kill the child indexer process before forcefully killing the child indexer process. (By default 8 seconds before the child indexer process should forcefully be killed).
    • interval - How many seconds to wait between checking if there are any indexer tasks ready to be run. (By default 30 seconds to wait for any indexer tasks ready to be run).
    • respawn - How many seconds before the child process of the indexer should respawn, prompting the indexer log to be rotated. (By default 86400 seconds, i.e. 1 day).
    • timeout - How many seconds the indexer should allow to complete a task before killing it. (By default 600 seconds, i.e. 10 minutes).
    • interrupt - Should the indexer immediately break out of loop checking for indexer tasks (By default 0, no it should not break out of loops. This is a nonsensical setting, as 1 would affectively disable the indexer whilst it kept running).

T

template_core.pl

Just adds a EP_TRIGGER_DYNAMIC_TEMPLATE trigger function to build the <head> section of the dynamic template.

template_edit_phrases.pl

Just adds a EP_TRIGGER_DYNAMIC_TEMPLATE trigger function to build the page and title pins of the "edit phrases" page for a particular page.

template_legacy.pl

Just adds a EP_TRIGGER_DYNAMIC_TEMPLATE trigger function to add legacy support for the $c->{dynamic_template}->{function} function that can be defined in configuration.

template_links.pl

Just adds a EP_TRIGGER_DYNAMIC_TEMPLATE trigger function to add various <link>s to the <head> section of the dynamic template.

U

upload.pl

  • max_upload_filesize - Maximum size of a file that can be uploaded to EPrints. This gets set in both Apache (HTTP and HTTPS) configuration and 99_uploadmethod_file_max_size.js under the archive's cfg/static/javascript/auto/ directory, when the generate_apacheconf is run. (By default 1 * 1024 * 1024 * 1024, i.e. 1 GiB).

user_auth_limits.pl

  • max_login_attempts - The maximum number of failed login attempts before an account is temporarily locked. (Default is 10 failed login attempts).
  • lockout_minutes - The number of minutes an account is locked out if there have been too many failed login attempts. (Default is 10 minutes the account is locked out).
  • reset_request_recent_hours - How many hours between a user being able to request password reset links. (Default is 24 hours between reset password emails to avoid users being spammed incessantly, if reset password misused).
  • max_account_requests - The maximum number of new user accounts can be requested (through /cgi/register in max_account_requests_minutes. (Default is 100 user accounts. This is quite high, as you may get a lot of people all trying to sign up at once if a mass email is sent round to an organisation asking everyone to sign up).
  • max_account_requests_minutes - The size of the window in minutes to check if max_account_requests has been exceeded. (By default 60 minutes, 1 hour).
  • password_maxlength - Sounds counter-intuitive but really long passwords can take a long time and a lot of resources to hash. So a limit prevents such a DoS attack. (By default 200 characters).

Also adds a EP_TRIGGER_VALIDATE_FIELD trigger function to validate that the length of the password submitted is not too long.

  • login_monitoring
    • enabled - Whether monitoring of logins (both failed and successful) are logged to archive's var/login_attempts/ directory in CSV format. (By default 1, i.e. enabled).
    • fields - Array reference of field names to include at start of file as column headers. (Commented out by default and only needed if function is also defined. The commented out fields: timestamp, username, password_length,ip_address, user_agent, target, login_status, userid, securecode are the same as those hard-coded).
    • function - Defines a function for generating a bespoke log message (CSV line) for a login attempt. (Commented out by default but function is the same as what is hard-coded).

user_fields_automatic.pl

  • set_user_automatic_fields - What fields to automatically update when an user data object record is committed. (By default frequency (to receive emails for editor alerts/saved searches) is set to never if not already set).

user_fields_default.pl

  • set_user_defaults - Sets default values for fields when user data object is created. (By default hideemail is set to the string TRUE, item_fields is set to [ "lastmod", "title", "type", "eprint_status" ] and review_fields is set to [ "status_changed", "title", "type", "userid" ].

user_fields.pl

  • fields
    • user - Adds the following extra fields to user data object: name, dept, org, address, country, hideemail, url.

user_render.pl

  • user_render - Defines a function that specifies how to display a user's metadata on their profile page.

user_review_scope.pl

  • editor_limit_fields - Specifies an array reference of eprint metadata fields that are presented when an admin user is configuring what items an editor user can see to review. (By default for zero this is subjects and type. For pub_lib, divisions is also included).

user_roles.pl

  • user_roles
    • user - Permitted actions for a regular user, i.e usertype of user. (By default: general, edit-own-record, saved-searches, set-password, deposit, change-email).
    • editor - Permitted actions for a editor user, i.e usertype of editor. (By default: general, edit-own-record, saved-searches, set-password, deposit, change-email, editor, view-status, staff-view).
    • admin - Permitted actions for a admin user, i.e usertype of editor. (By default: general, edit-own-record, saved-searches, set-password, deposit, change-email, editor, view-status, staff-view, admin edit-config).
    • min_user - Permitted actions for a minimal user, i.e usertype of minuser. (By default: general, edit-own-record, saved-searches, set-password, lock-username-to-email).
  • public_roles - Permitted actions for all users including those not logged in. (By default: +eprint/archive/rest/get, +subject/rest/get).
  • roles - Allows extra roles to be added together that collate a set of permissions. Sometimes referred to as "hats". (By default this is not defined but there is a commented out example for approve-hat).

user_search.pl

  • search
    • user - The configuration for the search for user data objects.
      • search_fields - Array reference of meta_fields to include in the user search form. (Defaults are: name, username, userid, dept, org, address, country, usertype, email).
      • citation - The user citation style to use for search results. (Default: result).
      • page_size - How many results to display per page. (Default: 20).
      • order_methods - Different ways or ordering search results (Defaults are: byname, byjoin, byrevjoin, bytype).
      • default_order - Default order for search results (Default: byname).
      • show_zero_results - Whether to go to results page with no results or say on search form page. (Default: 1, i.e. go to search results page).

user_validate.pl

  • validate_user - Defines a function to perform complex validations the metadata for a user data object. (This option is deprecated. Rather than adding validations to this configuration option, use a EP_TRIGGER_VALIDATE dataset trigger function for the user dataset).

V

views.pl

  • browse_views - An array reference of difference views for browsing the publications in the repository archive. See Adding new views for more details. The following flavours have browse views with following IDs (commented out views in brackets):
zero: subjects (year, person, people, type)
pub_lib: year, subjects, divisions, creators, (person, people, type)

views_render_items_example.pl

render_view_items_3col_boxes - Defines an example render function that can be used under browse view's variations attribute to lay out the listing of items differently, (i.e. in three columns).

views_render_menu_example.pl

render_view_menu_3col_boxes - Defines an example render function that can be used under browse view's render_menu attribute to lay out the menu of options differently, (i.e. in three columns).

vlit.pl

  • vlit
    • enable - Whether vlit is enabled. (By default 1, vlit is enabled).
    • copyright_url - The URL that points to a page that describes the copyright for vlit. (By default /vlit.html).

W

X

Y

y_export_privacy.pl

Logic which checks whether export_privacy is enabled and if so, restricts the following export plugins (that likely could contain information that may be a privacy concern) to staff (logged in users) only: JSON, XML, RDFN3, RDFNT, RDFXML, CSV, Simple.

Z

zz_version.pl

  • version_description - Builds the version description from the final values for version_long, version_alias, vendor_long.