Esempio n. 1
0
 *
 * Migrate Custom field data from item to item version (1.9 RC1 and up)
*/
require_once "../../config.inc.php";
require_once "common.php";
testlinkInitPage($db);
// Check if user has right role to execute
if (!($_SESSION['currentUser']->globalRole->name == 'admin')) {
    echo 'You need to have admin role in order to use this page <b> ';
    die;
}
$treeMgr = new tree($db);
$nodeTypes = $treeMgr->get_available_node_types();
unset($treeMgr);
$tprojectMgr = new testproject($db);
$tables = $tprojectMgr->getDBTables(array('nodes_hierarchy', 'cfield_design_values'));
unset($tprojectSet);
$sql = " SELECT CFDV.*, NHITEM.node_type_id, NHVERSION.id AS version_node_id" . " FROM {$tables['cfield_design_values']} CFDV " . " JOIN {$tables['nodes_hierarchy']} NHITEM ON NHITEM.id = CFDV.node_id " . " JOIN {$tables['nodes_hierarchy']} NHVERSION ON NHVERSION.parent_id = NHITEM.id " . " WHERE NHITEM.node_type_id IN ({$nodeTypes['testcase']},{$nodeTypes['requirement']}) ";
$workingSet = $db->get_recordset($sql);
echo 'Records to process: ' . count($workingSet) . '<br>';
if (!is_null($workingSet)) {
    foreach ($workingSet as $target) {
        $values[] = "( {$target['field_id']}, {$target['version_node_id']}, '{$target['value']}' )";
        $victims[$target['node_id']] = $target['node_type_id'];
    }
    $sql = " INSERT INTO {$tables['cfield_design_values']} (field_id,node_id,value) VALUES ";
    $vSet = implode(',', $values);
    $sql .= $vSet;
    $db->exec_query($sql);
    foreach ($victims as $node_id => $node_type_id) {
        $sql = " DELETE FROM {$tables['cfield_design_values']} WHERE node_id = {$node_id} ";