diff --git a/sites/all/modules/figli/edlp_mobile/edlp_mobile.module b/sites/all/modules/figli/edlp_mobile/edlp_mobile.module index 55b358399..fdc77f374 100644 --- a/sites/all/modules/figli/edlp_mobile/edlp_mobile.module +++ b/sites/all/modules/figli/edlp_mobile/edlp_mobile.module @@ -58,69 +58,72 @@ function edlp_mobile_page_attachments(array &$attachments) { $is_mobile_domain = false; global $base_root; - //dpm($base_root, '$base_root'); + // dpm($base_root, '$base_root'); - $current_domain = preg_replace('/http:\/\/|https:\/\//i', '', $base_root); - //dpm($current_domain, '$current_domain'); + $current_hostname = preg_replace('/http:\/\/|https:\/\//i', '', $base_root); + // dpm($current_hostname, '$current_hostname'); $domain_storage = \Drupal::entityTypeManager()->getStorage('domain'); - $domains = $domain_storage->loadMultiple(); - //dpm($domains); - $domain_alias_storage = \Drupal::entityTypeManager()->getStorage('domain_alias'); - //dpm($domain_alias_storage); - foreach ($domains as $domain_id => $domain) { - if($domain->isActive()){ - //dpm($domain); + $mobile_domain = $domain_storage->load('m_encyclopediedelaparole_org'); + // dpm($mobile_domain, 'mobile_domain'); - $alias_ids = $domain_alias_storage->getQuery()->condition('domain_id', $domain_id)->execute(); - //dpm($alias_ids, 'alias_ids'); + $desktop_domain = $domain_storage->load('encyclopediedelaparole_org'); + // dpm($desktop_domain, 'desktop_domain'); - $aliases = $domain_alias_storage->loadMultiple($alias_ids); - // dpm($aliases, 'aliases'); + $current_domain = $domain_storage->loadByHostname($current_hostname); + // dpm($current_domain, 'current_domain'); - foreach ($aliases as $alias_id => $alias) { - if($alias->getPattern() == $current_domain){ - // we found the current domain and current alias - // dpm($domain, 'domain'); - // dpm($alias, 'alias'); - $env = $alias->getEnvironment(); - $env_aliases = $domain_alias_storage->loadByEnvironment($env); - // dpm($env_aliases, '$env_aliases'); - // find out mibile alias and desktop alias - // this is dirty - // TODO: set target device as domain setting - if ($domain->id() == 'm_encyclopediedelaparole_org'){ - // current domain/alias is mobile - $is_mobile_domain = true; - $mobile_url = $alias->getPattern(); - // find desktop pattern - foreach ($env_aliases as $env_alias_id => $env_alias) { - if($env_alias_id != $alias_id){ - // we found the desktop pattern - $desktop_url = $env_alias->getPattern(); - } - } - }else{ - // current domain/alias is mobile - $is_mobile_domain = false; - $desktop_url = $alias->getPattern(); - // find desktop pattern - foreach ($env_aliases as $env_alias_id => $env_alias) { - if($env_alias_id != $alias_id){ - // we found the desktop pattern - $mobile_url = $env_alias->getPattern(); - } - } - } + if($current_domain){ + // we are in a main domain + $is_mobile_domain = ($current_domain->id() == $mobile_domain->id()); + $mobile_url = $mobile_domain->getHostname(); + $desktop_url = $desktop_domain->getHostname(); + }else{ + // we are not in a main domain, so we look for an alias + $domain_alias_storage = \Drupal::entityTypeManager()->getStorage('domain_alias'); + $alias = $domain_alias_storage->loadByHostname($current_hostname); + // dpm($alias, '$alias'); + $domain_id = $alias->getDomainId(); + // dpm($domain_id, 'domain_id'); + $current_domain = $domain_storage->load($domain_id); + // dpm($current_domain, 'current_domain'); + + $env = $alias->getEnvironment(); + $env_aliases = $domain_alias_storage->loadByEnvironment($env); + // dpm($env_aliases, '$env_aliases'); + // find out mibile alias and desktop alias + // this is dirty + // TODO: set target device as domain setting + if ($domain_id == 'm_encyclopediedelaparole_org'){ + // current domain/alias is mobile + $is_mobile_domain = true; + $mobile_url = $alias->getPattern(); + // find desktop pattern + // we assume that there is only two alias by env (mobile or desktop) + foreach ($env_aliases as $env_alias_id => $env_alias) { + if($env_alias_id != $alias->id()){ + // we found the desktop pattern + $desktop_url = $env_alias->getPattern(); + break; + } + } + }else{ + // current domain/alias is desktop + $is_mobile_domain = false; + $desktop_url = $alias->getPattern(); + // find mobile pattern + // we assume that there is only two alias by env (mobile or desktop) + foreach ($env_aliases as $env_alias_id => $env_alias) { + if($env_alias_id != $alias->id()){ + // we found the desktop pattern + $mobile_url = $env_alias->getPattern(); break; } } - break; } } - // $mobile = $current_path = \Drupal::service('path.current')->getPath(); $is_front = \Drupal::service('path.matcher')->isFrontPage(); $current_language = \Drupal::languageManager()->getCurrentLanguage()->getId();