You are here

class FieldEntry in Flag 8.4

Class FieldEntry

Plugin annotation


@ActionLinkType(
 id = "field_entry",
 label = @Translation("Field Entry Form"),
 description = @Translation("Redirects the user to a field entry form.")
)

Hierarchy

Expanded class hierarchy of FieldEntry

File

src/Plugin/ActionLink/FieldEntry.php, line 19

Namespace

Drupal\flag\Plugin\ActionLink
View source
class FieldEntry extends FormEntryTypeBase {

  /**
   * {@inheritdoc}
   */
  public function getUrl($action, FlagInterface $flag, EntityInterface $entity) {
    switch ($action) {
      case 'flag':
        return Url::fromRoute('flag.field_entry', [
          'flag' => $flag
            ->id(),
          'entity_id' => $entity
            ->id(),
        ]);
      default:
        return Url::fromRoute('flag.field_entry.edit', [
          'flag' => $flag
            ->id(),
          'entity_id' => $entity
            ->id(),
        ]);
    }
  }

  /**
   * {@inheritdoc}
   */
  public function defaultConfiguration() {
    $options = parent::defaultConfiguration();

    // Change label for flag confirmation text.
    $options['flag_confirmation'] = $this
      ->t('Enter flagging details');
    $options['edit_flagging'] = $this
      ->t('Edit flagging details');
    $options['flag_update_button'] = $this
      ->t('Update flagging');
    return $options;
  }

  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
    $form = parent::buildConfigurationForm($form, $form_state);
    $form['display']['settings']['link_options_' . $this
      ->getPluginId()]['edit_flagging'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Edit flagging details message'),
      '#default_value' => $this->configuration['edit_flagging'],
      '#description' => $this
        ->t('Message displayed if the user has clicked the "Edit flag" link. Usually presented in the form such as, "Please enter the flagging details."'),
      // This will get changed to a state by flag_link_type_options_states().
      '#required' => TRUE,
    ];
    $form['display']['settings']['link_options_field_entry']['flag_update_button'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Update flagging button text'),
      '#default_value' => $this->configuration['flag_update_button'],
      '#description' => $this
        ->t('The text for the submit button when updating a flagging.'),
      // This will get changed to a state by flag_link_type_options_states().
      '#required' => TRUE,
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
    parent::validateConfigurationForm($form, $form_state);
    $form_values = $form_state
      ->getValues();
    if (empty($form_values['edit_flagging'])) {
      $form_state
        ->setErrorByName('flagging_edit_title', $this
        ->t('An edit flagging details message is required when using the field entry link type.'));
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ActionLinkTypeBase::$currentUser protected property The current user.
ActionLinkTypeBase::calculateDependencies public function
ActionLinkTypeBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create 1
ActionLinkTypeBase::getAction protected function Helper method to get the next flag action the user can take.
ActionLinkTypeBase::getAsLink public function Get the action link as a Link object. Overrides ActionLinkTypePluginInterface::getAsLink
ActionLinkTypeBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
ActionLinkTypeBase::getDestination protected function Helper method to generate a destination URL parameter. 1
ActionLinkTypeBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
ActionLinkTypeBase::__construct public function Build a new link type instance and sets the configuration. Overrides PluginBase::__construct 1
FieldEntry::buildConfigurationForm public function Provides a form array for the action link plugin's settings form. Overrides FormEntryTypeBase::buildConfigurationForm
FieldEntry::defaultConfiguration public function Gets default configuration for this plugin. Overrides FormEntryTypeBase::defaultConfiguration
FieldEntry::getUrl public function Return a Url object for the given flag action. Overrides ActionLinkTypeBase::getUrl
FieldEntry::validateConfigurationForm public function Validates the action link setting form. Overrides FormEntryTypeBase::validateConfigurationForm
FormEntryTypeBase::getAsFlagLink public function Get the action link formatted for use in entity links. Overrides ActionLinkTypeBase::getAsFlagLink
FormEntryTypeBase::getCreateButtonText public function Returns the create button text. Overrides FormEntryInterface::getCreateButtonText
FormEntryTypeBase::getDeleteButtonText public function Returns the delete button text. Overrides FormEntryInterface::getDeleteButtonText
FormEntryTypeBase::getEditFlaggingTitle public function Returns the edit flagging details form title. Overrides FormEntryInterface::getEditFlaggingTitle
FormEntryTypeBase::getFlagQuestion public function Returns the flag confirm form question when flagging. Overrides FormEntryInterface::getFlagQuestion
FormEntryTypeBase::getUnflagQuestion public function Returns the flag confirm form question when unflagging. Overrides FormEntryInterface::getUnflagQuestion
FormEntryTypeBase::getUpdateButtonText public function Returns the update button text. Overrides FormEntryInterface::getUpdateButtonText
FormEntryTypeBase::submitConfigurationForm public function Processes the action link setting form submit. Overrides ActionLinkTypeBase::submitConfigurationForm
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.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 1
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
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.