Skip to content

Commit

Permalink
Fixed issue #8359: Importing an empty group causes an error
Browse files Browse the repository at this point in the history
  • Loading branch information
c-schmitz committed Nov 20, 2013
1 parent 21f665e commit 88e2d28
Showing 1 changed file with 31 additions and 28 deletions.
59 changes: 31 additions & 28 deletions application/helpers/admin/import_helper.php
Expand Up @@ -871,37 +871,40 @@ function XMLImportGroup($sFullFilepath, $iNewSID)


$results['questions']=0;
foreach ($xml->questions->rows->row as $row)
if (isset($xml->questions))
{
$insertdata=array();
foreach ($row as $key=>$value)
foreach ($xml->questions->rows->row as $row)
{
$insertdata[(string)$key]=(string)$value;
}
$iOldSID=$insertdata['sid'];
$insertdata['sid']=$iNewSID;
if (!isset($aGIDReplacements[$insertdata['gid']]) || trim($insertdata['title'])=='') continue; // Skip questions with invalid group id
$insertdata['gid']=$aGIDReplacements[$insertdata['gid']];
$oldqid=$insertdata['qid']; unset($insertdata['qid']); // save the old qid
$insertdata=array();
foreach ($row as $key=>$value)
{
$insertdata[(string)$key]=(string)$value;
}
$iOldSID=$insertdata['sid'];
$insertdata['sid']=$iNewSID;
if (!isset($aGIDReplacements[$insertdata['gid']]) || trim($insertdata['title'])=='') continue; // Skip questions with invalid group id
$insertdata['gid']=$aGIDReplacements[$insertdata['gid']];
$oldqid=$insertdata['qid']; unset($insertdata['qid']); // save the old qid

// now translate any links
$insertdata['title']=translateLinks('survey', $iOldSID, $iNewSID, $insertdata['title']);
$insertdata['question']=translateLinks('survey', $iOldSID, $iNewSID, $insertdata['question']);
$insertdata['help']=translateLinks('survey', $iOldSID, $iNewSID, $insertdata['help']);
// Insert the new question
if (isset($aQIDReplacements[$oldqid]))
{
$insertdata['qid']=$aQIDReplacements[$oldqid];
}
if (isset($insertdata['qid'])) switchMSSQLIdentityInsert('questions',true);

$result = Yii::app()->db->createCommand()->insert('{{questions}}', $insertdata);
if (isset($insertdata['qid'])) switchMSSQLIdentityInsert('questions',false);
if (!isset($aQIDReplacements[$oldqid]))
{
$newqid=getLastInsertID('{{questions}}');
$aQIDReplacements[$oldqid]=$newqid; // add old and new qid to the mapping array
$results['questions']++;
// now translate any links
$insertdata['title']=translateLinks('survey', $iOldSID, $iNewSID, $insertdata['title']);
$insertdata['question']=translateLinks('survey', $iOldSID, $iNewSID, $insertdata['question']);
$insertdata['help']=translateLinks('survey', $iOldSID, $iNewSID, $insertdata['help']);
// Insert the new question
if (isset($aQIDReplacements[$oldqid]))
{
$insertdata['qid']=$aQIDReplacements[$oldqid];
}
if (isset($insertdata['qid'])) switchMSSQLIdentityInsert('questions',true);

$result = Yii::app()->db->createCommand()->insert('{{questions}}', $insertdata);
if (isset($insertdata['qid'])) switchMSSQLIdentityInsert('questions',false);
if (!isset($aQIDReplacements[$oldqid]))
{
$newqid=getLastInsertID('{{questions}}');
$aQIDReplacements[$oldqid]=$newqid; // add old and new qid to the mapping array
$results['questions']++;
}
}
}

Expand Down

0 comments on commit 88e2d28

Please sign in to comment.