2

Is there a way to add a wrapper around a labelfield or any other kind of form field in silverstripe forms? It would be easier to style forms this way.

FieldList::create(
    LabelField::create('label','Label'),
    EmailField::create('Email',''),
    TextareaField::create('Comment','')
)
Moshiur
  • 659
  • 6
  • 22

1 Answers1

2

Yes, according to the docs you can set a template either per form or per field, see docs.

$field = TextField::create(..);
$field->setTemplate('MyCustomTextField');

You need to set the whole path to your template if it's located in a subfolder of your themes /templates/ directory.

If you need to change the templates globally you can overwrite them in your theme. LabelField's template is located in templates/SilverStripe/Forms/LabelField.ss.

  1. Put a file with the same path in your theme (e.g. themes/mytheme/templates/SilverStripe/Forms/LabelField.ss),

  2. flush your Silverstripe cache (e.g. by running flush by adding ?flush to the URL) so Silverstripe can find the new template file,

  3. and start experimenting with your custom markup.

A flush is only needed when you add a new template file, updates of your existing files will be detected automatically.

3dgoo
  • 15,716
  • 6
  • 46
  • 58
wmk
  • 4,598
  • 1
  • 20
  • 37