mirror of
https://github.com/ACSPRI/queXS
synced 2024-04-02 12:12:16 +00:00
This means that both the limesurvey and the quexs tables must be in the same database, with the same connection But has the advantage of being able to join records across tables easily
173 lines
5.2 KiB
PHP
173 lines
5.2 KiB
PHP
<?
|
|
/**
|
|
* Select and set questions to pre fill in the questionnaire
|
|
*
|
|
*
|
|
* This file is part of queXS
|
|
*
|
|
* queXS is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* queXS is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with queXS; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*
|
|
*
|
|
* @author Adam Zammit <adam.zammit@deakin.edu.au>
|
|
* @copyright Deakin University 2007,2008
|
|
* @package queXS
|
|
* @subpackage admin
|
|
* @link http://www.deakin.edu.au/dcarf/ queXS was writen for DCARF - Deakin Computer Assisted Research Facility
|
|
* @license http://opensource.org/licenses/gpl-2.0.php The GNU General Public License (GPL) Version 2
|
|
*
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* Configuration file
|
|
*/
|
|
include("../config.inc.php");
|
|
|
|
/**
|
|
* Database file
|
|
*/
|
|
include ("../db.inc.php");
|
|
|
|
/**
|
|
* XHTML functions
|
|
*/
|
|
include("../functions/functions.xhtml.php");
|
|
|
|
/**
|
|
* Display functions
|
|
*/
|
|
include("../functions/functions.display.php");
|
|
|
|
|
|
/**
|
|
* Input functions
|
|
*/
|
|
include("../functions/functions.input.php");
|
|
|
|
global $db;
|
|
|
|
|
|
if (isset($_GET['questionnaire_id']) && isset($_GET['sgqa']) && isset($_GET['value']))
|
|
{
|
|
//need to add prefill to questionnaire
|
|
|
|
$questionnaire_id = bigintval($_GET['questionnaire_id']);
|
|
$value = $db->quote($_GET['value']);
|
|
$sgqa = $db->quote($_GET['sgqa']);
|
|
|
|
$sql = "INSERT INTO questionnaire_prefill(questionnaire_id,lime_sgqa,value)
|
|
VALUES('$questionnaire_id',$sgqa,$value)";
|
|
|
|
$db->Execute($sql);
|
|
|
|
}
|
|
|
|
if (isset($_GET['questionnaire_id']) && isset($_GET['questionnaire_prefill_id']))
|
|
{
|
|
//need to remove prefill from questionnaire
|
|
|
|
$questionnaire_id = bigintval($_GET['questionnaire_id']);
|
|
$questionnaire_prefill_id = bigintval($_GET['questionnaire_prefill_id']);
|
|
|
|
$sql = "DELETE FROM questionnaire_prefill
|
|
WHERE questionnaire_prefill_id = '$questionnaire_prefill_id'";
|
|
|
|
$db->Execute($sql);
|
|
|
|
}
|
|
|
|
|
|
$questionnaire_id = false;
|
|
if (isset($_GET['questionnaire_id'])) $questionnaire_id = bigintval($_GET['questionnaire_id']);
|
|
|
|
xhtml_head(T_("Pre fill questionnaire: Set values for questionnaire to prefill"),true,false,array("../js/window.js"));
|
|
print "<h1>" . T_("Select a questionnaire from the list below") . "</h1>";
|
|
|
|
$sql = "SELECT questionnaire_id as value,description, CASE WHEN questionnaire_id = '$questionnaire_id' THEN 'selected=\'selected\'' ELSE '' END AS selected
|
|
FROM questionnaire";
|
|
display_chooser($db->GetAll($sql),"questionnaire","questionnaire_id");
|
|
|
|
|
|
if ($questionnaire_id != false)
|
|
{
|
|
print "<h1>" . T_("Current pre fills (click to delete)") . "</h1>";
|
|
|
|
$sql = "SELECT questionnaire_prefill_id,lime_sgqa,value
|
|
FROM questionnaire_prefill
|
|
WHERE questionnaire_id = '$questionnaire_id'";
|
|
|
|
$r = $db->GetAll($sql);
|
|
|
|
if (empty($r))
|
|
{
|
|
print "<p>" . T_("Currently no pre fills") . "</p>";
|
|
}
|
|
else
|
|
{
|
|
foreach($r as $v)
|
|
{
|
|
print "<div><a href='?questionnaire_id=$questionnaire_id&questionnaire_prefill_id={$v['questionnaire_prefill_id']}'>{$v['lime_sgqa']}: {$v['value']}</a></div>";
|
|
|
|
}
|
|
}
|
|
|
|
|
|
print "<h1>" . T_("Select a question to pre fill") . "</h1>";
|
|
|
|
$sql = "SELECT lime_sid
|
|
FROM questionnaire
|
|
WHERE questionnaire_id = '$questionnaire_id'";
|
|
|
|
$r = $db->GetRow($sql);
|
|
|
|
$lime_sid = $r['lime_sid'];
|
|
|
|
$sgqa = false;
|
|
if (isset($_GET['sgqa'])) $sgqa = $_GET['sgqa'];
|
|
|
|
$sql = "SELECT CONCAT( q.sid, 'X', q.gid, 'X', q.qid, IFNULL( a.code, '' ) ) AS value, CONCAT(q.question, ': ', IFNULL(a.answer,'')) as description, CASE WHEN CONCAT( q.sid, 'X', q.gid, 'X', q.qid, IFNULL( a.code, '' ) ) = '$sgqa' THEN 'selected=\'selected\'' ELSE '' END AS selected
|
|
FROM `" . LIME_PREFIX . "questions` AS q
|
|
LEFT JOIN `" . LIME_PREFIX . "answers` AS a ON ( a.qid = q.qid )
|
|
WHERE q.sid = '$lime_sid'";
|
|
|
|
|
|
display_chooser($db->GetAll($sql),"sgqa","sgqa",true,"questionnaire_id=$questionnaire_id");
|
|
|
|
if ($sgqa != false)
|
|
{
|
|
print "<h1>" . T_("Enter a value to pre fill this question with:") . "</h1>";
|
|
print "<p>";
|
|
print T_("Possible uses:");
|
|
print "</p><ul>";
|
|
print "<li>" . T_("{Respondent:firstName} First name of the respondent") . "</li>";
|
|
print "<li>" . T_("{Respondent:lastName} Last name of the respondent") . "</li>";
|
|
print "<li>" . T_("{Sample:var} A record from the sample where the column name is 'var'") . "</li>";
|
|
print "</ul>";
|
|
?>
|
|
<form action="" method="get">
|
|
<p>
|
|
<label for="value"><? echo T_("The value to pre fill"); ?> </label><input type="text" name="value" id="value"/> <br/>
|
|
<input type="hidden" name="questionnaire_id" value="<? print($questionnaire_id); ?>"/>
|
|
<input type="hidden" name="sgqa" value="<? print($sgqa); ?>"/>
|
|
<input type="submit" name="add_prefill" value="<? print(T_("Add pre fill")); ?>"/></p>
|
|
</form>
|
|
<?
|
|
}
|
|
}
|
|
xhtml_foot();
|
|
|
|
|
|
?>
|