Commit 9abd9fc7 authored by James Huang's avatar James Huang
Browse files

fix issue #3283665

parent cc79c58c
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -69,7 +69,8 @@ function domain_microsite_domain_request_alter(DomainInterface &$request_domain)
      $microsite = [];
      $domains = \Drupal::entityTypeManager()->getStorage('domain')->loadMultiple();
      foreach ($domains as $domain) {
        if ($parent_domain_id = $domain->getThirdPartySetting('domain_microsite', 'parent_domain_id')) {
        $parent_domain_id = $domain->getThirdPartySetting('domain_microsite', 'parent_domain_id');
        if ($parent_domain_id && !empty($domains[$parent_domain_id])) {
          $parent_hostname = $domains[$parent_domain_id]->getHostname();
          if ($hostname == $parent_hostname
            && $base_path = trim($domain->getThirdPartySetting('domain_microsite', 'base_path'), '/')
@@ -171,6 +172,7 @@ function domain_microsite_form_domain_edit_form_alter(&$form, FormStateInterface
    '#title' => t('Domain microsite by path'),
  ];
  $domains = \Drupal::entityTypeManager()->getStorage('domain')->loadMultiple();
  $parent_domains = [''];
  foreach ($domains as $_domain) {
    $_domain_id = $_domain->id();
    if ($_domain->isDefault()) {
@@ -195,7 +197,7 @@ function domain_microsite_form_domain_edit_form_alter(&$form, FormStateInterface
    '#type' => 'select',
    '#title' => t('Parent domain'),
    '#options' => $parent_domains,
    '#default_value' => (isset($parent_domains[$parent_domain_id])) ? $parent_domain_id : $default_domain_id,
    '#default_value' => ($parent_domain_id) ? ($parent_domains[$parent_domain_id] ?? '') : ($default_domain_id ?? ''),
    '#description' => t('The parent domain hostname to use as the canonical hostname of this microsite. The parent domain must not itself be a domain microsite.'),
  ];
  $form['domain_microsite']['domain_microsite_base_path'] = [
@@ -266,15 +268,14 @@ function domain_microsite_domain_edit_form_validate($form, FormStateInterface &$
    $domain_id = $domain->id();
    $domains = \Drupal::entityTypeManager()->getStorage('domain')->loadMultiple();
    if (!isset($domains[$parent_domain_id])) {
      $form_state->setErrorByName('domain_microsite_parent_domain_id', t('Parent domain no longer exists. Form must be reloaded to see new options.'));
      $form_state->setErrorByName('domain_microsite_parent_domain_id', t('Parent domain may not be empty or the selected domain no longer exists.'));
    }
    foreach ($domains as $_domain) {
      $_domain_id = $_domain->id();
      $_parent_domain_id = $_domain->getThirdPartySetting('domain_microsite', 'parent_domain_id');
      $_base_path = $_domain->getThirdPartySetting('domain_microsite', 'base_path');
      if ($_parent_domain_id && $_parent_domain_id == $domain_id) {

        $form_state->setErrorByName('domain_microsite_is_domain_microsite', t('This domain may not be a domain microsite because other domain microsites have specified it as a parent domain. Form must be reloaded to see new options.'));
        $form_state->setErrorByName('domain_microsite_is_domain_microsite', t('This domain may not be a domain microsite because other domain microsites have specified it as a parent domain.'));
        break;
      }
      if ($domain_id != $_domain_id && $parent_domain_id == $_parent_domain_id && $base_path == $_base_path) {