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; }