fields = $fields; return $this; } /** * @param FormGenerator $generator * @param Entity|null $entity * @return string */ public function perform(FormGenerator $generator, ?Entity $entity = null): string { return $generator->generate($this->fields, $entity); } public function supportsStackWrapper(): bool { return true; } /** * @param Field $field * @return string */ public function label(Field $field): string { if (!$field->label()) return ''; return Form::label([ 'for' => $field->id(), 'title' => $field->label(), 'class' => trim((Html::is_admin_context() ? '' : 'wui-field__label ') . (string) $field->get('label_class')), 'required' => $field->required(), ]); } /** * @param Field $field * @return string */ public function description(Field $field): string { if (!$field->description()) return ''; $class = trim('description wui-field__help ' . (string) $field->get('description_class')); if (Html::is_admin_context()) { $classes = preg_split('/\s+/', (string) $field->get('description_class')) ?: []; $classes = array_values(array_unique(array_filter($classes, static function (string $value): bool { return $value !== 'description' && $value !== 'wui-field__help' && strpos($value, Html::get_daytidy_class('description', 'admin')) !== 0; }))); $class = implode(' ', array_merge([Html::get_daytidy_class('description--sm-relaxed', 'admin')], $classes)); } else { $classes = preg_split('/\s+/', $class) ?: []; $classes = array_values(array_unique(array_filter($classes, static function (string $value): bool { return strpos($value, Html::get_daytidy_class('description', 'fe')) !== 0 && strpos($value, 'daytidy-admin-description') !== 0; }))); $class = implode(' ', array_merge($classes, [Html::get_daytidy_class('description--sm-relaxed', 'fe')])); } return '
'.$field->description().'
'; } }