Exemplo n.º 1
0
 /**
  * Return the parent artifact
  *
  * @param PFUser $user
  * @param Tracker_Artifact $child
  *
  * @return null| Tracker_Artifact
  */
 public function getParentArtifact(PFUser $user, Tracker_Artifact $child)
 {
     $dar = $this->hierarchy_dao->getParentsInHierarchy($child->getId());
     if ($dar && !$dar->isError()) {
         $parents = array();
         foreach ($dar as $row) {
             $parents[] = $this->artifact_factory->getInstanceFromRow($row);
         }
         if (count($parents) > 1) {
             $warning = $GLOBALS['Language']->getText('plugin_tracker_hierarchy', 'error_more_than_one_parent', array($this->getParentTitle($child), $this->getParentsList($parents)));
             $GLOBALS['Response']->addFeedback('warning', $warning, CODENDI_PURIFIER_LIGHT);
         }
         if ($parents) {
             return $parents[0];
         }
     }
     return null;
 }
Exemplo n.º 2
0
 /**
  * Return the parent artifact
  *
  * @param User $user
  * @param Tracker_Artifact $child
  *
  * @throws Tracker_Hierarchy_MoreThanOneParentException
  *
  * @return null| Tracker_Artifact
  */
 public function getParentArtifact(User $user, Tracker_Artifact $child)
 {
     $dar = $this->hierarchy_dao->getParentsInHierarchy($child->getId());
     if ($dar && !$dar->isError()) {
         switch ($dar->rowCount()) {
             case 0:
                 return null;
             case 1:
                 return $this->artifact_factory->getInstanceFromRow($dar->getRow());
             default:
                 $parents = array();
                 foreach ($dar as $row) {
                     $parents[] = $this->artifact_factory->getInstanceFromRow($row);
                 }
                 throw new Tracker_Hierarchy_MoreThanOneParentException($child, $parents);
         }
     }
     return null;
 }