cms-niceties/src/Extensions/PlaceholderFormExtension.php

41 lines
1.0 KiB
PHP
Raw Normal View History

2021-06-19 21:30:03 +02:00
<?php
namespace A2nt\CMSNiceties\Extensions;
use SilverStripe\Core\Extension;
use SilverStripe\Forms\CompositeField;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextField;
class PlaceholderFormExtension extends Extension
{
public function updateFormFields(FieldList $fields)
{
foreach ($fields as $field) {
$this->setPlaceholder($field);
}
}
private function setPlaceholder($field)
{
if (is_a($field, TextField::class)) {
2021-07-09 15:04:46 +02:00
if (!$field->getAttribute('placeholder')) {
$placeholder = $field->Title() .($field->hasClass('requiredField') ? '*' : '');
$field->setAttribute(
'placeholder',
$placeholder
);
$field->setTitle('');
}
2021-06-19 21:30:03 +02:00
}
if (is_a($field, CompositeField::class)) {
$children = $field->getChildren();
foreach ($children as $child) {
$this->setPlaceholder($child);
}
}
}
}