public static function updateProjectSubproject(PhabricatorProject $project) { $dao = new PhabricatorProjectSubproject(); $conn = $dao->establishConnection('w'); $sql = array(); foreach ($project->getSubprojectPHIDs() as $subproject_phid) { $sql[] = qsprintf($conn, '(%s, %s)', $project->getPHID(), $subproject_phid); } queryfx($conn, 'DELETE FROM %T WHERE projectPHID = %s', $dao->getTableName(), $project->getPHID()); if ($sql) { queryfx($conn, 'INSERT INTO %T (projectPHID, subprojectPHID) VALUES %Q', $dao->getTableName(), implode(', ', $sql)); } }
public function save() { $result = parent::save(); if ($this->subprojectsNeedUpdate) { // If we've changed the project PHIDs for this task, update the link // table. PhabricatorProjectSubproject::updateProjectSubproject($this); $this->subprojectsNeedUpdate = false; } return $result; }