cms-niceties/src/Extensions/PlaceholderFormExtension.php

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);
}
}
}
}