class LegacyWidget extends WidgetBase {
public function settingsForm(array $form, array &$form_state) {
$definition = $this
->getDefinition();
$function = $definition['module'] . '_field_widget_settings_form';
if (function_exists($function)) {
return $function($this->field, $this->instance);
}
return array();
}
public function formElement(array $items, $delta, array $element, $langcode, array &$form, array &$form_state) {
$definition = $this
->getDefinition();
$function = $definition['module'] . '_field_widget_form';
if (function_exists($function)) {
$instance = clone $this->instance;
$instance['widget']['type'] = $this
->getPluginId();
$instance['widget']['settings'] = $this
->getSettings();
return $function($form, $form_state, $this->field, $instance, $langcode, $items, $delta, $element);
}
return array();
}
public function flagErrors(EntityInterface $entity, $langcode, array $items, array $form, array &$form_state) {
$field_name = $this->field['field_name'];
$field_state = field_form_get_state($form['#parents'], $field_name, $langcode, $form_state);
if (!empty($field_state['errors'])) {
$element = drupal_array_get_nested_value($form_state['complete_form'], $field_state['array_parents']);
if (!isset($element['#access']) || $element['#access']) {
$definition = $this
->getDefinition();
$is_multiple = $definition['multiple_values'];
$function = $definition['module'] . '_field_widget_error';
$function_exists = function_exists($function);
foreach ($field_state['errors'] as $delta => $delta_errors) {
$error_element = $is_multiple ? $element : $element[$delta];
foreach ($delta_errors as $error) {
if ($function_exists) {
$function($error_element, $error, $form, $form_state);
}
else {
form_error($error_element, $error['message']);
}
}
}
$field_state['errors'] = array();
field_form_set_state($form['#parents'], $field_name, $langcode, $form_state, $field_state);
}
}
}
}