Difference between revisions of "API:EPrints/DataObj/Document"
Line 5: | Line 5: | ||
<!-- Pod2Wiki=_private_ --><!-- Pod2Wiki=head_name --> | <!-- Pod2Wiki=_private_ --><!-- Pod2Wiki=head_name --> | ||
− | ==NAME== | + | ==NAME |
+ | |||
+ | == | ||
'''EPrints::DataObj::Document''' - A single format of a record. | '''EPrints::DataObj::Document''' - A single format of a record. | ||
Line 16: | Line 18: | ||
</div> | </div> | ||
<!-- Pod2Wiki=head_description --> | <!-- Pod2Wiki=head_description --> | ||
− | ==DESCRIPTION== | + | ==DESCRIPTION |
− | Document represents a single format of an EPrint (eg. PDF) - the actual file(s) rather than the metadata. | + | |
+ | == | ||
+ | Document represents a single format of an EPrint (eg. PDF) - the | ||
+ | actual file(s) rather than the metadata. | ||
+ | |||
+ | Inherits from [[API:EPrints/DataObj/SubObject|EPrints::DataObj::SubObject]], which in turn inherits | ||
+ | from [[API:EPrints/DataObj|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=head_instance_variables --> | ||
+ | ==INSTANCE VARIABLES | ||
+ | |||
+ | == | ||
+ | See [[API:EPrints/DataObj#INSTANCE_VARIABLES|EPrints::DataObj#INSTANCE_VARIABLES]]. | ||
<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 27: | Line 48: | ||
</div> | </div> | ||
<!-- Pod2Wiki=head_core_metadata_fields --> | <!-- Pod2Wiki=head_core_metadata_fields --> | ||
− | ==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 36: | Line 59: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_docid --> | <!-- Pod2Wiki=item_docid --> | ||
− | ===docid (int)=== | + | ===docid (int) |
+ | |||
+ | === | ||
The unique ID of the document. | The unique ID of the document. | ||
Line 48: | Line 73: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_rev_number --> | <!-- Pod2Wiki=item_rev_number --> | ||
− | ===rev_number (int)=== | + | ===rev_number (int) |
+ | |||
+ | === | ||
The revision number of this document record. | The revision number of this document record. | ||
Line 60: | Line 87: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_pos --> | <!-- Pod2Wiki=item_pos --> | ||
− | ===pos (int) | + | ===pos (int) |
− | The position of the document record within those associated with the eprint. | + | === |
+ | |||
+ | The position of the document record within those associated with 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 72: | Line 102: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_placement --> | <!-- Pod2Wiki=item_placement --> | ||
− | ===placement (int)=== | + | ===placement (int) |
+ | |||
+ | === | ||
− | Placement of the document - the order documents in which should be shown. This may be different to <tt>pos</tt>, as the <tt>ultimate_doc_pos</tt> may lead to a different ordering. | + | Placement of the document - the order documents in which should be |
+ | shown. This may be different to <tt>pos</tt>, as the <tt>ultimate_doc_pos</tt> | ||
+ | may lead to a different ordering. | ||
<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 84: | Line 118: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_format --> | <!-- Pod2Wiki=item_format --> | ||
− | ===format (namedset)=== | + | ===format (namedset) |
+ | |||
+ | === | ||
− | The format of this document. One of the types of the namedset c<document>. | + | The format of this document. One of the types of the namedset |
+ | c<document>. | ||
<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 96: | Line 133: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_formatdesc --> | <!-- Pod2Wiki=item_formatdesc --> | ||
− | ===formatdesc (text) | + | ===formatdesc (text) |
− | An additional description of this document. For example the specific version of a format. | + | === |
+ | |||
+ | An additional description of this document. For example the specific | ||
+ | version of a format. | ||
<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 108: | Line 148: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_language --> | <!-- Pod2Wiki=item_language --> | ||
− | ===language (namedset) | + | ===language (namedset) |
− | The ISO 639-1 | + | === |
+ | |||
+ | The ISO 639-1 code of the language of this document. The default | ||
+ | configuration of EPrints does not set this. | ||
<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 120: | Line 163: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_security --> | <!-- Pod2Wiki=item_security --> | ||
− | ===security (namedset) | + | ===security (namedset) |
− | The security type of this document - who can view it. One of the types of the namedset <tt>security</tt>. | + | === |
+ | |||
+ | The security type of this document - who can view it. One of the | ||
+ | types of the namedset <tt>security</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 132: | Line 178: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_license --> | <!-- Pod2Wiki=item_license --> | ||
− | ===license (namedset)=== | + | ===license (namedset) |
+ | |||
+ | === | ||
− | The license applied of this document - who can view it. One of the types of the namedset <tt>license</tt>. | + | The license applied of this document - who can view it. One of the |
+ | types of the namedset <tt>license</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 144: | Line 193: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_main --> | <!-- Pod2Wiki=item_main --> | ||
− | ===main (text)=== | + | ===main (text) |
+ | |||
+ | === | ||
− | The file which we should link to. For something like a PDF file this is the only file. For an HTML document with images it would be the name of the actual HTML file. | + | The file which we should link to. For something like a PDF file this is |
+ | the only file. For an HTML document with images it would be the name of | ||
+ | the actual HTML file. | ||
<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 156: | Line 209: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_date_embargo --> | <!-- Pod2Wiki=item_date_embargo --> | ||
− | ===date_embargo (date)=== | + | ===date_embargo (date) |
+ | |||
+ | === | ||
− | The date until which the document has restricted access (set by <tt>security</tt>). At which point the embargo is lifted and <tt>security</tt> is set to <tt>public</tt> and this field set back to <tt>undef</tt>. | + | The date until which the document has restricted access (set by |
+ | <tt>security</tt>). At which point the embargo is lifted and <tt>security</tt> | ||
+ | is set to <tt>public</tt> and this field set back to <tt>undef</tt>. | ||
Requires <tt>bin/lift_embargos</tt> script to be deployed as a cron job. | Requires <tt>bin/lift_embargos</tt> script to be deployed as a cron job. | ||
Line 170: | Line 227: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_date_embargo_retained --> | <!-- Pod2Wiki=item_date_embargo_retained --> | ||
− | ===date_embargo_retained (date)=== | + | ===date_embargo_retained (date) |
+ | |||
+ | === | ||
− | The retained date of any embargo originally placed on this document. This is updated when a user modifies <tt>date_embargo</tt> but is not unset by the <tt>bin/lift_embargos</tt> script. | + | The retained date of any embargo originally placed on this document. |
+ | This is updated when a user modifies <tt>date_embargo</tt> but is not unset | ||
+ | by the <tt>bin/lift_embargos</tt> script. | ||
<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 182: | Line 243: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_media --> | <!-- Pod2Wiki=item_media --> | ||
− | ===media (compound)=== | + | ===media (compound) |
+ | |||
+ | === | ||
A compound field containing a description of the document media - dimensions, codec etc. | A compound field containing a description of the document media - dimensions, codec etc. | ||
Line 194: | Line 257: | ||
</div> | </div> | ||
<!-- Pod2Wiki=head_references_and_related_objects --> | <!-- Pod2Wiki=head_references_and_related_objects --> | ||
− | ==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%; '> | <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 203: | Line 268: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_eprintid --> | <!-- Pod2Wiki=item_eprintid --> | ||
− | ===eprintid (itemref)=== | + | ===eprintid (itemref) |
+ | |||
+ | === | ||
The ID number of the eprint to which this document belongs. | The ID number of the eprint to which this document belongs. | ||
Line 215: | Line 282: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_files --> | <!-- Pod2Wiki=item_files --> | ||
− | ===files (subobject, multiple)=== | + | ===files (subobject, multiple) |
+ | |||
+ | === | ||
− | A virtual field which represents the list of files which are part of this record. | + | 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%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 227: | Line 297: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_relation --> | <!-- Pod2Wiki=item_relation --> | ||
− | ===relation (relation, multiple)=== | + | ===relation (relation, multiple) |
+ | |||
+ | === | ||
− | Predicated relationships between this document and other data objects within the archive. | + | Predicated relationships between this document and other data objects |
+ | within the 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 239: | Line 312: | ||
</div> | </div> | ||
<!-- 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%; '> | <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 247: | Line 322: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- 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==== | ||
+ | |||
+ | $doc = EPrints::DataObj::Document::create( $session, $eprint ) | ||
+ | |||
+ | Create and return a new document belonging to the given <tt>$eprint</tt> | ||
+ | object. | ||
− | + | N.B. This creates the document in the database, not just in memory. | |
− | |||
<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 260: | Line 350: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=item_create_from_data --> |
− | === | + | ====create_from_data==== |
+ | |||
+ | $dataobj = EPrints::DataObj::Document::create_from_data( $session, $data, $dataset ) | ||
+ | |||
+ | Create document data object from <tt>$data</tt> provided. | ||
+ | |||
+ | Returns <tt>undef</tt> if a bad (or no) <tt>eprintid</tt> specified in <tt>$data</tt>. | ||
+ | |||
+ | Otherwise calls the parent method in [[API:EPrints/DataObj|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%; '> | <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 271: | Line 368: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- 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 282: | Line 379: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=item_get_system_field_info --> |
− | === | + | ====get_system_field_info==== |
− | EPrints::DataObj:: | + | $fields = EPrints::DataObj::Document->get_system_field_info |
− | |||
− | Returns the document | + | Returns an array describing the system metadata of the document |
+ | 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 297: | Line 394: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=item_get_defaults --> |
− | === | + | ====get_defaults==== |
+ | |||
+ | $defaults = EPrints::DataObj::Document->get_defaults( $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%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 310: | Line 409: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=item_get_dataset_id --> |
− | === | + | ====get_dataset_id==== |
− | $ | + | $dataset = EPrints::DataObj::Document->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%; '> | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> | ||
Line 325: | Line 424: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- Pod2Wiki=item_get_parent_dataset_id --> |
− | === | + | ====get_parent_dataset_id==== |
− | $ | + | $dataset_id = EPrints::DataObj::Document->get_parent_dataset_id |
− | |||
− | Returns | + | Returns the ID of the parent dataset for a document, (i.e. <tt>eprint</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 342: | Line 438: | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
</div> | </div> | ||
− | <!-- Pod2Wiki= | + | <!-- 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 356: | Line 450: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_clone --> | <!-- Pod2Wiki=item_clone --> | ||
− | ===clone=== | + | ====clone==== |
$newdoc = $doc->clone( $eprint ) | $newdoc = $doc->clone( $eprint ) | ||
− | Attempt to clone this document. Both the document metadata and the actual files. The clone will be associated with the given <tt>$eprint</tt>. | + | |
+ | Attempt to clone this document. Both the document metadata and the | ||
+ | actual files. The clone will be associated with the given <tt>$eprint</tt>. | ||
Returns to the newly colument document. | Returns to the newly colument document. | ||
Line 371: | Line 467: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_remove --> | <!-- Pod2Wiki=item_remove --> | ||
− | ===remove=== | + | ====remove==== |
$success = $doc->remove | $success = $doc->remove | ||
− | Attempt to completely delete this document. Including derived documents such as thumbnails. | + | |
+ | Attempt to completely delete this document. Including derived | ||
+ | documents such as thumbnails. | ||
Returns boolean dependent on success of deleting document. | Returns boolean dependent on success of deleting document. | ||
Line 386: | Line 484: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_eprint --> | <!-- Pod2Wiki=item_get_eprint --> | ||
− | ===get_eprint=== | + | ====get_eprint==== |
$eprint = $doc->get_eprint | $eprint = $doc->get_eprint | ||
+ | |||
Returns the eprint this document is associated with. | Returns the eprint this document is associated with. | ||
Line 394: | Line 493: | ||
$doc->get_parent | $doc->get_parent | ||
− | + | ||
<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 403: | Line 502: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_baseurl --> | <!-- Pod2Wiki=item_get_baseurl --> | ||
− | ===get_baseurl=== | + | ====get_baseurl==== |
$url = $doc->get_baseurl | $url = $doc->get_baseurl | ||
+ | |||
Returns the base URL of the document. | Returns the base URL of the document. | ||
Line 416: | Line 516: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_is_public --> | <!-- Pod2Wiki=item_is_public --> | ||
− | ===is_public=== | + | ====is_public==== |
$boolean = $doc->is_public | $boolean = $doc->is_public | ||
− | Returnes <tt>true</tt> if this document has no security set and is in the live archive. Otherwise, returns <tt>false</tt>. | + | |
+ | Returnes <tt>true</tt> if this document has no security set and is in the | ||
+ | live archive. Otherwise, returns <tt>false</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 429: | Line 531: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_path --> | <!-- Pod2Wiki=item_path --> | ||
− | ===path=== | + | ====path==== |
$path = $doc->path | $path = $doc->path | ||
+ | |||
Returns the relative path to the document without specifying any file. | Returns the relative path to the document without specifying any file. | ||
Line 442: | Line 545: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_file_path --> | <!-- Pod2Wiki=item_file_path --> | ||
− | ===file_path=== | + | ====file_path==== |
$path = $doc->file_path( [ $file ] ) | $path = $doc->file_path( [ $file ] ) | ||
− | Returns the relative path to <tt>$file</tt> stored in this document. If <tt>$file</tt> is undefined returns the path to the main file. | + | |
+ | Returns the relative path to <tt>$file</tt> stored in this document. | ||
+ | If <tt>$file</tt> is undefined returns the path to the main file. | ||
This is an efficient shortcut to this: | This is an efficient shortcut to this: | ||
Line 451: | Line 556: | ||
my $file = $doc->stored_file( $filename ); | my $file = $doc->stored_file( $filename ); | ||
my $path = $file->path; | my $path = $file->path; | ||
− | + | ||
<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 460: | Line 565: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_url --> | <!-- Pod2Wiki=item_get_url --> | ||
− | ===get_url=== | + | ====get_url==== |
$url = $doc->get_url( [ $file ] ) | $url = $doc->get_url( [ $file ] ) | ||
+ | |||
Returns the full URL of the document. | Returns the full URL of the document. | ||
Line 475: | Line 581: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_local_path --> | <!-- Pod2Wiki=item_local_path --> | ||
− | ===local_path=== | + | ====local_path==== |
$path = $doc->local_path | $path = $doc->local_path | ||
+ | |||
DEPRECATED. | DEPRECATED. | ||
− | Returns the full path of the directory where this document is stored in the filesystem. | + | Returns the full path of the directory where this document is stored |
+ | in the filesystem. | ||
<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 490: | Line 598: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_files --> | <!-- Pod2Wiki=item_files --> | ||
− | ===files=== | + | ====files==== |
%files = $doc->files | %files = $doc->files | ||
− | Returns a hash, the keys of which are all the files belonging to this document (relative to [[API:EPrints/DataObj/Document#local_path|local_path]]). The values are the sizes of the files in bytes. | + | |
+ | Returns a hash, the keys of which are all the files belonging to this | ||
+ | document (relative to [[API:EPrints/DataObj/Document#local_path|local_path]]). The values are the sizes of the | ||
+ | files in bytes. | ||
<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 503: | Line 614: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_remove_file --> | <!-- Pod2Wiki=item_remove_file --> | ||
− | ===remove_file=== | + | ====remove_file==== |
$success = $doc->remove_file( $filename ) | $success = $doc->remove_file( $filename ) | ||
− | Attempts to remove the file with <tt>$filename</tt>. <tt>$filename</tt> must be specified in the format that can be retrieved by [[API:EPrints/DataObj/Document#get_stored_file|get_stored_file]]. | + | |
+ | Attempts to remove the file with <tt>$filename</tt>. <tt>$filename</tt> must be | ||
+ | specified in the format that can be retrieved by [[API:EPrints/DataObj/Document#get_stored_file|get_stored_file]]. | ||
<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 516: | Line 629: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_set_main --> | <!-- Pod2Wiki=item_set_main --> | ||
− | ===set_main=== | + | ====set_main==== |
$doc->set_main( $main_file ) | $doc->set_main( $main_file ) | ||
− | Sets <tt>main</tt> for the document to the named <tt>$main_file</tt> and adjusts <tt>format</tt> and <tt>mime_type</tt> as necessary. Will not affect the database until the document is committed. | + | |
+ | Sets <tt>main</tt> for the document to the named <tt>$main_file</tt> and adjusts | ||
+ | <tt>format</tt> and <tt>mime_type</tt> as necessary. Will not affect the database | ||
+ | until the document is committed. | ||
Unsets <tt>main</tt> if <tt>$main_file</tt> is undefined. | Unsets <tt>main</tt> if <tt>$main_file</tt> is undefined. | ||
Line 531: | Line 647: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_main --> | <!-- Pod2Wiki=item_get_main --> | ||
− | ===get_main=== | + | ====get_main==== |
$filename = $doc->get_main | $filename = $doc->get_main | ||
+ | |||
Returns the filename of the file set as <tt>main</tt> in this document. | Returns the filename of the file set as <tt>main</tt> in this document. | ||
Line 544: | Line 661: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_set_format --> | <!-- Pod2Wiki=item_set_format --> | ||
− | ===set_format=== | + | ====set_format==== |
$doc->set_format( $format ) | $doc->set_format( $format ) | ||
− | Set format for document to <tt>$format</tt>. Will not affect the database until document is committed. | + | |
+ | Set format for document to <tt>$format</tt>. Will not affect the database | ||
+ | until document is committed. | ||
Alias for: | Alias for: | ||
$doc->set_value( "format" , $format ); | $doc->set_value( "format" , $format ); | ||
− | + | ||
<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 561: | Line 680: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_set_format_desc --> | <!-- Pod2Wiki=item_set_format_desc --> | ||
− | ===set_format_desc=== | + | ====set_format_desc==== |
$doc->set_format_desc( $format_desc ) | $doc->set_format_desc( $format_desc ) | ||
− | Set format description for document to <tt>$format_desc</tt>. Will not affect the database until document is committed. | + | |
+ | Set format description for document to <tt>$format_desc</tt>. Will not | ||
+ | affect the database until document is committed. | ||
Alias for: | Alias for: | ||
$doc->set_value( "format_desc" , $format_desc ); | $doc->set_value( "format_desc" , $format_desc ); | ||
− | + | ||
<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 578: | Line 699: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_upload --> | <!-- Pod2Wiki=item_upload --> | ||
− | ===upload=== | + | ====upload==== |
$success = $doc->upload( $filehandle, $filename, [ $preserve_path, $filesize ] ) | $success = $doc->upload( $filehandle, $filename, [ $preserve_path, $filesize ] ) | ||
− | |||
− | + | DEPRECATED - Use [[API:EPrints/DataObj/Document#add_file|add_file]], which will automatically identify the | |
+ | file type. | ||
− | If <tt>$preserve_path</tt> then make any subdirectories needed, otherwise place this in the top level directory. | + | Upload the contents of the given <tt>$filehandle</tt> into this document as |
+ | the given <tt>$filename</tt>. | ||
+ | |||
+ | If <tt>$preserve_path</tt> then make any subdirectories needed, otherwise | ||
+ | place this in the top level directory. | ||
<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 595: | Line 720: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_add_file --> | <!-- Pod2Wiki=item_add_file --> | ||
− | ===add_file=== | + | ====add_file==== |
$fileobj = $doc->add_file( $file, $filename, [ $preserve_path ] ) | $fileobj = $doc->add_file( $file, $filename, [ $preserve_path ] ) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <tt>$file</tt> is the full path to a file to be added to the document, with | ||
+ | name <tt>$filename</tt>. <tt>$filename</tt> is passed through | ||
+ | [[API:EPrints/System#sanitise|EPrints::System#sanitise]] before being written. | ||
− | < | + | If <tt>$preserve_path</tt> is <tt>tru</tt>e then include path components in |
− | </ | + | <tt>$filename</tt>. |
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | + | Returns the file object if successfully created or <tt>undef</tt> on | |
+ | failure. | ||
<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 627: | Line 742: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_upload_archive --> | <!-- Pod2Wiki=item_upload_archive --> | ||
− | ===upload_archive=== | + | ====upload_archive==== |
$success = $doc->upload_archive( $filehandle, $filename, $archive_format ) | $success = $doc->upload_archive( $filehandle, $filename, $archive_format ) | ||
+ | |||
DEPRECATED - use [[API:EPrints/DataObj/Document#add_archive|add_archive]]. | DEPRECATED - use [[API:EPrints/DataObj/Document#add_archive|add_archive]]. | ||
− | Upload the file contents provided through <tt>$filehandle</tt> using the filename from <tt>$filename</tt>. How to deal with the specified <tt>$archive_format</tt> (e.g. <tt>.zip</tt>, <tt>.tar.gz</tt>) is configured in [[API:EPrints/SystemSettings|EPrints::SystemSettings]]. | + | Upload the file contents provided through <tt>$filehandle</tt> using the |
+ | filename from <tt>$filename</tt>. How to deal with the specified | ||
+ | <tt>$archive_format</tt> (e.g. <tt>.zip</tt>, <tt>.tar.gz</tt>) is configured in | ||
+ | [[API:EPrints/SystemSettings|EPrints::SystemSettings]]. | ||
<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 642: | Line 761: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_add_archive --> | <!-- Pod2Wiki=item_add_archive --> | ||
− | ===add_archive=== | + | ====add_archive==== |
$success = $doc->add_archive( $file, $archive_format ) | $success = $doc->add_archive( $file, $archive_format ) | ||
− | |||
− | Returns a boolean dependent on whether the contents of the archive file is added to the document's subdirectory on the filesystem. | + | Adds the contents of that archive <tt>$file</tt> to the document, where |
+ | <tt>$archive_format</tt> is the format of the archive file (e.g. <tt>.zip</tt>, | ||
+ | <tt>.tar.gz</tt>, etc.) | ||
+ | |||
+ | Returns a boolean dependent on whether the contents of the archive | ||
+ | file is added to the document's subdirectory on the filesystem. | ||
<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 657: | Line 780: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_add_directory --> | <!-- Pod2Wiki=item_add_directory --> | ||
− | ===add_directory=== | + | ====add_directory==== |
$success = $doc->add_directory( $directory ) | $success = $doc->add_directory( $directory ) | ||
− | Upload the contents of <tt>$directory</tt> to this document. This will not set the document's <tt>main</tt> field. | + | |
+ | Upload the contents of <tt>$directory</tt> to this document. This will not | ||
+ | set the document's <tt>main</tt> field. | ||
This method expects <tt>$directory</tt> to have a trailing slash <tt>/</tt>. | This method expects <tt>$directory</tt> to have a trailing slash <tt>/</tt>. | ||
Line 674: | Line 799: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_upload_url --> | <!-- Pod2Wiki=item_upload_url --> | ||
− | ===upload_url=== | + | ====upload_url==== |
$success = $doc->upload_url( $url ) | $success = $doc->upload_url( $url ) | ||
− | |||
− | + | Attempts to grab files from the given <tt>$url</tt> over HTTP. Grabbing | |
+ | files this way is always problematic. Therefore, by default, only | ||
+ | relative links will be followed and only links to files in the same | ||
+ | directory or subdirectory will be followed. | ||
− | Returns a boolean dependent of whether file(s) were successfully uploaded. | + | This method by default uses {{API:PodLink|file=https:|package_name=https:|section=|text=wget}}. |
+ | However, you can modify this in [[API:EPrints/SystemSettings|EPrints::SystemSettings]]. | ||
+ | |||
+ | Returns a boolean dependent of whether file(s) were successfully | ||
+ | uploaded. | ||
<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 691: | Line 822: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_commit --> | <!-- Pod2Wiki=item_commit --> | ||
− | ===commit=== | + | ====commit==== |
$success = $doc->commit( [ $force ] ) | $success = $doc->commit( [ $force ] ) | ||
− | |||
− | + | Commit any changes that have been made to this data object to the | |
+ | database. | ||
− | + | Calls <tt>set_document_automatic_fields</tt> in the archive's configuration | |
+ | first to set any automatic fields that may be needed. | ||
− | Returns boolean depending on whether commit of document data object is successful. | + | If <tt>$force</tt> is defined and <tt>true</tt> then still commit even if there |
+ | are no non-volatile changes. | ||
+ | |||
+ | Returns boolean depending on whether commit of document data object is | ||
+ | successful. | ||
<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 710: | Line 846: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_derived_versions --> | <!-- Pod2Wiki=item_get_derived_versions --> | ||
− | ===get_derived_versions=== | + | ====get_derived_versions==== |
@derived_docs = $doc->get_derived_versions | @derived_docs = $doc->get_derived_versions | ||
− | Returns an array of documents that are derived from the current document through the <tt>isVersionOf</tt> relation. | + | |
+ | Returns an array of documents that are derived from the current | ||
+ | document through the <tt>isVersionOf</tt> relation. | ||
<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 723: | Line 861: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_validate --> | <!-- Pod2Wiki=item_validate --> | ||
− | ===validate=== | + | ====validate==== |
$problems = $doc->validate( [ $for_archive ] ) | $problems = $doc->validate( [ $for_archive ] ) | ||
− | |||
− | Returns a reference to an array of XHTML DOM objects describing validation problems with the entire document, including the metadata and repository config specific requirements. | + | Validates the document data object. If <tt>$for_archive</tt> is defined |
+ | this will be passed through to the archive configured | ||
+ | <tt>validate_document</tt> method, in case it is required for bespoke | ||
+ | changes to this method. | ||
+ | |||
+ | Returns a reference to an array of XHTML DOM objects describing | ||
+ | validation problems with the entire document, including the metadata | ||
+ | and repository config specific requirements. | ||
A returned reference to an empty array indicates no problems. | A returned reference to an empty array indicates no problems. | ||
Line 740: | Line 884: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_user_can_view --> | <!-- Pod2Wiki=item_user_can_view --> | ||
− | ===user_can_view=== | + | ====user_can_view==== |
$boolean = $doc->user_can_view( $user ) | $boolean = $doc->user_can_view( $user ) | ||
− | Returns <tt>true</tt> if this document's security settings allow the given <tt>$user</tt> access to view it. | + | |
+ | Returns <tt>true</tt> if this document's security settings allow the given | ||
+ | <tt>$user</tt> access to view it. | ||
<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 753: | Line 899: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_type --> | <!-- Pod2Wiki=item_get_type --> | ||
− | ===get_type=== | + | ====get_type==== |
$type = $doc->get_type | $type = $doc->get_type | ||
+ | |||
Returns the type of this document. | Returns the type of this document. | ||
Line 761: | Line 908: | ||
$doc->value( "format" ); | $doc->value( "format" ); | ||
− | + | ||
<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 770: | Line 917: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_queue_files_modified --> | <!-- Pod2Wiki=item_queue_files_modified --> | ||
− | ===queue_files_modified=== | + | ====queue_files_modified==== |
$doc->queue_files_modified | $doc->queue_files_modified | ||
− | Adds a <tt>files_modified</tt> task (e.g. for creating/updating thumbnails) to the event queue. | + | |
+ | Adds a <tt>files_modified</tt> task (e.g. for creating/updating thumbnails) | ||
+ | to the event queue. | ||
<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 783: | Line 932: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_files_modified --> | <!-- Pod2Wiki=item_files_modified --> | ||
− | ===files_modified=== | + | ====files_modified==== |
$doc->files_modified | $doc->files_modified | ||
− | This method does all the things that need doing when a file has been modified. | + | |
+ | This method does all the things that need doing when a file has been | ||
+ | modified. | ||
<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 796: | Line 947: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_rehash --> | <!-- Pod2Wiki=item_rehash --> | ||
− | ===rehash=== | + | ====rehash==== |
$doc->rehash | $doc->rehash | ||
− | Recalculate the hash value of the document. Uses MD5 of the files (in alphabetic order), but can use user-specified hashing function instead. | + | |
+ | Recalculate the hash value of the document. Uses MD5 of the files (in | ||
+ | alphabetic order), but can use user-specified hashing function | ||
+ | instead. | ||
<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 809: | Line 963: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_make_indexcodes --> | <!-- Pod2Wiki=item_make_indexcodes --> | ||
− | ===make_indexcodes=== | + | ====make_indexcodes==== |
$indexcodes_doc = $doc->make_indexcodes | $indexcodes_doc = $doc->make_indexcodes | ||
− | Make the index codes document for this document. Returns the generated index codes document on success or <tt>undef</tt> on failure. | + | |
+ | Make the index codes document for this document. Returns the generated | ||
+ | index codes document on success or <tt>undef</tt> on failure. | ||
<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 822: | Line 978: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_remove_indexcodes --> | <!-- Pod2Wiki=item_remove_indexcodes --> | ||
− | ===remove_indexcodes=== | + | ====remove_indexcodes==== |
$doc = $doc->remove_indexcodes | $doc = $doc->remove_indexcodes | ||
− | Remove any documents containing index codes for this document. Returns the number of documents removed. | + | |
+ | Remove any documents containing index codes for this document. | ||
+ | Returns the number of documents 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%; '> | ||
Line 835: | Line 993: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_cache_file --> | <!-- Pod2Wiki=item_cache_file --> | ||
− | ===cache_file=== | + | ====cache_file==== |
$filename = $doc->cache_file( $suffix ); | $filename = $doc->cache_file( $suffix ); | ||
+ | |||
DEPRECATED | DEPRECATED | ||
Line 850: | Line 1,009: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_register_parent --> | <!-- Pod2Wiki=item_register_parent --> | ||
− | ===register_parent=== | + | ====register_parent==== |
$doc->register_parent( $parent ) | $doc->register_parent( $parent ) | ||
− | |||
− | This may cause reference loops, but it does avoid two identical eprint data objects existing at once. | + | Registers the <tt>$parent</tt> [[API:EPrints/DataObj/EPrint|EPrints::DataObj::EPrint]] object for this |
+ | document. | ||
+ | |||
+ | This may cause reference loops, but it does avoid two identical | ||
+ | eprint data objects existing at once. | ||
<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 865: | Line 1,027: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_thumbnail_url --> | <!-- Pod2Wiki=item_thumbnail_url --> | ||
− | ===thumbnail_url=== | + | ====thumbnail_url==== |
$doc->thumbnail_url( $size ) | $doc->thumbnail_url( $size ) | ||
− | |||
− | Returns <tt> | + | Returns the URL for the thumbnail of the document for a specified |
+ | <tt>$size</tt>. If <tt>$size</tt> is unspecified defaults to <tt>small</tt>. Other | ||
+ | values for <tt>$size</tt> include <tt>medium</tt> and <tt>preview</tt>. | ||
− | This method is called bt [[API:EPrints/DataObj/Document#icon_url|icon_url]]. It is best to use that method to reliably retrieve the required URL. | + | Returns <tt>undef</tt> if file for particular type of thumbnail does not |
+ | exist. | ||
+ | |||
+ | This method is called bt [[API:EPrints/DataObj/Document#icon_url|icon_url]]. It is best to use that method | ||
+ | to reliably retrieve the required URL. | ||
<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 882: | Line 1,049: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_icon_url --> | <!-- Pod2Wiki=item_icon_url --> | ||
− | ===icon_url=== | + | ====icon_url==== |
$doc->icon_url( $size ) | $doc->icon_url( $size ) | ||
− | Returns the URL for the icon of the document for a specified <tt>$size</tt>. If <tt>$size</tt> is unspecified defaults to <tt>small</tt>. Other values for <tt>$size</tt> include <tt>medium</tt> and <tt>preview</tt>. | + | |
+ | Returns the URL for the icon of the document for a specified | ||
+ | <tt>$size</tt>. If <tt>$size</tt> is unspecified defaults to <tt>small</tt>. Other | ||
+ | values for <tt>$size</tt> include <tt>medium</tt> and <tt>preview</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 895: | Line 1,065: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_render_icon_link --> | <!-- Pod2Wiki=item_render_icon_link --> | ||
− | ===render_icon_link=== | + | ====render_icon_link==== |
$frag = $doc->render_icon_link( %opts ) | $frag = $doc->render_icon_link( %opts ) | ||
+ | |||
Render a link to the icon for this document. | Render a link to the icon for this document. | ||
Line 903: | Line 1,074: | ||
new_window => 1 - Make link go to <tt>_blank</tt> not current window. | new_window => 1 - Make link go to <tt>_blank</tt> not current window. | ||
− | + | ||
preview => 1 - If possible, provide a preview pop-up. | preview => 1 - If possible, provide a preview pop-up. | ||
− | + | ||
public => 0 - Show thumbnail/preview only on public documents. | public => 0 - Show thumbnail/preview only on public documents. | ||
− | + | ||
public => 1 - Show thumbnail/preview on all documents if possible. | public => 1 - Show thumbnail/preview on all documents if possible. | ||
− | + | ||
with_link => 0 - Do not link. | with_link => 0 - Do not link. | ||
− | + | ||
<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 920: | Line 1,091: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_render_preview_link --> | <!-- Pod2Wiki=item_render_preview_link --> | ||
− | ===render_preview_link=== | + | ====render_preview_link==== |
$frag = $doc->render_preview_link( %opts ) | $frag = $doc->render_preview_link( %opts ) | ||
− | Render a link to the preview for this document (if available) using a lightbox. | + | |
+ | Render a link to the preview for this document (if available) using a | ||
+ | lightbox. | ||
Options: | Options: | ||
Line 935: | Line 1,108: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_caption_frag --> | <!-- Pod2Wiki=item_caption_frag --> | ||
− | ===caption_frag=== | + | ====caption_frag==== |
caption => $frag | caption => $frag | ||
+ | |||
XHTML fragment to use as the caption, defaults to empty. | XHTML fragment to use as the caption, defaults to empty. | ||
Line 948: | Line 1,122: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_set_name --> | <!-- Pod2Wiki=item_set_name --> | ||
− | ===set_name=== | + | ====set_name==== |
set => "name" | set => "name" | ||
− | The name of the set this document belongs to, defaults to none (preview won't be shown as part of a set). | + | |
+ | The name of the set this document belongs to, defaults to none | ||
+ | (preview won't be shown as part of a set). | ||
<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 961: | Line 1,137: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_thumbnail_plugin --> | <!-- Pod2Wiki=item_thumbnail_plugin --> | ||
− | ===thumbnail_plugin=== | + | ====thumbnail_plugin==== |
$plugin = $doc->thumbnail_plugin( $size ) | $plugin = $doc->thumbnail_plugin( $size ) | ||
− | Returns the plugin used to generatee thumbnails of the specified <tt>$size</tt>. | + | |
+ | Returns the plugin used to generatee thumbnails of the specified | ||
+ | <tt>$size</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 974: | Line 1,152: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_thumbnail_path --> | <!-- Pod2Wiki=item_thumbnail_path --> | ||
− | ===thumbnail_path=== | + | ====thumbnail_path==== |
$path = $doc->thumbnail_path | $path = $doc->thumbnail_path | ||
+ | |||
DEPRECATED | DEPRECATED | ||
− | Returns the filesystem path to location of thumbnails for the document. | + | Returns the filesystem path to location of thumbnails for the |
+ | document. | ||
<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 989: | Line 1,169: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_thumbnail_types --> | <!-- Pod2Wiki=item_thumbnail_types --> | ||
− | ===thumbnail_types=== | + | ====thumbnail_types==== |
$doc->thumbnail_types | $doc->thumbnail_types | ||
− | Returns array containing names of all the thumbnail types available for this document. | + | |
+ | Returns array containing names of all the thumbnail types available | ||
+ | for this document. | ||
<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 1,002: | Line 1,184: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_remove_thumbnails --> | <!-- Pod2Wiki=item_remove_thumbnails --> | ||
− | ===remove_thumbnails=== | + | ====remove_thumbnails==== |
$doc->remove_thumbnails | $doc->remove_thumbnails | ||
+ | |||
Removes all thumbnail files associated with this document. | Removes all thumbnail files associated with this document. | ||
Line 1,015: | Line 1,198: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_make_thumbnails --> | <!-- Pod2Wiki=item_make_thumbnails --> | ||
− | ===make_thumbnails=== | + | ====make_thumbnails==== |
$doc->make_thumbnails | $doc->make_thumbnails | ||
+ | |||
Make all the thumbnail files required for this document. | Make all the thumbnail files required for this document. | ||
Line 1,028: | Line 1,212: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_mime_type --> | <!-- Pod2Wiki=item_mime_type --> | ||
− | ===mime_type=== | + | ====mime_type==== |
$mime_type = $doc->mime_type | $mime_type = $doc->mime_type | ||
+ | |||
DEPRECATED - use <tt>$doc->value( "mime_type" )</tt> | DEPRECATED - use <tt>$doc->value( "mime_type" )</tt> | ||
Returns the MIME type of this document. | Returns the MIME type of this document. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<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 1,056: | Line 1,228: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_get_parent_id --> | <!-- Pod2Wiki=item_get_parent_id --> | ||
− | ===get_parent_id=== | + | ====get_parent_id==== |
$eprintid = $doc->get_parent_id | $eprintid = $doc->get_parent_id | ||
+ | |||
Returns the ID of the parent for this document, (i.e. the eprint ID). | Returns the ID of the parent for this document, (i.e. the eprint ID). | ||
Line 1,069: | Line 1,242: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_add_relation --> | <!-- Pod2Wiki=item_add_relation --> | ||
− | ===add_relation=== | + | ====add_relation==== |
$doc->add_relation( $tgt, @types ) | $doc->add_relation( $tgt, @types ) | ||
− | |||
− | This will not update the <tt>$tgt</tt> data object even if reflexive relations exist. | + | Add one or more relations with type(s) specified by <tt>@types</tt> to the |
+ | document data object and pointing to the <tt>$tgt</tt> data object. | ||
+ | |||
+ | This will not update the <tt>$tgt</tt> data object even if reflexive | ||
+ | relations exist. | ||
<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 1,084: | Line 1,260: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_remove_relation --> | <!-- Pod2Wiki=item_remove_relation --> | ||
− | ===remove_relation=== | + | ====remove_relation==== |
$doc->remove_relation( $tgt, [ @types ] ) | $doc->remove_relation( $tgt, [ @types ] ) | ||
− | |||
− | If both <tt>$tgt</tt>, and <tt>@types</tt> are both undefined no relations will be removed. If you want to remove all relations do: | + | Removes the relations for the document data object to the <tt>$tgt</tt> data |
+ | object. If <tt>@types</tt> is not defined, remove all relations to <tt>$tgt</tt>. | ||
+ | If <tt>$tgt</tt> is also undefined removes all relations given in <tt>@types</tt>. | ||
+ | |||
+ | If both <tt>$tgt</tt>, and <tt>@types</tt> are both undefined no relations will be | ||
+ | removed. If you want to remove all relations do: | ||
$doc->set_value( "relation", [] ); | $doc->set_value( "relation", [] ); | ||
− | + | ||
<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 1,101: | Line 1,281: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_has_relation --> | <!-- Pod2Wiki=item_has_relation --> | ||
− | ===has_relation=== | + | ====has_relation==== |
$bool = $doc->has_relation( $tgt, [ @types ] ) | $bool = $doc->has_relation( $tgt, [ @types ] ) | ||
− | Returns <tt>true</tt> if document data object has relations to <tt>$tgt</tt>. If <tt>@types</tt> is also given, check these relations satisfy all of the given types. If <tt>$tgt</tt> is undefined, relations that satisfy the given types may be to any data object. | + | |
+ | Returns <tt>true</tt> if document data object has relations to <tt>$tgt</tt>. If | ||
+ | <tt>@types</tt> is also given, check these relations satisfy all of the | ||
+ | given types. If <tt>$tgt</tt> is undefined, relations that satisfy the | ||
+ | given types may be to any 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 1,114: | Line 1,298: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_search_related --> | <!-- Pod2Wiki=item_search_related --> | ||
− | ===search_related=== | + | ====search_related==== |
$list = $doc->search_related( [ $type ] ) | $list = $doc->search_related( [ $type ] ) | ||
− | Returns an [[API:EPrints/List|EPrints::List]] that contains all document data objects related to this document data object. If <tt>$type</tt> is defined return only those document data object related by that type. | + | |
+ | Returns an [[API:EPrints/List|EPrints::List]] that contains all document data objects | ||
+ | related to this document data object. If <tt>$type</tt> is defined return | ||
+ | only those document data object related by that 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%; '> | ||
Line 1,127: | Line 1,314: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_render_citation_link --> | <!-- Pod2Wiki=item_render_citation_link --> | ||
− | ===render_citation_link=== | + | ====render_citation_link==== |
$citation = $doc->render_citation_link( $style, %params ) | $citation = $doc->render_citation_link( $style, %params ) | ||
− | Returns a XHTML DOM citation rendering of the document data object. Using citation <tt>$style</tt> and <tt>%params</tt> provided and setting class for DOM parent element to <tt>ep_document_link</tt>. | + | |
+ | Returns a XHTML DOM citation rendering of the document data object. | ||
+ | Using citation <tt>$style</tt> and <tt>%params</tt> provided and setting class | ||
+ | for DOM parent element to <tt>ep_document_link</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 1,140: | Line 1,330: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_render_video_preview --> | <!-- Pod2Wiki=item_render_video_preview --> | ||
− | ===render_video_preview=== | + | ====render_video_preview==== |
$frag = $doc->render_video_preview( $css_class ) | $frag = $doc->render_video_preview( $css_class ) | ||
− | Returns a XHTML DOM fragment rendering of a HTML5 video preview with optional subtitles. Assigning the <tt>$css_class</tt> to the parent element if the XHTML DOM fragment, if provided. | + | |
+ | Returns a XHTML DOM fragment rendering of a HTML5 video preview with | ||
+ | optional subtitles. Assigning the <tt>$css_class</tt> to the parent element | ||
+ | if the XHTML DOM fragment, if provided. | ||
Access / security concerns should be addressed at a higher level. | Access / security concerns should be addressed at a higher level. | ||
Line 1,155: | Line 1,348: | ||
</div> | </div> | ||
<!-- Pod2Wiki=item_permit --> | <!-- Pod2Wiki=item_permit --> | ||
− | ===permit=== | + | ====permit==== |
$boolean = $doc->permit( $priv, $user ) | $boolean = $doc->permit( $priv, $user ) | ||
− | Returns boolean depending on whether the <tt>$user</tt> has the privilege <tt>$priv</tt> to carry out a particular action on this document data object. | + | |
+ | Returns boolean depending on whether the <tt>$user</tt> has the privilege | ||
+ | <tt>$priv</tt> to carry out a particular action on this document data | ||
+ | object. | ||
See [[API:EPrints/DataObj#permit|EPrints::DataObj#permit]]. | See [[API:EPrints/DataObj#permit|EPrints::DataObj#permit]]. | ||
+ | |||
+ | <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_doc_with_eprintid_and_pos --> | ||
+ | ====doc_with_eprintid_and_pos==== | ||
+ | |||
+ | EPrints::DataObj::doc_with_eprintid_and_pos( $repository, $eprintid, $pos ) | ||
+ | |||
+ | Find the document for an eprint based on the <tt>$eprintid</tt> and <tt>$pos</tt> | ||
+ | values supplied matching the document's corresponding fields. | ||
+ | |||
+ | Returns the document data object matching the criteria. Otherwise, | ||
+ | checks <tt>dark_document</tt> dataset if it exists to find a corresponding | ||
+ | match. | ||
+ | |||
+ | <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_main_input_tags --> | ||
+ | ====main_input_tags==== | ||
+ | |||
+ | EPrints::DataObj::Document::main_input_tags( $session, $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_main_render_option --> | ||
+ | ====main_render_option==== | ||
+ | |||
+ | EPrints::DataObj::main_render_option( $session, $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_sanitise --> | ||
+ | ====sanitise==== | ||
+ | |||
+ | $cleanfilename = EPrints::DataObj::Document sanitise( $filename ) | ||
+ | |||
+ | DEPRECATED - Use [[API:EPrints/System#sanitise|EPrints::System#sanitise]]. | ||
+ | |||
+ | Sanitises filename by replacing invalid characters. | ||
+ | |||
+ | <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/SubObject|EPrints::DataObj::SubObject]], [[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 1,170: | Line 1,450: | ||
</div> | </div> | ||
<!-- Pod2Wiki=head_copyright --> | <!-- Pod2Wiki=head_copyright --> | ||
− | ==COPYRIGHT== | + | ==COPYRIGHT |
+ | |||
+ | == | ||
{{API: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%; '> |
Revision as of 00:04, 3 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
==NAME
== EPrints::DataObj::Document - A single format of a record.
==DESCRIPTION
== Document represents a single format of an EPrint (eg. PDF) - the
actual file(s) rather than the metadata.
Inherits from EPrints::DataObj::SubObject, which in turn inherits
from EPrints::DataObj.
==INSTANCE VARIABLES
== See EPrints::DataObj#INSTANCE_VARIABLES.
==CORE METADATA FIELDS
==
===docid (int)
Contents
- 1 =
- 2 =
- 3 =
- 4 =
- 5 =
- 6 =
- 7 =
- 8 =
- 9 =
- 10 =
- 11 =
- 12 =
- 13 =
- 14 =
- 15 =
- 16 =
- 17 =
- 18 =
- 19 =
- 19.1 clone
- 19.2 remove
- 19.3 get_eprint
- 19.4 get_baseurl
- 19.5 is_public
- 19.6 path
- 19.7 file_path
- 19.8 get_url
- 19.9 local_path
- 19.10 files
- 19.11 remove_file
- 19.12 set_main
- 19.13 get_main
- 19.14 set_format
- 19.15 set_format_desc
- 19.16 upload
- 19.17 add_file
- 19.18 upload_archive
- 19.19 add_archive
- 19.20 add_directory
- 19.21 upload_url
- 19.22 commit
- 19.23 get_derived_versions
- 19.24 validate
- 19.25 user_can_view
- 19.26 get_type
- 19.27 queue_files_modified
- 19.28 files_modified
- 19.29 rehash
- 19.30 make_indexcodes
- 19.31 remove_indexcodes
- 19.32 cache_file
- 19.33 register_parent
- 19.34 thumbnail_url
- 19.35 icon_url
- 19.36 render_icon_link
- 19.37 render_preview_link
- 19.38 caption_frag
- 19.39 set_name
- 19.40 thumbnail_plugin
- 19.41 thumbnail_path
- 19.42 thumbnail_types
- 19.43 remove_thumbnails
- 19.44 make_thumbnails
- 19.45 mime_type
- 19.46 get_parent_id
- 19.47 add_relation
- 19.48 remove_relation
- 19.49 has_relation
- 19.50 search_related
- 19.51 render_citation_link
- 19.52 render_video_preview
- 19.53 permit
- 20 =
=
The unique ID of the document.
===rev_number (int)
=
The revision number of this document record.
===pos (int)
=
The position of the document record within those associated with the
eprint.
===placement (int)
=
Placement of the document - the order documents in which should be
shown. This may be different to pos, as the ultimate_doc_pos may lead to a different ordering.
===format (namedset)
=
The format of this document. One of the types of the namedset
c<document>.
===formatdesc (text)
=
An additional description of this document. For example the specific
version of a format.
===language (namedset)
=
The ISO 639-1 code of the language of this document. The default
configuration of EPrints does not set this.
===security (namedset)
=
The security type of this document - who can view it. One of the
types of the namedset security.
===license (namedset)
=
The license applied of this document - who can view it. One of the
types of the namedset license.
===main (text)
=
The file which we should link to. For something like a PDF file this is
the only file. For an HTML document with images it would be the name of the actual HTML file.
===date_embargo (date)
=
The date until which the document has restricted access (set by
security). At which point the embargo is lifted and security is set to public and this field set back to undef.
Requires bin/lift_embargos script to be deployed as a cron job.
===date_embargo_retained (date)
=
The retained date of any embargo originally placed on this document.
This is updated when a user modifies date_embargo but is not unset by the bin/lift_embargos script.
===media (compound)
=
A compound field containing a description of the document media - dimensions, codec etc.
==REFERENCES AND RELATED OBJECTS
==
===eprintid (itemref)
=
The ID number of the eprint to which this document belongs.
===files (subobject, multiple)
=
A virtual field which represents the list of files which are part of
this record.
===relation (relation, multiple)
=
Predicated relationships between this document and other data objects
within the archive.
==METHODS
==
===Constructor Methods
=
create
$doc = EPrints::DataObj::Document::create( $session, $eprint )
Create and return a new document belonging to the given $eprint
object.
N.B. This creates the document in the database, not just in memory.
create_from_data
$dataobj = EPrints::DataObj::Document::create_from_data( $session, $data, $dataset )
Create document data object from $data provided.
Returns undef if a bad (or no) eprintid specified in $data.
Otherwise calls the parent method in EPrints::DataObj.
===Class Methods
=
get_system_field_info
$fields = EPrints::DataObj::Document->get_system_field_info
Returns an array describing the system metadata of the document
dataset.
get_defaults
$defaults = EPrints::DataObj::Document->get_defaults( $session, $data, $dataset )
Returns default values for this data object based on the starting
$data.
get_dataset_id
$dataset = EPrints::DataObj::Document->get_dataset_id
Returns the ID of the EPrints::DataSet object to which this record
belongs.
get_parent_dataset_id
$dataset_id = EPrints::DataObj::Document->get_parent_dataset_id
Returns the ID of the parent dataset for a document, (i.e. eprint).
===Object Methods
=
clone
$newdoc = $doc->clone( $eprint )
Attempt to clone this document. Both the document metadata and the
actual files. The clone will be associated with the given $eprint.
Returns to the newly colument document.
remove
$success = $doc->remove
Attempt to completely delete this document. Including derived
documents such as thumbnails.
Returns boolean dependent on success of deleting document.
get_eprint
$eprint = $doc->get_eprint
Returns the eprint this document is associated with.
Alias for:
$doc->get_parent
get_baseurl
$url = $doc->get_baseurl
Returns the base URL of the document.
is_public
$boolean = $doc->is_public
Returnes true if this document has no security set and is in the
live archive. Otherwise, returns false.
path
$path = $doc->path
Returns the relative path to the document without specifying any file.
file_path
$path = $doc->file_path( [ $file ] )
Returns the relative path to $file stored in this document.
If $file is undefined returns the path to the main file.
This is an efficient shortcut to this:
my $file = $doc->stored_file( $filename ); my $path = $file->path;
get_url
$url = $doc->get_url( [ $file ] )
Returns the full URL of the document.
If $file is not specified then the main file is used.
local_path
$path = $doc->local_path
DEPRECATED.
Returns the full path of the directory where this document is stored
in the filesystem.
files
%files = $doc->files
Returns a hash, the keys of which are all the files belonging to this
document (relative to local_path). The values are the sizes of the files in bytes.
remove_file
$success = $doc->remove_file( $filename )
Attempts to remove the file with $filename. $filename must be
specified in the format that can be retrieved by get_stored_file.
set_main
$doc->set_main( $main_file )
Sets main for the document to the named $main_file and adjusts
format and mime_type as necessary. Will not affect the database until the document is committed.
Unsets main if $main_file is undefined.
get_main
$filename = $doc->get_main
Returns the filename of the file set as main in this document.
set_format
$doc->set_format( $format )
Set format for document to $format. Will not affect the database
until document is committed.
Alias for:
$doc->set_value( "format" , $format );
set_format_desc
$doc->set_format_desc( $format_desc )
Set format description for document to $format_desc. Will not
affect the database until document is committed.
Alias for:
$doc->set_value( "format_desc" , $format_desc );
upload
$success = $doc->upload( $filehandle, $filename, [ $preserve_path, $filesize ] )
DEPRECATED - Use add_file, which will automatically identify the
file type.
Upload the contents of the given $filehandle into this document as
the given $filename.
If $preserve_path then make any subdirectories needed, otherwise
place this in the top level directory.
add_file
$fileobj = $doc->add_file( $file, $filename, [ $preserve_path ] )
$file is the full path to a file to be added to the document, with
name $filename. $filename is passed through EPrints::System#sanitise before being written.
If $preserve_path is true then include path components in
$filename.
Returns the file object if successfully created or undef on
failure.
upload_archive
$success = $doc->upload_archive( $filehandle, $filename, $archive_format )
DEPRECATED - use add_archive.
Upload the file contents provided through $filehandle using the
filename from $filename. How to deal with the specified $archive_format (e.g. .zip, .tar.gz) is configured in EPrints::SystemSettings.
add_archive
$success = $doc->add_archive( $file, $archive_format )
Adds the contents of that archive $file to the document, where
$archive_format is the format of the archive file (e.g. .zip, .tar.gz, etc.)
Returns a boolean dependent on whether the contents of the archive
file is added to the document's subdirectory on the filesystem.
add_directory
$success = $doc->add_directory( $directory )
Upload the contents of $directory to this document. This will not
set the document's main field.
This method expects $directory to have a trailing slash /.
Returns boolean depending on success of adding directory to document.
upload_url
$success = $doc->upload_url( $url )
Attempts to grab files from the given $url over HTTP. Grabbing
files this way is always problematic. Therefore, by default, only relative links will be followed and only links to files in the same directory or subdirectory will be followed.
This method by default uses wget.
However, you can modify this in EPrints::SystemSettings.
Returns a boolean dependent of whether file(s) were successfully
uploaded.
commit
$success = $doc->commit( [ $force ] )
Commit any changes that have been made to this data object to the
database.
Calls set_document_automatic_fields in the archive's configuration
first to set any automatic fields that may be needed.
If $force is defined and true then still commit even if there
are no non-volatile changes.
Returns boolean depending on whether commit of document data object is
successful.
get_derived_versions
@derived_docs = $doc->get_derived_versions
Returns an array of documents that are derived from the current
document through the isVersionOf relation.
validate
$problems = $doc->validate( [ $for_archive ] )
Validates the document data object. If $for_archive is defined
this will be passed through to the archive configured validate_document method, in case it is required for bespoke changes to this method.
Returns a reference to an array of XHTML DOM objects describing
validation problems with the entire document, including the metadata and repository config specific requirements.
A returned reference to an empty array indicates no problems.
user_can_view
$boolean = $doc->user_can_view( $user )
Returns true if this document's security settings allow the given
$user access to view it.
get_type
$type = $doc->get_type
Returns the type of this document.
Alias for:
$doc->value( "format" );
queue_files_modified
$doc->queue_files_modified
Adds a files_modified task (e.g. for creating/updating thumbnails)
to the event queue.
files_modified
$doc->files_modified
This method does all the things that need doing when a file has been
modified.
rehash
$doc->rehash
Recalculate the hash value of the document. Uses MD5 of the files (in
alphabetic order), but can use user-specified hashing function instead.
make_indexcodes
$indexcodes_doc = $doc->make_indexcodes
Make the index codes document for this document. Returns the generated
index codes document on success or undef on failure.
remove_indexcodes
$doc = $doc->remove_indexcodes
Remove any documents containing index codes for this document.
Returns the number of documents removed.
cache_file
$filename = $doc->cache_file( $suffix );
DEPRECATED
Returns a cache filename for this document with the given $suffix.
register_parent
$doc->register_parent( $parent )
Registers the $parent EPrints::DataObj::EPrint object for this
document.
This may cause reference loops, but it does avoid two identical
eprint data objects existing at once.
thumbnail_url
$doc->thumbnail_url( $size )
Returns the URL for the thumbnail of the document for a specified
$size. If $size is unspecified defaults to small. Other values for $size include medium and preview.
Returns undef if file for particular type of thumbnail does not
exist.
This method is called bt icon_url. It is best to use that method
to reliably retrieve the required URL.
icon_url
$doc->icon_url( $size )
Returns the URL for the icon of the document for a specified
$size. If $size is unspecified defaults to small. Other values for $size include medium and preview.
render_icon_link
$frag = $doc->render_icon_link( %opts )
Render a link to the icon for this document.
Options:
new_window => 1 - Make link go to _blank not current window.
preview => 1 - If possible, provide a preview pop-up.
public => 0 - Show thumbnail/preview only on public documents.
public => 1 - Show thumbnail/preview on all documents if possible.
with_link => 0 - Do not link.
render_preview_link
$frag = $doc->render_preview_link( %opts )
Render a link to the preview for this document (if available) using a
lightbox.
Options:
caption => $frag
XHTML fragment to use as the caption, defaults to empty.
set_name
set => "name"
The name of the set this document belongs to, defaults to none
(preview won't be shown as part of a set).
thumbnail_plugin
$plugin = $doc->thumbnail_plugin( $size )
Returns the plugin used to generatee thumbnails of the specified
$size.
thumbnail_path
$path = $doc->thumbnail_path
DEPRECATED
Returns the filesystem path to location of thumbnails for the
document.
thumbnail_types
$doc->thumbnail_types
Returns array containing names of all the thumbnail types available
for this document.
remove_thumbnails
$doc->remove_thumbnails
Removes all thumbnail files associated with this document.
make_thumbnails
$doc->make_thumbnails
Make all the thumbnail files required for this document.
mime_type
$mime_type = $doc->mime_type
DEPRECATED - use $doc->value( "mime_type" )
Returns the MIME type of this document.
get_parent_id
$eprintid = $doc->get_parent_id
Returns the ID of the parent for this document, (i.e. the eprint ID).
add_relation
$doc->add_relation( $tgt, @types )
Add one or more relations with type(s) specified by @types to the
document data object and pointing to the $tgt data object.
This will not update the $tgt data object even if reflexive
relations exist.
remove_relation
$doc->remove_relation( $tgt, [ @types ] )
Removes the relations for the document data object to the $tgt data
object. If @types is not defined, remove all relations to $tgt. If $tgt is also undefined removes all relations given in @types.
If both $tgt, and @types are both undefined no relations will be
removed. If you want to remove all relations do:
$doc->set_value( "relation", [] );
has_relation
$bool = $doc->has_relation( $tgt, [ @types ] )
Returns true if document data object has relations to $tgt. If
@types is also given, check these relations satisfy all of the given types. If $tgt is undefined, relations that satisfy the given types may be to any data object.
$list = $doc->search_related( [ $type ] )
Returns an EPrints::List that contains all document data objects
related to this document data object. If $type is defined return only those document data object related by that type.
render_citation_link
$citation = $doc->render_citation_link( $style, %params )
Returns a XHTML DOM citation rendering of the document data object.
Using citation $style and %params provided and setting class for DOM parent element to ep_document_link.
render_video_preview
$frag = $doc->render_video_preview( $css_class )
Returns a XHTML DOM fragment rendering of a HTML5 video preview with
optional subtitles. Assigning the $css_class to the parent element if the XHTML DOM fragment, if provided.
Access / security concerns should be addressed at a higher level.
permit
$boolean = $doc->permit( $priv, $user )
Returns boolean depending on whether the $user has the privilege
$priv to carry out a particular action on this document data object.
===Utility Methods
=
doc_with_eprintid_and_pos
EPrints::DataObj::doc_with_eprintid_and_pos( $repository, $eprintid, $pos )
Find the document for an eprint based on the $eprintid and $pos
values supplied matching the document's corresponding fields.
Returns the document data object matching the criteria. Otherwise,
checks dark_document dataset if it exists to find a corresponding match.
main_input_tags
EPrints::DataObj::Document::main_input_tags( $session, $object )
main_render_option
EPrints::DataObj::main_render_option( $session, $object )
sanitise
$cleanfilename = EPrints::DataObj::Document sanitise( $filename )
DEPRECATED - Use EPrints::System#sanitise.
Sanitises filename by replacing invalid characters.
==SEE ALSO
== EPrints::DataObj::SubObject, 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/.