diff --git a/admin/dumpgroup.php b/admin/dumpgroup.php index d0ffae05cb8..2774bae7135 100644 --- a/admin/dumpgroup.php +++ b/admin/dumpgroup.php @@ -133,9 +133,12 @@ function BuildOutput($Query) $lquery = "SELECT DISTINCT {$dbprefix}labels.lid, {$dbprefix}labels.code, {$dbprefix}labels.title, {$dbprefix}labels.sortorder FROM {$dbprefix}labels, {$dbprefix}questions WHERE {$dbprefix}labels.lid={$dbprefix}questions.lid AND type='F' AND gid=$gid"; $ldump = BuildOutput($lquery); +//8: Question Attributes +$query = "SELECT {$dbprefix}question_attributes.* FROM {$dbprefix}question_attributes, {$dbprefix}questions WHERE {$dbprefix}question_attributes.qid={$dbprefix}questions.qid AND {$dbprefix}questions.sid=$sid AND {$dbprefix}.questions.gid=$gid"; +$qadump = BuildOutput($query); // HTTP/1.0 echo "#
\n";
-echo $dumphead, $gdump, $qdump, $adump, $cdump, $lsdump, $ldump;
+echo $dumphead, $gdump, $qdump, $adump, $cdump, $lsdump, $ldump, $qadump;
 echo "#
\n"; ?> \ No newline at end of file diff --git a/admin/dumpquestion.php b/admin/dumpquestion.php index 9fe978ed632..9343221336d 100644 --- a/admin/dumpquestion.php +++ b/admin/dumpquestion.php @@ -114,6 +114,9 @@ function BuildOutput($Query) $lquery = "SELECT DISTINCT {$dbprefix}labels.lid, {$dbprefix}labels.code, {$dbprefix}labels.title, {$dbprefix}labels.sortorder FROM {$dbprefix}labels, {$dbprefix}questions WHERE {$dbprefix}labels.lid={$dbprefix}questions.lid AND type='F' AND qid=$qid"; $ldump = BuildOutput($lquery); +//5: Question Attributes +$query = "SELECT {$dbprefix}question_attributes.* FROM {$dbprefix}question_attributes WHERE {$dbprefix}question_attributes.qid=$qid"; +$qadump = BuildOutput($query); $fn = "question_$qid.sql"; header("Content-Type: application/download"); @@ -124,7 +127,7 @@ function BuildOutput($Query) header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); // HTTP/1.0 echo "#
\n";
-echo $dumphead, $qdump, $adump, $lsdump, $ldump;
+echo $dumphead, $qdump, $adump, $lsdump, $ldump, $qadump;
 echo "#
\n"; ?> \ No newline at end of file diff --git a/admin/dumpsurvey.php b/admin/dumpsurvey.php index 562368e8660..700e1d28840 100644 --- a/admin/dumpsurvey.php +++ b/admin/dumpsurvey.php @@ -134,6 +134,10 @@ function BuildOutput($Query) $lquery = "SELECT DISTINCT {$dbprefix}labels.lid, {$dbprefix}labels.code, {$dbprefix}labels.title, {$dbprefix}labels.sortorder FROM {$dbprefix}labels, {$dbprefix}questions WHERE {$dbprefix}labels.lid={$dbprefix}questions.lid AND type='F' AND sid=$sid"; $ldump = BuildOutput($lquery); +//8: Question Attributes +$query = "SELECT {$dbprefix}question_attributes.* FROM {$dbprefix}question_attributes, {$dbprefix}questions WHERE {$dbprefix}question_attributes.qid={$dbprefix}questions.qid AND {$dbprefix}questions.sid=$sid"; +$qadump = BuildOutput($query); + $fn = "survey_$sid.sql"; header("Content-Type: application/download"); @@ -145,6 +149,6 @@ function BuildOutput($Query) header("Pragma: no-cache"); // HTTP/1.0 echo "#
\n"
-	.$dumphead, $sdump, $gdump, $qdump, $adump, $cdump, $lsdump, $ldump
+	.$dumphead, $sdump, $gdump, $qdump, $adump, $cdump, $lsdump, $ldump, $qadump
 	."#
