Source of file PageDocumentCategory.php
Size: 2,554 Bytes - Last Modified: 2021-12-23T10:58:12+00:00
/var/www/docs.ssmods.com/process/src/code/DataObjects/PageDocumentCategory.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | <?php class PageDocumentCategory extends DataObject { protected static $db = [ 'Title' => 'Varchar(255)', 'SortOrder' => 'Int' ]; protected static $has_one = [ 'Page' => 'Page' ]; private static $summary_fields = [ 'Title' => 'Category Title', 'Documents.Count' => 'Documents' ]; private static $many_many = [ 'Documents' => 'File' ]; private static $many_many_extraFields = [ 'Documents' => ['SortOrder' => 'Int'] ]; protected static $default_sort = 'SortOrder'; public function getCMSFields() { $fields = new FieldList([ TextField::create('Title'), ]); if ($this->exists()) { $folderName = 'Documents'; $config = $this->Page()->exists() ? $this->Page()->config()->get('page_documents') : null; if (is_array($config)) { if (isset($config['folder'])) { $folderName = $config['folder']; } if (isset($config['section']) && $config['section']) { $filter = new URLSegmentFilter(); $section = implode('-', array_map( function ($string) { return ucfirst($string); }, explode('-', $filter->filter($this->Title)) ) ); $folderName .= '/' . $section; } } $fields->push(SortableUploadField::create('Documents', 'Documents')->setDescription('Drag documents by thumbnail to sort')->setFolderName($folderName)); } else { $fields->push(LiteralField::create('DocumentsNotSaved', '<p>Save category to add documents</p>')); } $this->extend('updateCMSFields', $fields); return $fields; } public function SortedDocuments() { return $this->Documents()->Sort('SortOrder'); } public function canView($member = null) { return Permission::check('CMS_ACCESS_CMSMain', 'any', $member); } public function canEdit($member = null) { return Permission::check('CMS_ACCESS_CMSMain', 'any', $member); } public function canDelete($member = null) { return Permission::check('CMS_ACCESS_CMSMain', 'any', $member); } public function canCreate($member = null) { return Permission::check('CMS_ACCESS_CMSMain', 'any', $member); } } |