You are here

function opigno_module_activities_bank_lp_form_submit in Opigno module 8

Same name and namespace in other branches
  1. 3.x opigno_module.module \opigno_module_activities_bank_lp_form_submit()

Custom submit for view activities bank lp form.

Throws

\Exception

1 string reference to 'opigno_module_activities_bank_lp_form_submit'
opigno_module_form_alter in ./opigno_module.module
Implements hook_form_alter().

File

./opigno_module.module, line 684
Contains opigno_module.module.

Code

function opigno_module_activities_bank_lp_form_submit(&$form, FormStateInterface $form_state) {
  $activities = [];
  $storage = $form_state
    ->getStorage();

  // Is group edit page flag.
  $is_group_page = !empty($storage['activities_bank_page']) && $storage['activities_bank_page'] == 'group' ? TRUE : FALSE;
  if ($is_group_page && !empty($_SESSION['activities_bank']['activities_ids'])) {

    // Get activities ids if group edit page.
    $activities = $_SESSION['activities_bank']['activities_ids'];
  }
  if (!empty($_SESSION['activities_bank'])) {
    unset($_SESSION['activities_bank']);
  }
  if (!empty($_COOKIE['activities_bank_activities'])) {
    if (!$is_group_page) {

      // Get activities ids if module edit page.
      $activities = explode(',', $_COOKIE['activities_bank_activities']);
    }
    unset($_COOKIE['activities_bank_activities']);
    setcookie('activities_bank_activities', '', time() - 3600);
  }
  if (!empty($_COOKIE['activities_bank_checked'])) {
    unset($_COOKIE['activities_bank_checked']);
    setcookie('activities_bank_checked', '', time() - 3600);
  }
  if (!empty($activities)) {
    $activities = OpignoActivity::loadMultiple($activities);

    // Get URL parameters.
    $opigno_module = \Drupal::routeMatch()
      ->getParameter('opigno_module');
    if ($opigno_module) {

      /* @var \Drupal\opigno_module\Controller\OpignoModuleController $opigno_module_obj*/
      $opigno_module_obj = \Drupal::service('opigno_module.opigno_module');

      // Get activities that already added to module.
      $added_activities = $opigno_module
        ->getModuleActivities();
      $added_activities = array_map(function ($activity) {
        return $activity->id;
      }, $added_activities);

      // Filter activities that are added to a Module.
      $activities = array_filter($activities, function ($activity) use ($added_activities) {

        /* @var \Drupal\opigno_module\Entity\OpignoActivity $activity */
        return !in_array($activity
          ->id(), $added_activities);
      });

      // Add activities to a Module.
      if ($activities) {
        $save_acitivities = $opigno_module_obj
          ->activitiesToModule($activities, $opigno_module);
        \Drupal::messenger()
          ->addMessage(t('Added @num activities', [
          '@num' => count($activities),
        ]));
      }
    }
  }
}