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;
 }