/**
  * import the owi as content into an existing item
  * replacing the old content
  * 
  * @param string $package
  * @param core_kernel_classeS_resource $item
  * @param string $language
  * @param string $validate
  * @throws taoItems_models_classes_Import_ExtractException
  * @throws taoItems_models_classes_Import_ImportException
  * @return common_report_Report
  */
 public function importContent($package, $item, $language = '', $validate = true)
 {
     //load and validate the package
     $packageParser = new PackageParser($package);
     $packageParser->validate();
     if ($packageParser->isValid()) {
         //extract the package
         $folder = $packageParser->extract();
         if (!is_dir($folder)) {
             throw new taoItems_models_classes_Import_ExtractException();
         }
         //load and validate the manifest
         $fileParser = new tao_models_classes_Parser($folder . 'index.html', array('extension' => 'html'));
         $taoItemsBasePath = common_ext_ExtensionsManager::singleton()->getExtensionById('taoItems')->getDir();
         $fileParser->validate($taoItemsBasePath . '/models/classes/data/xhtml/xhtml.xsd');
         if (!$validate || $fileParser->isValid()) {
             $dir = taoItems_models_classes_ItemsService::singleton()->getItemDirectory($item);
             foreach ($iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($folder, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::SELF_FIRST) as $content) {
                 if (!$content->isDir()) {
                     common_Logger::i('Upload ' . $content . ' to ' . $iterator->getSubPathName());
                     $file = $dir->getFile($iterator->getSubPathName());
                     $fh = fopen($content, 'r');
                     $file->write($fh);
                     fclose($fh);
                 }
             }
             $returnValue = common_report_Report::createSuccess(__('%s was successfully replaced', $item->getLabel()), $item);
         } else {
             helpers_File::remove($folder);
             $returnValue = $fileParser->getReport();
             $returnValue->setTitle(__('Validation of the imported file has failed'));
         }
     } else {
         $returnValue = $packageParser->getReport();
         $returnValue->setTitle(__('Validation of the imported package has failed'));
     }
     return $returnValue;
 }
 /**
  * import the owi as content into an existing item
  * replacing the old content
  * 
  * @param string $package
  * @param core_kernel_classeS_resource $item
  * @param string $language
  * @param string $validate
  * @throws taoItems_models_classes_Import_ExtractException
  * @throws taoItems_models_classes_Import_ImportException
  * @return common_report_Report
  */
 public function importContent($package, $item, $language = '', $validate = true)
 {
     //load and validate the package
     $packageParser = new PackageParser($package);
     $packageParser->validate();
     if ($packageParser->isValid()) {
         //extract the package
         $folder = $packageParser->extract();
         if (!is_dir($folder)) {
             throw new taoItems_models_classes_Import_ExtractException();
         }
         //load and validate the manifest
         $fileParser = new tao_models_classes_Parser($folder . 'index.html', array('extension' => 'html'));
         $taoItemsBasePath = common_ext_ExtensionsManager::singleton()->getExtensionById('taoItems')->getDir();
         $fileParser->validate($taoItemsBasePath . '/models/classes/data/xhtml/xhtml.xsd');
         if (!$validate || $fileParser->isValid()) {
             $itemContent = file_get_contents($folder . 'index.html');
             taoItems_models_classes_ItemsService::singleton()->setItemContent($item, $itemContent);
             $itemPath = taoItems_models_classes_ItemsService::singleton()->getItemFolder($item, $language);
             if (!tao_helpers_File::move($folder, $itemPath)) {
                 common_Logger::w('Unable to move ' . $folder . ' to ' . $itemPath);
                 helpers_File::remove($folder);
                 throw new taoItems_models_classes_Import_ImportException('Unable to copy the resources');
             }
             $returnValue = common_report_Report::createSuccess(__('%s was successfully replaced', $item->getLabel()), $item);
         } else {
             helpers_File::remove($folder);
             $returnValue = $fileParser->getReport();
             $returnValue->setTitle(__('Validation of the imported file has failed'));
         }
     } else {
         $returnValue = $packageParser->getReport();
         $returnValue->setTitle(__('Validation of the imported package has failed'));
     }
     return $returnValue;
 }