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));
     }
 }
示例#2
0
 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());
 }