/** * {@inheritdoc} */ public function validateForm(array &$form, FormStateInterface $form_state) { // Check folders $folders = array(); foreach ($form_state->getValue(array('conf', 'folders')) as $i => $folder) { $path = trim($folder['path']); // Empty path if ($path === '') { continue; } // Validate path if (!Imce::regularPath($path)) { return $form_state->setError($form['conf']['folders'][$i]['path'], $this->t('Invalid folder path.')); } // Remove empty permissions $folder['permissions'] = array_filter($folder['permissions']); $folder['path'] = $path; $folders[$path] = $folder; } // No valid folders if (!$folders) { return $form_state->setError($form['conf']['folders'][0]['path'], $this->t('You must define a folder.')); } $form_state->setValue(array('conf', 'folders'), array_values($folders)); // Call plugin validators \Drupal::service('plugin.manager.imce.plugin')->validateProfileForm($form, $form_state, $this->getEntity()); return parent::validateForm($form, $form_state); }