/**
  * Get the require.js' config file
  */
 public function config()
 {
     $this->setContentHeader('application/javascript');
     //get extension paths to set up aliases dynamically
     $extensionsAliases = ClientLibRegistry::getRegistry()->getLibAliasMap();
     $this->setData('extensionsAliases', $extensionsAliases);
     $libConfigs = ClientLibConfigRegistry::getRegistry()->getMap();
     $this->setData('libConfigs', $libConfigs);
     $extendedConfig = $this->getServiceManager()->get(ClientConfigService::SERVICE_ID)->getExtendedConfig();
     foreach ($extendedConfig as $key => $value) {
         $this->setData($key, json_encode($value));
     }
     $extensionManager = common_ext_ExtensionsManager::singleton();
     $langCode = tao_helpers_I18n::getLangCode();
     //loads the URLs context
     /** @var AssetService $assetService */
     $assetService = ServiceManager::getServiceManager()->get(AssetService::SERVICE_ID);
     $tao_base_www = $assetService->getJsBaseWww('tao');
     $extensionId = $this->hasRequestParameter('extension') ? $this->getRequestParameter('extension') : \Context::getInstance()->getExtensionName();
     $extension = $extensionManager->getExtensionById($extensionId);
     $base_www = $assetService->getJsBaseWww($extensionId);
     $base_url = $extension->getConstant('BASE_URL');
     //set contextual data
     $this->setData('locale', $langCode);
     if (strpos($langCode, '-') > 0) {
         $lang = strtolower(substr($langCode, 0, strpos($langCode, '-')));
     } else {
         $lang = strtolower($langCode);
     }
     $this->setData('lang', $lang);
     $this->setData('version', TAO_VERSION);
     $this->setData('extension', $this->getRequestParameter('extension'));
     $this->setData('module', $this->getRequestParameter('module'));
     $this->setData('action', $this->getRequestParameter('action'));
     $this->setData('base_www', $base_www);
     $this->setData('tao_base_www', $tao_base_www);
     $this->setData('base_url', $base_url);
     $this->setData('shownExtension', $this->getRequestParameter('shownExtension'));
     $this->setData('shownStructure', $this->getRequestParameter('shownStructure'));
     $this->setData('client_timeout', $this->getClientTimeout());
     $this->setView('client_config.tpl');
 }
 /**
  * Get the require.js' config file
  */
 public function config()
 {
     $this->setContentHeader('application/javascript');
     //get extension paths to set up aliases dynamically
     $extensionsAliases = ClientLibRegistry::getRegistry()->getLibAliasMap();
     $this->setData('extensionsAliases', $extensionsAliases);
     $libConfigs = ClientLibConfigRegistry::getRegistry()->getMap();
     $this->setData('libConfigs', $libConfigs);
     $themesAvailable = ThemeRegistry::getRegistry()->getAvailableThemes();
     $this->setData('themesAvailable', $themesAvailable);
     $extensionManager = common_ext_ExtensionsManager::singleton();
     $langCode = tao_helpers_I18n::getLangCode();
     //loads the URLs context
     $base_www = BASE_WWW;
     $base_url = BASE_URL;
     if ($this->hasRequestParameter('extension')) {
         $extension = $extensionManager->getExtensionById($this->getRequestParameter('extension'));
         if (!is_null($extension)) {
             $base_www = $extension->getConstant('BASE_WWW');
             $base_url = $extension->getConstant('BASE_URL');
         }
     }
     //set contextual data
     $this->setData('locale', $langCode);
     if (strpos($langCode, '-') > 0) {
         $lang = strtolower(substr($langCode, 0, strpos($langCode, '-')));
     } else {
         $lang = strtolower($langCode);
     }
     $this->setData('lang', $lang);
     $this->setData('extension', $this->getRequestParameter('extension'));
     $this->setData('module', $this->getRequestParameter('module'));
     $this->setData('action', $this->getRequestParameter('action'));
     $this->setData('base_www', $base_www);
     $this->setData('base_url', $base_url);
     $this->setData('shownExtension', $this->getRequestParameter('shownExtension'));
     $this->setData('shownStructure', $this->getRequestParameter('shownStructure'));
     $this->setData('client_timeout', $this->getClientTimeout());
     $this->setView('client_config.tpl');
 }