You are here

class CustomTextComponentType in Flexiform 8

Plugin for field widget component types.

Plugin annotation


@FormComponentType(
  id = "custom_text",
  label = @Translation("Custom Text"),
  component_class = "Drupal\flexiform\Plugin\FormComponentType\CustomTextComponent",
)

Hierarchy

Expanded class hierarchy of CustomTextComponentType

File

src/Plugin/FormComponentType/CustomTextComponentType.php, line 20

Namespace

Drupal\flexiform\Plugin\FormComponentType
View source
class CustomTextComponentType extends FormComponentTypeCreateableBase {

  /**
   * {@inheritdoc}
   */
  public function componentRows(EntityDisplayFormBase $form_object, array $form, FormStateInterface $form_state) {
    $rows = [];
    foreach ($this
      ->getFormDisplay()
      ->getComponents() as $component_name => $options) {
      if (isset($options['component_type']) && $options['component_type'] == $this
        ->getPluginId()) {
        $rows[$component_name] = $this
          ->buildComponentRow($form_object, $component_name, $form, $form_state);
      }
    }
    return $rows;
  }

  /**
   * {@inheritdoc}
   */
  public function addComponentForm(array $form, FormStateInterface $form_state) {
    $form['content'] = [
      '#title' => t('Content'),
      '#type' => 'text_format',
      '#required' => TRUE,
    ];
    if (\Drupal::moduleHandler()
      ->moduleExists('token')) {
      $tree = [];
      $token_info = \Drupal::service('flexiform.token')
        ->getInfo();

      /** @var TreeBuilderInterface $tree_builder */
      $tree_builder = \Drupal::service('flexiform.token.tree_builder');
      foreach ($this
        ->getFormEntityManager($form, $form_state)
        ->getContextDefinitions() as $namespace => $context_definition) {
        $entity_type_id = $context_definition
          ->getDataType();
        list(, $entity_type_id) = explode(':', $entity_type_id, 2);
        if ($namespace == '') {
          $namespace = 'base_entity';
        }
        $entity_type = \Drupal::entityTypeManager()
          ->getDefinition($entity_type_id);
        $token_type = $entity_type
          ->get('token_type') ?: (!empty($token_info['types'][$entity_type_id]) ? $entity_type_id : FALSE);
        if ($token_type) {
          $tree[$namespace] = $token_info['types'][$token_type];
          $tree[$namespace]['tokens'] = $tree_builder
            ->buildTree($token_type, [
            'parents' => [
              $namespace,
            ],
          ]);
        }
      }
      $form['tokens'] = [
        '#type' => 'token_tree_table',
        '#token_tree' => $tree,
        '#show_restricted' => TRUE,
        '#theme_wrappers' => [
          'form_element',
        ],
      ];
    }
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function addComponentFormSubmit(array $form, FormStateInterface $form_state) {
    $options = $form_state
      ->getValue($form['#parents']);
    $options['format'] = $options['content']['format'];
    $options['content'] = $options['content']['value'];
    $form_state
      ->setValue($form['#parents'], $options);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
CustomTextComponentType::addComponentForm public function Get a form for adding a component of this type. Overrides FormComponentTypeCreateableBase::addComponentForm
CustomTextComponentType::addComponentFormSubmit public function Submit the add component options form. Overrides FormComponentTypeCreateableBase::addComponentFormSubmit
CustomTextComponentType::componentRows public function Overrides FormComponentTypeBase::componentRows
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
FormComponentTypeBase::$components protected property A list of components that have been constructed.
FormComponentTypeBase::$formDisplay protected property The form display.
FormComponentTypeBase::$formEntityManager protected property The form entity manager.
FormComponentTypeBase::buildComponentRow protected function Build a component row for a component of this type. 1
FormComponentTypeBase::getApplicableRendererPluginOptions protected function Get applicable renderer plugin options. 1
FormComponentTypeBase::getComponent public function Get a component object. Overrides FormComponentTypeInterface::getComponent 2
FormComponentTypeBase::getDefaultRendererPlugin protected function Get the default renderer plugin. 1
FormComponentTypeBase::getFormDisplay public function Get the form display. Overrides FormComponentTypeInterface::getFormDisplay
FormComponentTypeBase::getFormEntityManager public function Get the form entity manager. Overrides FormComponentTypeInterface::getFormEntityManager
FormComponentTypeBase::setFormDisplay public function Set the form display. Overrides FormComponentTypeInterface::setFormDisplay
FormComponentTypeBase::setFormEntityManager public function
FormComponentTypeBase::submitComponentRow public function 1
FormComponentTypeCreateableBase::addComponentFormValidate public function Validate the add component form. Overrides FormComponentTypeCreateableInterface::addComponentFormValidate
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.