private function getManagementImplementationClass($identifier)
 {
     if (in_array($identifier, array('', 'local'))) {
         return 'taoItems_helpers_ResourceManager';
     }
     return \oat\tao\model\media\MediaSource::getMediaManagementSource($identifier);
 }
 /**
  * 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);
     $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');
         }
     }
     $mediaSources = \oat\tao\model\media\MediaSource::getMediaBrowserSources();
     //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->setData('mediaSources', $mediaSources);
     $this->setView('client_config.tpl');
 }
 public function index()
 {
     $config = new CreatorConfig();
     $ext = \common_ext_ExtensionsManager::singleton()->getExtensionById('taoQtiItem');
     $creatorConfig = $ext->getConfig('qtiCreator');
     if (is_array($creatorConfig)) {
         foreach ($creatorConfig as $prop => $value) {
             $config->setProperty($prop, $value);
         }
     }
     if ($this->hasRequestParameter('instance')) {
         //uri:
         $itemUri = tao_helpers_Uri::decode($this->getRequestParameter('instance'));
         $config->setProperty('uri', $itemUri);
         //get label:
         $rdfItem = new core_kernel_classes_Resource($itemUri);
         $config->setProperty('label', $rdfItem->getLabel());
         //set the current data lang in the item content to keep the integrity
         //@todo : allow preview in a language other than the one in the session
         $lang = \common_session_SessionManager::getSession()->getDataLanguage();
         $config->setProperty('lang', $lang);
         //base url:
         $url = tao_helpers_Uri::url('getFile', 'QtiCreator', 'taoQtiItem', array('uri' => $itemUri, 'lang' => $lang));
         $config->setProperty('baseUrl', $url . '&relPath=');
     }
     // get the config media Sources
     $sources = array_keys(MediaSource::getMediaBrowserSources());
     $sources[] = 'local';
     $config->setProperty('mediaSources', $sources);
     //initialize all registered hooks:
     $hookClasses = HookRegistry::getRegistry()->getMap();
     foreach ($hookClasses as $hookClass) {
         $hook = new $hookClass();
         $hook->init($config);
     }
     $config->init();
     $this->setData('config', $config->toArray());
     $this->setView('QtiCreator/index.tpl');
 }