private function addFilesIntoArchive(Tracker_Artifact_ChangesetValue_File $value, ZipArchive $archive)
 {
     $archive->addEmptyDir(self::DATA_DIR);
     foreach ($value->getFiles() as $file_info) {
         $archive->addFile($file_info->getPath(), self::DATA_DIR . DIRECTORY_SEPARATOR . self::FILE_PREFIX . $file_info->getId());
     }
 }
 private function addFilesIntoArchive(Tracker_Artifact_ChangesetValue_File $value, ArchiveInterface $archive)
 {
     $archive->addEmptyDir(ArchiveInterface::DATA_DIR);
     foreach ($value->getFiles() as $file_info) {
         $path_in_archive = ArchiveInterface::DATA_DIR . DIRECTORY_SEPARATOR . self::FILE_PREFIX . $file_info->getId();
         if (file_exists($file_info->getPath())) {
             $archive->addFile($path_in_archive, $file_info->getPath());
         } else {
             $archive->addFromString($path_in_archive, $file_info->getPath());
         }
     }
 }
 /**
  * Returns a diff between this changeset value and the one passed in param
  *
  * @param Tracker_Artifact_ChangesetValue_File $changeset_value the changeset value to compare
  * @param PFUser                          $user            The user or null
  *
  * @return string The difference between another $changeset_value, false if no differneces
  */
 public function diff($changeset_value, $format = 'html', PFUser $user = null)
 {
     if ($this->files !== $changeset_value->getFiles()) {
         $result = '';
         $removed = array();
         foreach (array_diff($changeset_value->getFiles(), $this->files) as $fi) {
             $removed[] = $fi->getFilename();
         }
         if ($removed = implode(', ', $removed)) {
             $result .= $removed . ' ' . $GLOBALS['Language']->getText('plugin_tracker_artifact', 'removed');
         }
         $added = array();
         foreach (array_diff($this->files, $changeset_value->getFiles()) as $fi) {
             $added[] = $fi->getFilename();
         }
         if ($added = implode(', ', $added)) {
             if ($result) {
                 $result .= PHP_EOL;
             }
             $result .= $added . ' ' . $GLOBALS['Language']->getText('plugin_tracker_artifact', 'added');
         }
         return $result;
     }
     return false;
 }