Skip to content

Commit

Permalink
New feature: Multilingual question attributes
Browse files Browse the repository at this point in the history
git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey_ci@10967 b72ed6b6-b9f8-46b5-92b4-906544132732
  • Loading branch information
c-schmitz committed Sep 12, 2011
1 parent 242412e commit dac5b97
Show file tree
Hide file tree
Showing 10 changed files with 302 additions and 217 deletions.
57 changes: 43 additions & 14 deletions application/controllers/admin/database.php
Expand Up @@ -577,28 +577,57 @@ function index($action=null)
}
$attsql.='1=1';
db_execute_assoc($attsql); // or safe_die ("Couldn't delete obsolete question attributes<br />".$attsql."<br />".$connect->ErrorMsg()); // Checked
$aLanguages=array_merge(array(GetBaseLanguageFromSurveyID($surveyid)),GetAdditionalLanguagesFromSurveyID($surveyid));


//now save all valid attributes
$validAttributes=$qattributes[$_POST['type']];
foreach ($validAttributes as $validAttribute)
{
if (isset($_POST[$validAttribute['name']]))
if ($validAttribute['i18n'])
{
$query = "select qaid from ".$this->db->dbprefix."question_attributes
WHERE attribute='".$validAttribute['name']."' AND qid=".$qid;
$result = db_execute_assoc($query); // or safe_die("Error updating attribute value<br />".$query."<br />".$connect->ErrorMsg()); // Checked
if ($result->Recordcount()>0)
{
$query = "UPDATE ".$this->db->dbprefix."question_attributes
SET value='".$_POST[$validAttribute['name']]."' WHERE attribute='".$validAttribute['name']."' AND qid=".$qid;
$result = db_execute_assoc($query) ; // or safe_die("Error updating attribute value<br />".$query."<br />".$connect->ErrorMsg()); // Checked
}
else
foreach ($aLanguages as $sLanguage)
{
if (isset($_POST[$validAttribute['name'].'_'.$sLanguage]))
{
$value=$this->db->escape($_POST[$validAttribute['name'].'_'.$sLanguage]);
$query = "select qaid from ".$this->db->dbprefix."question_attributes
WHERE attribute='".$validAttribute['name']."' AND qid={$qid} AND language='{$sLanguage}'";
$result = db_execute_assoc($query); // or safe_die("Error updating attribute value<br />".$query."<br />".$connect->ErrorMsg()); // Checked
if ($result->num_rows()>0)
{
$query = "UPDATE ".$this->db->dbprefix."question_attributes
SET value=".$value." and language=NULL WHERE attribute='".$validAttribute['name']."' AND qid={$qid} AND language='{$sLanguage}'";
$result = db_execute_assoc($query) ; // or safe_die("Error updating attribute value<br />".$query."<br />".$connect->ErrorMsg()); // Checked
}
else
{
$query = "INSERT into ".$this->db->dbprefix."question_attributes
(qid, value, attribute, language) values ({$qid},{$value},'{$validAttribute['name']}','{$sLanguage}')";
$result = db_execute_assoc($query); // or safe_die("Error updating attribute value<br />".$query."<br />".$connect->ErrorMsg()); // Checked
}
}
}
}
else
{
if (isset($_POST[$validAttribute['name']]))
{
$query = "INSERT into ".$this->db->dbprefix."question_attributes
(qid, value, attribute) values ($qid,'".$_POST[$validAttribute['name']]."','{$validAttribute['name']}')";
$query = "select qaid from ".$this->db->dbprefix."question_attributes
WHERE attribute='".$validAttribute['name']."' AND qid=".$qid;
$result = db_execute_assoc($query); // or safe_die("Error updating attribute value<br />".$query."<br />".$connect->ErrorMsg()); // Checked
if ($result->num_rows()>0)
{
$query = "UPDATE ".$this->db->dbprefix."question_attributes
SET value='".$_POST[$validAttribute['name']]."' and language=NULL WHERE attribute='".$validAttribute['name']."' AND qid=".$qid;
$result = db_execute_assoc($query) ; // or safe_die("Error updating attribute value<br />".$query."<br />".$connect->ErrorMsg()); // Checked
}
else
{
$query = "INSERT into ".$this->db->dbprefix."question_attributes
(qid, value, attribute) values ($qid,'".$_POST[$validAttribute['name']]."','{$validAttribute['name']}')";
$result = db_execute_assoc($query); // or safe_die("Error updating attribute value<br />".$query."<br />".$connect->ErrorMsg()); // Checked
}
}
}
}
Expand Down Expand Up @@ -703,7 +732,7 @@ function index($action=null)
'gid' => $gid,
'other' => $_POST['other'],
'mandatory' => $_POST['mandatory']

);
/*
$uqquery = "UPDATE ".$this->db->dbprefix."questions SET type='".$_POST['type']."', title='".$_POST['title']."', "
Expand Down

0 comments on commit dac5b97

Please sign in to comment.