Thank you for your reply.
I followed this example (with a fresh install of silverstripe 4.10):
I only added one more field “Copyright” (Varchar).
Both custom fields show up in the edit form, and I can store data.
But now I am stuck to make these new fields searchable.
app/src/MyFileExtension.php
<?php
namespace MyProject;
use SilverStripe\ORM\DataExtension;
class MyFileExtension extends DataExtension
{
private static $db = [
'Description' => 'Text',
'Copyright' => 'Varchar',
];
private static $searchable_fields = [ 'Description', 'Copyright' ];
}
app/src/MyFormFactoryExtension.php
<?php
namespace MyProject;
use SilverStripe\Core\Extension;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextareaField;
use SilverStripe\Forms\TextField;
class MyFormFactoryExtension extends Extension
{
public function updateFormFields(FieldList $fields)
{
$fields->insertAfter(
'Title',
TextareaField::create('Description', 'Description')
);
$fields->insertAfter(
'Title',
TextField::create('Copyright', 'Copyright')
);
}
}
app/_config/app.yml
SilverStripe\Assets\File:
extensions:
- MyProject\MyFileExtension
SilverStripe\AssetAdmin\Forms\FileFormFactory:
extensions:
- MyProject\MyFormFactoryExtension