silverstripe-dms/docs/en/creating-documents.md
Robbie Averill e4bc553521 API Add document sets, remove *Page methods from DMSDocument
* Add 2.0.0 changelog
* Update DMSInterface and DMSDocumentInterface removing *page and adding getDocumentSetsByPage to DMSInterface
* Update use documentation and update unit tests

This commit changes the relationship from Pages has_many Documents to Pages has_many DocumentSets which are many_many to Documents. The upload field has been upated to attach documents to a set instead of a page, the tests updated and the DMSInterface and DMSDocumentInterface updated to be less relevant to pages and more relevant to document sets.
2017-05-09 13:04:29 +12:00

921 B

Creating documents

The following examples will allow you to create a DMS document in the system without associating it to a document set.

Create by relative path

$dms = DMS::inst();
$doc = $dms->storeDocument('assets/myfile.pdf');

Create from an existing File record

$dms = DMS::inst();
$file = File::get()->byID(99);
$doc = $dms->storeDocument($file);

Note: Both operations copy the existing file.

Associate to a document set

If you need to associate a document to a set once it has already been created, you can use the ORM relationship from SiteTree to access the document sets, or you can simply access the document set directly:

// Add document to the first set in my page
$firstSetInPage = $myPage->DocumentSets()->first();
$firstSetInPage->add($doc);

// Add document to a specific document set
$docSet = DMSDocumentSet::get()->byId(123);
$docSet->add($doc);