public static function updateTaskProjects(ManiphestTask $task) { $dao = new ManiphestTaskProject(); $conn = $dao->establishConnection('w'); $sql = array(); foreach ($task->getProjectPHIDs() as $project_phid) { $sql[] = qsprintf($conn, '(%s, %s)', $task->getPHID(), $project_phid); } queryfx($conn, 'DELETE FROM %T WHERE taskPHID = %s', $dao->getTableName(), $task->getPHID()); if ($sql) { queryfx($conn, 'INSERT INTO %T (taskPHID, projectPHID) VALUES %Q', $dao->getTableName(), implode(', ', $sql)); } }
private function buildXProjectJoinClause($conn) { if (!$this->xprojectPHIDs) { return null; } $project_dao = new ManiphestTaskProject(); return qsprintf($conn, 'LEFT JOIN %T xproject ON xproject.taskPHID = task.phid AND xproject.projectPHID IN (%Ls)', $project_dao->getTableName(), $this->xprojectPHIDs); }
private function buildProjectJoinClause($conn) { if (!$this->projectPHIDs) { return null; } $project_dao = new ManiphestTaskProject(); return qsprintf($conn, 'JOIN %T project ON project.taskPHID = task.phid', $project_dao->getTableName()); }