46 lines
1.2 KiB
PHP
Executable File
46 lines
1.2 KiB
PHP
Executable File
<?php
|
|
|
|
namespace A2nt\CMSNiceties\Extensions;
|
|
|
|
use SilverStripe\Core\Extension;
|
|
use SilverStripe\Forms\CompositeField;
|
|
use SilverStripe\Forms\FieldList;
|
|
use SilverStripe\Forms\TextField;
|
|
|
|
/**
|
|
* Class \A2nt\CMSNiceties\Extensions\PlaceholderFormExtension
|
|
*
|
|
* @property \A2nt\CMSNiceties\Extensions\PlaceholderFormExtension $owner
|
|
*/
|
|
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)) {
|
|
if (!$field->getAttribute('placeholder')) {
|
|
$placeholder = $field->Title() .($field->hasClass('requiredField') ? '*' : '');
|
|
|
|
$field->setAttribute(
|
|
'placeholder',
|
|
$placeholder
|
|
);
|
|
$field->setTitle('');
|
|
}
|
|
}
|
|
|
|
if (is_a($field, CompositeField::class)) {
|
|
$children = $field->getChildren();
|
|
foreach ($children as $child) {
|
|
$this->setPlaceholder($child);
|
|
}
|
|
}
|
|
}
|
|
}
|