public static function getUploadForm($file, $parentClass, $parentId, $parentField) { if ($file instanceof File && class_exists($parentClass) && is_subclass_of($parentClass, "DataObject")) { $parent = $parentClass::get()->byId($parentId); $fields = new FieldList($uploadField = new UploadField($parentField, 'Upload', $parent)); $uploadField->setCanAttachExisting(false); // Block access to Silverstripe assets library $uploadField->setCanPreviewFolder(false); // Don't show target filesystem folder on upload field $uploadField->relationAutoSetting = false; // Prevents the form thinking the GalleryPage is the underlying object $uploadField->setFolderName('Address Book'); $uploadField->setAllowedMaxFileNumber(1); if ($file instanceof Image) { $uploadField->setAllowedFileCategories('image'); } $actions = new FieldList(new FormAction('submit', 'Save')); $from = new Form(Controller::curr(), 'feFileUploadForm', $fields, $actions, null); $urlParams = array('feclass' => $parentClass, 'fefield' => $parentField, 'feid' => $parentId, 'filesUpload' => true, 'fefileid' => $file->ID, 'fefileclass' => $file->ClassName); // feclass: parentClass, // fefield: parentField, // feid: parentId, // feisUpload: true, // value: "{feclass: " + objClass + ",feid: " + objId + "}" // echo http_build_query($urlParams) . "\n"; $from->setFormAction('home/feFileUploadForm?' . http_build_query($urlParams)); return $from; } }
function getCMSFields() { $this->beforeUpdateCMSFields(function ($fields) { $datefield = new DateField('Date', 'Date (DD/MM/YYYY)*'); $datefield->setConfig('showcalendar', true); $datefield->setConfig('dateformat', 'dd/MM/YYYY'); $imagefield = new UploadField('Image', 'Image'); $imagefield->allowedExtensions = array('jpg', 'gif', 'png'); $imagefield->setFolderName("Managed/CalendarImages"); $imagefield->setCanPreviewFolder(false); $fields->addFieldToTab('Root.Main', new TextField('Title', "Event Title*")); $fields->addFieldToTab('Root.Main', $datefield); $fields->addFieldToTab('Root.Main', new TextField('Time', "Time (HH:MM)")); $fields->addFieldToTab('Root.Main', new TextareaField('Description')); $fields->addFieldToTab('Root.Main', $imagefield); }); $fields = parent::getCMSFields(); $this->extend('updateCMSFields', $fields); $fields->removeFieldFromTab("Root.Main", "CalendarPageID"); return $fields; }
public function getCMSFields() { $this->beforeUpdateCMSFields(function ($fields) { $datefield = new DateField('Date', 'Date (DD/MM/YYYY)'); $datefield->setConfig('showcalendar', true); $datefield->setConfig('showdropdown', true); $datefield->setConfig('dateformat', 'dd/MM/YYYY'); $fields->addFieldToTab('Root.Main', $datefield, 'Content'); $image = new UploadField('AttachedImage', 'Main Image'); $image->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif')); $image->setConfig('allowedMaxFileNumber', 1); $image->setFolderName('Managed/NewsImages'); $image->setCanPreviewFolder(false); $image->setRightTitle("Displayed to the right of the content in the main article, where it can be clicked to enlarge. <br />A thumbnail also appears next to the article summary on the main News page."); $fields->addFieldToTab('Root.Main', $image, "Content"); }); $fields = parent::getCMSFields(); $fields->renameField("Title", "Headline"); $fields->removeFieldFromTab("Root.Main", "MenuTitle"); return $fields; }