You are here

class ProfileForm in Entity Legal 3.0.x

Same name and namespace in other branches
  1. 8.2 src/Plugin/EntityLegal/ProfileForm.php \Drupal\entity_legal\Plugin\EntityLegal\ProfileForm
  2. 4.0.x src/Plugin/EntityLegal/ProfileForm.php \Drupal\entity_legal\Plugin\EntityLegal\ProfileForm

Method class for displaying a checkbox on the user register form.

Plugin annotation


@EntityLegal(
  id = "form_link",
  label = @Translation("Checkbox on signup form"),
  type = "new_users",
)

Hierarchy

Expanded class hierarchy of ProfileForm

File

src/Plugin/EntityLegal/ProfileForm.php, line 17

Namespace

Drupal\entity_legal\Plugin\EntityLegal
View source
class ProfileForm extends EntityLegalPluginBase {

  /**
   * {@inheritdoc}
   */
  public function execute(array &$context = []) {
    if (!empty($this->documents)) {
      $context['form']['actions']['submit']['#submit'][] = [
        get_class($this),
        'submitForm',
      ];

      /** @var \Drupal\entity_legal\EntityLegalDocumentInterface $document */
      foreach ($this->documents as $document) {
        $context['form']['#cache']['tags'][] = "entity_legal_document:{$document->id()}";
        $context['form']["legal_{$document->id()}"] = [
          '#type' => 'checkbox',
          '#title' => $document
            ->getAcceptanceLabel(),
          '#default_value' => $document
            ->userHasAgreed(),
          '#required' => TRUE,
        ];
        $context['form']['#entity_legal'] = $this;
      }
    }
  }

  /**
   * Submit handler for user register form.
   */
  public static function submitForm(array &$form, FormStateInterface $form_state) {

    /** @var \Drupal\entity_legal\EntityLegalDocumentInterface $document */
    foreach ($form['#entity_legal']->documents as $document) {
      if (!empty($form_state
        ->getValue([
        'legal_' . $document
          ->id(),
      ]))) {
        $published_version = $document
          ->getPublishedVersion();
        $acceptance = \Drupal::entityTypeManager()
          ->getStorage(ENTITY_LEGAL_DOCUMENT_ACCEPTANCE_ENTITY_NAME)
          ->create([
          'uid' => $form_state
            ->getValue('uid'),
          'document_version_name' => $published_version
            ->id(),
        ]);
        $acceptance
          ->save();
      }
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
EntityLegalPluginBase::$documents protected property The legal documents that implement this plugin.
EntityLegalPluginBase::getDocumentsForMethod public function Get all Entity Legal Documents for this plugin.
EntityLegalPluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct 1
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 2
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.
ProfileForm::execute public function Execute callback for Entity Legal method plugin. Overrides EntityLegalPluginInterface::execute 1
ProfileForm::submitForm public static function Submit handler for user register form.