I have found the following solution for your problem:
In your _config.php file, add the following line:
Object::add_extension('Newsletter', 'MyNewsletter');
Create a file called MyNewsletter.php:
<?php
class MyNewsletter extends DataObjectDecorator {
public function extraStatics() {
return array(
'has_one' => array(
'File' => 'File'
)
);
}
public function updateCMSFields(FieldSet $fields) {
$fields->addFieldsToTab(
'Root.Newsletter',
array(
new FileField('File', 'File') // doesn't work
)
);
}
}
?>
Furthermore, you have to edit newsletter/code/Newsletter.php and modify the function getCMSFields():
function getCMSFields($controller = null) {
// ...
$this->extend('updateCMSFields', $ret);
return $ret;
}
By now, I haven't found a way to make the FileField / FileIFrameField work. Perhaps somebody else has an idea how to solve this issue?