\n"; ?> \ No newline at end of file diff --git a/admin/importgroup.php b/admin/importgroup.php index 23d2fe3f64b..44e4f64856d 100644 --- a/admin/importgroup.php +++ b/admin/importgroup.php @@ -184,15 +184,36 @@ $bigarray = array_values($bigarray); //LABELS +if (array_search("# QUESTION_ATTRIBUTES TABLE\n", $bigarray)) + { + $stoppoint = array_search("# QUESTION_ATTRIBUTES TABLE\n", $bigarray); + } +elseif (array_search("# QUESTION_ATTRIBUTES TABLE\r\n", $bigarray)) + { + $stoppoint = array_search("# QUESTION_ATTRIBUTES TABLE\r\n", $bigarray); + } +else + { + $stoppoint = count($bigarray)-1; + } +for ($i=0; $i<=$stoppoint+1; $i++) + { + if ($i<$stoppoint-2) {$labelsarray[] = $bigarray[$i];} + unset($bigarray[$i]); + } +$bigarray = array_values($bigarray); + +//LAST LOT (now question_attributes) if (!isset($noconditions) || $noconditions != "Y") { $stoppoint = count($bigarray)-1; for ($i=0; $i<=$stoppoint+1; $i++) { - if ($i<$stoppoint-1) {$labelsarray[] = $bigarray[$i];} + if ($i<$stoppoint-1) {$question_attributesarray[] = $bigarray[$i];} unset($bigarray[$i]); } } +$bigarray = array_values($bigarray); if (isset($grouparray)) {$countgroups = count($grouparray);} if (isset($questionarray)) {$countquestions = count($questionarray);} @@ -200,6 +221,7 @@ if (isset($conditionsarray)) {$countconditions = count($conditionsarray);} if (isset($labelsetsarray)) {$countlabelsets = count($labelsetsarray);} if (isset($labelsarray)) {$countlabels = count($labelsarray);} +if (isset($question_attributesarray)) {$countquestion_attributes = count($question_attributesarray);} else {$countquestion_attributes=0;} $newsid = $_POST["sid"]; @@ -423,6 +445,28 @@ //We've built two arrays along the way - one containing the old SID, GID and QIDs - and their NEW equivalents //and one containing the old 'extended fieldname' and its new equivalent. These are needed to import conditions. +if (isset($question_attributesarray) && $question_attributesarray) {//ONLY DO THIS IF THERE ARE QUESTION_ATTRIBUES + foreach ($question_attributesarray as $qar) { + $fieldorders=convertToArray($qar, "`, `", "(`", "`)"); + $fieldcontents=convertToArray($qar, "', '", "('", "')"); + $newfieldcontents=$fieldcontents; + $oldqid=$fieldcontents[array_search("qid", $fieldorders)]; + foreach ($substitutions as $subs) { + if ($oldqid==$subs[2]) {$newqid=$subs[5];} + } + + $newfieldcontents[array_search("qid", $fieldorders)]=$newqid; + $newfieldcontents[array_search("qaid", $fieldorders)]=""; + + $newvalues="('".implode("', '", $newfieldcontents)."')"; + $insert=str_replace("('".implode("', '", $fieldcontents)."')", $newvalues, $qar); + $insert=str_replace("INTO question_attributes", "INTO {$dbprefix}question_attributes", $insert); + $result=mysql_query($insert) or die ("Couldn't insert question_attribute
$insert
".mysql_error()); + + unset($newcqid); + } +} + if (isset($conditionsarray) && $conditionsarray) {//ONLY DO THIS IF THERE ARE CONDITIONS! foreach ($conditionsarray as $car) { $fieldorders=convertToArray($car, "`, `", "(`", "`)"); @@ -469,8 +513,10 @@ if (isset($countlabelsets)) {echo $countlabelsets;} echo " ("._LABELANS.": "; if (isset($countlabels)) {echo $countlabels;} +echo ")\n"; +echo "\t
  • "._QL_QUESTIONATTRIBUTES; +if (isset($countquestion_attributes)) {echo " $countquestion_attributes";} echo ")
  • \n\n"; - echo ""._IG_SUCCESS."
    \n" ."\n" ."\n" diff --git a/admin/importquestion.php b/admin/importquestion.php index 9e7d154af87..0508d5fe2b8 100644 --- a/admin/importquestion.php +++ b/admin/importquestion.php @@ -163,32 +163,64 @@ } $bigarray = array_values($bigarray); -//ANSWERS -if (array_search("#\n", $bigarray)) +//LABELS +if (array_search("# QUESTION_ATTRIBUTES TABLE\n", $bigarray)) { - $stoppoint = array_search("#\n", $bigarray); + $stoppoint = array_search("# QUESTION_ATTRIBUTES TABLE\n", $bigarray); } -if (array_search("#\r\n", $bigarray)) +elseif (array_search("# QUESTION_ATTRIBUTES TABLE\r\n", $bigarray)) { - $stoppoint = array_search("#\r\n", $bigarray); + $stoppoint = array_search("# QUESTION_ATTRIBUTES TABLE\r\n", $bigarray); } else { $stoppoint = count($bigarray)-1; } -for ($i=0; $i<$stoppoint; $i++) +for ($i=0; $i<=$stoppoint+1; $i++) { - $labelsarray[] = $bigarray[$i]; - //echo "($i)[$stoppoint]An Answer! - {$bigarray[$i]}
    "; + if ($i<$stoppoint-2) {$labelsarray[] = $bigarray[$i];} unset($bigarray[$i]); } $bigarray = array_values($bigarray); +//LAST LOT (now question_attributes) +if (!isset($noconditions) || $noconditions != "Y") + { + $stoppoint = count($bigarray)-1; + for ($i=0; $i<=$stoppoint+1; $i++) + { + if ($i<$stoppoint-1) {$question_attributesarray[] = $bigarray[$i];} + unset($bigarray[$i]); + } + } +$bigarray = array_values($bigarray); +////ANSWERS +//if (array_search("#\n", $bigarray)) +// { +// $stoppoint = array_search("#\n", $bigarray); +// } +//if (array_search("#\r\n", $bigarray)) +// { +// $stoppoint = array_search("#\r\n", $bigarray); +// } +//else +// { +// $stoppoint = count($bigarray)-1; +// } +//for ($i=0; $i<$stoppoint; $i++) +// { +// $labelsarray[] = $bigarray[$i]; +// //echo "($i)[$stoppoint]An Answer! - {$bigarray[$i]}
    "; +// unset($bigarray[$i]); +// } +//$bigarray = array_values($bigarray); + if (isset($questionarray)) {$countquestions = count($questionarray);} if (isset($answerarray)) {$countanswers = count($answerarray);} if (isset($labelsetsarray)) {$countlabelsets = count($labelsetsarray);} if (isset($labelsarray)) {$countlabels = count($labelsarray);} +if (isset($question_attributesarray)) {$countquestion_attributes = count($question_attributesarray);} else {$countquestion_attributes=0;} // GET SURVEY AND GROUP DETAILS $sid=$_POST['sid']; @@ -369,6 +401,27 @@ } $substitutions[]=array($oldsid, $oldgid, $oldqid, $newsid, $newgid, $newqid); } + //NOW DO question_attributes if there are any + if (isset($question_attributesarray) && $question_attributesarray) + {//ONLY DO THIS IF THERE ARE QUESTION_ATTRIBUES + foreach ($question_attributesarray as $qar) + { + $fieldorders=convertToArray($qar, "`, `", "(`", "`)"); + $fieldcontents=convertToArray($qar, "', '", "('", "')"); + $newfieldcontents=$fieldcontents; + $oldqid=$fieldcontents[array_search("qid", $fieldorders)]; + + $newfieldcontents[array_search("qid", $fieldorders)]=$newqid; + $newfieldcontents[array_search("qaid", $fieldorders)]=""; + + $newvalues="('".implode("', '", $newfieldcontents)."')"; + $insert=str_replace("('".implode("', '", $fieldcontents)."')", $newvalues, $qar); + $insert=str_replace("INTO question_attributes", "INTO {$dbprefix}question_attributes", $insert); + $result=mysql_query($insert) or die ("Couldn't insert question_attribute
    $insert
    ".mysql_error()); + + unset($newcqid); + } + } } } @@ -389,7 +442,10 @@ if (isset($countlabelsets)) {echo $countlabelsets;} echo " ("; if (isset($countlabels)) {echo $countlabels;} -echo ")
    \n"; +echo ")
    \n"; +echo "\t
  • "._QL_QUESTIONATTRIBUTES; +if (isset($countquestion_attributes)) {echo $countquestion_attributes;} +echo "

  • \n"; echo ""._IS_SUCCESS."
    \n" ."$insert
    ".mysql_error()); + + unset($newcqid); + } +} + if (isset($conditionsarray) && $conditionsarray) {//ONLY DO THIS IF THERE ARE CONDITIONS! foreach ($conditionsarray as $car) { $fieldorders=convertToArray($car, "`, `", "(`", "`)"); @@ -533,7 +579,8 @@ echo "\t
  • "._QUESTIONS.": $countquestions
  • \n"; echo "\t
  • "._ANSWERS.": $countanswers
  • \n"; echo "\t
  • "._CONDITIONS.": $countconditions
  • \n"; -echo "\t
  • "._LABELSET.": $countlabelsets ("._LABELANS.": $countlabels)
  • \n\n"; +echo "\t
  • "._LABELSET.": $countlabelsets ("._LABELANS.": $countlabels)
  • \n"; +echo "\t
  • "._QL_QUESTIONATTRIBUTES." $countquestion_attributes
  • \n\n"; echo ""._IS_SUCCESS."
    \n"; echo "\n";