示例#1
0
 public function export(Tracker $tracker, SimpleXMLElement $xml_content, PFUser $user, ZipArchive $archive)
 {
     $artifacts_node = $xml_content->addChild('artifacts');
     $all_artifacts = $this->artifact_factory->getArtifactsByTrackerId($tracker->getId());
     $this->checkThreshold(count($all_artifacts));
     foreach ($all_artifacts as $artifact) {
         $artifact->exportToXML($artifacts_node, $user, $archive);
     }
     $this->rng_validator->validate($artifacts_node, realpath(dirname(TRACKER_BASE_DIR) . self::ARTIFACTS_RNG_PATH));
 }
 private function getTopSubMilestoneArtifacts(PFUser $user, Planning_VirtualTopMilestone $top_milestone)
 {
     $artifacts = array();
     if (!$top_milestone->getPlanning()) {
         return $artifacts;
     }
     $milestone_planning_tracker_id = $top_milestone->getPlanning()->getPlanningTrackerId();
     if (!$milestone_planning_tracker_id) {
         return $artifacts;
     }
     return $this->artifact_factory->getArtifactsByTrackerId($milestone_planning_tracker_id);
 }
 /**
  * Return the list of top most milestones
  *
  * @param PFUser $user
  * @param Planning_VirtualTopMilestone $top_milestone
  *
  * @return Planning_ArtifactMilestone[]
  */
 private function getTopSubMilestones(PFUser $user, Planning_VirtualTopMilestone $top_milestone)
 {
     $milestones = array();
     if (!$top_milestone->getPlanning()) {
         return $milestones;
     }
     $root_planning = $this->planning_factory->getRootPlanning($user, $top_milestone->getProject()->getID());
     $milestone_planning_tracker_id = $top_milestone->getPlanning()->getPlanningTrackerId();
     $artifacts = $this->artifact_factory->getArtifactsByTrackerId($milestone_planning_tracker_id);
     if ($milestone_planning_tracker_id) {
         foreach ($artifacts as $artifact) {
             if ($artifact->getLastChangeset() && $artifact->userCanView($user)) {
                 $milestone = new Planning_ArtifactMilestone($top_milestone->getProject(), $root_planning, $artifact);
                 $this->addMilestoneAncestors($user, $milestone);
                 $this->updateMilestoneContextualInfo($user, $milestone);
                 $milestones[] = $milestone;
             }
         }
     }
     return $milestones;
 }