I tried this and it works. Couldn’t find a full working example so I did what @schellmax did and looked at the code for the silverstripe-focuspoint module. 2 new files and an edit to my main yml file.
Image extension ImageExtension.php :
<?php
namespace MyCoolProject;
use SilverStripe\ORM\DataExtension;
class ImageExtension extends DataExtension {
private static $db = ["caption" => "Text"];
}
Form Factory extension ImageFormFactoryExtension.php :
<?php
namespace MyCoolProject;
use SilverStripe\Core\Extension;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextareaField;
class ImageFormFactoryExtension extends Extension {
public function updateFormFields(FieldList $fields) {
$fields->insertAfter(
"Name",
TextareaField::create("caption", "Image caption")->setRows(3)
);
}
}
YML file :
SilverStripe\Assets\Image:
extensions:
- MyCoolProject\ImageExtension
SilverStripe\AssetAdmin\Forms\ImageFormFactory:
extensions:
- MyCoolProject\ImageFormFactoryExtension
SilverStripe\Assets\Storage\DBFile:
extensions:
- MyCoolProject\ImageExtension
I hope this helps someone out there 