acquia_commercemanager-8.x-1.122/modules/acm/src/Plugin/Derivative/CommerceUserFormBlock.php
modules/acm/src/Plugin/Derivative/CommerceUserFormBlock.php
<?php
namespace Drupal\acm\Plugin\Derivative;
use Drupal\Component\Plugin\Derivative\DeriverBase;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Provides block plugin definitions for Commerce User Form blocks.
*
* @see \Drupal\acm\Plugin\Block\CommerceUserFormBlock
*/
class CommerceUserFormBlock extends DeriverBase implements ContainerDeriverInterface {
/**
* Drupal Config Factory Instance.
*
* @var \Drupal\Core\Config\ConfigFactoryInterface
*/
private $configFactory;
/**
* Constructs new GuidedSellingBlock.
*
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* The config factory.
*/
public function __construct(ConfigFactoryInterface $config_factory) {
$this->configFactory = $config_factory;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, $base_plugin_id) {
return new static(
$container->get('config.factory')
);
}
/**
* {@inheritdoc}
*/
public function getDerivativeDefinitions($base_plugin_definition) {
$use_ecomm_sessions = $this->configFactory
->get('acm.commerce_users')
->get('use_ecomm_sessions');
if (!$use_ecomm_sessions) {
return $this->derivatives;
}
$forms = [
[
'machine_name' => 'commerce_user_registration_form',
'label' => 'Commerce User Registration Form',
'config' => [
'class' => 'Drupal\acm\Form\CommerceUserRegistrationForm',
],
],
[
'machine_name' => 'commerce_user_login_form',
'label' => 'Commerce User Login Form',
'config' => [
'class' => 'Drupal\acm\Form\CommerceUserLoginForm',
],
],
[
'machine_name' => 'commerce_user_password_form',
'label' => 'Commerce User Password Form',
'config' => [
'class' => 'Drupal\acm\Form\CommerceUserPasswordForm',
],
],
];
foreach ($forms as $form) {
$machine_name = $form['machine_name'];
$this->derivatives[$machine_name] = $base_plugin_definition;
$this->derivatives[$machine_name]['admin_label'] = $form['label'];
$this->derivatives[$machine_name]['config'] = $form['config'];
}
return $this->derivatives;
}
}
