function mergeSelectedNodes($issuenodeid, $groupid, $ids, $title, $desc) { global $CFG; $mainConnections = getConnectionsByNode($issuenodeid, 0, -1, 'date', 'ASC', 'all', '', 'Solution'); $mainconns = $mainConnections->connections; $r = getRoleByName("Solution"); $rolesolution = $r->roleid; // CREATE THE solution NODE $solutionnode = addNode($title, $desc, 'N', $rolesolution); if (!$solutionnode instanceof Error) { // Add to group if (isset($groupid) && $groupid != "") { addGroupToNode($solutionnode->nodeid, $groupid); } // CONNECT NODE TO FOCAL $node = getNode($issuenodeid); $r = getRoleByName($node->role->name); $focalroleid = $r->roleid; $lt = getLinkTypeByLabel($CFG->LINK_SOLUTION_ISSUE); $linkType = $lt->linktypeid; $conndesc = ""; $connection = addConnection($solutionnode->nodeid, $rolesolution, $linkType, $issuenodeid, $focalroleid, "N", $conndesc); if (!$connection instanceof Error) { // add to group if (isset($groupid) && $groupid != "") { addGroupToConnection($connection->connid, $groupid); } // CONNECT NEW NODE TO SELECT NODES $lt2 = getLinkTypeByLabel($CFG->LINK_COMMENT_BUILT_FROM); $linkTypeBuiltFrom = $lt2->linktypeid; //error_log(print_r($linkTypeBuiltFrom, true)); $nodesArr = split(",", $ids); foreach ($nodesArr as $nodeid2) { $n = new CNode($nodeid2); $n = $n->load(); $r = getRoleByName($n->role->name); $roleid = $r->roleid; $connection2 = addConnection($solutionnode->nodeid, $rolesolution, $linkTypeBuiltFrom, $nodeid2, $roleid, "N", $conndesc); //error_log(print_r($connection2, true)); if (!$connection2 instanceof Error) { // add to group if (isset($groupid) && $groupid != "") { addGroupToConnection($connection2->connid, $groupid); } // Link kids to new parent $conSetKids = getConnectionsByNode($nodeid2, 0, -1, 'date', 'ASC', 'all', '', 'Pro,Con,Comment'); $conns = $conSetKids->connections; foreach ($conns as $con) { $from = $con->from; $lt3 = getLinkTypeByLabel($CFG->LINK_COMMENT_NODE); $linkType3 = $lt3->linktypeid; if ($from->role->name == "Pro") { $lt3 = getLinkTypeByLabel($CFG->LINK_PRO_SOLUTION); $linkType3 = $lt3->linktypeid; } else { if ($from->role->name == "Con") { $lt3 = getLinkTypeByLabel($CFG->LINK_CON_SOLUTION); $linkType3 = $lt3->linktypeid; } } // Connect the children of each node being merged to the new node $connection3 = addConnection($from->nodeid, $from->role->roleid, $linkType3, $solutionnode->nodeid, $rolesolution, "N", $conndesc); if (!$connection3 instanceof Error) { // add to group if (isset($groupid) && $groupid != "") { addGroupToConnection($connection3->connid, $groupid); } } else { return $connection3; } // retire old connection $con->updateStatus($CFG->STATUS_RETIRED); } // retire connection to parent foreach ($mainconns as $con) { $from = $con->from; if ($from->nodeid == $nodeid2) { $con->updateStatus($CFG->STATUS_RETIRED); } } // retire node $n->updateStatus($CFG->STATUS_RETIRED); } else { return $connection2; } } } else { return $connection; } } return $solutionnode; }
$r = getRoleByName($orinode->role->name); $roleid = $r->roleid; $i = 0; $count = count($ideanamearray); for ($i = 0; $i < $count; $i++) { $name = $ideanamearray[$i]; $desc = $ideadescarray[$i]; $newconn = addNodeAndConnect($name, $desc, 'Solution', $debateid, $CFG->LINK_SOLUTION_ISSUE, 'from', $groupid = "", 'N'); $newnode = $newconn->from; // CONNECT NEW NODE TO SELECT NODES $lt2 = getLinkTypeByLabel($CFG->LINK_BUILT_FROM); $linkTypeBuiltFrom = $lt2->linktypeid; $connection = addConnection($newnode->nodeid, $newnode->role->roleid, $linkTypeBuiltFrom, $orinode->nodeid, $roleid, "N", ""); // add to group if (!$connection instanceof Error && isset($groupid) && $groupid != "") { addGroupToConnection($connection->connid, $groupid); } } // need to become the owner of the node you are editing the status of //$USER = $orinode->users[0]; $orinode->updateStatus($CFG->STATUS_RETIRED); echo '<script type=\'text/javascript\'>'; //echo 'window.opener.location.href = "'.$CFG->homeAddress.'user.php?id='.$USER->userid.'";'; echo "\t window.opener.location.reload(true);"; echo 'window.close();'; echo '</script>'; include_once $HUB_FLM->getCodeDirPath("ui/footerdialog.php"); die; } } else { // want to start with two ideas minimum for a split.