Difference between revisions of "API:EPrints/DataObj/EPrint"
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<!-- Pod2Wiki=_preamble_ | <!-- Pod2Wiki=_preamble_ | ||
− | This page has been automatically generated from the EPrints 3. | + | This page has been automatically generated from the EPrints 3.4 source. Any wiki changes made between the 'Pod2Wiki=*' and 'Edit below this comment' comments will be lost. |
− | -->{{API}}{{Pod2Wiki}}{{API:Source|file= | + | -->{{API}}{{Pod2Wiki}}{{API:Source|file=EPrints/DataObj/EPrint.pm|package_name=EPrints::DataObj::EPrint}}[[Category:API|EPRINT]][[Category:API:EPrints/DataObj|EPRINT]]<div><!-- Edit below this comment --> |
<!-- Pod2Wiki=_private_ --><!-- Pod2Wiki=head_name --> | <!-- Pod2Wiki=_private_ --><!-- Pod2Wiki=head_name --> | ||
==NAME== | ==NAME== | ||
− | '''EPrints::DataObj::EPrint''' - | + | '''EPrints::DataObj::EPrint''' - The actual publication record. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 17: | Line 17: | ||
<!-- Pod2Wiki=head_description --> | <!-- Pod2Wiki=head_description --> | ||
==DESCRIPTION== | ==DESCRIPTION== | ||
− | This class represents a single eprint record and the metadata associated with it. This is associated with one of more EPrint::Document objects. | + | This class represents a single eprint record and the metadata associated with it. This is associated with one of more {{API:PodLink|file=EPrint/DataObj/Document|package_name=EPrint::DataObj::Document|section=|text=EPrint::DataObj::Document}} objects. |
− | + | This class is has the following core metadata fields. | |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 28: | Line 28: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=head_core_metadata_fields --> |
− | == | + | ==CORE METADATA FIELDS== |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 61: | Line 61: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=item_eprint_status --> |
− | === | + | ===eprint_status (set)=== |
+ | |||
+ | The current status of the eprint record. By default this must be one of: <tt>inbox</tt>, <tt>buffer</tt>, <tt>archive</tt>, <tt>deleted</tt>. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_source --> | ||
+ | ===source (text)=== | ||
− | + | Stores an identifier for the source of this record. Rarely used. | |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 76: | Line 88: | ||
===dir (text)=== | ===dir (text)=== | ||
− | The directory, relative to the documents directory for this repository, which this eprints data is stored in. | + | The directory, relative to the documents directory for this repository, which this eprints data is stored in. E.g. <tt>disk0/00/00/03/34</tt> for record 334. This cannot be cloned or imported. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 100: | Line 112: | ||
===lastmod (time)=== | ===lastmod (time)=== | ||
− | The date this record was last modified. | + | The date this record was last modified. This cannot be imported. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 109: | Line 121: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=item_status_changed --> |
− | === | + | ===status_changed (time)=== |
− | The date/time this record was moved between | + | The date/time this record was moved between statuses (see <tt>eprint_status</tt>). This cannot be imported. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 125: | Line 137: | ||
The type of this record, one of the types of the "eprint" dataset. | The type of this record, one of the types of the "eprint" dataset. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_metadata_visibility --> | ||
+ | ===metadata_visibility (set)=== | ||
+ | |||
+ | This field is automatically set. | ||
+ | |||
+ | show - appears normally | ||
+ | no_search - hidden from search/views | ||
+ | |||
+ | The <tt>hide</tt> option may be used to force an eprint to not appear in search/views but is not considered a stable option. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_fileinfo --> | ||
+ | ===fileinfo (longtext)=== | ||
+ | |||
+ | Stores a serialisation of the files including paths associated with the record. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_item_issues --> | ||
+ | ===item_issues (compound, multiple)=== | ||
+ | |||
+ | Stores any issues with the metadata for this record, which were reorted by a user of generated by running <tt>bin/issues_audit</tt>. Contains the following sub-fields: | ||
+ | |||
+ | id (id) - The unique ID of the issue. | ||
+ | type (id) - The type of issue. (E.g. duplicate title, similar title, etc.) | ||
+ | description (longtext) - A description of the issue that can be rendered to the user. | ||
+ | timestamp (time) - The time the issue was detected. | ||
+ | status (set) - The status of the issue, i.e. the progress on its resolution. | ||
+ | reported_by (itemref) - The user who reported the issue. | ||
+ | resolved_by (itemref) - The user who resolved the issue. | ||
+ | comment (longtext) - Comments about the issue and/or the progress of its resolution. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_item_issues_count --> | ||
+ | ===item_issues_count (int)=== | ||
+ | |||
+ | The current number of issues with the record. This field is volatile. =back | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_edit_lock --> | ||
+ | ===edit_lock (compound)=== | ||
+ | |||
+ | Stores information about any edit lock on the record to prevent other users from editing it. Contains the following sub-fields: | ||
+ | user (itemref) - The user holding the edit lock | ||
+ | since (int) - Time in seconds since the start of the last epoch when the edit lock begun. | ||
+ | until (int) - Time in seconds since the start of the last epoch when the edit lock will be released if the user does not otherwise release it. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_template --> | ||
+ | ===template (namedset)=== | ||
+ | |||
+ | The name of the template to use for displaying the abstract/summary page. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=head_references_and_related_objects --> | ||
+ | ==REFERENCES AND RELATED OBJECTS== | ||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_documents --> | ||
+ | ===documents (subobject, multiple)=== | ||
+ | |||
+ | A virtual field which represents the list of documents which are part of this record. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_files --> | ||
+ | ===files (subobject, multiple)=== | ||
+ | |||
+ | A virtual field which represents the list of files which are part of this record. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_userid --> | ||
+ | ===userid (itemref)=== | ||
+ | |||
+ | The ID of the user who deposited this eprint (if any). Scripted importing could cause this not to be set. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_importid --> | ||
+ | ===importid (itemref)=== | ||
+ | |||
+ | The ID of the import from which this eprint was imported. (Rarely used). | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_sword_depositor --> | ||
+ | ===sword_depositor (itemref)=== | ||
+ | |||
+ | The ID of the user who deposited this eprint through EPrints {{API:PodLink|file=http:|package_name=http:|section=|text=SWORD API}}. | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 136: | Line 306: | ||
===succeeds (itemref)=== | ===succeeds (itemref)=== | ||
− | The ID of the eprint (if any) which this succeeds | + | The ID of the eprint (if any) which this succeeds. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 148: | Line 318: | ||
===commentary (itemref)=== | ===commentary (itemref)=== | ||
− | The ID of the eprint (if any) which this eprint is a commentary on | + | The ID of the eprint (if any) which this eprint is a commentary on. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 157: | Line 327: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=head_instance_variables --> |
− | === | + | ==INSTANCE VARIABLES== |
+ | Also see [[API:EPrints/DataObj#INSTANCE_VARIABLES|EPrints::DataObj]]. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
− | + | <!-- Pod2Wiki= --> | |
+ | </div> | ||
+ | <!-- Pod2Wiki=item_$self->{user} --> | ||
+ | ===$self->{user}=== | ||
− | + | The user who is owner of this eprint data object. | |
− | |||
− | |||
− | The | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 176: | Line 352: | ||
<!-- Pod2Wiki=head_methods --> | <!-- Pod2Wiki=head_methods --> | ||
==METHODS== | ==METHODS== | ||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=head_constructor_methods --> | ||
+ | ===Constructor Methods=== | ||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_create --> | ||
+ | ====create==== | ||
+ | |||
+ | $eprint = EPrints::DataObj::EPrint->create( $session, $dataset, $data ) | ||
+ | Create a new EPrint entry in the given <tt>$dataset</tt>.. | ||
+ | |||
+ | If <tt>$data</tt> is defined, then this is used as the base for the new record. Otherwise the repository specific defaults provided by | ||
+ | [[API:EPrints/DataObj/EPrint#set_eprint_defaults|set_eprint_defaults]] are used. | ||
+ | |||
+ | The fields <tt>eprintid</tt> and <tt>dir</tt> will be overridden even if they are set. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_create_from_data --> | ||
+ | ====create_from_data==== | ||
+ | |||
+ | $dataobj = EPrints::DataObj::EPrint->create_from_data( $session, $data, $dataset ) | ||
+ | Create a new object of this type in the database. | ||
+ | |||
+ | <tt>$datase</tt>t is the dataset it will belong to. | ||
+ | |||
+ | <tt>$data</tt> is the data structured as with [[API:EPrints/DataObj#new_from_data|EPrints::DataObj#new_from_data]]. | ||
+ | |||
+ | This will also create sub-objects also. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=head_class_methods --> | ||
+ | ===Class Methods=== | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 184: | Line 415: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_system_field_info --> | <!-- Pod2Wiki=item_get_system_field_info --> | ||
− | ===get_system_field_info=== | + | ====get_system_field_info==== |
+ | |||
+ | $fields = EPrints::DataObj::EPrint->get_system_field_info | ||
+ | Return an array describing the system metadata of the eprint dataset. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_get_dataset_id --> | ||
+ | ====get_dataset_id==== | ||
+ | |||
+ | $dataset = EPrints::DataObj::EPrint->get_dataset_id | ||
+ | Returns the ID of the [[API:EPrints/DataSet|EPrints::DataSet]] object to which this record belongs. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_get_defaults --> | ||
+ | ====get_defaults==== | ||
− | $ | + | $defaults = EPrints::DataObj::EPrint->get_defaults( $class, $session, $data, $dataset ) |
− | + | Returns default values for this data object based on the starting <tt>$data</tt>. | |
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=head_object_methods --> | ||
+ | ===Object Methods=== | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 197: | Line 463: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_set_item_issues --> | <!-- Pod2Wiki=item_set_item_issues --> | ||
− | ===set_item_issues=== | + | ====set_item_issues==== |
$eprint->set_item_issues( $new_issues ) | $eprint->set_item_issues( $new_issues ) | ||
− | This method updates the issues | + | This method updates the issues associated to this eprint based on the <tt>$new_issues</tt> passed. |
− | If an existing issue is set as | + | If an existing issue is set as <tt>discovered</tt> and doesn't exist in <tt>$new_issues</tt> its status will be updated to <tt>autoresolved</tt>, otherwise the old issue's status and description are updated. |
− | Any issues in $new_issues that don't already exist will be appended. | + | Any issues in <tt>$new_issues</tt> that don't already exist will be appended. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 214: | Line 480: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_fileinfo --> | <!-- Pod2Wiki=item_fileinfo --> | ||
− | ===fileinfo=== | + | ====fileinfo==== |
− | $eprint->fileinfo | + | $fileinfo = $eprint->fileinfo |
− | The special '''fileinfo''' field contains the icon | + | The special '''fileinfo''' field contains the icon and main file paths and filenames for each non-volatile document in the eprint. This is a performance tweak to avoid having to retrieve documents when rendering eprint citations. |
Example: | Example: | ||
− | + | /style/images/fileicons/application_pdf.png;/20/1/paper.pdf|/20/4.hassmallThumbnailVersion/tdb_portrait.jpg;/20/4/tdb_portrait.jpg | |
− | |||
− | |||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 232: | Line 496: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=item_update_triggers --> |
− | === | + | ====update_triggers==== |
− | $ | + | $eprint->update_triggers |
− | + | Update all the stuff that needs updating before an eprint data object is written to the database. | |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 246: | Line 510: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_dataset --> | <!-- Pod2Wiki=item_get_dataset --> | ||
− | ===get_dataset=== | + | ====get_dataset==== |
$dataset = $eprint->get_dataset | $dataset = $eprint->get_dataset | ||
− | + | Returns the dataset to which this object belongs. This will return one of the virtual datasets, by default: <tt>inbox</tt>, <tt>buffer</tt>, <tt>archive</tt> or <tt>deletion</tt>. | |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 258: | Line 522: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=item_store_path --> |
− | === | + | ====store_path==== |
− | $ | + | $path = $eprint->store_path |
− | + | Get the storage path for this eprint data object. | |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 272: | Line 536: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_clone --> | <!-- Pod2Wiki=item_clone --> | ||
− | ===clone=== | + | ====clone==== |
$eprint = $eprint->clone( $dest_dataset, $copy_documents, $link ) | $eprint = $eprint->clone( $dest_dataset, $copy_documents, $link ) | ||
− | Create a copy of this | + | Create a copy of this eprint data object with a new ID in the given <tt>$dest_dataset</tt>. |
− | + | Returns the new eprint, or <tt>undef</tt> in the case of an error. | |
− | If $nolink is true then the new eprint is not connected to the old one. | + | If <tt>$copy_documents</tt> is set and <tt>true</tt> then the documents (and files) will be copied in addition to the metadata. |
+ | |||
+ | If <tt>$nolink</tt> is <tt>true</tt> then the new eprint is not connected to the old one by not setting the new eprint's <tt>succeeds</tt> field. | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 289: | Line 555: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_log_mail_owner --> | <!-- Pod2Wiki=item_log_mail_owner --> | ||
− | ===log_mail_owner=== | + | ====log_mail_owner==== |
$eprint->log_mail_owner( $mail ) | $eprint->log_mail_owner( $mail ) | ||
− | Log that the given mail message was | + | Log that the given <tt>$mail</tt> message was sent to the owner of this eprint data object. |
− | $mail is the same XHTML DOM that was sent as the email. | + | <tt>$mail</tt> is the same XHTML DOM that was sent as the email. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 304: | Line 570: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_editorial_contact --> | <!-- Pod2Wiki=item_get_editorial_contact --> | ||
− | ===get_editorial_contact=== | + | ====get_editorial_contact==== |
$user = $eprint->get_editorial_contact | $user = $eprint->get_editorial_contact | ||
− | + | Returns the user identified as the editorial contact for this item. | |
+ | |||
+ | By default returns <tt>undef</tt>. | ||
+ | |||
+ | N.B. This does no relate to any editors defined in the metadata for this eprint data object. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_empty --> | ||
+ | ====empty==== | ||
− | + | $eprint->empty( [ $clear_all ] ) | |
+ | Remove all documents and set to empty (almost) all fields. | ||
− | + | If <tt>$clear_all</tt> also unset <tt>rev_number</tt>, <tt>metadata_visibility</tt>, and <tt>eprint_status</tt> fields. | |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 321: | Line 602: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_remove --> | <!-- Pod2Wiki=item_remove --> | ||
− | ===remove=== | + | ====remove==== |
$success = $eprint->remove | $success = $eprint->remove | ||
− | Erase this eprint and any associated | + | Erase this eprint data object and any associated data objects from the database and filesystem. |
− | This should only be called on eprints in | + | This should only be called on eprints in <tt>inbox</tt> or <tt>buffer</tt>. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 336: | Line 617: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_commit --> | <!-- Pod2Wiki=item_commit --> | ||
− | ===commit=== | + | ====commit==== |
− | $success = $eprint->commit( [$force] ); | + | $success = $eprint->commit( [ $force ] ); |
Commit any changes to the database. | Commit any changes to the database. | ||
Line 345: | Line 626: | ||
The actions this method does are dependent on some object attributes: | The actions this method does are dependent on some object attributes: | ||
− | changed - | + | changed - hash of changed fields (from [[API:EPrints/DataObj|EPrints::DataObj]]) |
− | non_volatile_change - | + | non_volatile_change - boolean (from [[API:EPrints/DataObj|EPrints::DataObj]]) |
− | under_construction - | + | under_construction - boolean |
− | If | + | If <tt>datestamp</tt> is unset and this eprint is in the <tt>archive</tt> dataset <tt>datestamp</tt> will always be set which will in turn set <tt>datestamp</tt> as changed. |
If no field values were changed and <tt>$force</tt> is false returns. | If no field values were changed and <tt>$force</tt> is false returns. | ||
− | If <tt>under_construction</tt> is false: | + | If <tt>under_construction</tt> is <tt>false</tt>: |
- static files updated | - static files updated | ||
− | If <tt>non_volatile_change</tt> is true: | + | If <tt>non_volatile_change</tt> is <tt>true</tt>: |
- '''lastmod''' field updated | - '''lastmod''' field updated | ||
- triples update queued | - triples update queued | ||
− | If <tt>under_construction</tt> is false and <tt>non_volatile_change</tt> is true: | + | If <tt>under_construction</tt> is <tt>false</tt> and <tt>non_volatile_change</tt> is <tt>true</tt>: |
- revision generated | - revision generated | ||
− | The goal of these controls is to only trigger expensive processes in response to user actions. Revisions need to be generated when the user changes metadata or uploads new files (see [[API:EPrints/DataObj/Document#commit|EPrints::DataObj::Document | + | The goal of these controls is to only trigger expensive processes in response to user actions. Revisions need to be generated when the user changes metadata or uploads new files (see [[API:EPrints/DataObj/Document#commit|EPrints::DataObj::Document#commit]]). |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 373: | Line 654: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_save_revision --> | <!-- Pod2Wiki=item_save_revision --> | ||
− | ===save_revision=== | + | ====save_revision==== |
$eprint->save_revision( %opts ) | $eprint->save_revision( %opts ) | ||
− | Increase the eprint revision number and save a complete copy of the record into the history (see [[API:EPrints/DataObj/History|EPrints::DataObj::History]]). | + | Increase the eprint revision number and save a complete copy of the record into the history (see [[API:EPrints/DataObj/History|EPrints::DataObj::History]]). |
Options: | Options: | ||
Line 392: | Line 673: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_validate --> | <!-- Pod2Wiki=item_validate --> | ||
− | ===validate=== | + | ====validate==== |
$problems = $eprint->validate( [$for_archive], $workflow_id ) | $problems = $eprint->validate( [$for_archive], $workflow_id ) | ||
− | Return a reference to an array of XHTML DOM objects describing validation problems with the entire eprint based on $workflow_id. | + | Return a reference to an array of XHTML DOM objects describing validation problems with the entire eprint based on <tt>$workflow_id</tt>. |
− | If $workflow_id is undefined defaults to | + | If <tt>$workflow_id</tt> is undefined defaults to <tt>default</tt>. |
A reference to an empty array indicates no problems. | A reference to an empty array indicates no problems. | ||
Line 411: | Line 692: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_skip_validation --> | <!-- Pod2Wiki=item_skip_validation --> | ||
− | ===skip_validation=== | + | ====skip_validation==== |
$boolean = $eprint->skip_validation | $boolean = $eprint->skip_validation | ||
− | Returns true if this eprint should pass validation without being properly validated. This is to allow the use of | + | Returns <tt>true</tt> if this eprint should pass validation without being properly validated. This is to allow the use of dodgy data imported from legacy systems. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 424: | Line 705: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_prune_documents --> | <!-- Pod2Wiki=item_prune_documents --> | ||
− | ===prune_documents=== | + | ====prune_documents==== |
$eprint->prune_documents | $eprint->prune_documents | ||
− | Remove any documents associated with this eprint | + | Remove any documents associated with this eprint that do not actually have any files. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 437: | Line 718: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_all_documents --> | <!-- Pod2Wiki=item_get_all_documents --> | ||
− | ===get_all_documents=== | + | ====get_all_documents==== |
@documents = $eprint->get_all_documents | @documents = $eprint->get_all_documents | ||
− | Return a list of all | + | Return a list of all [[API:EPrints/DataObj/Document|EPrints::DataObj::Document]] objects associated with this eprint excluding documents with a <tt>isVolatileVersionOf</tt> relation, (e.g. thumbnails). |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 450: | Line 731: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_move_to_deletion --> | <!-- Pod2Wiki=item_move_to_deletion --> | ||
− | ===move_to_deletion=== | + | ====move_to_deletion==== |
$success = $eprint->move_to_deletion | $success = $eprint->move_to_deletion | ||
− | Transfer the | + | Transfer the eprint into the <tt>deletion</tt> dataset. Should only be called by eprints in the <tt>archive</tt> dataset. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 463: | Line 744: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_move_to_inbox --> | <!-- Pod2Wiki=item_move_to_inbox --> | ||
− | ===move_to_inbox=== | + | ====move_to_inbox==== |
$success = $eprint->move_to_inbox | $success = $eprint->move_to_inbox | ||
− | Transfer the | + | Transfer the eprint into the <tt>inbox</tt> dataset. Should only be called for eprints in the <tt>buffer</tt> dataset. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 476: | Line 757: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_move_to_buffer --> | <!-- Pod2Wiki=item_move_to_buffer --> | ||
− | ===move_to_buffer=== | + | ====move_to_buffer==== |
$success = $eprint->move_to_buffer | $success = $eprint->move_to_buffer | ||
− | Transfer the | + | Transfer the eprint into the <tt>buffer</tt> dataset. Should only be called by eprints in the <tt>inbox</tt> or <tt>archive</tt> datasets. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 489: | Line 770: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_move_to_archive --> | <!-- Pod2Wiki=item_move_to_archive --> | ||
− | ===move_to_archive=== | + | ====move_to_archive==== |
$success = $eprint->move_to_archive | $success = $eprint->move_to_archive | ||
− | Move this eprint into the main | + | Move this eprint into the main <tt>archive</tt> dataset. Normally only called on eprints in <tt>deletion</tt> or <tt>buffer</tt> datasets. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 502: | Line 783: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_local_path --> | <!-- Pod2Wiki=item_local_path --> | ||
− | ===local_path=== | + | ====local_path==== |
$path = $eprint->local_path | $path = $eprint->local_path | ||
− | + | Returns the full path of the eprint data onject directory on the local filesystem with no trailing slash. | |
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_path --> | ||
+ | ====path==== | ||
+ | |||
+ | $path = $eprint->path | ||
+ | Returns the full URL path of the eprint data object including a trailing slash. E.g. <tt>1234/</tt>. | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 515: | Line 809: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_url_stem --> | <!-- Pod2Wiki=item_url_stem --> | ||
− | ===url_stem=== | + | ====url_stem==== |
$url = $eprint->url_stem | $url = $eprint->url_stem | ||
− | + | Returns the URL to this eprint's directory. | |
+ | |||
+ | N.B. This includes the trailing slash, unlike the local_path method. | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 528: | Line 824: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_generate_static --> | <!-- Pod2Wiki=item_generate_static --> | ||
− | ===generate_static=== | + | ====generate_static==== |
$eprint->generate_static | $eprint->generate_static | ||
− | Generate the static version of the abstract web page. In a multi-language repository this will generate one version per language. | + | Generate the static version of the abstract/summary web page. In a multi-language repository this will generate one version per language. |
− | If called on inbox or buffer, remove the abstract page. | + | If called on eprints in the <tt>inbox</tt> or <tt>buffer</tt>, remove the abstract/summary page. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 543: | Line 839: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_remove_static --> | <!-- Pod2Wiki=item_remove_static --> | ||
− | ===remove_static=== | + | ====remove_static==== |
$eprint->remove_static | $eprint->remove_static | ||
Line 556: | Line 852: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_render --> | <!-- Pod2Wiki=item_render --> | ||
− | ===render=== | + | ====render==== |
− | ( $description, $title, $links ) = $eprint->render | + | ( $description, $title, $links ) = $eprint->render( $preview ) |
− | Render the eprint. | + | Render the eprint. If <tt>$preview</tt> is <tt>true</tt> then render a preview of the eprint data object |
− | Calls [[API:EPrints/DataObj/EPrint#eprint_render|eprint_render]] to actually render the <tt>$eprint</tt>, if it isn't deleted. | + | The 3 returned values are references to XHTML DOM objects. <tt>$description</tt> is the public viewable description of this eprintthat appears as the body of the abstract page. <tt>$title</tt> is the title of the abstract page for this eprint. <tt>$links</tt> is any elements which should go in the <tt>head</tt> elemeny of this HTML page. |
+ | |||
+ | Calls [[API:EPrints/DataObj/EPrint#eprint_render|eprint_render]] to actually render the <tt>$eprint</tt>, if it isn't in the <tt>deleted</tt> dataset. | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 570: | Line 868: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=item_render_preview --> |
− | === | + | ====render_preview==== |
− | ( $ | + | ( $description, $title, $links ) = $eprint->render_preview |
− | Render | + | Render a preview version of this eprint. |
+ | |||
+ | See [[API:EPrints/DataObj/EPrint#render|render]] for more details | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 584: | Line 884: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_control_url --> | <!-- Pod2Wiki=item_get_control_url --> | ||
− | ===get_control_url=== | + | ====get_control_url==== |
$url = $eprint->get_control_url | $url = $eprint->get_control_url | ||
Line 597: | Line 897: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_url --> | <!-- Pod2Wiki=item_get_url --> | ||
− | ===get_url=== | + | ====get_url==== |
$url = $eprint->get_url | $url = $eprint->get_url | ||
− | Return the public URL of this eprints abstract page. | + | Return the public URL of this eprints abstract/summary page. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 610: | Line 910: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_user --> | <!-- Pod2Wiki=item_get_user --> | ||
− | ===get_user=== | + | ====get_user==== |
$user = $eprint->get_user | $user = $eprint->get_user | ||
− | Return the EPrints::DataObj::User to whom this eprint belongs (if any). | + | Return the [[API:EPrints/DataObj/User|EPrints::DataObj::User]] to whom this eprint belongs (if any). |
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_later_in_thread --> | ||
+ | ====later_in_thread==== | ||
+ | |||
+ | $list = $eprint->later_in_thread( $field ) | ||
+ | Return an [[API:EPrints/List|EPrints::List]] of the immediately later items in the thread. | ||
+ | |||
+ | <tt>$field</tt> is typically the <tt>succeeds</tt> field that generates the thread of eprints. | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 623: | Line 938: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_in_thread --> | <!-- Pod2Wiki=item_in_thread --> | ||
− | ===in_thread=== | + | ====in_thread==== |
+ | |||
+ | $boolean = $eprint->in_thread( $field ) | ||
+ | Returns <tt>true</tt> if this eprint is in the <tt>$field</tt> thread. | ||
− | + | <tt>$field</tt> is typically the <tt>succeeds</tt> field that generates the thread of eprints. | |
− | |||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 636: | Line 953: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_first_in_thread --> | <!-- Pod2Wiki=item_first_in_thread --> | ||
− | ===first_in_thread=== | + | ====first_in_thread==== |
$eprint = $eprint->first_in_thread( $field ) | $eprint = $eprint->first_in_thread( $field ) | ||
Return the first (earliest) version or first paper in the thread of commentaries of this paper in the repository. | Return the first (earliest) version or first paper in the thread of commentaries of this paper in the repository. | ||
+ | |||
+ | <tt>$field</tt> is typically the <tt>succeeds</tt> field that generates the thread of eprints. | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 649: | Line 968: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_last_in_thread --> | <!-- Pod2Wiki=item_last_in_thread --> | ||
− | ===last_in_thread=== | + | ====last_in_thread==== |
$eprint = $eprint->last_in_thread( $field ) | $eprint = $eprint->last_in_thread( $field ) | ||
− | Returns the latest item in the $field thread on this eprint's branch of the thread tree. | + | Returns the latest item in the <tt>$field</tt> thread on this eprint's branch of the thread tree. |
+ | |||
+ | <tt>$field</tt> is typically the <tt>succeeds</tt> field that generates the thread of eprints. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_removed_from_thread --> | ||
+ | ====removed_from_thread==== | ||
+ | |||
+ | $eprint->removed_from_thread( $field, [ $parent ] ) | ||
+ | Fix the <tt>metadata_visibility</tt> for the eprint data object after it has been removed from the <tt>$field</tt> (typically <tt>succeeds</tt>) based thread. | ||
+ | |||
+ | The change in <tt>$parent</tt> must be committed before this method is called. | ||
+ | |||
+ | N.B. <tt>$parent</tt> (i.e. the eprint this eprint succeeds) is not required for this method but included for consistency. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_added_to_thread --> | ||
+ | ====added_to_thread==== | ||
+ | |||
+ | $eprint->added_to_thread( $field, $parent ) | ||
+ | Fix the <tt>metadata_visibility</tt> for this eprint data object now the has the <tt>$parent</tt> set in the <tt>$field</tt> (typically the <tt>succeeds</tt> field). | ||
+ | |||
+ | Does not update <tt>metadata_visibility</tt> if <tt>$parent</tt> is not in <tt>archive</tt>. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_map_thread --> | ||
+ | ====map_thread==== | ||
+ | |||
+ | $eprint->map_thread( $field, $f ) | ||
+ | Apply function <tt>$f</tt> to every eprint data object in the <tt>$field</tt> based thread that includes this eprint. | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 662: | Line 1,028: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_render_version_thread --> | <!-- Pod2Wiki=item_render_version_thread --> | ||
− | ===render_version_thread=== | + | ====render_version_thread==== |
$xhtml = $eprint->render_version_thread( $field ) | $xhtml = $eprint->render_version_thread( $field ) | ||
− | + | Return XHTML DOM rendering describing the entire <tt>$field</tt> based thread for this eprint data object as nested unordered lists. | |
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_loop_error --> | ||
+ | ====loop_error==== | ||
+ | |||
+ | $eprint->loop_error( $field, @looped_ids ) | ||
+ | Log repository error message because this eprint is part of a loop of eprint data objects (with IDs <tt>looped_ids</tt>) in a <tt>$field</tt> based thread. | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 675: | Line 1,054: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_type --> | <!-- Pod2Wiki=item_get_type --> | ||
− | ===get_type=== | + | ====get_type==== |
$type = $eprint->get_type | $type = $eprint->get_type | ||
Return the type of this eprint. | Return the type of this eprint. | ||
+ | This is an alias of: | ||
+ | |||
+ | $eprint->value( "type" ) | ||
+ | |||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 688: | Line 1,071: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_user_roles --> | <!-- Pod2Wiki=item_user_roles --> | ||
− | ===user_roles=== | + | ====user_roles==== |
@roles = $eprint->user_roles( $user ) | @roles = $eprint->user_roles( $user ) | ||
− | Return the | + | Return the roles the specified <tt>$user</tt> has for this eprint. |
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_datestamp --> | ||
+ | ====datestamp==== | ||
+ | |||
+ | $eprint->datestamp | ||
+ | DEPRECATED | ||
+ | |||
+ | Now just generates a deprecated error message to the log. Use: | ||
+ | |||
+ | $eprint->value( 'datestamp' ); | ||
+ | |||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 701: | Line 1,101: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_in_editorial_scope_of --> | <!-- Pod2Wiki=item_in_editorial_scope_of --> | ||
− | ===in_editorial_scope_of=== | + | ====in_editorial_scope_of==== |
$boolean = $eprint->in_editorial_scope_of( $possible_editor ) | $boolean = $eprint->in_editorial_scope_of( $possible_editor ) | ||
− | Returns true if $possible_editor can edit this eprint. This is according to the user editperms. | + | Returns <tt>true</tt> if <tt>$possible_editor</tt> can edit this eprint. This is according to the user's <tt>editperms</tt>. |
− | This does not mean the user has the editor | + | This does not mean the user has the editor privilege, just that if they do then they may edit the eprint. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 716: | Line 1,116: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_has_owner --> | <!-- Pod2Wiki=item_has_owner --> | ||
− | ===has_owner=== | + | ====has_owner==== |
$boolean = $eprint->has_owner( $possible_owner ) | $boolean = $eprint->has_owner( $possible_owner ) | ||
− | Returns true if $possible_owner can edit this eprint. This is according to the user editperms. | + | Returns <tt>true</tt> if <tt>$possible_owner</tt> can edit this eprint. This is according to the user's <tt>editperms</tt>. |
− | This does not mean the user has the editor | + | This does not mean the user has the editor privilege, just that if they do then they may edit the given eprint. |
− | Uses the callback | + | Uses the callback <tt>does_user_own_eprint</tt> if available. |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 733: | Line 1,133: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_obtain_lock --> | <!-- Pod2Wiki=item_obtain_lock --> | ||
− | ===obtain_lock=== | + | ====obtain_lock==== |
$boolean = $eprint->obtain_lock( $user ) | $boolean = $eprint->obtain_lock( $user ) | ||
+ | Assign the edit lock for this eprint data object to the specified <tt>$user</tt>. | ||
+ | |||
+ | Returns a boolean depending on whether the edit lock was successfully assigned. | ||
+ | |||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 744: | Line 1,148: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_remove_lock --> | <!-- Pod2Wiki=item_remove_lock --> | ||
− | ===remove_lock=== | + | ====remove_lock==== |
$boolean = $eprint->remove_lock( $user ) | $boolean = $eprint->remove_lock( $user ) | ||
+ | Remove the edit lock for this eprint data object to the specified <tt>$user</tt>. | ||
+ | |||
+ | Returns a boolean depending on whether the edit lock was successfully removed. | ||
+ | |||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 755: | Line 1,163: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_could_obtain_lock --> | <!-- Pod2Wiki=item_could_obtain_lock --> | ||
− | ===could_obtain_lock=== | + | ====could_obtain_lock==== |
$boolean = $eprint->could_obtain_lock( $user ) | $boolean = $eprint->could_obtain_lock( $user ) | ||
+ | Return a boolean depending on whether the specified <tt>$user</tt> could obtain ane edit lock on this eprint. | ||
+ | |||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 766: | Line 1,176: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_is_locked --> | <!-- Pod2Wiki=item_is_locked --> | ||
− | ===is_locked=== | + | ====is_locked==== |
+ | |||
+ | $boolean = $eprint->is_locked | ||
+ | Return a boolean depending on whether this eprint currently has an edit lock. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=head_utility_methods --> | ||
+ | ===Utility Methods=== | ||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_render_issues --> | ||
+ | ====render_issues==== | ||
+ | |||
+ | $ol_frag = EPrints::DataObj::EPrint::render_issues( $session, $field, $value ) | ||
+ | Returns a rendering of the list of issues from <tt>$value</tt> array reference (as a <tt>ol</tt> (ordered list) XHTML DOM fragment) for the <tt>item_issues</tt> field provided by <tt>$field</tt>. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_order_issues_newest_open_timestamp --> | ||
+ | ====order_issues_newest_open_timestamp==== | ||
+ | |||
+ | $timestamps = EPrints::DataObj::EPrint::order_issues_newest_open_timestamp( $field, $value, $session, $langid, $dataset ) | ||
+ | Returns a string containing the timestamp for the newest issue that has <tt>status</tt> <tt>reported</tt> or <tt>discovered</tt>. | ||
+ | |||
+ | This method is called through the [[API:EPrints/MetaField|EPrints::MetaField]] <tt>make_value_orderkey</tt> attribute. | ||
+ | |||
+ | <tt>$field</tt> is the <tt>item_issues</tt> field. <tt>$value</tt> is an array reference of the issues. <tt>$session</tt> is the [[API:EPrints/Repository|EPrints::Repository]] object, <tt>$langid</tt> is the language ID and <tt>$dataset</tt> is the eprint dataset | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_render_fileinfo --> | ||
+ | ====render_fileinfo==== | ||
+ | |||
+ | $frag = EPrints::DataObj::EPrint::render_fileinfo( $session, $field, $value, $alllangs, $nolink, $eprint ) | ||
+ | Render method for fileinfo field. Returns a XHTML DOM fragment containing the documents stored in the <tt>fileinfo</tt> field. | ||
+ | |||
+ | This method is called through the [[API:EPrints/MetaField|EPrints::MetaField]] <tt>render_value</tt> attribute. | ||
+ | |||
+ | <tt>$session</tt> is the [[API:EPrints/Repository|EPrints::Repository]] object. <tt>$field</tt> is the <tt>fileinfo</tt> field. <tt>$value</tt> is the value for this field. <tt>$session</tt> is the [[API:EPrints/Repository|EPrints::Repository]] object, <tt>$alllangs</tt> is a boolean to render in all languages if an <tt>EPrints::MetaField::Multilang</tt> field. <tt>$nolink</tt> is a boolean on whether to not render links. <tt>$eprint</tt> is the eprint data object that has the <tt>fileinfo</tt> field. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_eprintid_to_path --> | ||
+ | ====eprintid_to_path==== | ||
+ | |||
+ | $path = EPrints::DataObj::eprintid_to_path( $id ) | ||
+ | Returns path of the storage directory based on the eprint <tt>$id</tt> provided. | ||
+ | |||
+ | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=item_render_box_list --> | ||
+ | ====render_box_list==== | ||
+ | |||
+ | $frag = EPrints::DataObj::EPrint::render_box_list( $session, $eprint, $list ) | ||
+ | Returns a rendering of the [[API:EPrints/Plugin/Screen/Box|EPrints::Plugin::Screen::Box]] plugins from <tt>$list</tt> against the <tt>$eprint</tt> specified | ||
− | |||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 777: | Line 1,271: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_render_edit_lock --> | <!-- Pod2Wiki=item_render_edit_lock --> | ||
− | ===render_edit_lock=== | + | ====render_edit_lock==== |
+ | |||
+ | $xhtml = EPrints::DataObj::EPrints::render_edit_lock( $session, $field, $value, $alllangs, $nolink, $eprint ) | ||
+ | Returns an XHTML DOM fragment providing information about the edit lock for metadata provided by <tt>$value</tt>. | ||
+ | |||
+ | This is used by the <tt>render_value</tt> attribute of the <tt>edit_lock</tt> field, which specified, the <tt>$session</tt>, <tt>$field</tt>, <tt>$value</tt>, <tt>$alllangs</tt>, <tt>$nolink</tt> and <tt>$eprint</tt> parameters. However, only the <tt>$session</tt>, <tt>$field</tt>, <tt>$value</tt> and <tt>$eprint</tt> parameters are required. | ||
− | |||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 801: | Line 1,299: | ||
===validate_field=== | ===validate_field=== | ||
− | + | validate_field( $field, $value, $session, [$for_archive] ) | |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 813: | Line 1,311: | ||
===validate_eprint=== | ===validate_eprint=== | ||
− | + | validate_eprint( $eprint, $session, [$for_archive] ) | |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 825: | Line 1,323: | ||
===set_eprint_defaults=== | ===set_eprint_defaults=== | ||
− | + | set_eprint_defaults( $data, $session ) | |
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 837: | Line 1,335: | ||
===set_eprint_automatic_fields=== | ===set_eprint_automatic_fields=== | ||
− | + | set_eprint_automatic_fields( $eprint ) | |
− | + | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> | ||
Line 849: | Line 1,347: | ||
===eprint_render=== | ===eprint_render=== | ||
− | + | eprint_render( $eprint, $session ) | |
− | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | |
+ | <span style='display:none'>User Comments</span> | ||
+ | <!-- Edit below this comment --> | ||
+ | |||
+ | |||
+ | <!-- Pod2Wiki= --> | ||
+ | </div> | ||
+ | <!-- Pod2Wiki=head_see_also --> | ||
+ | ==SEE ALSO== | ||
+ | [[API:EPrints/DataObj|EPrints::DataObj]] and [[API:EPrints/DataSet|EPrints::DataSet]]. | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 862: | Line 1,369: | ||
<!-- Pod2Wiki=head_copyright --> | <!-- Pod2Wiki=head_copyright --> | ||
==COPYRIGHT== | ==COPYRIGHT== | ||
+ | {{API:Copyright}} | ||
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
<span style='display:none'>User Comments</span> | <span style='display:none'>User Comments</span> |
Latest revision as of 16:48, 10 January 2022
EPrints 3 Reference: Directory Structure - Metadata Fields - Repository Configuration - XML Config Files - XML Export Format - EPrints data structure - Core API - Data Objects
Latest Source Code (3.4, 3.3) | Revision Log | Before editing this page please read Pod2Wiki
Contents
- 1 NAME
- 2 DESCRIPTION
- 3 CORE METADATA FIELDS
- 3.1 eprintid (int)
- 3.2 rev_number (int)
- 3.3 eprint_status (set)
- 3.4 source (text)
- 3.5 dir (text)
- 3.6 datestamp (time)
- 3.7 lastmod (time)
- 3.8 status_changed (time)
- 3.9 type (namedset)
- 3.10 metadata_visibility (set)
- 3.11 fileinfo (longtext)
- 3.12 item_issues (compound, multiple)
- 3.13 item_issues_count (int)
- 3.14 edit_lock (compound)
- 3.15 template (namedset)
- 4 REFERENCES AND RELATED OBJECTS
- 5 INSTANCE VARIABLES
- 6 METHODS
- 6.1 Constructor Methods
- 6.2 Class Methods
- 6.3 Object Methods
- 6.3.1 set_item_issues
- 6.3.2 fileinfo
- 6.3.3 update_triggers
- 6.3.4 get_dataset
- 6.3.5 store_path
- 6.3.6 clone
- 6.3.7 log_mail_owner
- 6.3.8 get_editorial_contact
- 6.3.9 empty
- 6.3.10 remove
- 6.3.11 commit
- 6.3.12 save_revision
- 6.3.13 validate
- 6.3.14 skip_validation
- 6.3.15 prune_documents
- 6.3.16 get_all_documents
- 6.3.17 move_to_deletion
- 6.3.18 move_to_inbox
- 6.3.19 move_to_buffer
- 6.3.20 move_to_archive
- 6.3.21 local_path
- 6.3.22 path
- 6.3.23 url_stem
- 6.3.24 generate_static
- 6.3.25 remove_static
- 6.3.26 render
- 6.3.27 render_preview
- 6.3.28 get_control_url
- 6.3.29 get_url
- 6.3.30 get_user
- 6.3.31 later_in_thread
- 6.3.32 in_thread
- 6.3.33 first_in_thread
- 6.3.34 last_in_thread
- 6.3.35 removed_from_thread
- 6.3.36 added_to_thread
- 6.3.37 map_thread
- 6.3.38 render_version_thread
- 6.3.39 loop_error
- 6.3.40 get_type
- 6.3.41 user_roles
- 6.3.42 datestamp
- 6.3.43 in_editorial_scope_of
- 6.3.44 has_owner
- 6.3.45 obtain_lock
- 6.3.46 remove_lock
- 6.3.47 could_obtain_lock
- 6.3.48 is_locked
- 6.4 Utility Methods
- 7 CALLBACKS
- 8 SEE ALSO
- 9 COPYRIGHT
NAME
EPrints::DataObj::EPrint - The actual publication record.
DESCRIPTION
This class represents a single eprint record and the metadata associated with it. This is associated with one of more EPrint::DataObj::Document objects.
This class is has the following core metadata fields.
CORE METADATA FIELDS
eprintid (int)
The unique numerical ID of this eprint.
rev_number (int)
The number of the current revision of this record.
eprint_status (set)
The current status of the eprint record. By default this must be one of: inbox, buffer, archive, deleted.
source (text)
Stores an identifier for the source of this record. Rarely used.
dir (text)
The directory, relative to the documents directory for this repository, which this eprints data is stored in. E.g. disk0/00/00/03/34 for record 334. This cannot be cloned or imported.
datestamp (time)
The date this record first appeared live in the repository.
lastmod (time)
The date this record was last modified. This cannot be imported.
status_changed (time)
The date/time this record was moved between statuses (see eprint_status). This cannot be imported.
type (namedset)
The type of this record, one of the types of the "eprint" dataset.
metadata_visibility (set)
This field is automatically set.
show - appears normally no_search - hidden from search/views
The hide option may be used to force an eprint to not appear in search/views but is not considered a stable option.
fileinfo (longtext)
Stores a serialisation of the files including paths associated with the record.
item_issues (compound, multiple)
Stores any issues with the metadata for this record, which were reorted by a user of generated by running bin/issues_audit. Contains the following sub-fields:
id (id) - The unique ID of the issue. type (id) - The type of issue. (E.g. duplicate title, similar title, etc.) description (longtext) - A description of the issue that can be rendered to the user. timestamp (time) - The time the issue was detected. status (set) - The status of the issue, i.e. the progress on its resolution. reported_by (itemref) - The user who reported the issue. resolved_by (itemref) - The user who resolved the issue. comment (longtext) - Comments about the issue and/or the progress of its resolution.
item_issues_count (int)
The current number of issues with the record. This field is volatile. =back
edit_lock (compound)
Stores information about any edit lock on the record to prevent other users from editing it. Contains the following sub-fields:
user (itemref) - The user holding the edit lock since (int) - Time in seconds since the start of the last epoch when the edit lock begun. until (int) - Time in seconds since the start of the last epoch when the edit lock will be released if the user does not otherwise release it.
template (namedset)
The name of the template to use for displaying the abstract/summary page.
REFERENCES AND RELATED OBJECTS
documents (subobject, multiple)
A virtual field which represents the list of documents which are part of this record.
files (subobject, multiple)
A virtual field which represents the list of files which are part of this record.
userid (itemref)
The ID of the user who deposited this eprint (if any). Scripted importing could cause this not to be set.
importid (itemref)
The ID of the import from which this eprint was imported. (Rarely used).
sword_depositor (itemref)
The ID of the user who deposited this eprint through EPrints SWORD API.
succeeds (itemref)
The ID of the eprint (if any) which this succeeds.
commentary (itemref)
The ID of the eprint (if any) which this eprint is a commentary on.
INSTANCE VARIABLES
Also see EPrints::DataObj.
$self->{user}
The user who is owner of this eprint data object.
METHODS
Constructor Methods
create
$eprint = EPrints::DataObj::EPrint->create( $session, $dataset, $data )
Create a new EPrint entry in the given $dataset..
If $data is defined, then this is used as the base for the new record. Otherwise the repository specific defaults provided by
set_eprint_defaults are used.
The fields eprintid and dir will be overridden even if they are set.
create_from_data
$dataobj = EPrints::DataObj::EPrint->create_from_data( $session, $data, $dataset )
Create a new object of this type in the database.
$dataset is the dataset it will belong to.
$data is the data structured as with EPrints::DataObj#new_from_data.
This will also create sub-objects also.
Class Methods
get_system_field_info
$fields = EPrints::DataObj::EPrint->get_system_field_info
Return an array describing the system metadata of the eprint dataset.
get_dataset_id
$dataset = EPrints::DataObj::EPrint->get_dataset_id
Returns the ID of the EPrints::DataSet object to which this record belongs.
get_defaults
$defaults = EPrints::DataObj::EPrint->get_defaults( $class, $session, $data, $dataset )
Returns default values for this data object based on the starting $data.
Object Methods
set_item_issues
$eprint->set_item_issues( $new_issues )
This method updates the issues associated to this eprint based on the $new_issues passed.
If an existing issue is set as discovered and doesn't exist in $new_issues its status will be updated to autoresolved, otherwise the old issue's status and description are updated.
Any issues in $new_issues that don't already exist will be appended.
fileinfo
$fileinfo = $eprint->fileinfo
The special fileinfo field contains the icon and main file paths and filenames for each non-volatile document in the eprint. This is a performance tweak to avoid having to retrieve documents when rendering eprint citations.
Example:
/style/images/fileicons/application_pdf.png;/20/1/paper.pdf|/20/4.hassmallThumbnailVersion/tdb_portrait.jpg;/20/4/tdb_portrait.jpg
update_triggers
$eprint->update_triggers
Update all the stuff that needs updating before an eprint data object is written to the database.
get_dataset
$dataset = $eprint->get_dataset
Returns the dataset to which this object belongs. This will return one of the virtual datasets, by default: inbox, buffer, archive or deletion.
store_path
$path = $eprint->store_path
Get the storage path for this eprint data object.
clone
$eprint = $eprint->clone( $dest_dataset, $copy_documents, $link )
Create a copy of this eprint data object with a new ID in the given $dest_dataset.
Returns the new eprint, or undef in the case of an error.
If $copy_documents is set and true then the documents (and files) will be copied in addition to the metadata.
If $nolink is true then the new eprint is not connected to the old one by not setting the new eprint's succeeds field.
log_mail_owner
$eprint->log_mail_owner( $mail )
Log that the given $mail message was sent to the owner of this eprint data object.
$mail is the same XHTML DOM that was sent as the email.
get_editorial_contact
$user = $eprint->get_editorial_contact
Returns the user identified as the editorial contact for this item.
By default returns undef.
N.B. This does no relate to any editors defined in the metadata for this eprint data object.
empty
$eprint->empty( [ $clear_all ] )
Remove all documents and set to empty (almost) all fields.
If $clear_all also unset rev_number, metadata_visibility, and eprint_status fields.
remove
$success = $eprint->remove
Erase this eprint data object and any associated data objects from the database and filesystem.
This should only be called on eprints in inbox or buffer.
commit
$success = $eprint->commit( [ $force ] );
Commit any changes to the database.
Calls update_triggers just before the database is updated.
The actions this method does are dependent on some object attributes:
changed - hash of changed fields (from EPrints::DataObj) non_volatile_change - boolean (from EPrints::DataObj) under_construction - boolean
If datestamp is unset and this eprint is in the archive dataset datestamp will always be set which will in turn set datestamp as changed.
If no field values were changed and $force is false returns.
If under_construction is false:
- static files updated
If non_volatile_change is true:
- lastmod field updated - triples update queued
If under_construction is false and non_volatile_change is true:
- revision generated
The goal of these controls is to only trigger expensive processes in response to user actions. Revisions need to be generated when the user changes metadata or uploads new files (see EPrints::DataObj::Document#commit).
save_revision
$eprint->save_revision( %opts )
Increase the eprint revision number and save a complete copy of the record into the history (see EPrints::DataObj::History).
Options:
user - user that caused the action to occur, defaults to current user action - see history.action, defaults to "modify" details - see history.details, defaults to a description of changed fields
validate
$problems = $eprint->validate( [$for_archive], $workflow_id )
Return a reference to an array of XHTML DOM objects describing validation problems with the entire eprint based on $workflow_id.
If $workflow_id is undefined defaults to default.
A reference to an empty array indicates no problems.
Calls validate_eprint for the $eprint.
skip_validation
$boolean = $eprint->skip_validation
Returns true if this eprint should pass validation without being properly validated. This is to allow the use of dodgy data imported from legacy systems.
prune_documents
$eprint->prune_documents
Remove any documents associated with this eprint that do not actually have any files.
get_all_documents
@documents = $eprint->get_all_documents
Return a list of all EPrints::DataObj::Document objects associated with this eprint excluding documents with a isVolatileVersionOf relation, (e.g. thumbnails).
move_to_deletion
$success = $eprint->move_to_deletion
Transfer the eprint into the deletion dataset. Should only be called by eprints in the archive dataset.
move_to_inbox
$success = $eprint->move_to_inbox
Transfer the eprint into the inbox dataset. Should only be called for eprints in the buffer dataset.
move_to_buffer
$success = $eprint->move_to_buffer
Transfer the eprint into the buffer dataset. Should only be called by eprints in the inbox or archive datasets.
move_to_archive
$success = $eprint->move_to_archive
Move this eprint into the main archive dataset. Normally only called on eprints in deletion or buffer datasets.
local_path
$path = $eprint->local_path
Returns the full path of the eprint data onject directory on the local filesystem with no trailing slash.
path
$path = $eprint->path
Returns the full URL path of the eprint data object including a trailing slash. E.g. 1234/.
url_stem
$url = $eprint->url_stem
Returns the URL to this eprint's directory.
N.B. This includes the trailing slash, unlike the local_path method.
generate_static
$eprint->generate_static
Generate the static version of the abstract/summary web page. In a multi-language repository this will generate one version per language.
If called on eprints in the inbox or buffer, remove the abstract/summary page.
remove_static
$eprint->remove_static
Remove the static web page or pages.
render
( $description, $title, $links ) = $eprint->render( $preview )
Render the eprint. If $preview is true then render a preview of the eprint data object
The 3 returned values are references to XHTML DOM objects. $description is the public viewable description of this eprintthat appears as the body of the abstract page. $title is the title of the abstract page for this eprint. $links is any elements which should go in the head elemeny of this HTML page.
Calls eprint_render to actually render the $eprint, if it isn't in the deleted dataset.
render_preview
( $description, $title, $links ) = $eprint->render_preview
Render a preview version of this eprint.
See render for more details
get_control_url
$url = $eprint->get_control_url
Return the URL of the control page for this eprint.
get_url
$url = $eprint->get_url
Return the public URL of this eprints abstract/summary page.
get_user
$user = $eprint->get_user
Return the EPrints::DataObj::User to whom this eprint belongs (if any).
later_in_thread
$list = $eprint->later_in_thread( $field )
Return an EPrints::List of the immediately later items in the thread.
$field is typically the succeeds field that generates the thread of eprints.
in_thread
$boolean = $eprint->in_thread( $field )
Returns true if this eprint is in the $field thread.
$field is typically the succeeds field that generates the thread of eprints.
first_in_thread
$eprint = $eprint->first_in_thread( $field )
Return the first (earliest) version or first paper in the thread of commentaries of this paper in the repository.
$field is typically the succeeds field that generates the thread of eprints.
last_in_thread
$eprint = $eprint->last_in_thread( $field )
Returns the latest item in the $field thread on this eprint's branch of the thread tree.
$field is typically the succeeds field that generates the thread of eprints.
removed_from_thread
$eprint->removed_from_thread( $field, [ $parent ] )
Fix the metadata_visibility for the eprint data object after it has been removed from the $field (typically succeeds) based thread.
The change in $parent must be committed before this method is called.
N.B. $parent (i.e. the eprint this eprint succeeds) is not required for this method but included for consistency.
added_to_thread
$eprint->added_to_thread( $field, $parent )
Fix the metadata_visibility for this eprint data object now the has the $parent set in the $field (typically the succeeds field).
Does not update metadata_visibility if $parent is not in archive.
map_thread
$eprint->map_thread( $field, $f )
Apply function $f to every eprint data object in the $field based thread that includes this eprint.
render_version_thread
$xhtml = $eprint->render_version_thread( $field )
Return XHTML DOM rendering describing the entire $field based thread for this eprint data object as nested unordered lists.
loop_error
$eprint->loop_error( $field, @looped_ids )
Log repository error message because this eprint is part of a loop of eprint data objects (with IDs looped_ids) in a $field based thread.
get_type
$type = $eprint->get_type
Return the type of this eprint.
This is an alias of:
$eprint->value( "type" )
user_roles
@roles = $eprint->user_roles( $user )
Return the roles the specified $user has for this eprint.
datestamp
$eprint->datestamp
DEPRECATED
Now just generates a deprecated error message to the log. Use:
$eprint->value( 'datestamp' );
in_editorial_scope_of
$boolean = $eprint->in_editorial_scope_of( $possible_editor )
Returns true if $possible_editor can edit this eprint. This is according to the user's editperms.
This does not mean the user has the editor privilege, just that if they do then they may edit the eprint.
has_owner
$boolean = $eprint->has_owner( $possible_owner )
Returns true if $possible_owner can edit this eprint. This is according to the user's editperms.
This does not mean the user has the editor privilege, just that if they do then they may edit the given eprint.
Uses the callback does_user_own_eprint if available.
obtain_lock
$boolean = $eprint->obtain_lock( $user )
Assign the edit lock for this eprint data object to the specified $user.
Returns a boolean depending on whether the edit lock was successfully assigned.
remove_lock
$boolean = $eprint->remove_lock( $user )
Remove the edit lock for this eprint data object to the specified $user.
Returns a boolean depending on whether the edit lock was successfully removed.
could_obtain_lock
$boolean = $eprint->could_obtain_lock( $user )
Return a boolean depending on whether the specified $user could obtain ane edit lock on this eprint.
is_locked
$boolean = $eprint->is_locked
Return a boolean depending on whether this eprint currently has an edit lock.
Utility Methods
render_issues
$ol_frag = EPrints::DataObj::EPrint::render_issues( $session, $field, $value )
Returns a rendering of the list of issues from $value array reference (as a ol (ordered list) XHTML DOM fragment) for the item_issues field provided by $field.
order_issues_newest_open_timestamp
$timestamps = EPrints::DataObj::EPrint::order_issues_newest_open_timestamp( $field, $value, $session, $langid, $dataset )
Returns a string containing the timestamp for the newest issue that has status reported or discovered.
This method is called through the EPrints::MetaField make_value_orderkey attribute.
$field is the item_issues field. $value is an array reference of the issues. $session is the EPrints::Repository object, $langid is the language ID and $dataset is the eprint dataset
render_fileinfo
$frag = EPrints::DataObj::EPrint::render_fileinfo( $session, $field, $value, $alllangs, $nolink, $eprint )
Render method for fileinfo field. Returns a XHTML DOM fragment containing the documents stored in the fileinfo field.
This method is called through the EPrints::MetaField render_value attribute.
$session is the EPrints::Repository object. $field is the fileinfo field. $value is the value for this field. $session is the EPrints::Repository object, $alllangs is a boolean to render in all languages if an EPrints::MetaField::Multilang field. $nolink is a boolean on whether to not render links. $eprint is the eprint data object that has the fileinfo field.
eprintid_to_path
$path = EPrints::DataObj::eprintid_to_path( $id )
Returns path of the storage directory based on the eprint $id provided.
render_box_list
$frag = EPrints::DataObj::EPrint::render_box_list( $session, $eprint, $list )
Returns a rendering of the EPrints::Plugin::Screen::Box plugins from $list against the $eprint specified
render_edit_lock
$xhtml = EPrints::DataObj::EPrints::render_edit_lock( $session, $field, $value, $alllangs, $nolink, $eprint )
Returns an XHTML DOM fragment providing information about the edit lock for metadata provided by $value.
This is used by the render_value attribute of the edit_lock field, which specified, the $session, $field, $value, $alllangs, $nolink and $eprint parameters. However, only the $session, $field, $value and $eprint parameters are required.
CALLBACKS
Callbacks may optionally be defined in the ArchiveConfig.
validate_field
validate_field( $field, $value, $session, [$for_archive] )
validate_eprint
validate_eprint( $eprint, $session, [$for_archive] )
set_eprint_defaults
set_eprint_defaults( $data, $session )
set_eprint_automatic_fields
set_eprint_automatic_fields( $eprint )
eprint_render
eprint_render( $eprint, $session )
SEE ALSO
EPrints::DataObj and EPrints::DataSet.
COPYRIGHT
© Copyright 2000-2024 University of Southampton.
EPrints 3.4 is supplied by EPrints Services.
http://www.eprints.org/eprints-3.4/
LICENSE
This file is part of EPrints 3.4 http://www.eprints.org/.
EPrints 3.4 and this file are released under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation unless otherwise stated.
EPrints 3.4 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with EPrints 3.4. If not, see http://www.gnu.org/licenses/.