acquia_commercemanager-8.x-1.122/modules/acm_promotion/src/Form/PromotionSyncForm.php
modules/acm_promotion/src/Form/PromotionSyncForm.php
<?php namespace Drupal\acm_promotion\Form; use Drupal\acm_promotion\AcmPromotionsManager; use Drupal\Core\Form\FormBase; use Drupal\Core\Form\FormStateInterface; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Class PromotionSyncForm. * * @package Drupal\acm_promotion\Form * * @ingroup acm_promotion */ class PromotionSyncForm extends FormBase { /** * Promotion Manager. * * @var \Drupal\acm_promotion\AcmPromotionsManager */ private $promotionManager; /** * PromotionSyncForm constructor. * * @param \Drupal\acm_promotion\AcmPromotionsManager $promotion_manager * The factory for configuration objects. */ public function __construct(AcmPromotionsManager $promotion_manager) { $this->promotionManager = $promotion_manager; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { return new static( $container->get('acm_promotion.promotions_manager') ); } /** * Returns a unique string identifying the form. * * @return string * The unique string identifying the form. */ public function getFormId() { return 'acm_promotion_sync'; } /** * Define the form used for settings. * * @param array $form * An associative array containing the structure of the form. * @param \Drupal\Core\Form\FormStateInterface $form_state * An associative array containing the current state of the form. * * @return array * Form definition array. */ public function buildForm(array $form, FormStateInterface $form_state) { $form['actions']['#type'] = 'actions'; $form['actions']['promotion_sync'] = [ '#type' => 'submit', '#value' => t('Synchronize Promotions'), ]; return ($form); } /** * Form submission handler. * * @param array $form * An associative array containing the structure of the form. * @param \Drupal\Core\Form\FormStateInterface $form_state * An associative array containing the current state of the form. */ public function submitForm(array &$form, FormStateInterface $form_state) { $action = $form_state->getUserInput()['op']; switch ($action) { case 'Synchronize Promotions': $this->promotionManager->syncPromotions(); $this->messenger()->addStatus($this->t('Promotions Synchronization Complete')); break; } } }