/**
  * Add required resources for a custom interaction (css, js) in the item directory
  * 
  * @param string $typeIdentifier
  * @param \core_kernel_classes_Resource $item
  * @throws common_exception_Error
  */
 public function addRequiredResources($typeIdentifier, core_kernel_classes_Resource $item)
 {
     //find the interaction in the registry
     $implementationData = $this->getImplementatioByTypeIdentifier($typeIdentifier);
     if (is_null($implementationData)) {
         throw new common_exception_Error('no implementation found with the type identifier ' . $typeIdentifier);
     }
     //get the root directory of the interaction
     $directory = $implementationData['directory'];
     //get the lists of all required resources
     $manifest = $implementationData['manifest'];
     $required = array($manifest['entryPoint']);
     //include libraries remotely only, so this block is temporarily disabled
     foreach ($manifest['libraries'] as $lib) {
         if (!ClientLibRegistry::getRegistry()->isRegistered($lib)) {
             $lib = preg_replace('/^.\\//', '', $lib);
             $lib .= '.js';
             //add js extension
             $required[] = $lib;
         }
     }
     //include custom interaction specific css in the item
     if (isset($manifest['css'])) {
         $required = array_merge($required, array_values($manifest['css']));
     }
     //include media in the item
     if (isset($manifest['media'])) {
         $required = array_merge($required, array_values($manifest['media']));
     }
     //add them to the rdf item
     $resources = Authoring::addRequiredResources($directory, $required, $typeIdentifier, $item, '');
     return $resources;
 }