diff --git a/README.md b/README.md index c37f1c36..7fc4c2c9 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,32 @@ An Open Source, web based, CATI system queXS can operate your outbound telephone research centre. It integrates with the Asterisk VoIP Server, uses AAPOR Standard Outcome codes and only requires a web browser to operate. +Unless otherwise stated in the code, the code for queXS is licenced under the GPL-v2. All included code has been checked for compatability with this licence. + Development for queXS occurs on Launchpad: https://launchpad.net/quexs + +##Upgrades + +If you have a previous version of queXS installed, please check the CHANGELOG file for details of how to upgrade + +##Requirements + +`apt-get install php5 mysql-server php5-mysql unzip php5-mbstring + +##Installation (from 1.14.0) + +``` +#Download and extract queXS to your webroot +unzip quexs-1.14.0.zip -d /var/www/html +#Create a MySQL/mariadb database +mysqladmin create quexs +#Import the database structure from the database/quexs.sql file +mysql -uroot quexs < database/quexs.sql +#Install the timezone database +mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql +#Create the default config file +cp config.inc.local.php.example config.inc.local.php +``` + +Then browse to the queXS URL and login using the default credentials (admin/password) + diff --git a/config.inc.local.php.example b/config.inc.local.php.example index e77296b6..2bdb8273 100644 --- a/config.inc.local.php.example +++ b/config.inc.local.php.example @@ -60,8 +60,8 @@ define('QUEXS_PATH', '/quexs/'); /** * Database configuration for queXS */ -define('DB_USER', 'quexs'); -define('DB_PASS', 'quexs'); +define('DB_USER', 'root'); +define('DB_PASS', ''); define('DB_HOST', 'localhost'); define('DB_NAME', 'quexs'); diff --git a/include/limesurvey/admin/admin.php b/include/limesurvey/admin/admin.php index f4fb9c6f..103eea80 100644 --- a/include/limesurvey/admin/admin.php +++ b/include/limesurvey/admin/admin.php @@ -325,11 +325,11 @@ if(isset($_SESSION['loginID'])) { include('listcolumn.php'); } - elseif ($action=='update') - { - if( $_SESSION['USER_RIGHT_SUPERADMIN'] == 1) include($homedir.'/update/updater.php'); - else { include('access_denied.php');} - } +// elseif ($action=='update') +// { +// if( $_SESSION['USER_RIGHT_SUPERADMIN'] == 1) include($homedir.'/update/updater.php'); +// else { include('access_denied.php');} +// } elseif ($action=='assessments' || $action=='assessmentdelete' || $action=='assessmentedit' || $action=='assessmentadd' || $action=='assessmentupdate') { if(bHasSurveyPermission($surveyid,'assessments','read')) { diff --git a/include/limesurvey/admin/update/updater.php b/include/limesurvey/admin/update/updater.php deleted file mode 100644 index 8cc63396..00000000 --- a/include/limesurvey/admin/update/updater.php +++ /dev/null @@ -1,664 +0,0 @@ -timeout=0; - /* Data transfer timeout */ - $http->data_timeout=0; - $http->user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"; - $http->GetRequestArguments("http://update.limesurvey.org?updaterbuild=$updaterversion",$arguments); - - $updateinfo=false; - $error=$http->Open($arguments); - $error=$http->SendRequest($arguments); - - $http->ReadReplyHeaders($headers); - - - if($error=="") { - $body=''; $full_body=''; - for(;;){ - $error = $http->ReadReplyBody($body,10000); - if($error != "" || strlen($body)==0) break; - $full_body .= $body; - } - $updateinfo=json_decode($full_body,true); - if ($http->response_status!='200') - { - $updateinfo['errorcode']=$http->response_status; - $updateinfo['errorhtml']=$full_body; - } - } - else - { - $updateinfo['errorcode']=$error; - $updateinfo['errorhtml']=$error; - } - unset( $http ); - if ((int)$updateinfo['UpdaterRevision']<=$updaterversion) - { - return true; - } - - if (!is_writable($tempdir)) - { - echo "
  • ".sprintf($clang->gT("Tempdir %s is not writable"),$tempdir)."
  • "; - $error=true; - } - if (!is_writable($homedir.DIRECTORY_SEPARATOR.'update'.DIRECTORY_SEPARATOR.'updater.php')) - { - echo "
  • ".sprintf($clang->gT("Updater file is not writable (%s). Please set according file permissions."),$homedir.DIRECTORY_SEPARATOR.'update'.DIRECTORY_SEPARATOR.'updater.php')."
  • "; - $error=true; - } - - // Download the zip file, unpack it and replace the updater file accordingly - // Create DB and file backups now - require_once("classes/pclzip/pclzip.lib.php"); - - // require_once('classes/pclzip/pcltrace.lib.php'); - // require_once('classes/pclzip/pclzip-trace.lib.php'); - // PclTraceOn(2); - - require_once($homedir."/classes/http/http.php"); - - $downloaderror=false; - $http=new http_class; - - // Allow redirects - $http->follow_redirect=1; - /* Connection timeout */ - $http->timeout=0; - /* Data transfer timeout */ - $http->data_timeout=0; - $http->user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"; - $http->GetRequestArguments("http://update.limesurvey.org/updates/downloadupdater/$updaterversion",$arguments); - - $httperror=$http->Open($arguments); - $httperror=$http->SendRequest($arguments); - $http->ReadReplyHeaders($headers); - if ($headers['content-type']=='text/html') - { - @unlink($tempdir.'/updater.zip'); - } - elseif($httperror=='') { - $body=''; $full_body=''; - for(;;){ - $httperror = $http->ReadReplyBody($body,100000); - if($httperror != "" || strlen($body)==0) break; - $full_body .= $body; - } - file_put_contents($tempdir.'/updater.zip',$full_body); - } - else - { - print( $httperror ); - } - - //Now unzip the new updater over the existing ones. - if (file_exists($tempdir.'/updater.zip')){ - $archive = new PclZip($tempdir.'/updater.zip'); - if ($archive->extract(PCLZIP_OPT_PATH, $homedir.'/update/', PCLZIP_OPT_REPLACE_NEWER)== 0) { - die("Error : ".$archive->errorInfo(true)); - } - else - { - unlink($tempdir.'/updater.zip'); - } - } - else - { - echo $clang->gT('There was a problem downloading the updater file. Please try to restart the update process.').'
    '; - $error=true; - } - - -} - -function UpdateStep1() -{ - global $clang, $scriptname, $updatekey, $subaction, $updatebuild, $homedir, $buildnumber, $tempdir, $rootdir; - - - if ($subaction=='keyupdate') - { - setGlobalSetting('updatekey',sanitize_paranoid_string($_POST['updatekey'])); - } - $error=false; - echo '
    '.$clang->gT('Welcome to the ComfortUpdate').'

    '; - echo $clang->gT('The LimeSurvey ComfortUpdate is an easy procedure to quickly update to the latest version of LimeSurvey.').'
    '; - echo $clang->gT('The following steps will be done by this update:').'
    '; - echo '

    '.$clang->gT('Checking basic requirements...').'

    '; - if ($updatekey==''){ - echo $clang->gT('You need an update key to run the comfort update. During the beta test of this update feature the key "LIMESURVEYUPDATE" can be used.'); - echo "
    '; - echo '
    '; - } - else { - echo "

    '.$clang->gT('Change log').'

    '; - require_once($homedir."/classes/http/http.php"); - $updatekey=getGlobalSetting('updatekey'); - - $http=new http_class; - /* Connection timeout */ - $http->timeout=0; - /* Data transfer timeout */ - $http->data_timeout=0; - $http->user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"; - $http->GetRequestArguments("http://update.limesurvey.org/updates/changelog/$buildnumber/$updatebuild/$updatekey",$arguments); - - $updateinfo=false; - $httperror=$http->Open($arguments); - $httperror=$http->SendRequest($arguments); - - if($httperror=="") { - $body=''; $full_body=''; - for(;;){ - $httperror = $http->ReadReplyBody($body,10000); - if($httperror != "" || strlen($body)==0) break; - $full_body .= $body; - } - $changelog=json_decode($full_body,true); - echo ''; - } - else - { - print( $httperror ); - } - } - - - if ($error) - { - echo '

    '.$clang->gT('When checking your installation we found one or more problems. Please check for any error messages above and fix these before you can proceed.'); - echo "

    "; - } - else - { - echo '

    '.$clang->gT('Everything looks alright. Please proceed to the next step.'); - echo "

    "; - } - echo '
    '; -} - - -function UpdateStep2() -{ - global $clang, $scriptname, $homedir, $buildnumber, $updatebuild, $debug, $rootdir; - - // Request the list with changed files from the server - - require_once($homedir."/classes/http/http.php"); - $updatekey=getGlobalSetting('updatekey'); - - echo '
    '.sprintf($clang->gT('ComfortUpdate step %s'),'2').'

    '; - - $http=new http_class; - /* Connection timeout */ - $http->timeout=0; - /* Data transfer timeout */ - $http->data_timeout=0; - $http->user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"; - $http->GetRequestArguments("http://update.limesurvey.org/updates/update/$buildnumber/$updatebuild/$updatekey",$arguments); - - $updateinfo=false; - $error=$http->Open($arguments); - $error=$http->SendRequest($arguments); - - if($error=="") { - $body=''; $full_body=''; - for(;;){ - $error = $http->ReadReplyBody($body,10000); - if($error != "" || strlen($body)==0) break; - $full_body .= $body; - } - $updateinfo=json_decode($full_body,true); - $http->SaveCookies($site_cookies); - } - else - { - print( $error ); - } - - if (isset($updateinfo['error'])) - { - echo $clang->gT('On requesting the update information from limesurvey.org there has been an error:').'
    '; - - if ($updateinfo['error']==1) - { - setGlobalSetting('updatekey',''); - echo $clang->gT('Your update key is invalid and was removed. ').'
    '; - } - else - echo $clang->gT('On requesting the update information from limesurvey.org there has been an error:').'
    '; - } - // okay, updateinfo now contains all necessary updateinformation - // Now check if the existing files have the mentioned checksum - $existingfiles=array(); - $modifiedfiles=array(); - $readonlyfiles=array(); - if (!isset($updateinfo['files'])) - { - echo "
    -
    ".$clang->gT('Update server busy')."
    -

    ".$clang->gT('The update server is currently busy. This usually happens when the update files for a new version are being prepared.')."

    - ".$clang->gT('Please be patient and try again in about 10 minutes.')."

    -

    "; - - } - else - { - - foreach ($updateinfo['files'] as $afile) - { - if ($afile['type']=='A' && !file_exists($rootdir.$afile['file'])) - { - $searchpath=$rootdir.$afile['file']; - $is_writable=is_writable(dirname($searchpath)); - while (!$is_writable && strlen($searchpath)>strlen($rootdir)) - { - $searchpath=dirname($searchpath); - if (file_exists($searchpath)) - { - $is_writable=is_writable($searchpath); - break; - - } - } - if (!$is_writable) - { - $readonlyfiles[]=$searchpath; - } - } - elseif (file_exists($rootdir.$afile['file']) && !is_writable($rootdir.$afile['file'])) { - $readonlyfiles[]=$rootdir.$afile['file']; - } - - - if ($afile['type']=='A' && file_exists($rootdir.$afile['file'])) - { - //A new file, check if this already exists - $existingfiles[]=$afile; - } - elseif (($afile['type']=='D' || $afile['type']=='M') && is_file($rootdir.$afile['file']) && sha1_file($rootdir.$afile['file'])!=$afile['checksum']) // A deleted or modified file - check if it is unmodified - { - $modifiedfiles[]=$afile; - } - } - - echo '

    '.$clang->gT('Checking existing LimeSurvey files...').'

    '; - if (count($readonlyfiles)>0) - { - echo ''.$clang->gT('Warning: The following files/directories need to be updated but their permissions are set to read-only.').'
    '; - echo $clang->gT('You must set according write permissions on these filese before you can proceed. If you are unsure what to do please contact your system administrator for advice.').'
    '; - echo '
    '; - } - if (count($existingfiles)>0) - { - echo $clang->gT('The following files would be added by the update but already exist. This is very unusual and may be co-incidental.').'
    '; - echo $clang->gT('We recommend that these files should be replaced by the update procedure.').'
    '; - echo ''; - } - - if (count($modifiedfiles)>0) - { - echo $clang->gT('The following files will be modified or deleted but were already modified by someone else.').'
    '; - echo $clang->gT('We recommend that these files should be replaced by the update procedure.').'
    '; - echo ''; - } - - if (count($readonlyfiles)>0) - { - echo '
    '.$clang->gT('When checking your file permissions we found one or more problems. Please check for any error messages above and fix these before you can proceed.'); - echo "

    "; - } - else - { - echo $clang->gT('Please check any problems above and then proceed to the next step.').'
    '; - echo "

    "; - - } - } - $_SESSION['updateinfo']=$updateinfo; - $_SESSION['updatesession']=$site_cookies; -} - - -function UpdateStep3() -{ - global $clang, $scriptname, $homedir, $buildnumber, $updatebuild, $debug, $rootdir, $publicdir, $tempdir, $database_exists, $databasetype, $action, $demoModeOnly; - - echo '
    '.sprintf($clang->gT('ComfortUpdate step %s'),'3').'
    '; - echo '

    '.$clang->gT('Creating DB & file backup').'

    '; - if (!isset( $_SESSION['updateinfo'])) - { - echo $clang->gT('On requesting the update information from limesurvey.org there has been an error:').'
    '; - - if ($updateinfo['error']==1) - { - setGlobalSetting('updatekey',''); - echo $clang->gT('Your update key is invalid and was removed. ').'
    '; - } - else - echo $clang->gT('On requesting the update information from limesurvey.org there has been an error:').'
    '; - } - else - { - $updateinfo=$_SESSION['updateinfo']; - } - - // okay, updateinfo now contains all necessary updateinformation - // Create DB and file backups now - - $basefilename = date("YmdHis-").md5(uniqid(rand(), true)); - //Now create a backup of the files to be delete or modified - - $filestozip=array(); - Foreach ($updateinfo['files'] as $file) - { - if (is_file($publicdir.$file['file'])===true) // Sort out directories - { - $filestozip[]=$publicdir.$file['file']; - } - } - - require_once("classes/pclzip/pclzip.lib.php"); - // require_once('classes/pclzip/pcltrace.lib.php'); - // require_once('classes/pclzip/pclzip-trace.lib.php'); - - //PclTraceOn(1); - - $archive = new PclZip($tempdir.DIRECTORY_SEPARATOR.'files-'.$basefilename.'.zip'); - - $v_list = $archive->add($filestozip, PCLZIP_OPT_REMOVE_PATH, $publicdir); - - echo $clang->gT('Creating file backup... ').'
    '; - - if ($v_list == 0) { - die("Error : ".$archive->errorInfo(true)); - } - else - { - echo "".$clang->gT('File backup created:').' '.htmlspecialchars($tempdir.DIRECTORY_SEPARATOR.'files-'.$basefilename.'.zip').'

    '; - - } - - require_once("dumpdb.php"); - - if ($databasetype=='mysql' || $databasetype=='mysqli') - { - echo $clang->gT('Creating database backup... ').'
    '; - $byteswritten=file_put_contents($tempdir.DIRECTORY_SEPARATOR.'db-'.$basefilename.'.sql',completedump()); - if ($byteswritten>5000) - { - echo "".$clang->gT('DB backup created:')." ".htmlspecialchars($tempdir.DIRECTORY_SEPARATOR.'db-'.$basefilename.'.sql').'

    '; - } - } - else - { - echo "".$clang->gT('No DB backup created:').'
    '.$clang->gT('Database backup functionality is currently not available for your database type. Before proceeding please backup your database using a backup tool!').'


    '; - } - - echo $clang->gT('Please check any problems above and then proceed to the final step.'); - echo "

    "; - echo '
    '; -} - - -function UpdateStep4() -{ - global $clang, $scriptname, $homedir, $buildnumber, $updatebuild, $debug, $rootdir, $publicdir, $tempdir, $database_exists, $databasetype, $action, $demoModeOnly; - - echo '
    '.sprintf($clang->gT('ComfortUpdate step %s'),'4').'

    '; - if (!isset( $_SESSION['updateinfo'])) - { - echo $clang->gT('On requesting the update information from limesurvey.org there has been an error:').'
    '; - - if ($updateinfo['error']==1) - { - setGlobalSetting('updatekey',''); - echo $clang->gT('Your update key is invalid and was removed. ').'
    '; - } - else - echo $clang->gT('On requesting the update information from limesurvey.org there has been an error:').'
    '; - } - else - { - $updateinfo=$_SESSION['updateinfo']; - } - // this is the last step - Download the zip file, unpack it and replace files accordingly - // Create DB and file backups now - require_once("classes/pclzip/pclzip.lib.php"); - - // require_once('classes/pclzip/pcltrace.lib.php'); - // require_once('classes/pclzip/pclzip-trace.lib.php'); - - // PclTraceOn(2); - require_once($homedir."/classes/http/http.php"); - - $downloaderror=false; - $http=new http_class; - - // Allow redirects - $http->follow_redirect=1; - /* Connection timeout */ - $http->timeout=0; - /* Data transfer timeout */ - $http->data_timeout=0; - $http->user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"; - $http->GetRequestArguments("http://update.limesurvey.org/updates/download/{$updateinfo['downloadid']}",$arguments); - $http->RestoreCookies($_SESSION['updatesession']); - - $error=$http->Open($arguments); - $error=$http->SendRequest($arguments); - $http->ReadReplyHeaders($headers); - if ($headers['content-type']=='text/html') - { - @unlink($tempdir.'/update.zip'); - } - elseif($error=='') { - $body=''; - $pFile = fopen($tempdir.'/update.zip', 'w'); - for(;;){ - $error = $http->ReadReplyBody($body,100000); - if($error != "" || strlen($body)==0) break; - fwrite($pFile, $body); - } - fclose($pFile); - } - else - { - print( $error ); - } - - // Now remove all files that are to be deleted according to update process - foreach ($updateinfo['files'] as $afile) - { - if ($afile['type']=='D' && file_exists($rootdir.$afile['file'])) - { - if (is_file($rootdir.$afile['file'])) - { - unlink($rootdir.$afile['file']); - } - else{ - rmdirr($rootdir.$afile['file']); - } - echo sprintf($clang->gT('File deleted: %s'),$afile['file']).'
    '; - } - } - - //Now unzip the new files over the existing ones. - if (file_exists($tempdir.'/update.zip')){ - $archive = new PclZip($tempdir.'/update.zip'); - if ($archive->extract(PCLZIP_OPT_PATH, $rootdir.'/', PCLZIP_OPT_REPLACE_NEWER)== 0) { - die("Error : ".$archive->errorInfo(true)); - } - else - { - echo $clang->gT('New files were successfully installed.').'
    '; - unlink($tempdir.'/update.zip'); - } - } - else - { - echo $clang->gT('There was a problem downloading the update file. Please try to restart the update process.').'
    '; - $downloaderror=true; - } - // PclTraceDisplay(); - - // Now we have to update version.php - if (!$downloaderror) - { - @ini_set('auto_detect_line_endings', true); - $versionlines=file($rootdir.'/version.php'); - $handle = fopen($rootdir.'/version.php', "w"); - foreach ($versionlines as $line) - { - if(strpos($line,'$buildnumber')!==false) - { - $line='$buildnumber'." = '{$_SESSION['updateinfo']['toversion']}';\r\n"; - } - fwrite($handle,$line); - } - fclose($handle); - echo sprintf($clang->gT('Buildnumber was successfully updated to %s.'),$_SESSION['updateinfo']['toversion']).'
    '; - echo $clang->gT('Please check any problems above - update was done.').'
    '; - } - - - echo "

    "; - echo '
    '; - setGlobalSetting('updatelastcheck','1980-01-01 00:00'); - setGlobalSetting('updateavailable','0'); -} - -/** - * This functions checks if the databaseversion in the settings table is the same one as required - * If not then the necessary upgrade procedures are run - */ -function CheckForDBUpgrades() -{ - global $connect, $databasetype, $dbprefix, $dbversionnumber, $clang; - $currentDBVersion=GetGlobalSetting('DBVersion'); - if (floatval($dbversionnumber)>intval($currentDBVersion)) - { - if(isset($_GET['continue']) && $_GET['continue']==1) - { - echo "
    "; - $upgradedbtype=$databasetype; - if ($upgradedbtype=='mssql_n' || $upgradedbtype=='odbc_mssql' || $upgradedbtype=='odbtp') $upgradedbtype='mssql'; - if ($upgradedbtype=='mssqlnative') $upgradedbtype = 'mssqlnative'; - if ($upgradedbtype=='mysqli') $upgradedbtype='mysql'; - include ('upgrade-'.$upgradedbtype.'.php'); - include ('upgrade-all.php'); - $tables = $connect->MetaTables(); - db_upgrade_all(floatval($currentDBVersion)); - db_upgrade(floatval($currentDBVersion)); - echo "
    ".sprintf($clang->gT("Database has been successfully upgraded to version %s"),$dbversionnumber); - } - else { - ShowDBUpgradeNotice(); - } - } -} - -function ShowDBUpgradeNotice() { - global $databasetype, $dbprefix, $databasename, $sitename, $rooturl,$clang; - $error=false; - echo "
    ".$clang->gT('Database upgrade').'

    '; - echo $clang->gT('Please verify the following information before continuing with the database upgrade:').'

    '; - echo "
    "; - echo "" . $clang->gT('Click here to continue') . ""; - echo "
    "; -} - -?> diff --git a/include/limesurvey/admin/update/upgrade-all.php b/include/limesurvey/admin/update/upgrade-all.php deleted file mode 100644 index c9012a8b..00000000 --- a/include/limesurvey/admin/update/upgrade-all.php +++ /dev/null @@ -1,233 +0,0 @@ -gT('The LimeSurvey database is being upgraded').' ('.date('Y-m-d H:i:s').')',14096).".". $clang->gT('Please be patient...')."

    \n"; - - if ($oldversion < 143) - { - // Move all user templates to the new user template directory - echo sprintf($clang->gT("Moving user templates to new location at %s..."),$usertemplaterootdir)."
    "; - $myDirectory = opendir($standardtemplaterootdir); - $aFailedTemplates=array(); - // get each entry - while($entryName = readdir($myDirectory)) { - if (!in_array($entryName,array('.','..','.svn')) && is_dir($standardtemplaterootdir.DIRECTORY_SEPARATOR.$entryName) && !isStandardTemplate($entryName)) - { - if (!rename($standardtemplaterootdir.DIRECTORY_SEPARATOR.$entryName,$usertemplaterootdir.DIRECTORY_SEPARATOR.$entryName)) - { - $aFailedTemplates[]=$entryName; - }; - } - } - if (count($aFailedTemplates)>0) - { - echo "The following templates at {$standardtemplaterootdir} could not be moved to the new location at {$usertemplaterootdir}:
    Please move these templates manually after the upgrade has finished.
    "; - } - // close directory - closedir($myDirectory); - - } -} - -function upgrade_question_attributes148() -{ - global $modifyoutput, $dbprefix; - $sDBPrefix=$dbprefix; - $sSurveyQuery = "SELECT sid FROM {$sDBPrefix}surveys"; - $oSurveyResult = db_execute_assoc($sSurveyQuery); - while ( $aSurveyRow = $oSurveyResult->FetchRow() ) - { - $surveyid=$aSurveyRow['sid']; - $languages=array_merge(array(GetBaseLanguageFromSurveyID($surveyid)), GetAdditionalLanguagesFromSurveyID($surveyid)); - - $sAttributeQuery = "select q.qid,attribute,value from {$sDBPrefix}question_attributes qa , {$sDBPrefix}questions q where q.qid=qa.qid and sid={$surveyid}"; - $oAttributeResult = db_execute_assoc($sAttributeQuery); - $aAllAttributes = questionAttributes(true); - while ( $aAttributeRow = $oAttributeResult->FetchRow() ) - { - if (isset($aAllAttributes[$aAttributeRow['attribute']]['i18n']) && $aAllAttributes[$aAttributeRow['attribute']]['i18n']) - { - modify_database("delete from {$sDBPrefix}question_attributes where qid={$aAttributeRow['qid']} and attribute='{$aAttributeRow['attribute']}'"); echo $modifyoutput; flush();@ob_flush(); - foreach ($languages as $language) - { - $sAttributeInsertQuery="insert into {$sDBPrefix}question_attributes (qid,attribute,value,language) VALUES({$aAttributeRow['qid']},'{$aAttributeRow['attribute']}','{$aAttributeRow['value']}','{$language}' )"; - modify_database("",$sAttributeInsertQuery); echo $modifyoutput; flush();@ob_flush(); - } - } - } - } -} - -function upgrade_survey_table145() -{ - global $modifyoutput, $connect; - $sSurveyQuery = "SELECT * FROM ".db_table_name('surveys')." where notification<>'0'"; - $oSurveyResult = db_execute_assoc($sSurveyQuery); - while ( $aSurveyRow = $oSurveyResult->FetchRow() ) - { - if ($aSurveyRow['notification']=='1' && trim($aSurveyRow['adminemail'])!='') - { - $aEmailAddresses=explode(';',$aSurveyRow['adminemail']); - $sAdminEmailAddress=$aEmailAddresses[0]; - $sEmailnNotificationAddresses=implode(';',$aEmailAddresses); - $sSurveyUpdateQuery= "update ".db_table_name('surveys')." set adminemail='{$sAdminEmailAddress}', emailnotificationto='{$sEmailnNotificationAddresses}' where sid=".$aSurveyRow['sid']; - $connect->execute($sSurveyUpdateQuery); - } - else - { - $aEmailAddresses=explode(';',$aSurveyRow['adminemail']); - $sAdminEmailAddress=$aEmailAddresses[0]; - $sEmailDetailedNotificationAddresses=implode(';',$aEmailAddresses); - if (trim($aSurveyRow['emailresponseto'])!='') - { - $sEmailDetailedNotificationAddresses=$sEmailDetailedNotificationAddresses.';'.trim($aSurveyRow['emailresponseto']); - } - $sSurveyUpdateQuery= "update ".db_table_name('surveys')." set adminemail='{$sAdminEmailAddress}', emailnotificationto='{$sEmailDetailedNotificationAddresses}' where sid=".$aSurveyRow['sid']; - $connect->execute($sSurveyUpdateQuery); - } - } - $sSurveyQuery = "SELECT * FROM ".db_table_name('surveys_languagesettings'); - $oSurveyResult = db_execute_assoc($sSurveyQuery); - while ( $aSurveyRow = $oSurveyResult->FetchRow() ) - { - $oLanguage = new limesurvey_lang($aSurveyRow['surveyls_language']); - $aDefaultTexts=aTemplateDefaultTexts($oLanguage,'unescaped'); - unset($oLanguage); - $aDefaultTexts['admin_detailed_notification']=$aDefaultTexts['admin_detailed_notification'].$aDefaultTexts['admin_detailed_notification_css']; - $aDefaultTexts=array_map('db_quoteall',$aDefaultTexts); - $sSurveyUpdateQuery= "update ".db_table_name('surveys_languagesettings')." set - email_admin_responses_subj={$aDefaultTexts['admin_detailed_notification_subject']}, - email_admin_responses={$aDefaultTexts['admin_detailed_notification']}, - email_admin_notification_subj={$aDefaultTexts['admin_notification_subject']}, - email_admin_notification={$aDefaultTexts['admin_notification']} - where surveyls_survey_id=".$aSurveyRow['surveyls_survey_id']; - $connect->execute($sSurveyUpdateQuery); - } - -} - - -function upgrade_surveypermissions_table145() -{ - global $modifyoutput, $connect; - $sPermissionQuery = "SELECT * FROM ".db_table_name('surveys_rights'); - $oPermissionResult = db_execute_assoc($sPermissionQuery); - if (!$oPermissionResult) {return "Database Error";} - else - { - $tablename=db_table_name_nq('survey_permissions'); - while ( $aPermissionRow = $oPermissionResult->FetchRow() ) - { - - $sPermissionInsertQuery=$connect->GetInsertSQL($tablename,array('permission'=>'assessments', - 'create_p'=>$aPermissionRow['define_questions'], - 'read_p'=>$aPermissionRow['define_questions'], - 'update_p'=>$aPermissionRow['define_questions'], - 'delete_p'=>$aPermissionRow['define_questions'], - 'sid'=>$aPermissionRow['sid'], - 'uid'=>$aPermissionRow['uid'])); - modify_database("",$sPermissionInsertQuery); echo $modifyoutput; flush();@ob_flush(); - - $sPermissionInsertQuery=$connect->GetInsertSQL($tablename,array('permission'=>'quotas', - 'create_p'=>$aPermissionRow['define_questions'], - 'read_p'=>$aPermissionRow['define_questions'], - 'update_p'=>$aPermissionRow['define_questions'], - 'delete_p'=>$aPermissionRow['define_questions'], - 'sid'=>$aPermissionRow['sid'], - 'uid'=>$aPermissionRow['uid'])); - modify_database("",$sPermissionInsertQuery); echo $modifyoutput; flush();@ob_flush(); - - $sPermissionInsertQuery=$connect->GetInsertSQL($tablename,array('permission'=>'responses', - 'create_p'=>$aPermissionRow['browse_response'], - 'read_p'=>$aPermissionRow['browse_response'], - 'update_p'=>$aPermissionRow['browse_response'], - 'delete_p'=>$aPermissionRow['delete_survey'], - 'export_p'=>$aPermissionRow['export'], - 'import_p'=>$aPermissionRow['browse_response'], - 'sid'=>$aPermissionRow['sid'], - 'uid'=>$aPermissionRow['uid'])); - modify_database("",$sPermissionInsertQuery); echo $modifyoutput; flush();@ob_flush(); - - $sPermissionInsertQuery=$connect->GetInsertSQL($tablename,array('permission'=>'statistics', - 'read_p'=>$aPermissionRow['browse_response'], - 'sid'=>$aPermissionRow['sid'], - 'uid'=>$aPermissionRow['uid'])); - modify_database("",$sPermissionInsertQuery); echo $modifyoutput; flush();@ob_flush(); - - $sPermissionInsertQuery=$connect->GetInsertSQL($tablename,array('permission'=>'survey', - 'read_p'=>1, - 'delete_p'=>$aPermissionRow['delete_survey'], - 'sid'=>$aPermissionRow['sid'], - 'uid'=>$aPermissionRow['uid'])); - modify_database("",$sPermissionInsertQuery); echo $modifyoutput; flush();@ob_flush(); - - $sPermissionInsertQuery=$connect->GetInsertSQL($tablename,array('permission'=>'surveyactivation', - 'update_p'=>$aPermissionRow['activate_survey'], - 'sid'=>$aPermissionRow['sid'], - 'uid'=>$aPermissionRow['uid'])); - modify_database("",$sPermissionInsertQuery); echo $modifyoutput; flush();@ob_flush(); - - $sPermissionInsertQuery=$connect->GetInsertSQL($tablename,array('permission'=>'surveycontent', - 'create_p'=>$aPermissionRow['define_questions'], - 'read_p'=>$aPermissionRow['define_questions'], - 'update_p'=>$aPermissionRow['define_questions'], - 'delete_p'=>$aPermissionRow['define_questions'], - 'export_p'=>$aPermissionRow['export'], - 'import_p'=>$aPermissionRow['define_questions'], - 'sid'=>$aPermissionRow['sid'], - 'uid'=>$aPermissionRow['uid'])); - modify_database("",$sPermissionInsertQuery); echo $modifyoutput; flush();@ob_flush(); - - $sPermissionInsertQuery=$connect->GetInsertSQL($tablename,array('permission'=>'surveylocale', - 'read_p'=>$aPermissionRow['edit_survey_property'], - 'update_p'=>$aPermissionRow['edit_survey_property'], - 'sid'=>$aPermissionRow['sid'], - 'uid'=>$aPermissionRow['uid'])); - modify_database("",$sPermissionInsertQuery); echo $modifyoutput; flush();@ob_flush(); - - $sPermissionInsertQuery=$connect->GetInsertSQL($tablename,array('permission'=>'surveysettings', - 'read_p'=>$aPermissionRow['edit_survey_property'], - 'update_p'=>$aPermissionRow['edit_survey_property'], - 'sid'=>$aPermissionRow['sid'], - 'uid'=>$aPermissionRow['uid'])); - modify_database("",$sPermissionInsertQuery); echo $modifyoutput; flush();@ob_flush(); - - $sPermissionInsertQuery=$connect->GetInsertSQL($tablename,array('permission'=>'tokens', - 'create_p'=>$aPermissionRow['activate_survey'], - 'read_p'=>$aPermissionRow['activate_survey'], - 'update_p'=>$aPermissionRow['activate_survey'], - 'delete_p'=>$aPermissionRow['activate_survey'], - 'export_p'=>$aPermissionRow['export'], - 'import_p'=>$aPermissionRow['activate_survey'], - 'sid'=>$aPermissionRow['sid'], - 'uid'=>$aPermissionRow['uid']) - ); - modify_database("",$sPermissionInsertQuery); echo $modifyoutput; flush();@ob_flush(); - } - } -} diff --git a/include/limesurvey/admin/update/upgrade-mssql.php b/include/limesurvey/admin/update/upgrade-mssql.php deleted file mode 100644 index f1b4a6d4..00000000 --- a/include/limesurvey/admin/update/upgrade-mssql.php +++ /dev/null @@ -1,928 +0,0 @@ -'german-informal', - 'cns'=>'cn-Hans', - 'cnt'=>'cn-Hant', - 'pt_br'=>'pt-BR', - 'gr'=>'el', - 'jp'=>'ja', - 'si'=>'sl', - 'se'=>'sv', - 'vn'=>'vi'); - - foreach ($oldnewlanguages as $oldlang=>$newlang) - { - modify_database("","update [prefix_answers] set [language]='$newlang' where language='$oldlang'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_questions] set [language]='$newlang' where language='$oldlang'");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_groups] set [language]='$newlang' where language='$oldlang'");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_labels] set [language]='$newlang' where language='$oldlang'");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_surveys] set [language]='$newlang' where language='$oldlang'");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_surveys_languagesettings] set [surveyls_language]='$newlang' where surveyls_language='$oldlang'");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_users] set [lang]='$newlang where lang='$oldlang'");echo $modifyoutput; flush();ob_flush(); - } - - - - $resultdata=db_execute_assoc("select * from ".db_table_name("labelsets")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['languages']; - $toreplace=str_replace('german_informal','german-informal',$toreplace); - $toreplace=str_replace('cns','cn-Hans',$toreplace); - $toreplace=str_replace('cnt','cn-Hant',$toreplace); - $toreplace=str_replace('pt_br','pt-BR',$toreplace); - $toreplace=str_replace('gr','el',$toreplace); - $toreplace=str_replace('jp','ja',$toreplace); - $toreplace=str_replace('si','sl',$toreplace); - $toreplace=str_replace('se','sv',$toreplace); - $toreplace=str_replace('vn','vi',$toreplace); - modify_database("","update [prefix_labelsets] set [languages`='$toreplace' where lid=".$datarow['lid']);echo $modifyoutput;flush();ob_flush(); - } - - - $resultdata=db_execute_assoc("select * from ".db_table_name("surveys")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['additional_languages']; - $toreplace=str_replace('german_informal','german-informal',$toreplace); - $toreplace=str_replace('cns','cn-Hans',$toreplace); - $toreplace=str_replace('cnt','cn-Hant',$toreplace); - $toreplace=str_replace('pt_br','pt-BR',$toreplace); - $toreplace=str_replace('gr','el',$toreplace); - $toreplace=str_replace('jp','ja',$toreplace); - $toreplace=str_replace('si','sl',$toreplace); - $toreplace=str_replace('se','sv',$toreplace); - $toreplace=str_replace('vn','vi',$toreplace); - modify_database("","update [prefix_surveys] set [additional_languages`='$toreplace' where sid=".$datarow['sid']);echo $modifyoutput;flush();ob_flush(); - } - modify_database("","update [prefix_settings_global] set [stg_value]='111' where stg_name='DBVersion'"); echo $modifyoutput; - - } - - if ($oldversion < 112) { - //The size of the users_name field is now 64 char (20 char before version 112) - modify_database("","ALTER TABLE [prefix_users] ALTER COLUMN [users_name] VARCHAR( 64 ) NOT NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='112' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 113) { - //No action needed - modify_database("","update [prefix_settings_global] set [stg_value]='113' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 114) { - modify_database("","ALTER TABLE [prefix_saved_control] ALTER COLUMN [email] VARCHAR(320) NOT NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ALTER COLUMN [adminemail] VARCHAR(320) NOT NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_users] ALTER COLUMN [email] VARCHAR(320) NOT NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("",'INSERT INTO [prefix_settings_global] VALUES (\'SessionName\', \'$sessionname\');');echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='114' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 126) { - modify_database("","ALTER TABLE [prefix_surveys] ADD [printanswers] CHAR(1) DEFAULT 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ADD [listpublic] CHAR(1) DEFAULT 'N'"); echo $modifyoutput; flush();ob_flush(); - upgrade_survey_tables117(); - upgrade_survey_tables118(); - //119 - modify_database("","CREATE TABLE [prefix_quota] ( - [id] int NOT NULL IDENTITY (1,1), - [sid] int, - [name] varchar(255) , - [qlimit] int , - [action] int , - [active] int NOT NULL default '1', - PRIMARY KEY ([id]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_quota_members] ( - [id] int NOT NULL IDENTITY (1,1), - [sid] int , - [qid] int , - [quota_id] int , - [code] varchar(5) , - PRIMARY KEY ([id]) - );");echo $modifyoutput; flush();ob_flush(); - - // Rename Norwegian language code from NO to NB - $oldnewlanguages=array('no'=>'nb'); - foreach ($oldnewlanguages as $oldlang=>$newlang) - { - modify_database("","update [prefix_answers] set [language]='$newlang' where [language]='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_questions] set [language]='$newlang' where [language]='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_groups] set [language]='$newlang' where [language]='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_labels] set [language]='$newlang' where [language]='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_surveys] set [language]='$newlang' where [language]='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_surveys_languagesettings] set [surveyls_language]='$newlang' where surveyls_language='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_users] set [lang]='$newlang' where lang='$oldlang'");echo $modifyoutput;flush();ob_flush(); - } - - $resultdata=db_execute_assoc("select * from ".db_table_name("labelsets")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['languages']; - $toreplace2=str_replace('no','nb',$toreplace); - if ($toreplace2!=$toreplace) {modify_database("","update [prefix_labelsets] set [languages]='$toreplace' where lid=".$datarow['lid']);echo $modifyoutput;flush();ob_flush();} - } - - $resultdata=db_execute_assoc("select * from ".db_table_name("surveys")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['additional_languages']; - $toreplace2=str_replace('no','nb',$toreplace); - if ($toreplace2!=$toreplace) {modify_database("","update [prefix_surveys] set [additional_languages]='$toreplace' where sid=".$datarow['sid']);echo $modifyoutput;flush();ob_flush();} - } - - modify_database("","ALTER TABLE [prefix_surveys] ADD [htmlemail] CHAR(1) DEFAULT 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ADD [usecaptcha] CHAR(1) DEFAULT 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ADD [tokenanswerspersistence] CHAR(1) DEFAULT 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_users] ADD [htmleditormode] CHAR(7) DEFAULT 'default'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_templates_rights] ( - [uid] int NOT NULL, - [folder] varchar(255) NOT NULL, - [use] int NOT NULL, - PRIMARY KEY ([uid],[folder]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_templates] ( - [folder] varchar(255) NOT NULL, - [creator] int NOT NULL, - PRIMARY KEY ([folder]) - );");echo $modifyoutput; flush();ob_flush(); - //123 - modify_database("","ALTER TABLE [prefix_conditions] ALTER COLUMN [value] VARCHAR(255)"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('title','labels'); - modify_database("","ALTER TABLE [prefix_labels] ALTER COLUMN [title] varchar(4000)"); echo $modifyoutput; flush();ob_flush(); - //124 - modify_database("","ALTER TABLE [prefix_surveys] ADD [bounce_email] text"); echo $modifyoutput; flush();ob_flush(); - //125 - upgrade_token_tables125(); - modify_database("","EXEC sp_rename 'prefix_users.move_user','superadmin'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","UPDATE [prefix_users] SET [superadmin]=1 where ([create_survey]=1 AND [create_user]=1 AND [delete_user]=1 AND [configurator]=1)"); echo $modifyoutput; flush();ob_flush(); - //126 - modify_database("","ALTER TABLE [prefix_questions] ADD [lid1] int NOT NULL DEFAULT '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","UPDATE [prefix_conditions] SET [method]='==' where ( [method] is null) or [method]='' or [method]='0'"); echo $modifyoutput; flush();ob_flush(); - - modify_database("","update [prefix_settings_global] set [stg_value]='126' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 127) { - modify_database("","create index [answers_idx2] on [prefix_answers] ([sortorder])"); echo $modifyoutput; - modify_database("","create index [assessments_idx2] on [prefix_assessments] ([sid])"); echo $modifyoutput; - modify_database("","create index [assessments_idx3] on [prefix_assessments] ([gid])"); echo $modifyoutput; - modify_database("","create index [conditions_idx2] on [prefix_conditions] ([qid])"); echo $modifyoutput; - modify_database("","create index [conditions_idx3] on [prefix_conditions] ([cqid])"); echo $modifyoutput; - modify_database("","create index [groups_idx2] on [prefix_groups] ([sid])"); echo $modifyoutput; - modify_database("","create index [question_attributes_idx2] on [prefix_question_attributes] ([qid])"); echo $modifyoutput; - modify_database("","create index [questions_idx2] on [prefix_questions] ([sid])"); echo $modifyoutput; - modify_database("","create index [questions_idx3] on [prefix_questions] ([gid])"); echo $modifyoutput; - modify_database("","create index [questions_idx4] on [prefix_questions] ([type])"); echo $modifyoutput; - modify_database("","create index [quota_idx2] on [prefix_quota] ([sid])"); echo $modifyoutput; - modify_database("","create index [saved_control_idx2] on [prefix_saved_control] ([sid])"); echo $modifyoutput; - modify_database("","create index [user_in_groups_idx1] on [prefix_user_in_groups] ([ugid], [uid])"); echo $modifyoutput; - modify_database("","update [prefix_settings_global] set [stg_value]='127' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 128) { - upgrade_token_tables128(); - modify_database("","update [prefix_settings_global] set [stg_value]='128' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 129) { - //128 - modify_database("","ALTER TABLE [prefix_surveys] ADD [startdate] DATETIME"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ADD [usestartdate] char(1) NOT NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='129' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 130) - { - modify_database("","ALTER TABLE [prefix_conditions] ADD [scenario] int NOT NULL DEFAULT '1'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","UPDATE [prefix_conditions] SET [scenario]=1 where ( [scenario] is null) or [scenario]='' or [scenario]=0"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='130' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 131) - { - modify_database("","ALTER TABLE [prefix_surveys] ADD [publicstatistics] char(1) NOT NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='131' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 132) - { - modify_database("","ALTER TABLE [prefix_surveys] ADD [publicgraphs] char(1) NOT NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='132' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 133) - { - modify_database("","ALTER TABLE [prefix_users] ADD [one_time_pw] text"); echo $modifyoutput; flush();ob_flush(); - // Add new assessment setting - modify_database("","ALTER TABLE [prefix_surveys] ADD [assessments] char(1) NOT NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - // add new assessment value fields to answers & labels - modify_database("","ALTER TABLE [prefix_answers] ADD [assessment_value] int NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_labels] ADD [assessment_value] int NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - // copy any valid codes from code field to assessment field - modify_database("","update [prefix_answers] set [assessment_value]=CAST([code] as int)");// no output here is intended - modify_database("","update [prefix_labels] set [assessment_value]=CAST([code] as int)");// no output here is intended - // activate assessment where assessment rules exist - modify_database("","update [prefix_surveys] set [assessments]='Y' where [sid] in (SELECT [sid] FROM [prefix_assessments] group by [sid])"); echo $modifyoutput; flush();ob_flush(); - // add language field to assessment table - modify_database("","ALTER TABLE [prefix_assessments] ADD [language] varchar(20) NOT NULL default 'en'"); echo $modifyoutput; flush();ob_flush(); - // update language field with default language of that particular survey - modify_database("","update [prefix_assessments] set [language]=(select [language] from [prefix_surveys] where [sid]=[prefix_assessments].[sid])"); echo $modifyoutput; flush();ob_flush(); - // copy assessment link to message since from now on we will have HTML assignment messages - modify_database("","update [prefix_assessments] set [message]=cast([message] as varchar) +'
    '+[link]+''"); echo $modifyoutput; flush();ob_flush(); - // drop the old link field - modify_database("","ALTER TABLE [prefix_assessments] DROP COLUMN [link]"); echo $modifyoutput; flush();ob_flush(); - // change the primary index to include language - mssql_drop_primary_index('assessments'); - // add the new primary key - modify_database("","ALTER TABLE [prefix_assessments] ADD CONSTRAINT pk_assessments_id_lang PRIMARY KEY ([id],[language])"); echo $modifyoutput; flush();ob_flush(); - - // Add new fields to survey language settings - modify_database("","ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_url] varchar(255)"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_endtext] text"); echo $modifyoutput; flush();ob_flush(); - // copy old URL fields ot language specific entries - modify_database("","update [prefix_surveys_languagesettings] set [surveyls_url]=(select [url] from [prefix_surveys] where [sid]=[prefix_surveys_languagesettings].[surveyls_survey_id])"); echo $modifyoutput; flush();ob_flush(); - // drop old URL field - mssql_drop_constraint('url','surveys'); - modify_database("","ALTER TABLE [prefix_surveys] DROP COLUMN [url]"); echo $modifyoutput; flush();ob_flush(); - - modify_database("","update [prefix_settings_global] set [stg_value]='133' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 134) - { - // Add new assessment setting - modify_database("","ALTER TABLE [prefix_surveys] ADD [usetokens] char(1) NOT NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('attribute1','surveys'); - mssql_drop_constraint('attribute2','surveys'); - modify_database("", "ALTER TABLE [prefix_surveys] ADD [attributedescriptions] TEXT;"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] DROP COLUMN [attribute1]"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] DROP COLUMN [attribute2]"); echo $modifyoutput; flush();ob_flush(); - upgrade_token_tables134(); - modify_database("","update [prefix_settings_global] set [stg_value]='134' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 135) - { - mssql_drop_constraint('value','question_attributes'); - modify_database("","ALTER TABLE [prefix_question_attributes] ALTER COLUMN [value] text"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_answers] ALTER COLUMN [answer] varchar(8000)"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='135' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 136) //New quota functions - { - modify_database("", "ALTER TABLE[prefix_quota] ADD [autoload_url] int NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_quota_languagesettings] ( - [quotals_id] int NOT NULL IDENTITY (1,1), - [quotals_quota_id] int, - [quotals_language] varchar(45) NOT NULL default 'en', - [quotals_name] varchar(255), - [quotals_message] text, - [quotals_url] varchar(255), - [quotals_urldescrip] varchar(255), - PRIMARY KEY ([quotals_id]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='136' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 137) //New date format specs - { - modify_database("", "ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_dateformat] int NOT NULL default '1'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_users] ADD [dateformat] int NOT NULL default '1'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "update [prefix_surveys] set startdate=null where usestartdate='N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "update [prefix_surveys] set expires=null where useexpiry='N'"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('usestartdate','surveys'); - mssql_drop_constraint('useexpiry','surveys'); - modify_database("", "ALTER TABLE [prefix_surveys] DROP COLUMN usestartdate"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] DROP COLUMN useexpiry"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='137' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 138) //Modify quota field - { - modify_database("", "ALTER TABLE [prefix_quota_members] ALTER COLUMN [code] VARCHAR(11) NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='138' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 139) //Modify quota field - { - upgrade_survey_tables139(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='139' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 140) //Modify surveys table - { - modify_database("", "ALTER TABLE [prefix_surveys] ADD [emailresponseto] text"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='140' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 141) //Modify surveys table - { - modify_database("", "ALTER TABLE [prefix_surveys] ADD [tokenlength] tinyint NOT NULL default '15'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='141' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 142) //Modify surveys table - { - upgrade_question_attributes142(); - modify_database("", "ALTER TABLE [prefix_surveys] ALTER COLUMN [startdate] datetime NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ALTER COLUMN [expires] datetime NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_question_attributes] SET [value]='0' WHERE cast([value] as varchar)='false'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_question_attributes] SET [value]='1' WHERE cast([value] as varchar)='true'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='142' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 143) //Modify surveys table - { - modify_database("", "ALTER TABLE [prefix_questions] ADD parent_qid integer NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_answers] ADD scale_id tinyint NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_questions] ADD scale_id tinyint NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_questions] ADD same_default tinyint NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_primary_index('answers'); - modify_database("","ALTER TABLE [prefix_answers] ADD CONSTRAINT pk_answers_qcls PRIMARY KEY ([qid],[code],[language],[scale_id])"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "CREATE TABLE [prefix_defaultvalues] ( - [qid] integer NOT NULL default '0', - [scale_id] tinyint NOT NULL default '0', - [sqid] integer NOT NULL default '0', - [language] varchar(20) NOT NULL, - [specialtype] varchar(20) NOT NULL default '', - [defaultvalue] text, - CONSTRAINT pk_defaultvalues_qlss PRIMARY KEY ([qid] , [scale_id], [language], [specialtype], [sqid]))"); echo $modifyoutput; flush();ob_flush(); - - // -Move all 'answers' that are subquestions to the questions table - // -Move all 'labels' that are answers to the answers table - // -Transscribe the default values where applicable - // -Move default values from answers to questions - upgrade_tables143(); - - mssql_drop_constraint('default_value','answers'); - modify_database("", "ALTER TABLE [prefix_answers] DROP COLUMN [default_value]"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('lid','questions'); - modify_database("", "ALTER TABLE [prefix_questions] DROP COLUMN lid"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('lid1','questions'); - modify_database("", "ALTER TABLE [prefix_questions] DROP COLUMN lid1"); echo $modifyoutput; flush();ob_flush(); - // add field for timings and table for extended conditions - modify_database("", "ALTER TABLE [prefix_surveys] ADD savetimings char(1) default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "CREATE TABLE prefix_sessions( - sesskey VARCHAR( 64 ) NOT NULL DEFAULT '', - expiry DATETIME NOT NULL , - expireref VARCHAR( 250 ) DEFAULT '', - created DATETIME NOT NULL , - modified DATETIME NOT NULL , - sessdata text, - CONSTRAINT pk_sessions_sesskey PRIMARY KEY ( [sesskey] ))"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "create index [idx_expiry] on [prefix_sessions] ([expiry])"); echo $modifyoutput; - modify_database("", "create index [idx_expireref] on [prefix_sessions] ([expireref])"); echo $modifyoutput; - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='143' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - - - - - - - } - - if ($oldversion < 145) //Modify surveys table - { - modify_database("", "ALTER TABLE [prefix_surveys] ADD showxquestions CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD showgroupinfo CHAR(1) NULL default 'B'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD shownoanswer CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD showqnumcode CHAR(1) NULL default 'X'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bouncetime BIGINT NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceprocessing VARCHAR(1) NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceaccounttype VARCHAR(4) NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceaccounthost VARCHAR(200) NULL "); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceaccountpass VARCHAR(100) NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceaccountencryption VARCHAR(3) NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceaccountuser VARCHAR(200) NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD showwelcome CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD showprogress CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD allowjumps CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD navigationdelay tinyint NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD nokeyboard CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD alloweditaftercompletion CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "CREATE TABLE [prefix_survey_permissions] ( - [sid] INT NOT NULL, - [uid] INT NOT NULL, - [permission] VARCHAR(20) NOT NULL, - [create_p] TINYINT NOT NULL default '0', - [read_p] TINYINT NOT NULL default '0', - [update_p] TINYINT NOT NULL default '0', - [delete_p] TINYINT NOT NULL default '0', - [import_p] TINYINT NOT NULL default '0', - [export_p] TINYINT NOT NULL default '0', - PRIMARY KEY ([sid], [uid],[permission]) - );"); echo $modifyoutput; flush();ob_flush(); - upgrade_surveypermissions_table145(); - modify_database("", "DROP TABLE [prefix_surveys_rights]"); echo $modifyoutput; flush();ob_flush(); - - // Add new fields for email templates - modify_database("", "ALTER TABLE prefix_surveys_languagesettings ADD - email_admin_notification_subj VARCHAR(255) NULL, - email_admin_notification TEXT NULL, - email_admin_responses_subj VARCHAR(255) NULL, - email_admin_responses TEXT NULL"); - - //Add index to questions table to speed up subquestions - modify_database("", "create index [parent_qid_idx] on [prefix_questions] ([parent_qid])"); echo $modifyoutput; flush();ob_flush(); - - modify_database("", "ALTER TABLE prefix_surveys ADD emailnotificationto text DEFAULT NULL"); echo $modifyoutput; flush();ob_flush(); - upgrade_survey_table145(); - mssql_drop_constraint('notification','surveys'); - modify_database("", "ALTER TABLE [prefix_surveys] DROP COLUMN [notification]"); echo $modifyoutput; flush();ob_flush(); - - // modify length of method in conditions - modify_database("","ALTER TABLE [prefix_conditions] ALTER COLUMN [method] CHAR( 5 ) NOT NULL"); echo $modifyoutput; flush();ob_flush(); - - //Add index to questions table to speed up subquestions - modify_database("", "create index [parent_qid] on [prefix_questions] ([parent_qid])"); echo $modifyoutput; flush();ob_flush(); - - modify_database("","UPDATE prefix_surveys set [private]='N' where [private] is NULL;"); echo $modifyoutput; flush();ob_flush(); - - modify_database("","EXEC sp_rename 'prefix_surveys.private','anonymized'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ALTER COLUMN [anonymized] char(1) NOT NULL;"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('anonymized','surveys'); - modify_database("","ALTER TABLE [prefix_surveys] ADD CONSTRAINT DF_surveys_anonymized DEFAULT 'N' FOR [anonymized];"); echo $modifyoutput; flush();ob_flush(); - - modify_database("", "CREATE TABLE [prefix_failed_login_attempts] ( - [id] INT NOT NULL IDENTITY (1,1) PRIMARY KEY, - [ip] varchar(37) NOT NULL, - [last_attempt] varchar(20) NOT NULL, - [number_attempts] int NOT NULL );"); echo $modifyoutput; flush();ob_flush(); - - modify_database("", "ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_numberformat] INT default 0 NOT NULL"); echo $modifyoutput; flush();ob_flush(); - - upgrade_token_tables145(); - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='145' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - - - } - if ($oldversion < 146) //Modify surveys table - { - upgrade_timing_tables146(); - modify_database("", "INSERT into [prefix_survey_permissions] (sid,uid,permission,read_p,update_p) SELECT sid,owner_id,'translations','1','1' from [prefix_surveys]"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='146' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 147) - { - modify_database("", "ALTER TABLE [prefix_users] ADD templateeditormode VARCHAR(7) NOT NULL default 'default'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_users] ADD questionselectormode VARCHAR(7) NOT NULL default 'default'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='147' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 148) - { - modify_database("","CREATE TABLE [prefix_participants] ( - [participant_id] varchar(50) NOT NULL, - [firstname] varchar(40) NOT NULL, - [lastname] varchar(40) NOT NULL, - [email] varchar(80) NOT NULL, - [language] varchar(2) NOT NULL, - [blacklisted] varchar(1) NOT NULL, - [owner_uid] integer NOT NULL, - PRIMARY KEY ([participant_id]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_participant_attribute] ( - [participant_id] varchar(50) NOT NULL, - [attribute_id] integer NOT NULL, - [value] varchar(50) NOT NULL, - PRIMARY KEY ([participant_id],[attribute_id]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_participant_attribute_names] ( - [attribute_id] integer NOT NULL IDENTITY (1,1), - [attribute_type] varchar(4) NOT NULL, - [visible] char(5) NOT NULL, - PRIMARY KEY ([attribute_id],[attribute_type]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_participant_attribute_names_lang] ( - [attribute_id] integer NOT NULL, - [attribute_name] varchar(30) NOT NULL, - [lang] varchar(20) NOT NULL, - PRIMARY KEY ([attribute_id],[lang]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_participant_attribute_values] ( - [attribute_id] integer NOT NULL, - [value_id] integer NOT NULL IDENTITY (1,1), - [value] varchar(20) NOT NULL, - PRIMARY KEY ([value_id]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_participant_shares] ( - [participant_id] varchar(50) NOT NULL, - [share_uid] integer NOT NULL, - [date_added] datetime, - [can_edit] text NOT NULL, - PRIMARY KEY ([participant_id],[share_uid]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_survey_links] ( - [participant_id] varchar(50) NOT NULL, - [token_id] integer NOT NULL, - [survey_id] integer NOT NULL, - [date_created] datetime, - PRIMARY KEY ([participant_id],[token_id],[survey_id]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_users] ADD [participant_panel] int NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - - // Add language field to question_attributes table - modify_database("","ALTER TABLE [prefix_question_attributes] ADD [language] varchar(20)"); echo $modifyoutput; flush();ob_flush(); - upgrade_question_attributes148(); - fixSubquestions(); - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='148' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 150) - { - modify_database("","ALTER TABLE [prefix_questions] ADD [relevance] varchar(max);"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='150' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 151) - { - modify_database("","ALTER TABLE [prefix_groups] ADD [randomization_group] VARCHAR(20) NOT NULL DEFAULT '';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='151' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 152) - { - modify_database("","CREATE INDEX [question_attributes_idx3] ON [prefix_question_attributes] ([attribute]);"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='152' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 153) - { - modify_database("","CREATE TABLE [prefix_expression_errors] ( - [id] integer NOT NULL IDENTITY (1,1), - [errortime] varchar(50) DEFAULT NULL, - [sid] integer DEFAULT NULL, - [gid] integer DEFAULT NULL, - [qid] integer DEFAULT NULL, - [gseq] integer DEFAULT NULL, - [qseq] integer DEFAULT NULL, - [type] varchar(50) , - [eqn] text, - [prettyprint] text, - PRIMARY KEY ([id]) - );"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='153' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 154) - { - modify_database("","ALTER TABLE [prefix_groups] ADD [grelevance] text DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='154' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 155) - { - modify_database("","ALTER TABLE [prefix_surveys] ADD [googleanalyticsstyle] char(1) DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ADD [googleanalyticsapikey] varchar(25) DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","EXEC sp_rename 'prefix_surveys.showXquestions','showxquestions'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='155' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 155.6) - { - LimeExpressionManager::UpgradeConditionsToRelevance(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='155.6' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - echo '

    '.sprintf($clang->gT('Database update finished (%s)'),date('Y-m-d H:i:s')).'
    '; - return true; -} - -function upgrade_survey_tables117() -{ - global $modifyoutput; - $surveyidquery = "SELECT sid FROM ".db_table_name('surveys')." WHERE active='Y' and datestamp='Y'"; - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".db_table_name('survey_'.$sv[0])." ADD [startdate] datetime"); echo $modifyoutput; flush();ob_flush(); - } - } -} - - -function upgrade_survey_tables118() -{ - global $connect,$modifyoutput,$dbprefix; - $tokentables=$connect->MetaTables('TABLES',false,$dbprefix."tokens%"); - foreach ($tokentables as $sv) - { - modify_database("","ALTER TABLE ".$sv." ALTER COLUMN [token] VARCHAR(36)"); echo $modifyoutput; flush();ob_flush(); - } -} - - -function upgrade_token_tables125() -{ - global $connect,$modifyoutput,$dbprefix; - $tokentables=$connect->MetaTables('TABLES',false,$dbprefix."tokens%"); - foreach ($tokentables as $sv) - { - modify_database("","ALTER TABLE ".$sv." ADD [emailstatus] VARCHAR(300) DEFAULT 'OK'"); echo $modifyoutput; flush();ob_flush(); - } -} - - -function upgrade_token_tables128() -{ - global $connect,$modifyoutput,$dbprefix; - $tokentables=$connect->MetaTables('TABLES',false,$dbprefix."tokens%"); - foreach ($tokentables as $sv) - { - modify_database("","ALTER TABLE ".$sv." ADD [remindersent] VARCHAR(17) DEFAULT 'OK'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE ".$sv." ADD [remindercount] int DEFAULT '0'"); echo $modifyoutput; flush();ob_flush(); - } -} - - -function fixLanguageConsistencyAllSurveys() -{ - global $dbprefix, $connect, $modifyoutput; - $surveyidquery = "SELECT sid,additional_languages FROM ".db_table_name('surveys'); - $surveyidresult = db_execute_num($surveyidquery); - while ( $sv = $surveyidresult->FetchRow() ) - { - FixLanguageConsistency($sv[0],$sv[1]); - } -} - - -function upgrade_token_tables134() -{ - global $connect,$modifyoutput,$dbprefix; - $tokentables=$connect->MetaTables('TABLES',false,$dbprefix."tokens%"); - foreach ($tokentables as $sv) - { - modify_database("","ALTER TABLE ".$sv." ADD [validfrom] DATETIME"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE ".$sv." ADD [validuntil] DATETIME"); echo $modifyoutput; flush();ob_flush(); - } -} - -// Add the usesleft field to all existing token tables -function upgrade_token_tables145() -{ - global $modifyoutput, $dbprefix, $connect; - $surveyidquery = db_select_tables_like($dbprefix."tokens%"); - $surveyidresult = db_execute_num($surveyidquery); - $tokentables=$connect->MetaTables('TABLES',false, $dbprefix."tokens%"); - foreach ($tokentables as $sv) { - modify_database("","ALTER TABLE ".$sv." ADD [usesleft] int NOT NULL DEFAULT '1'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","UPDATE ".$sv." SET usesleft=0 WHERE completed<>'N'"); echo $modifyoutput; flush();ob_flush(); - } -} - - -function mssql_drop_primary_index($tablename) -{ - global $dbprefix, $connect, $modifyoutput; - // find out the constraint name of the old primary key - $pkquery = "SELECT CONSTRAINT_NAME " - ."FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS " - ."WHERE (TABLE_NAME = '{$dbprefix}{$tablename}') AND (CONSTRAINT_TYPE = 'PRIMARY KEY')"; - - $primarykey=$connect->GetOne($pkquery); - if ($primarykey!=false) - { - modify_database("","ALTER TABLE [prefix_{$tablename}] DROP CONSTRAINT {$primarykey}"); echo $modifyoutput; flush();ob_flush(); - } -} - - -function mssql_drop_constraint($fieldname, $tablename) -{ - global $dbprefix, $connect, $modifyoutput; - $connect->SetFetchMode(ADODB_FETCH_ASSOC); - - // find out the name of the default constraint - // Did I already mention that this is the most suckiest thing I have ever seen in MSSQL database? - $dfquery ="SELECT c_obj.name AS constraint_name - FROM sys.sysobjects AS c_obj INNER JOIN - sys.sysobjects AS t_obj ON c_obj.parent_obj = t_obj.id INNER JOIN - sys.sysconstraints AS con ON c_obj.id = con.constid INNER JOIN - sys.syscolumns AS col ON t_obj.id = col.id AND con.colid = col.colid - WHERE (c_obj.xtype = 'D') AND (col.name = '$fieldname') AND (t_obj.name='$dbprefix$tablename')"; - $defaultname=$connect->GetRow($dfquery); - if ($defaultname!=false) - { - modify_database("","ALTER TABLE [prefix_$tablename] DROP CONSTRAINT {$defaultname['constraint_name']}"); echo $modifyoutput; flush();ob_flush(); - } - - -} - -function upgrade_survey_tables139() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = db_select_tables_like($dbprefix."survey\_%"); - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".$sv[0]." ADD [lastpage] int"); echo $modifyoutput; flush();ob_flush(); - } - } -} - -function upgrade_question_attributes142() -{ - global $modifyoutput,$dbprefix, $connect; - $attributequery="Select qid from {$dbprefix}question_attributes where attribute='exclude_all_other' group by qid having count(qid)>1 "; - $questionids = db_select_column($attributequery); - foreach ($questionids as $questionid) - { - //Select all affected question attributes - $attributevalues=db_select_column("SELECT value from {$dbprefix}question_attributes where attribute='exclude_all_other' and qid=".$questionid); - modify_database("","delete from {$dbprefix}question_attributes where attribute='exclude_all_other' and qid=".$questionid); echo $modifyoutput; flush();ob_flush(); - $record['value']=implode(';',$attributevalues); - $record['attribute']='exclude_all_other'; - $record['qid']=$questionid; - $connect->AutoExecute("{$dbprefix}question_attributes", $record, 'INSERT'); - } -} - -function upgrade_tables143() -{ - global $modifyoutput,$dbprefix, $connect; - - - $aQIDReplacements=array(); - $answerquery = "select a.*, q.sid, q.gid from {$dbprefix}answers a,{$dbprefix}questions q where a.qid=q.qid and q.type in ('L','O','!') and a.default_value='Y'"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) {return "Database Error";} - else - { - while ( $row = $answerresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}defaultvalues (qid, scale_id,language,specialtype,defaultvalue) VALUES ({$row['qid']},0,".db_quoteall($row['language']).",'',".db_quoteall($row['code']).")"); echo $modifyoutput; flush();ob_flush(); - } - } - - // Convert answers to subquestions - - $answerquery = "select a.*, q.sid, q.gid, q.type from {$dbprefix}answers a,{$dbprefix}questions q where a.qid=q.qid and a.language=q.language and q.type in ('1','A','B','C','E','F','H','K',';',':','M','P','Q')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) {return "Database Error";} - else - { - while ( $row = $answerresult->FetchRow() ) - { - - $insertarray=array(); - if (isset($aQIDReplacements[$row['qid'].'_'.$row['code']])) - { - $insertarray['qid']=$aQIDReplacements[$row['qid'].'_'.$row['code']]; - db_switchIDInsert('questions',true); - } - $insertarray['sid']=$row['sid']; - $insertarray['gid']=$row['gid']; - $insertarray['parent_qid']=$row['qid']; - $insertarray['type']=$row['type']; - $insertarray['title']=$row['code']; - $insertarray['question']=$row['answer']; - $insertarray['question_order']=$row['sortorder']; - $insertarray['language']=$row['language']; - $tablename="{$dbprefix}questions"; - $query=$connect->GetInsertSQL($tablename,$insertarray); - modify_database("",$query); echo $modifyoutput; flush();ob_flush(); - if (!isset($insertarray['qid'])) - { - $aQIDReplacements[$row['qid'].'_'.$row['code']]=$connect->Insert_ID("{$dbprefix}questions","qid"); - $iSaveSQID=$aQIDReplacements[$row['qid'].'_'.$row['code']]; - } - else - { - $iSaveSQID=$insertarray['qid']; - db_switchIDInsert('questions',false); - } - if (($row['type']=='M' || $row['type']=='P') && $row['default_value']=='Y') - { - modify_database("","INSERT INTO {$dbprefix}defaultvalues (qid, sqid, scale_id,language,specialtype,defaultvalue) VALUES ({$row['qid']},{$iSaveSQID},0,".db_quoteall($row['language']).",'','Y')"); echo $modifyoutput; flush();ob_flush(); - } - } - } - modify_database("","delete {$dbprefix}answers from {$dbprefix}answers LEFT join {$dbprefix}questions ON {$dbprefix}answers.qid={$dbprefix}questions.qid where {$dbprefix}questions.type in ('1','F','H','M','P','W','Z')"); echo $modifyoutput; flush();ob_flush(); - - // Convert labels to answers - $answerquery = "select qid ,type ,lid ,lid1, language from {$dbprefix}questions where parent_qid=0 and type in ('1','F','H','M','P','W','Z')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) - { - return "Database Error"; - } - else - { - while ( $row = $answerresult->FetchRow() ) - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}answers (qid, code, answer, sortorder, language, assessment_value) VALUES ({$row['qid']},".db_quoteall($lrow['code']).",".db_quoteall($lrow['title']).",{$lrow['sortorder']},".db_quoteall($lrow['language']).",{$lrow['assessment_value']})"); echo $modifyoutput; flush();ob_flush(); - //$labelids[] - } - if ($row['type']=='1') - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid1']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}answers (qid, code, answer, sortorder, language, scale_id, assessment_value) VALUES ({$row['qid']},".db_quoteall($lrow['code']).",".db_quoteall($lrow['title']).",{$lrow['sortorder']},".db_quoteall($lrow['language']).",1,{$lrow['assessment_value']})"); echo $modifyoutput; flush();ob_flush(); - } - } - } - } - - // Convert labels to subquestions - $answerquery = "select * from {$dbprefix}questions where parent_qid=0 and type in (';',':')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) - { - return "Database Error"; - } - else - { - while ( $row = $answerresult->FetchRow() ) - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - $insertarray=array(); - if (isset($aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1'])) - { - $insertarray['qid']=$aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1']; - db_switchIDInsert('questions',true); - - } - $insertarray['sid']=$row['sid']; - $insertarray['gid']=$row['gid']; - $insertarray['type']=$row['type']; - $insertarray['parent_qid']=$row['qid']; - $insertarray['title']=$lrow['code']; - $insertarray['question']=$lrow['title']; - $insertarray['question_order']=$lrow['sortorder']; - $insertarray['language']=$lrow['language']; - $insertarray['scale_id']=1; - $tablename="{$dbprefix}questions"; - $query=$connect->GetInsertSQL($tablename,$insertarray); - modify_database("",$query); echo $modifyoutput; flush();ob_flush(); - if (isset($insertarray['qid'])) - { - $aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1']=$connect->Insert_ID("{$dbprefix}questions","qid"); - db_switchIDInsert('questions',false); - - } - } - } - } - - - $updatequery = "update {$dbprefix}questions set type='!' where type='W'"; - modify_database("",$updatequery); echo $modifyoutput; flush();ob_flush(); - $updatequery = "update {$dbprefix}questions set type='L' where type='Z'"; - modify_database("",$updatequery); echo $modifyoutput; flush();ob_flush(); - - // Now move all non-standard templates to the /upload dir - global $usertemplaterootdir, $standardtemplates,$standardtemplaterootdir; - - if (!$usertemplaterootdir) {die("gettemplatelist() no template directory");} - if ($handle = opendir($standardtemplaterootdir)) - { - while (false !== ($file = readdir($handle))) - { - if (!is_file("$standardtemplaterootdir/$file") && $file != "." && $file != ".." && $file!=".svn" && !isStandardTemplate($file)) - { - if (!rename($standardtemplaterootdir.DIRECTORY_SEPARATOR.$file,$usertemplaterootdir.DIRECTORY_SEPARATOR.$file)) - { - echo "There was a problem moving directory '".$standardtemplaterootdir.DIRECTORY_SEPARATOR.$file."' to '".$usertemplaterootdir.DIRECTORY_SEPARATOR.$file."' due to missing permissions. Please do this manually.
    "; - }; - } - } - closedir($handle); - } - -} - -function upgrade_timing_tables146() -{ - global $modifyoutput,$dbprefix, $connect; - $aTimingTables=$connect->MetaTables('TABLES',false, "%timings"); - foreach ($aTimingTables as $sTable) { - modify_database("","EXEC sp_rename '{$sTable}.interviewTime','interviewtime'"); echo $modifyoutput; flush(); ob_flush(); - } -} diff --git a/include/limesurvey/admin/update/upgrade-mssqlnative.php b/include/limesurvey/admin/update/upgrade-mssqlnative.php deleted file mode 100644 index e18676d5..00000000 --- a/include/limesurvey/admin/update/upgrade-mssqlnative.php +++ /dev/null @@ -1,929 +0,0 @@ -'german-informal', - 'cns'=>'cn-Hans', - 'cnt'=>'cn-Hant', - 'pt_br'=>'pt-BR', - 'gr'=>'el', - 'jp'=>'ja', - 'si'=>'sl', - 'se'=>'sv', - 'vn'=>'vi'); - - foreach ($oldnewlanguages as $oldlang=>$newlang) - { - modify_database("","update [prefix_answers] set [language]='$newlang' where language='$oldlang'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_questions] set [language]='$newlang' where language='$oldlang'");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_groups] set [language]='$newlang' where language='$oldlang'");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_labels] set [language]='$newlang' where language='$oldlang'");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_surveys] set [language]='$newlang' where language='$oldlang'");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_surveys_languagesettings] set [surveyls_language]='$newlang' where surveyls_language='$oldlang'");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_users] set [lang]='$newlang where lang='$oldlang'");echo $modifyoutput; flush();ob_flush(); - } - - - - $resultdata=db_execute_assoc("select * from ".db_table_name("labelsets")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['languages']; - $toreplace=str_replace('german_informal','german-informal',$toreplace); - $toreplace=str_replace('cns','cn-Hans',$toreplace); - $toreplace=str_replace('cnt','cn-Hant',$toreplace); - $toreplace=str_replace('pt_br','pt-BR',$toreplace); - $toreplace=str_replace('gr','el',$toreplace); - $toreplace=str_replace('jp','ja',$toreplace); - $toreplace=str_replace('si','sl',$toreplace); - $toreplace=str_replace('se','sv',$toreplace); - $toreplace=str_replace('vn','vi',$toreplace); - modify_database("","update [prefix_labelsets] set [languages`='$toreplace' where lid=".$datarow['lid']);echo $modifyoutput;flush();ob_flush(); - } - - - $resultdata=db_execute_assoc("select * from ".db_table_name("surveys")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['additional_languages']; - $toreplace=str_replace('german_informal','german-informal',$toreplace); - $toreplace=str_replace('cns','cn-Hans',$toreplace); - $toreplace=str_replace('cnt','cn-Hant',$toreplace); - $toreplace=str_replace('pt_br','pt-BR',$toreplace); - $toreplace=str_replace('gr','el',$toreplace); - $toreplace=str_replace('jp','ja',$toreplace); - $toreplace=str_replace('si','sl',$toreplace); - $toreplace=str_replace('se','sv',$toreplace); - $toreplace=str_replace('vn','vi',$toreplace); - modify_database("","update [prefix_surveys] set [additional_languages`='$toreplace' where sid=".$datarow['sid']);echo $modifyoutput;flush();ob_flush(); - } - modify_database("","update [prefix_settings_global] set [stg_value]='111' where stg_name='DBVersion'"); echo $modifyoutput; - - } - - if ($oldversion < 112) { - //The size of the users_name field is now 64 char (20 char before version 112) - modify_database("","ALTER TABLE [prefix_users] ALTER COLUMN [users_name] VARCHAR( 64 ) NOT NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='112' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 113) { - //No action needed - modify_database("","update [prefix_settings_global] set [stg_value]='113' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 114) { - modify_database("","ALTER TABLE [prefix_saved_control] ALTER COLUMN [email] VARCHAR(320) NOT NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ALTER COLUMN [adminemail] VARCHAR(320) NOT NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_users] ALTER COLUMN [email] VARCHAR(320) NOT NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("",'INSERT INTO [prefix_settings_global] VALUES (\'SessionName\', \'$sessionname\');');echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='114' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 126) { - modify_database("","ALTER TABLE [prefix_surveys] ADD [printanswers] CHAR(1) DEFAULT 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ADD [listpublic] CHAR(1) DEFAULT 'N'"); echo $modifyoutput; flush();ob_flush(); - upgrade_survey_tables117(); - upgrade_survey_tables118(); - //119 - modify_database("","CREATE TABLE [prefix_quota] ( - [id] int NOT NULL IDENTITY (1,1), - [sid] int, - [name] varchar(255) , - [qlimit] int , - [action] int , - [active] int NOT NULL default '1', - PRIMARY KEY ([id]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_quota_members] ( - [id] int NOT NULL IDENTITY (1,1), - [sid] int , - [qid] int , - [quota_id] int , - [code] varchar(5) , - PRIMARY KEY ([id]) - );");echo $modifyoutput; flush();ob_flush(); - - // Rename Norwegian language code from NO to NB - $oldnewlanguages=array('no'=>'nb'); - foreach ($oldnewlanguages as $oldlang=>$newlang) - { - modify_database("","update [prefix_answers] set [language]='$newlang' where [language]='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_questions] set [language]='$newlang' where [language]='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_groups] set [language]='$newlang' where [language]='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_labels] set [language]='$newlang' where [language]='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_surveys] set [language]='$newlang' where [language]='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_surveys_languagesettings] set [surveyls_language]='$newlang' where surveyls_language='$oldlang'");echo $modifyoutput;flush();ob_flush(); - modify_database("","update [prefix_users] set [lang]='$newlang' where lang='$oldlang'");echo $modifyoutput;flush();ob_flush(); - } - - $resultdata=db_execute_assoc("select * from ".db_table_name("labelsets")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['languages']; - $toreplace2=str_replace('no','nb',$toreplace); - if ($toreplace2!=$toreplace) {modify_database("","update [prefix_labelsets] set [languages]='$toreplace' where lid=".$datarow['lid']);echo $modifyoutput;flush();ob_flush();} - } - - $resultdata=db_execute_assoc("select * from ".db_table_name("surveys")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['additional_languages']; - $toreplace2=str_replace('no','nb',$toreplace); - if ($toreplace2!=$toreplace) {modify_database("","update [prefix_surveys] set [additional_languages]='$toreplace' where sid=".$datarow['sid']);echo $modifyoutput;flush();ob_flush();} - } - - modify_database("","ALTER TABLE [prefix_surveys] ADD [htmlemail] CHAR(1) DEFAULT 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ADD [usecaptcha] CHAR(1) DEFAULT 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ADD [tokenanswerspersistence] CHAR(1) DEFAULT 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_users] ADD [htmleditormode] CHAR(7) DEFAULT 'default'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_templates_rights] ( - [uid] int NOT NULL, - [folder] varchar(255) NOT NULL, - [use] int NOT NULL, - PRIMARY KEY ([uid],[folder]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_templates] ( - [folder] varchar(255) NOT NULL, - [creator] int NOT NULL, - PRIMARY KEY ([folder]) - );");echo $modifyoutput; flush();ob_flush(); - //123 - modify_database("","ALTER TABLE [prefix_conditions] ALTER COLUMN [value] VARCHAR(255)"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('title','labels'); - modify_database("","ALTER TABLE [prefix_labels] ALTER COLUMN [title] varchar(4000)"); echo $modifyoutput; flush();ob_flush(); - //124 - modify_database("","ALTER TABLE [prefix_surveys] ADD [bounce_email] varchar(max)"); echo $modifyoutput; flush();ob_flush(); - //125 - upgrade_token_tables125(); - modify_database("","EXEC sp_rename 'prefix_users.move_user','superadmin'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","UPDATE [prefix_users] SET [superadmin]=1 where ([create_survey]=1 AND [create_user]=1 AND [delete_user]=1 AND [configurator]=1)"); echo $modifyoutput; flush();ob_flush(); - //126 - modify_database("","ALTER TABLE [prefix_questions] ADD [lid1] int NOT NULL DEFAULT '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","UPDATE [prefix_conditions] SET [method]='==' where ( [method] is null) or [method]='' or [method]='0'"); echo $modifyoutput; flush();ob_flush(); - - modify_database("","update [prefix_settings_global] set [stg_value]='126' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 127) { - modify_database("","create index [answers_idx2] on [prefix_answers] ([sortorder])"); echo $modifyoutput; - modify_database("","create index [assessments_idx2] on [prefix_assessments] ([sid])"); echo $modifyoutput; - modify_database("","create index [assessments_idx3] on [prefix_assessments] ([gid])"); echo $modifyoutput; - modify_database("","create index [conditions_idx2] on [prefix_conditions] ([qid])"); echo $modifyoutput; - modify_database("","create index [conditions_idx3] on [prefix_conditions] ([cqid])"); echo $modifyoutput; - modify_database("","create index [groups_idx2] on [prefix_groups] ([sid])"); echo $modifyoutput; - modify_database("","create index [question_attributes_idx2] on [prefix_question_attributes] ([qid])"); echo $modifyoutput; - modify_database("","create index [questions_idx2] on [prefix_questions] ([sid])"); echo $modifyoutput; - modify_database("","create index [questions_idx3] on [prefix_questions] ([gid])"); echo $modifyoutput; - modify_database("","create index [questions_idx4] on [prefix_questions] ([type])"); echo $modifyoutput; - modify_database("","create index [quota_idx2] on [prefix_quota] ([sid])"); echo $modifyoutput; - modify_database("","create index [saved_control_idx2] on [prefix_saved_control] ([sid])"); echo $modifyoutput; - modify_database("","create index [user_in_groups_idx1] on [prefix_user_in_groups] ([ugid], [uid])"); echo $modifyoutput; - modify_database("","update [prefix_settings_global] set [stg_value]='127' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 128) { - upgrade_token_tables128(); - modify_database("","update [prefix_settings_global] set [stg_value]='128' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 129) { - //128 - modify_database("","ALTER TABLE [prefix_surveys] ADD [startdate] DATETIME"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ADD [usestartdate] char(1) NOT NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='129' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 130) - { - modify_database("","ALTER TABLE [prefix_conditions] ADD [scenario] int NOT NULL DEFAULT '1'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","UPDATE [prefix_conditions] SET [scenario]=1 where ( [scenario] is null) or [scenario]='' or [scenario]=0"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='130' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 131) - { - modify_database("","ALTER TABLE [prefix_surveys] ADD [publicstatistics] char(1) NOT NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='131' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 132) - { - modify_database("","ALTER TABLE [prefix_surveys] ADD [publicgraphs] char(1) NOT NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='132' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 133) - { - modify_database("","ALTER TABLE [prefix_users] ADD [one_time_pw] varchar(max)"); echo $modifyoutput; flush();ob_flush(); - // Add new assessment setting - modify_database("","ALTER TABLE [prefix_surveys] ADD [assessments] char(1) NOT NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - // add new assessment value fields to answers & labels - modify_database("","ALTER TABLE [prefix_answers] ADD [assessment_value] int NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_labels] ADD [assessment_value] int NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - // copy any valid codes from code field to assessment field - modify_database("","update [prefix_answers] set [assessment_value]=CAST([code] as int)");// no output here is intended - modify_database("","update [prefix_labels] set [assessment_value]=CAST([code] as int)");// no output here is intended - // activate assessment where assessment rules exist - modify_database("","update [prefix_surveys] set [assessments]='Y' where [sid] in (SELECT [sid] FROM [prefix_assessments] group by [sid])"); echo $modifyoutput; flush();ob_flush(); - // add language field to assessment table - modify_database("","ALTER TABLE [prefix_assessments] ADD [language] varchar(20) NOT NULL default 'en'"); echo $modifyoutput; flush();ob_flush(); - // update language field with default language of that particular survey - modify_database("","update [prefix_assessments] set [language]=(select [language] from [prefix_surveys] where [sid]=[prefix_assessments].[sid])"); echo $modifyoutput; flush();ob_flush(); - // copy assessment link to message since from now on we will have HTML assignment messages - modify_database("","update [prefix_assessments] set [message]=cast([message] as varchar) +'
    '+[link]+''"); echo $modifyoutput; flush();ob_flush(); - // drop the old link field - modify_database("","ALTER TABLE [prefix_assessments] DROP COLUMN [link]"); echo $modifyoutput; flush();ob_flush(); - // change the primary index to include language - mssql_drop_primary_index('assessments'); - // add the new primary key - modify_database("","ALTER TABLE [prefix_assessments] ADD CONSTRAINT pk_assessments_id_lang PRIMARY KEY ([id],[language])"); echo $modifyoutput; flush();ob_flush(); - - // Add new fields to survey language settings - modify_database("","ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_url] varchar(255)"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_endtext] varchar(max)"); echo $modifyoutput; flush();ob_flush(); - // copy old URL fields ot language specific entries - modify_database("","update [prefix_surveys_languagesettings] set [surveyls_url]=(select [url] from [prefix_surveys] where [sid]=[prefix_surveys_languagesettings].[surveyls_survey_id])"); echo $modifyoutput; flush();ob_flush(); - // drop old URL field - mssql_drop_constraint('url','surveys'); - modify_database("","ALTER TABLE [prefix_surveys] DROP COLUMN [url]"); echo $modifyoutput; flush();ob_flush(); - - modify_database("","update [prefix_settings_global] set [stg_value]='133' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 134) - { - // Add new assessment setting - modify_database("","ALTER TABLE [prefix_surveys] ADD [usetokens] char(1) NOT NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('attribute1','surveys'); - mssql_drop_constraint('attribute2','surveys'); - modify_database("", "ALTER TABLE [prefix_surveys] ADD [attributedescriptions] varchar(max);"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] DROP COLUMN [attribute1]"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] DROP COLUMN [attribute2]"); echo $modifyoutput; flush();ob_flush(); - upgrade_token_tables134(); - modify_database("","update [prefix_settings_global] set [stg_value]='134' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 135) - { - mssql_drop_constraint('value','question_attributes'); - modify_database("","ALTER TABLE [prefix_question_attributes] ALTER COLUMN [value] varchar(max)"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_answers] ALTER COLUMN [answer] varchar(8000)"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='135' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 136) //New quota functions - { - modify_database("", "ALTER TABLE[prefix_quota] ADD [autoload_url] int NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_quota_languagesettings] ( - [quotals_id] int NOT NULL IDENTITY (1,1), - [quotals_quota_id] int, - [quotals_language] varchar(45) NOT NULL default 'en', - [quotals_name] varchar(255), - [quotals_message] varchar(max), - [quotals_url] varchar(255), - [quotals_urldescrip] varchar(255), - PRIMARY KEY ([quotals_id]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='136' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 137) //New date format specs - { - modify_database("", "ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_dateformat] int NOT NULL default '1'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_users] ADD [dateformat] int NOT NULL default '1'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "update [prefix_surveys] set startdate=null where usestartdate='N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "update [prefix_surveys] set expires=null where useexpiry='N'"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('usestartdate','surveys'); - mssql_drop_constraint('useexpiry','surveys'); - modify_database("", "ALTER TABLE [prefix_surveys] DROP COLUMN usestartdate"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] DROP COLUMN useexpiry"); echo $modifyoutput; flush();ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='137' where stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 138) //Modify quota field - { - modify_database("", "ALTER TABLE [prefix_quota_members] ALTER COLUMN [code] VARCHAR(11) NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='138' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 139) //Modify quota field - { - upgrade_survey_tables139(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='139' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 140) //Modify surveys table - { - modify_database("", "ALTER TABLE [prefix_surveys] ADD [emailresponseto] varchar(max)"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='140' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 141) //Modify surveys table - { - modify_database("", "ALTER TABLE [prefix_surveys] ADD [tokenlength] tinyint NOT NULL default '15'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='141' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 142) //Modify surveys table - { - upgrade_question_attributes142(); - modify_database("", "ALTER TABLE [prefix_surveys] ALTER COLUMN [startdate] datetime NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ALTER COLUMN [expires] datetime NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_question_attributes] SET [value]='0' WHERE cast([value] as varchar)='false'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_question_attributes] SET [value]='1' WHERE cast([value] as varchar)='true'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='142' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 143) //Modify surveys table - { - modify_database("", "ALTER TABLE [prefix_questions] ADD parent_qid integer NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_answers] ADD scale_id tinyint NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_questions] ADD scale_id tinyint NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_questions] ADD same_default tinyint NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_primary_index('answers'); - modify_database("","ALTER TABLE [prefix_answers] ADD CONSTRAINT pk_answers_qcls PRIMARY KEY ([qid],[code],[language],[scale_id])"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "CREATE TABLE [prefix_defaultvalues] ( - [qid] integer NOT NULL default '0', - [scale_id] tinyint NOT NULL default '0', - [sqid] integer NOT NULL default '0', - [language] varchar(20) NOT NULL, - [specialtype] varchar(20) NOT NULL default '', - [defaultvalue] varchar(max), - CONSTRAINT pk_defaultvalues_qlss PRIMARY KEY ([qid] , [scale_id], [language], [specialtype], [sqid]))"); echo $modifyoutput; flush();ob_flush(); - - // -Move all 'answers' that are subquestions to the questions table - // -Move all 'labels' that are answers to the answers table - // -Transscribe the default values where applicable - // -Move default values from answers to questions - upgrade_tables143(); - - mssql_drop_constraint('default_value','answers'); - modify_database("", "ALTER TABLE [prefix_answers] DROP COLUMN [default_value]"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('lid','questions'); - modify_database("", "ALTER TABLE [prefix_questions] DROP COLUMN lid"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('lid1','questions'); - modify_database("", "ALTER TABLE [prefix_questions] DROP COLUMN lid1"); echo $modifyoutput; flush();ob_flush(); - // add field for timings and table for extended conditions - modify_database("", "ALTER TABLE [prefix_surveys] ADD savetimings char(1) default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "CREATE TABLE prefix_sessions( - sesskey VARCHAR( 64 ) NOT NULL DEFAULT '', - expiry DATETIME NOT NULL , - expireref VARCHAR( 250 ) DEFAULT '', - created DATETIME NOT NULL , - modified DATETIME NOT NULL , - sessdata varchar(max), - CONSTRAINT pk_sessions_sesskey PRIMARY KEY ( [sesskey] ))"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "create index [idx_expiry] on [prefix_sessions] ([expiry])"); echo $modifyoutput; - modify_database("", "create index [idx_expireref] on [prefix_sessions] ([expireref])"); echo $modifyoutput; - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='143' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - - - - - - - } - - if ($oldversion < 145) //Modify surveys table - { - modify_database("", "ALTER TABLE [prefix_surveys] ADD showxquestions CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD showgroupinfo CHAR(1) NULL default 'B' "); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD shownoanswer CHAR(1) NULL default 'Y' "); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD showqnumcode CHAR(1) NULL default 'X'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bouncetime BIGINT NULL"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceprocessing VARCHAR(1) NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceaccounttype VARCHAR(4) NULL "); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceaccounthost VARCHAR(200) NULL "); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceaccountpass VARCHAR(100) NULL "); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceaccountencryption VARCHAR(3) NULL "); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD bounceaccountuser VARCHAR(200) NULL "); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD showwelcome CHAR(1) NULL default 'Y' "); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD showprogress CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD allowjumps CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD navigationdelay tinyint NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD nokeyboard CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_surveys] ADD alloweditaftercompletion CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "CREATE TABLE [prefix_survey_permissions] ( - [sid] INT NOT NULL, - [uid] INT NOT NULL, - [permission] VARCHAR(20) NOT NULL, - [create_p] TINYINT NOT NULL default '0', - [read_p] TINYINT NOT NULL default '0', - [update_p] TINYINT NOT NULL default '0', - [delete_p] TINYINT NOT NULL default '0', - [import_p] TINYINT NOT NULL default '0', - [export_p] TINYINT NOT NULL default '0', - PRIMARY KEY ([sid], [uid],[permission]) - );"); echo $modifyoutput; flush();ob_flush(); - upgrade_surveypermissions_table145(); - modify_database("", "DROP TABLE [prefix_surveys_rights]"); echo $modifyoutput; flush();ob_flush(); - - // Add new fields for email templates - modify_database("", "ALTER TABLE prefix_surveys_languagesettings ADD - email_admin_notification_subj VARCHAR(255) NULL, - email_admin_notification varchar(max) NULL, - email_admin_responses_subj VARCHAR(255) NULL, - email_admin_responses varchar(max) NULL"); - - //Add index to questions table to speed up subquestions - modify_database("", "create index [parent_qid_idx] on [prefix_questions] ([parent_qid])"); echo $modifyoutput; flush();ob_flush(); - - modify_database("", "ALTER TABLE prefix_surveys ADD emailnotificationto varchar(max) DEFAULT NULL"); echo $modifyoutput; flush();ob_flush(); - upgrade_survey_table145(); - mssql_drop_constraint('notification','surveys'); - modify_database("", "ALTER TABLE [prefix_surveys] DROP COLUMN [notification]"); echo $modifyoutput; flush();ob_flush(); - - // modify length of method in conditions - modify_database("","ALTER TABLE [prefix_conditions] ALTER COLUMN [method] CHAR(5) NOT NULL"); echo $modifyoutput; flush();ob_flush(); - - //Add index to questions table to speed up subquestions - modify_database("", "create index [parent_qid] on [prefix_questions] ([parent_qid])"); echo $modifyoutput; flush();ob_flush(); - - modify_database("","UPDATE prefix_surveys set [private]='N' where [private] is NULL;"); echo $modifyoutput; flush();ob_flush(); - - modify_database("","EXEC sp_rename 'prefix_surveys.private','anonymized'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ALTER COLUMN [anonymized] char(1) NOT NULL;"); echo $modifyoutput; flush();ob_flush(); - mssql_drop_constraint('anonymized','surveys'); - modify_database("","ALTER TABLE [prefix_surveys] ADD CONSTRAINT DF_surveys_anonymized DEFAULT 'N' FOR [anonymized];"); echo $modifyoutput; flush();ob_flush(); - - modify_database("", "CREATE TABLE [prefix_failed_login_attempts] ( - [id] INT NOT NULL IDENTITY (1,1) PRIMARY KEY, - [ip] varchar(37) NOT NULL, - [last_attempt] varchar(20) NOT NULL, - [number_attempts] int NOT NULL );"); echo $modifyoutput; flush();ob_flush(); - - modify_database("", "ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_numberformat] INT default 0 NOT NULL"); echo $modifyoutput; flush();ob_flush(); - - upgrade_token_tables145(); - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='145' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - - - } - if ($oldversion < 146) //Modify surveys table - { - upgrade_timing_tables146(); - modify_database("", "INSERT into [prefix_survey_permissions] (sid,uid,permission,read_p,update_p) SELECT sid,owner_id,'translations','1','1' from [prefix_surveys]"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='146' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 147) - { - modify_database("", "ALTER TABLE [prefix_users] ADD templateeditormode VARCHAR( 7 ) NOT NULL default 'default'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_users] ADD questionselectormode VARCHAR( 7 ) NOT NULL default 'default'"); echo $modifyoutput; flush();ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='147' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 148) - { - modify_database("","CREATE TABLE [prefix_participants] ( - [participant_id] varchar(50) NOT NULL, - [firstname] varchar(40) NOT NULL, - [lastname] varchar(40) NOT NULL, - [email] varchar(80) NOT NULL, - [language] varchar(2) NOT NULL, - [blacklisted] varchar(1) NOT NULL, - [owner_uid] integer NOT NULL, - PRIMARY KEY ([participant_id]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_participant_attribute] ( - [participant_id] varchar(50) NOT NULL, - [attribute_id] integer NOT NULL, - [value] varchar(50) NOT NULL, - PRIMARY KEY ([participant_id],[attribute_id]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_participant_attribute_names] ( - [attribute_id] integer NOT NULL IDENTITY (1,1), - [attribute_type] varchar(4) NOT NULL, - [visible] char(5) NOT NULL, - PRIMARY KEY ([attribute_id],[attribute_type]) - );");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_participant_attribute_names_lang] ( - [attribute_id] integer NOT NULL, - [attribute_name] varchar(30) NOT NULL, - [lang] varchar(20) NOT NULL, - PRIMARY KEY ([attribute_id],[lang]) - ); ");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_participant_attribute_values] ( - [attribute_id] integer NOT NULL, - [value_id] integer NOT NULL IDENTITY (1,1), - [value] varchar(20) NOT NULL, - PRIMARY KEY ([value_id]) - ); ");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_participant_shares] ( - [participant_id] varchar(50) NOT NULL, - [share_uid] integer NOT NULL, - [date_added] datetime, - [can_edit] varchar(max) NOT NULL, - PRIMARY KEY ([participant_id],[share_uid]) - ); ");echo $modifyoutput; flush();ob_flush(); - modify_database("","CREATE TABLE [prefix_survey_links] ( - [participant_id] varchar(50) NOT NULL, - [token_id] integer NOT NULL, - [survey_id] integer NOT NULL, - [date_created] datetime, - PRIMARY KEY ([participant_id],[token_id],[survey_id]) - ); ");echo $modifyoutput; flush();ob_flush(); - modify_database("", "ALTER TABLE [prefix_users] ADD [participant_panel] int NOT NULL default '0'"); echo $modifyoutput; flush();ob_flush(); - - // Add language field to question_attributes table - modify_database("","ALTER TABLE [prefix_question_attributes] ADD [language] varchar(20)"); echo $modifyoutput; flush();ob_flush(); - upgrade_question_attributes148(); - fixSubquestions(); - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='148' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - if ($oldversion < 150) - { - modify_database("","ALTER TABLE [prefix_questions] ADD [relevance] varchar(max);"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='150' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 151) - { - modify_database("","ALTER TABLE [prefix_groups] ADD [randomization_group] VARCHAR(20) NOT NULL DEFAULT '';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='151' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 152) - { - modify_database("","CREATE INDEX [question_attributes_idx3] ON [prefix_question_attributes] ([attribute]);"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='152' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 153) - { - modify_database("","CREATE TABLE [prefix_expression_errors] ( - [id] integer NOT NULL IDENTITY (1,1), - [errortime] varchar(50) DEFAULT NULL, - [sid] integer DEFAULT NULL, - [gid] integer DEFAULT NULL, - [qid] integer DEFAULT NULL, - [gseq] integer DEFAULT NULL, - [qseq] integer DEFAULT NULL, - [type] varchar(50) , - [eqn] varchar(max), - [prettyprint] varchar(max), - PRIMARY KEY ([id]) - );"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET stg_value='153' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 154) - { - modify_database("","ALTER TABLE [prefix_groups] ADD [grelevance] varchar(max) DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update [prefix_settings_global] set [stg_value]='154' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 155) - { - modify_database("","ALTER TABLE [prefix_surveys] ADD [googleanalyticsstyle] char(1) DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE [prefix_surveys] ADD [googleanalyticsapikey] varchar(25) DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","EXEC sp_rename 'prefix_surveys.showXquestions','showxquestions'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='155' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 155.6) - { - LimeExpressionManager::UpgradeConditionsToRelevance(); - modify_database("", "UPDATE [prefix_settings_global] SET [stg_value]='155.6' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - - echo '

    '.sprintf($clang->gT('Database update finished (%s)'),date('Y-m-d H:i:s')).'
    '; - return true; -} - -function upgrade_survey_tables117() -{ - global $modifyoutput; - $surveyidquery = "SELECT sid FROM ".db_table_name('surveys')." WHERE active='Y' and datestamp='Y'"; - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".db_table_name('survey_'.$sv[0])." ADD [startdate] datetime"); echo $modifyoutput; flush();ob_flush(); - } - } -} - - -function upgrade_survey_tables118() -{ - global $connect,$modifyoutput,$dbprefix; - $tokentables=$connect->MetaTables('TABLES',false,$dbprefix."tokens%"); - foreach ($tokentables as $sv) - { - modify_database("","ALTER TABLE ".$sv." ALTER COLUMN [token] VARCHAR(36)"); echo $modifyoutput; flush();ob_flush(); - } -} - - -function upgrade_token_tables125() -{ - global $connect,$modifyoutput,$dbprefix; - $tokentables=$connect->MetaTables('TABLES',false,$dbprefix."tokens%"); - foreach ($tokentables as $sv) - { - modify_database("","ALTER TABLE ".$sv." ADD [emailstatus] VARCHAR(300) DEFAULT 'OK'"); echo $modifyoutput; flush();ob_flush(); - } -} - - -function upgrade_token_tables128() -{ - global $connect,$modifyoutput,$dbprefix; - $tokentables=$connect->MetaTables('TABLES',false,$dbprefix."tokens%"); - foreach ($tokentables as $sv) - { - modify_database("","ALTER TABLE ".$sv." ADD [remindersent] VARCHAR(17) DEFAULT 'OK'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE ".$sv." ADD [remindercount] int DEFAULT '0'"); echo $modifyoutput; flush();ob_flush(); - } -} - - -function fixLanguageConsistencyAllSurveys() -{ - global $dbprefix, $connect, $modifyoutput; - $surveyidquery = "SELECT sid,additional_languages FROM ".db_table_name('surveys'); - $surveyidresult = db_execute_num($surveyidquery); - while ( $sv = $surveyidresult->FetchRow() ) - { - FixLanguageConsistency($sv[0],$sv[1]); - } -} - - -function upgrade_token_tables134() -{ - global $connect,$modifyoutput,$dbprefix; - $tokentables=$connect->MetaTables('TABLES',false,$dbprefix."tokens%"); - foreach ($tokentables as $sv) - { - modify_database("","ALTER TABLE ".$sv." ADD [validfrom] DATETIME"); echo $modifyoutput; flush();ob_flush(); - modify_database("","ALTER TABLE ".$sv." ADD [validuntil] DATETIME"); echo $modifyoutput; flush();ob_flush(); - } -} - -// Add the usesleft field to all existing token tables -function upgrade_token_tables145() -{ - global $modifyoutput, $dbprefix, $connect; - $surveyidquery = db_select_tables_like($dbprefix."tokens%"); - $surveyidresult = db_execute_num($surveyidquery); - $tokentables=$connect->MetaTables('TABLES',false,$dbprefix."tokens%"); - foreach ($tokentables as $sv) { - modify_database("","ALTER TABLE ".$sv." ADD [usesleft] int NOT NULL DEFAULT '1'"); echo $modifyoutput; flush();ob_flush(); - modify_database("","UPDATE ".$sv." SET usesleft=0 WHERE completed<>'N'"); echo $modifyoutput; flush();ob_flush(); - } -} - - -function mssql_drop_primary_index($tablename) -{ - global $dbprefix, $connect, $modifyoutput; - // find out the constraint name of the old primary key - $pkquery = "SELECT CONSTRAINT_NAME " - ."FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS " - ."WHERE (TABLE_NAME = '{$dbprefix}{$tablename}') AND (CONSTRAINT_TYPE = 'PRIMARY KEY')"; - - $primarykey=$connect->GetOne($pkquery); - if ($primarykey!=false) - { - modify_database("","ALTER TABLE [prefix_{$tablename}] DROP CONSTRAINT {$primarykey}"); echo $modifyoutput; flush();ob_flush(); - } -} - - -function mssql_drop_constraint($fieldname, $tablename) -{ - global $dbprefix, $connect, $modifyoutput; - $connect->SetFetchMode(ADODB_FETCH_ASSOC); - - // find out the name of the default constraint - // Did I already mention that this is the most suckiest thing I have ever seen in MSSQL database? - $dfquery ="SELECT c_obj.name AS constraint_name - FROM sys.sysobjects AS c_obj INNER JOIN - sys.sysobjects AS t_obj ON c_obj.parent_obj = t_obj.id INNER JOIN - sys.sysconstraints AS con ON c_obj.id = con.constid INNER JOIN - sys.syscolumns AS col ON t_obj.id = col.id AND con.colid = col.colid - WHERE (c_obj.xtype = 'D') AND (col.name = '$fieldname') AND (t_obj.name='$dbprefix$tablename')"; - $defaultname=$connect->GetRow($dfquery); - if ($defaultname!=false) - { - modify_database("","ALTER TABLE [prefix_$tablename] DROP CONSTRAINT {$defaultname['constraint_name']}"); echo $modifyoutput; flush();ob_flush(); - } - - -} - -function upgrade_survey_tables139() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = db_select_tables_like($dbprefix."survey\_%"); - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".$sv[0]." ADD [lastpage] int"); echo $modifyoutput; flush();ob_flush(); - } - } -} - -function upgrade_question_attributes142() -{ - global $modifyoutput,$dbprefix, $connect; - $attributequery="Select qid from {$dbprefix}question_attributes where attribute='exclude_all_other' group by qid having count(qid)>1 "; - $questionids = db_select_column($attributequery); - foreach ($questionids as $questionid) - { - //Select all affected question attributes - $attributevalues=db_select_column("SELECT value from {$dbprefix}question_attributes where attribute='exclude_all_other' and qid=".$questionid); - modify_database("","delete from {$dbprefix}question_attributes where attribute='exclude_all_other' and qid=".$questionid); echo $modifyoutput; flush();ob_flush(); - $record['value']=implode(';',$attributevalues); - $record['attribute']='exclude_all_other'; - $record['qid']=$questionid; - $connect->AutoExecute("{$dbprefix}question_attributes", $record, 'INSERT'); - } -} - -function upgrade_tables143() -{ - global $modifyoutput,$dbprefix, $connect; - - - $aQIDReplacements=array(); - $answerquery = "select a.*, q.sid, q.gid from {$dbprefix}answers a,{$dbprefix}questions q where a.qid=q.qid and q.type in ('L','O','!') and a.default_value='Y'"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) {return "Database Error";} - else - { - while ( $row = $answerresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}defaultvalues (qid, scale_id,language,specialtype,defaultvalue) VALUES ({$row['qid']},0,".db_quoteall($row['language']).",'',".db_quoteall($row['code']).")"); echo $modifyoutput; flush();ob_flush(); - } - } - - // Convert answers to subquestions - - $answerquery = "select a.*, q.sid, q.gid, q.type from {$dbprefix}answers a,{$dbprefix}questions q where a.qid=q.qid and a.language=q.language and q.type in ('1','A','B','C','E','F','H','K',';',':','M','P','Q')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) {return "Database Error";} - else - { - while ( $row = $answerresult->FetchRow() ) - { - - $insertarray=array(); - if (isset($aQIDReplacements[$row['qid'].'_'.$row['code']])) - { - $insertarray['qid']=$aQIDReplacements[$row['qid'].'_'.$row['code']]; - db_switchIDInsert('questions',true); - } - $insertarray['sid']=$row['sid']; - $insertarray['gid']=$row['gid']; - $insertarray['parent_qid']=$row['qid']; - $insertarray['type']=$row['type']; - $insertarray['title']=$row['code']; - $insertarray['question']=$row['answer']; - $insertarray['question_order']=$row['sortorder']; - $insertarray['language']=$row['language']; - $tablename="{$dbprefix}questions"; - $query=$connect->GetInsertSQL($tablename,$insertarray); - modify_database("",$query); echo $modifyoutput; flush();ob_flush(); - if (!isset($insertarray['qid'])) - { - $aQIDReplacements[$row['qid'].'_'.$row['code']]=$connect->Insert_ID("{$dbprefix}questions","qid"); - $iSaveSQID=$aQIDReplacements[$row['qid'].'_'.$row['code']]; - } - else - { - $iSaveSQID=$insertarray['qid']; - db_switchIDInsert('questions',false); - } - if (($row['type']=='M' || $row['type']=='P') && $row['default_value']=='Y') - { - modify_database("","INSERT INTO {$dbprefix}defaultvalues (qid, sqid, scale_id,language,specialtype,defaultvalue) VALUES ({$row['qid']},{$iSaveSQID},0,".db_quoteall($row['language']).",'','Y')"); echo $modifyoutput; flush();ob_flush(); - } - } - } - modify_database("","delete {$dbprefix}answers from {$dbprefix}answers LEFT join {$dbprefix}questions ON {$dbprefix}answers.qid={$dbprefix}questions.qid where {$dbprefix}questions.type in ('1','F','H','M','P','W','Z')"); echo $modifyoutput; flush();ob_flush(); - - // Convert labels to answers - $answerquery = "select qid ,type ,lid ,lid1, language from {$dbprefix}questions where parent_qid=0 and type in ('1','F','H','M','P','W','Z')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) - { - return "Database Error"; - } - else - { - while ( $row = $answerresult->FetchRow() ) - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}answers (qid, code, answer, sortorder, language, assessment_value) VALUES ({$row['qid']},".db_quoteall($lrow['code']).",".db_quoteall($lrow['title']).",{$lrow['sortorder']},".db_quoteall($lrow['language']).",{$lrow['assessment_value']})"); echo $modifyoutput; flush();ob_flush(); - //$labelids[] - } - if ($row['type']=='1') - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid1']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}answers (qid, code, answer, sortorder, language, scale_id, assessment_value) VALUES ({$row['qid']},".db_quoteall($lrow['code']).",".db_quoteall($lrow['title']).",{$lrow['sortorder']},".db_quoteall($lrow['language']).",1,{$lrow['assessment_value']})"); echo $modifyoutput; flush();ob_flush(); - } - } - } - } - - // Convert labels to subquestions - $answerquery = "select * from {$dbprefix}questions where parent_qid=0 and type in (';',':')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) - { - return "Database Error"; - } - else - { - while ( $row = $answerresult->FetchRow() ) - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - $insertarray=array(); - if (isset($aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1'])) - { - $insertarray['qid']=$aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1']; - db_switchIDInsert('questions',true); - - } - $insertarray['sid']=$row['sid']; - $insertarray['gid']=$row['gid']; - $insertarray['type']=$row['type']; - $insertarray['parent_qid']=$row['qid']; - $insertarray['title']=$lrow['code']; - $insertarray['question']=$lrow['title']; - $insertarray['question_order']=$lrow['sortorder']; - $insertarray['language']=$lrow['language']; - $insertarray['scale_id']=1; - $tablename="{$dbprefix}questions"; - $query=$connect->GetInsertSQL($tablename,$insertarray); - modify_database("",$query); echo $modifyoutput; flush();ob_flush(); - if (isset($insertarray['qid'])) - { - $aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1']=$connect->Insert_ID("{$dbprefix}questions","qid"); - db_switchIDInsert('questions',false); - - } - } - } - } - - - $updatequery = "update {$dbprefix}questions set type='!' where type='W'"; - modify_database("",$updatequery); echo $modifyoutput; flush();ob_flush(); - $updatequery = "update {$dbprefix}questions set type='L' where type='Z'"; - modify_database("",$updatequery); echo $modifyoutput; flush();ob_flush(); - - // Now move all non-standard templates to the /upload dir - global $usertemplaterootdir, $standardtemplates,$standardtemplaterootdir; - - if (!$usertemplaterootdir) {die("gettemplatelist() no template directory");} - if ($handle = opendir($standardtemplaterootdir)) - { - while (false !== ($file = readdir($handle))) - { - if (!is_file("$standardtemplaterootdir/$file") && $file != "." && $file != ".." && $file!=".svn" && !isStandardTemplate($file)) - { - if (!rename($standardtemplaterootdir.DIRECTORY_SEPARATOR.$file,$usertemplaterootdir.DIRECTORY_SEPARATOR.$file)) - { - echo "There was a problem moving directory '".$standardtemplaterootdir.DIRECTORY_SEPARATOR.$file."' to '".$usertemplaterootdir.DIRECTORY_SEPARATOR.$file."' due to missing permissions. Please do this manually.
    "; - }; - } - } - closedir($handle); - } - -} - -function upgrade_timing_tables146() -{ - global $modifyoutput,$dbprefix, $connect; - $aTimingTables=$connect->MetaTables('TABLES',false, "%timings"); - foreach ($aTimingTables as $sTable) { - modify_database("","EXEC sp_rename '{$sTable}.interviewTime','interviewtime'"); echo $modifyoutput; flush(); ob_flush(); - } -} diff --git a/include/limesurvey/admin/update/upgrade-mysql.php b/include/limesurvey/admin/update/upgrade-mysql.php deleted file mode 100644 index dc713608..00000000 --- a/include/limesurvey/admin/update/upgrade-mysql.php +++ /dev/null @@ -1,1074 +0,0 @@ -'german-informal', - 'cns'=>'cn-Hans', - 'cnt'=>'cn-Hant', - 'pt_br'=>'pt-BR', - 'gr'=>'el', - 'jp'=>'ja', - 'si'=>'sl', - 'se'=>'sv', - 'vn'=>'vi'); - - foreach ($oldnewlanguages as $oldlang=>$newlang) - { - modify_database("","update `prefix_answers` set `language`='$newlang' where language='$oldlang'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_questions` set `language`='$newlang' where language='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - modify_database("","update `prefix_groups` set `language`='$newlang' where language='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - modify_database("","update `prefix_labels` set `language`='$newlang' where language='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - modify_database("","update `prefix_surveys` set `language`='$newlang' where language='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - modify_database("","update `prefix_surveys_languagesettings` set `surveyls_language`='$newlang' where surveyls_language='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - modify_database("","update `prefix_users` set `lang`='$newlang' where lang='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - } - - - - $resultdata=db_execute_assoc("select * from ".db_table_name("labelsets")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['languages']; - $toreplace=str_replace('german_informal','german-informal',$toreplace); - $toreplace=str_replace('cns','cn-Hans',$toreplace); - $toreplace=str_replace('cnt','cn-Hant',$toreplace); - $toreplace=str_replace('pt_br','pt-BR',$toreplace); - $toreplace=str_replace('gr','el',$toreplace); - $toreplace=str_replace('jp','ja',$toreplace); - $toreplace=str_replace('si','sl',$toreplace); - $toreplace=str_replace('se','sv',$toreplace); - $toreplace=str_replace('vn','vi',$toreplace); - modify_database("","update `prefix_labelsets` set `languages`='$toreplace' where lid=".$datarow['lid']);echo $modifyoutput;flush();@ob_flush(); - } - - - $resultdata=db_execute_assoc("select * from ".db_table_name("surveys")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['additional_languages']; - $toreplace=str_replace('german_informal','german-informal',$toreplace); - $toreplace=str_replace('cns','cn-Hans',$toreplace); - $toreplace=str_replace('cnt','cn-Hant',$toreplace); - $toreplace=str_replace('pt_br','pt-BR',$toreplace); - $toreplace=str_replace('gr','el',$toreplace); - $toreplace=str_replace('jp','ja',$toreplace); - $toreplace=str_replace('si','sl',$toreplace); - $toreplace=str_replace('se','sv',$toreplace); - $toreplace=str_replace('vn','vi',$toreplace); - modify_database("","update `prefix_surveys` set `additional_languages`='$toreplace' where sid=".$datarow['sid']);echo $modifyoutput;flush();@ob_flush(); - } - modify_database("","update `prefix_settings_global` set `stg_value`='111' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - - } - - - if ($oldversion < 112) { - //The size of the users_name field is now 64 char (20 char before version 112) - modify_database("","ALTER TABLE `prefix_users` CHANGE `users_name` `users_name` VARCHAR( 64 ) NOT NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='112' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 113) { - //Fixes the collation for the complete DB, tables and columns - echo "Attention:The following upgrades will update your MySQL Database collations. This may take some time.
    If for any reason you should get a timeout just re-run the upgrade procedure. The updating will continue where it left off.

    "; flush();@ob_flush(); - fix_mysql_collation(); - modify_database("","ALTER DATABASE `$databasename` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;");echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='113' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 114) { - modify_database("","ALTER TABLE `prefix_saved_control` CHANGE `email` `email` VARCHAR(320) NOT NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `adminemail` `adminemail` VARCHAR(320) NOT NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_users` CHANGE `email` `email` VARCHAR(320) NOT NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("",'INSERT INTO `prefix_settings_global` VALUES (\'SessionName\', \'$sessionname\');');echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='114' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 126) { - //Adds new "public" field - modify_database("","ALTER TABLE `prefix_surveys` ADD `printanswers` CHAR(1) default 'N' AFTER allowsave"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` ADD `listpublic` CHAR(1) default 'N' AFTER `datecreated`"); echo $modifyoutput; flush();@ob_flush(); - upgrade_survey_tables117(); - upgrade_survey_tables118(); - // 119 - modify_database("","CREATE TABLE `prefix_quota` ( - `id` int(11) NOT NULL auto_increment, - `sid` int(11) default NULL, - `qlimit` int(8) default NULL, - `name` varchar(255) collate utf8_unicode_ci default NULL, - `action` int(2) default NULL, - `active` int(1) NOT NULL default '1', - PRIMARY KEY (`id`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","CREATE TABLE `prefix_quota_members` ( - `id` int(11) NOT NULL auto_increment, - `sid` int(11) default NULL, - `qid` int(11) default NULL, - `quota_id` int(11) default NULL, - `code` varchar(5) collate utf8_unicode_ci default NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `sid` (`sid`,`qid`,`quota_id`,`code`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - - // Rename Norwegian language code from NO to NB - $oldnewlanguages=array('no'=>'nb'); - foreach ($oldnewlanguages as $oldlang=>$newlang) - { - modify_database("","update `prefix_answers` set `language`='$newlang' where language='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - modify_database("","update `prefix_questions` set `language`='$newlang' where language='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - modify_database("","update `prefix_groups` set `language`='$newlang' where language='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - modify_database("","update `prefix_labels` set `language`='$newlang' where language='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - modify_database("","update `prefix_surveys` set `language`='$newlang' where language='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - modify_database("","update `prefix_surveys_languagesettings` set `surveyls_language`='$newlang' where surveyls_language='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - modify_database("","update `prefix_users` set `lang`='$newlang' where lang='$oldlang'");echo $modifyoutput;flush();@ob_flush(); - } - - $resultdata=db_execute_assoc("select * from ".db_table_name("labelsets")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['languages']; - $toreplace2=str_replace('no','nb',$toreplace); - if ($toreplace2!=$toreplace) {modify_database("","update `prefix_labelsets` set `languages`='$toreplace' where lid=".$datarow['lid']);echo $modifyoutput;flush();@ob_flush();} - } - - $resultdata=db_execute_assoc("select * from ".db_table_name("surveys")); - while ($datarow = $resultdata->FetchRow()){ - $toreplace=$datarow['additional_languages']; - $toreplace2=str_replace('no','nb',$toreplace); - if ($toreplace2!=$toreplace) {modify_database("","update `prefix_surveys` set `additional_languages`='$toreplace' where sid=".$datarow['sid']);echo $modifyoutput;flush();@ob_flush();} - } - - - modify_database("","ALTER TABLE `prefix_surveys` ADD `htmlemail` CHAR(1) default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` ADD `tokenanswerspersistence` CHAR(1) default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` ADD `usecaptcha` CHAR(1) default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_users` ADD `htmleditormode` CHAR(7) default 'default'"); echo $modifyoutput; flush();@ob_flush(); - //122 - modify_database("","CREATE TABLE `prefix_templates_rights` ( - `uid` int(11) NOT NULL, - `folder` varchar(255) NOT NULL, - `use` int(1) NOT NULL, - PRIMARY KEY (`uid`,`folder`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","CREATE TABLE `prefix_templates` ( - `folder` varchar(255) NOT NULL, - `creator` int(11) NOT NULL, - PRIMARY KEY (`folder`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - - //123 - modify_database("","ALTER TABLE `prefix_conditions` CHANGE `value` `value` VARCHAR(255) NOT NULL default ''"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_labels` CHANGE `title` `title` text"); echo $modifyoutput; flush();@ob_flush(); - //124 - modify_database("","ALTER TABLE `prefix_surveys` ADD `bounce_email` text"); echo $modifyoutput; flush();@ob_flush(); - //125 - upgrade_token_tables125(); - modify_database("","ALTER TABLE `prefix_users` ADD `superadmin` tinyint(1) NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_users` SET `superadmin`=1 where (create_survey=1 AND create_user=1 AND move_user=1 AND delete_user=1 AND configurator=1)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_users` DROP COLUMN `move_user`"); echo $modifyoutput; flush();@ob_flush(); - //126 - modify_database("","ALTER TABLE `prefix_questions` ADD `lid1` integer NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_conditions` SET `method`='==' where (`method` is null) or `method`='' or `method`='0'"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","update `prefix_settings_global` set `stg_value`='126' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 127) { - modify_database("","create index `assessments_idx2` on `prefix_assessments` (`sid`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `assessments_idx3` on `prefix_assessments` (`gid`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `conditions_idx2` on `prefix_conditions` (`qid`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `groups_idx2` on `prefix_groups` (`sid`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `questions_idx2` on `prefix_questions` (`sid`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `questions_idx3` on `prefix_questions` (`gid`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `question_attributes_idx2` on `prefix_question_attributes` (`qid`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `quota_idx2` on `prefix_quota` (`sid`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `saved_control_idx2` on `prefix_saved_control` (`sid`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `user_in_groups_idx1` on `prefix_user_in_groups` (`ugid`, `uid`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `answers_idx2` on `prefix_answers` (`sortorder`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `conditions_idx3` on `prefix_conditions` (`cqid`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","create index `questions_idx4` on `prefix_questions` (`type`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='127' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 128) { - //128 - upgrade_token_tables128(); - modify_database("","update `prefix_settings_global` set `stg_value`='128' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 129) { - //129 - modify_database("","ALTER TABLE `prefix_surveys` ADD `startdate` DATETIME"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` ADD `usestartdate` varchar(1) NOT NULL default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='129' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 130) - { - modify_database("","ALTER TABLE `prefix_conditions` ADD `scenario` integer NOT NULL default '1' AFTER `qid`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_conditions` SET `scenario`=1 where (`scenario` is null) or `scenario`='' or `scenario`=0"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='130' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 131) - { - modify_database("","ALTER TABLE `prefix_surveys` ADD `publicstatistics` varchar(1) NOT NULL default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='131' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 132) - { - modify_database("","ALTER TABLE `prefix_surveys` ADD `publicgraphs` varchar(1) NOT NULL default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='132' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 133) - { - modify_database("","ALTER TABLE `prefix_users` ADD `one_time_pw` blob"); echo $modifyoutput; flush();@ob_flush(); - // Add new assessment setting - modify_database("","ALTER TABLE `prefix_surveys` ADD `assessments` varchar(1) NOT NULL default 'N'"); echo $modifyoutput; flush();@ob_flush(); - // add new assessment value fields to answers & labels - modify_database("","ALTER TABLE `prefix_answers` ADD `assessment_value` int(11) NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_labels` ADD `assessment_value` int(11) NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - // copy any valid codes from code field to assessment field - modify_database("","update `prefix_answers` set `assessment_value`=CAST(`code` as SIGNED) where `code` REGEXP '^-?[0-9]+$'");echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_labels` set `assessment_value`=CAST(`code` as SIGNED) where `code` REGEXP '^-?[0-9]+$'");echo $modifyoutput; flush();@ob_flush(); - // activate assessment where assessment rules exist - modify_database("","update `prefix_surveys` set `assessments`='Y' where `sid` in (SELECT `sid` FROM `prefix_assessments` group by `sid`)"); echo $modifyoutput; flush();@ob_flush(); - // add language field to assessment table - modify_database("","ALTER TABLE `prefix_assessments` ADD `language` varchar(20) NOT NULL default 'en'"); echo $modifyoutput; flush();@ob_flush(); - // update language field with default language of that particular survey - modify_database("","update `prefix_assessments` set `language`=(select `language` from `prefix_surveys` where `sid`=`prefix_assessments`.`sid`)"); echo $modifyoutput; flush();@ob_flush(); - // copy assessment link to message since from now on we will have HTML assignment messages - modify_database("","update `prefix_assessments` set `message`=concat(replace(`message`,'/''',''''),'
    ',`link`,'')"); echo $modifyoutput; flush();@ob_flush(); - // drop the old link field - modify_database("","ALTER TABLE `prefix_assessments` DROP COLUMN `link`"); echo $modifyoutput; flush();@ob_flush(); - // change the primary index to include language - modify_database("","ALTER TABLE `prefix_assessments` DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE(`id`, `language`)"); echo $modifyoutput; flush();@ob_flush(); - // Add new fields to survey language settings - modify_database("","ALTER TABLE `prefix_surveys_languagesettings` ADD `surveyls_url` varchar(255)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys_languagesettings` ADD `surveyls_endtext` text"); echo $modifyoutput; flush();@ob_flush(); - // copy old URL fields ot language specific entries - modify_database("","update `prefix_surveys_languagesettings` set `surveyls_url`=(select `url` from `prefix_surveys` where `sid`=`prefix_surveys_languagesettings`.`surveyls_survey_id`)"); echo $modifyoutput; flush();@ob_flush(); - // drop old URL field - modify_database("","ALTER TABLE `prefix_surveys` DROP COLUMN `url`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='133' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 134) - { - // Add new tokens setting - modify_database("","ALTER TABLE `prefix_surveys` ADD `usetokens` varchar(1) NOT NULL default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` ADD `attributedescriptions` TEXT;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` DROP COLUMN `attribute1`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` DROP COLUMN `attribute2`"); echo $modifyoutput; flush();@ob_flush(); - upgrade_token_tables134(); - modify_database("","update `prefix_settings_global` set `stg_value`='134' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 135) - { - modify_database("","ALTER TABLE `prefix_question_attributes` MODIFY `value` text"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_settings_global` SET `stg_value`='135' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 136) //New Quota Functions - { - modify_database("","ALTER TABLE `prefix_quota` ADD `autoload_url` int(1) NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","CREATE TABLE `prefix_quota_languagesettings` ( - `quotals_id` int(11) NOT NULL auto_increment, - `quotals_quota_id` int(11) NOT NULL default '0', - `quotals_language` varchar(45) NOT NULL default 'en', - `quotals_name` varchar(255) collate utf8_unicode_ci default NULL, - `quotals_message` text NOT NULL, - `quotals_url` varchar(255), - `quotals_urldescrip` varchar(255), - PRIMARY KEY (`quotals_id`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_settings_global` SET `stg_value`='136' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 137) //New Quota Functions - { - modify_database("", "ALTER TABLE `prefix_surveys_languagesettings` ADD `surveyls_dateformat` int(1) NOT NULL default '1'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_users` ADD `dateformat` int(1) NOT NULL default '1'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_surveys` set `startdate`=null where `usestartdate`='N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_surveys` set `expires`=null where `useexpiry`='N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` DROP COLUMN `useexpiry`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` DROP COLUMN `usestartdate`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='137' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 138) //Modify quota field - { - modify_database("", "ALTER TABLE `prefix_quota_members` CHANGE `code` `code` VARCHAR(11) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='138' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 139) //Modify quota field - { - upgrade_survey_tables139(); - modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='139' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 140) //Modify surveys table - { - modify_database("", "ALTER TABLE `prefix_surveys` ADD `emailresponseto` text DEFAULT NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='140' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 141) //Modify surveys table - { - modify_database("", "ALTER TABLE `prefix_surveys` ADD `tokenlength` tinyint(2) NOT NULL default '15'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='141' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 142) //Modify surveys table - { - upgrade_question_attributes142(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `expires` `expires` datetime"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `startdate` `startdate` datetime"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_question_attributes` SET `value`='0' WHERE `value`='false'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_question_attributes` SET `value`='1' WHERE `value`='true'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='142' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 143) //Modify surveys table - { - modify_database("", "ALTER TABLE `prefix_questions` ADD `parent_qid` integer NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_answers` ADD `scale_id` tinyint NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_questions` ADD `scale_id` tinyint NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_questions` ADD `same_default` tinyint NOT NULL default '0' COMMENT 'Saves if user set to use the same default value across languages in default options dialog'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_answers` DROP PRIMARY KEY, ADD PRIMARY KEY (`qid`,`code`,`language`,`scale_id`)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "CREATE TABLE `prefix_defaultvalues` ( - `qid` int(11) NOT NULL default '0', - `scale_id` int(11) NOT NULL default '0', - `sqid` int(11) NOT NULL default '0', - `language` varchar(20) NOT NULL, - `specialtype` varchar(20) NOT NULL default '', - `defaultvalue` text, - PRIMARY KEY (`qid` , `scale_id`, `language`, `specialtype`, `sqid` ) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - - // -Move all 'answers' that are subquestions to the questions table - // -Move all 'labels' that are answers to the answers table - // -Transscribe the default values where applicable - // -Move default values from answers to questions - upgrade_tables143(); - - modify_database("", "ALTER TABLE `prefix_answers` DROP COLUMN `default_value`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_questions` DROP COLUMN `lid`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_questions` DROP COLUMN `lid1`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "CREATE TABLE prefix_sessions( - sesskey VARCHAR( 64 ) NOT NULL DEFAULT '', - expiry DATETIME NOT NULL , - expireref VARCHAR( 250 ) DEFAULT '', - created DATETIME NOT NULL , - modified DATETIME NOT NULL , - sessdata LONGTEXT, - PRIMARY KEY ( sesskey ) , - INDEX sess2_expiry( expiry ), - INDEX sess2_expireref( expireref )) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='143' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - - - - - - } - - if ($oldversion < 145) - { - modify_database("", "ALTER TABLE `prefix_surveys` ADD `savetimings` CHAR(1) NULL default 'N' AFTER `format`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `showxquestions` CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `showgroupinfo` CHAR(1) NULL default 'B'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `shownoanswer` CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `showqnumcode` CHAR(1) NULL default 'X'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `bouncetime` BIGINT(20) NULL "); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `bounceprocessing` VARCHAR(1) NULL default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `bounceaccounttype` VARCHAR(4) NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `bounceaccounthost` VARCHAR(200) NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `bounceaccountpass` VARCHAR(100) NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `bounceaccountencryption` VARCHAR(3) NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `bounceaccountuser` VARCHAR(200) NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `showwelcome` CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `showprogress` char(1) default 'Y'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `allowjumps` char(1) default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `navigationdelay` tinyint(2) default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `nokeyboard` char(1) default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_surveys` ADD `alloweditaftercompletion` char(1) default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "CREATE TABLE `prefix_survey_permissions` ( - `sid` int(10) unsigned NOT NULL, - `uid` int(10) unsigned NOT NULL, - `permission` varchar(20) NOT NULL, - `create_p` tinyint(1) NOT NULL default '0', - `read_p` tinyint(1) NOT NULL default '0', - `update_p` tinyint(1) NOT NULL default '0', - `delete_p` tinyint(1) NOT NULL default '0', - `import_p` tinyint(1) NOT NULL default '0', - `export_p` tinyint(1) NOT NULL default '0', - PRIMARY KEY (sid, uid, permission) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - - upgrade_surveypermissions_table145(); - - // drop the old survey rights table - modify_database("", "DROP TABLE `prefix_surveys_rights`"); echo $modifyoutput; flush();@ob_flush(); - - // Add new fields for email templates - modify_database("", "ALTER TABLE `prefix_surveys_languagesettings` ADD - (`email_admin_notification_subj` VARCHAR(255) NULL, - `email_admin_notification` TEXT NULL, - `email_admin_responses_subj` VARCHAR(255) NULL, - `email_admin_responses` TEXT NULL)"); - - //Add index to questions table to speed up subquestions - modify_database("", "create INDEX parent_qid_idx on prefix_questions( parent_qid );"); echo $modifyoutput; flush();@ob_flush(); - - - modify_database("", "ALTER TABLE `prefix_surveys` ADD `emailnotificationto` text DEFAULT NULL AFTER `emailresponseto`"); echo $modifyoutput; flush();@ob_flush(); - upgrade_survey_table145(); - modify_database("", "ALTER TABLE `prefix_surveys` DROP COLUMN `notification`"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","ALTER TABLE `prefix_conditions` CHANGE `method` `method` CHAR( 5 ) NOT NULL default '';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_surveys` set `private`='N' where `private` is NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `private` `anonymized` char(1) collate utf8_unicode_ci NOT NULL default 'N';"); echo $modifyoutput; flush();@ob_flush(); - - - //now we clean up things that were not properly set in previous DB upgrades - - modify_database("","UPDATE `prefix_answers` SET `answer`='' where `answer` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_answers` CHANGE `answer` `answer` text collate utf8_unicode_ci NOT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_answers` CHANGE `assessment_value` `assessment_value` int(11) NOT NULL default '0' AFTER `answer`;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","UPDATE `prefix_assessments` SET `scope`='' where `scope` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_assessments` CHANGE `scope` `scope` varchar(5) collate utf8_unicode_ci NOT NULL default '';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_assessments` SET `name`='' where `name` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_assessments` CHANGE `name` `name` text collate utf8_unicode_ci NOT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_assessments` SET `message`='' where `message` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_assessments` CHANGE `message` `message` text collate utf8_unicode_ci NOT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_assessments` SET `minimum`='' where `minimum` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_assessments` CHANGE `minimum` `minimum` varchar(50) collate utf8_unicode_ci NOT NULL default '';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_assessments` SET `maximum`='' where `maximum` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_assessments` CHANGE `maximum` `maximum` varchar(50) collate utf8_unicode_ci NOT NULL default '';"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","ALTER TABLE `prefix_assessments` CHANGE `id` `id` int(11) NOT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_assessments` DROP PRIMARY KEY;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_assessments` ADD PRIMARY KEY (`id`,`language`);"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_assessments` CHANGE `id` `id` int(11) NOT NULL auto_increment;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","ALTER TABLE `prefix_conditions` CHANGE `cfieldname` `cfieldname` varchar(50) collate utf8_unicode_ci NOT NULL default '';"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","ALTER TABLE `prefix_defaultvalues` CHANGE `specialtype` `specialtype` varchar(20) collate utf8_unicode_ci NOT NULL default '' AFTER `qid`;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","UPDATE `prefix_groups` SET `group_name`='' where `group_name` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_groups` CHANGE `group_name` `group_name` varchar(100) collate utf8_unicode_ci NOT NULL default '';"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","UPDATE `prefix_labels` SET `code`='' where `code` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_labels` CHANGE `code` `code` varchar(5) collate utf8_unicode_ci NOT NULL default '';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_labels` CHANGE `language` `language` varchar(20) collate utf8_unicode_ci NOT NULL default 'en' AFTER `assessment_value`;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","UPDATE `prefix_labelsets` SET `label_name`='' WHERE `label_name` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_labelsets` CHANGE `label_name` `label_name` varchar(100) collate utf8_unicode_ci NOT NULL default '';"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","ALTER TABLE `prefix_questions` CHANGE `parent_qid` `parent_qid` int(11) NOT NULL default '0' AFTER `qid`;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_questions` SET `type`='T' where `type` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_questions` CHANGE `type` `type` char(1) collate utf8_unicode_ci NOT NULL default 'T';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_questions` SET `title`='' where `type` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_questions` CHANGE `title` `title` varchar(20) collate utf8_unicode_ci NOT NULL default '';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_questions` SET `question`='' where `question` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_questions` CHANGE `question` `question` text collate utf8_unicode_ci NOT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_questions` SET `other`='N' where `other` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_questions` CHANGE `other` `other` char(1) collate utf8_unicode_ci NOT NULL default 'N';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_questions` CHANGE `mandatory` `mandatory` char(1) collate utf8_unicode_ci default NULL;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","ALTER TABLE `prefix_question_attributes` CHANGE `attribute` `attribute` varchar(50) collate utf8_unicode_ci default NULL;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","ALTER TABLE `prefix_quota` CHANGE `qlimit` `qlimit` int(8) default NULL AFTER `name`;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","UPDATE `prefix_saved_control` SET `identifier`='' where `identifier` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_saved_control` CHANGE `identifier` `identifier` text collate utf8_unicode_ci NOT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_saved_control` SET `access_code`='' where `access_code` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_saved_control` CHANGE `access_code` `access_code` text collate utf8_unicode_ci NOT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_saved_control` CHANGE `email` `email` varchar(320) collate utf8_unicode_ci default NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_saved_control` SET `ip`='' where `ip` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_saved_control` CHANGE `ip` `ip` text collate utf8_unicode_ci NOT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_saved_control` SET `saved_thisstep`='' where `access_code` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_saved_control` CHANGE `saved_thisstep` `saved_thisstep` text collate utf8_unicode_ci NOT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_saved_control` SET `status`='' where `access_code` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_saved_control` CHANGE `status` `status` char(1) collate utf8_unicode_ci NOT NULL default '';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_saved_control` SET `saved_date`='0000-00-00 00:00:00' where `saved_date` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_saved_control` CHANGE `saved_date` `saved_date` datetime NOT NULL;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","UPDATE `prefix_settings_global` SET `stg_value`='' where `stg_value` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_settings_global` CHANGE `stg_value` `stg_value` varchar(255) collate utf8_unicode_ci NOT NULL default ''"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `admin` `admin` varchar(50) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_surveys` SET `active`='N' where `active` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `active` `active` char(1) collate utf8_unicode_ci NOT NULL default 'N';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `startdate` `startdate` datetime default NULL AFTER `expires`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `adminemail` `adminemail` varchar(320) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `anonymized` `anonymized` char(1) collate utf8_unicode_ci NOT NULL default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `faxto` `faxto` varchar(20) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `format` `format` char(1) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `language` `language` varchar(50) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `additional_languages` `additional_languages` varchar(255) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `printanswers` `printanswers` char(1) collate utf8_unicode_ci default 'N' AFTER `allowprev`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `publicstatistics` `publicstatistics` char(1) collate utf8_unicode_ci default 'N' after `datecreated`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `publicgraphs` `publicgraphs` char(1) collate utf8_unicode_ci default 'N' AFTER `publicstatistics`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `assessments` `assessments` char(1) collate utf8_unicode_ci default 'N' AFTER `tokenanswerspersistence`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `usetokens` `usetokens` char(1) collate utf8_unicode_ci default 'N' AFTER `usecaptcha`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `bounce_email` `bounce_email` varchar(320) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `tokenlength` `tokenlength` tinyint(2) default '15'"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","UPDATE `prefix_surveys_languagesettings` SET `surveyls_title`='' where `surveyls_title` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys_languagesettings` CHANGE `surveyls_title` `surveyls_title` varchar(200) collate utf8_unicode_ci NOT NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys_languagesettings` CHANGE `surveyls_endtext` `surveyls_endtext` text collate utf8_unicode_ci AFTER `surveyls_welcometext`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys_languagesettings` CHANGE `surveyls_url` `surveyls_url` varchar(255) collate utf8_unicode_ci default NULL AFTER `surveyls_endtext`"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","ALTER TABLE `prefix_surveys_languagesettings` CHANGE `surveyls_urldescription` `surveyls_urldescription` varchar(255) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys_languagesettings` CHANGE `surveyls_email_invite_subj` `surveyls_email_invite_subj` varchar(255) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys_languagesettings` CHANGE `surveyls_email_remind_subj` `surveyls_email_remind_subj` varchar(255) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys_languagesettings` CHANGE `surveyls_email_register_subj` `surveyls_email_register_subj` varchar(255) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys_languagesettings` CHANGE `surveyls_email_confirm_subj` `surveyls_email_confirm_subj` varchar(255) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys_languagesettings` CHANGE `surveyls_dateformat` `surveyls_dateformat` int(10) unsigned NOT NULL default '1'"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","UPDATE `prefix_users` SET `users_name`='' where `users_name` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_users` CHANGE `users_name` `users_name` varchar(64) collate utf8_unicode_ci NOT NULL default ''"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE `prefix_users` SET `full_name`='' where `full_name` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_users` CHANGE `full_name` `full_name` varchar(50) collate utf8_unicode_ci NOT NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_users` CHANGE `lang` `lang` varchar(20) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_users` CHANGE `email` `email` varchar(320) collate utf8_unicode_ci default NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_users` CHANGE `superadmin` `superadmin` tinyint(1) NOT NULL default '0' AFTER `delete_user`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_users` CHANGE `htmleditormode` `htmleditormode` varchar(7) collate utf8_unicode_ci default 'default'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_users` CHANGE `dateformat` `dateformat` int(10) unsigned NOT NULL default '1'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_users` DROP INDEX `email`;"); - - modify_database("","UPDATE `prefix_user_groups` SET `name`='' where `name` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_user_groups` CHANGE `name` `name` varchar(20) collate utf8_unicode_ci NOT NULL"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","UPDATE `prefix_user_groups` SET `description`='' where `description` is null;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_user_groups` CHANGE `description` `description` text collate utf8_unicode_ci NOT NULL"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","ALTER TABLE `prefix_user_in_groups` DROP INDEX `user_in_groups_idx1`"); // Don't show output because this key might not exist - modify_database("","ALTER TABLE `prefix_user_in_groups` ADD PRIMARY KEY (`ugid`, `uid`)"); // Don't show output because this might already be set - modify_database("", "ALTER TABLE `prefix_surveys_languagesettings` ADD `surveyls_numberformat` int(11) NOT NULL DEFAULT 0 AFTER `surveyls_dateformat`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "CREATE TABLE `prefix_failed_login_attempts` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ip` varchar(37) NOT NULL, - `last_attempt` varchar(20) NOT NULL, - `number_attempts` int(11) NOT NULL, - PRIMARY KEY (`id`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - upgrade_token_tables145(); - modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='145' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 146) //Modify surveys table - { - upgrade_timing_tables146(); - // Fix permissions for new feature quick-translation - modify_database("", "INSERT into prefix_survey_permissions (sid,`uid`,permission,`read_p`,`update_p`) SELECT sid,owner_id,'translations','1','1' from prefix_surveys"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='146' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 147) - { - modify_database("", "ALTER TABLE `prefix_users` ADD `templateeditormode` VARCHAR( 7 )NOT NULL DEFAULT 'default' AFTER `htmleditormode`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE `prefix_users` ADD `questionselectormode` VARCHAR( 7 )NOT NULL DEFAULT 'default' AFTER `templateeditormode`"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='147' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 148) - { - modify_database("","ALTER TABLE `prefix_users` ADD `participant_panel` tinyint(1) NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","CREATE TABLE `prefix_participants` (`participant_id` varchar(50) NOT NULL, - `firstname` varchar(40) default NULL, - `lastname` varchar(40) default NULL, - `email` varchar(80) collate utf8_unicode_ci default NULL, - `language` varchar(40) default NULL, - `blacklisted` varchar(1) NOT NULL, - `owner_uid` int(20) NOT NULL , - PRIMARY KEY (`participant_id`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","CREATE TABLE `prefix_participant_attribute` ( - `participant_id` varchar(50) NOT NULL, - `attribute_id` int(11) NOT NULL, - `value` varchar(50) NOT NULL, - PRIMARY KEY (`participant_id`,`attribute_id`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - - - modify_database("","CREATE TABLE `prefix_participant_attribute_names` ( - `attribute_id` int(11) NOT NULL AUTO_INCREMENT, - `attribute_type` varchar(4) NOT NULL, - `visible` char(5) NOT NULL, - PRIMARY KEY (`attribute_id`,`attribute_type`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","CREATE TABLE `prefix_participant_attribute_names_lang` ( - `attribute_id` int(11) NOT NULL, - `attribute_name` varchar(30) NOT NULL, - `lang` varchar(20) NOT NULL, - PRIMARY KEY (`attribute_id`,`lang`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","CREATE TABLE `prefix_participant_attribute_values` ( - `attribute_id` int(11) NOT NULL, - `value_id` int(11) NOT NULL AUTO_INCREMENT, - `value` varchar(20) NOT NULL, - PRIMARY KEY (`value_id`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","CREATE TABLE `prefix_participant_shares` ( - `participant_id` varchar(50) NOT NULL, - `share_uid` int(11) NOT NULL, - `date_added` datetime NOT NULL, - `can_edit` varchar(5) NOT NULL, - PRIMARY KEY (`participant_id`,`share_uid`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","CREATE TABLE `prefix_survey_links` ( - `participant_id` varchar(50) NOT NULL, - `token_id` int(11) NOT NULL, - `survey_id` int(11) NOT NULL, - `date_created` datetime NOT NULL, - PRIMARY KEY (`participant_id`,`token_id`,`survey_id`) - ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - - // add language field to question_attributes table - modify_database("","ALTER TABLE `prefix_question_attributes` ADD `language` varchar(20)"); echo $modifyoutput; flush();@ob_flush(); - upgrade_question_attributes148(); - fixSubquestions(); - modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='148' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 150) - { - modify_database("","ALTER TABLE `prefix_questions` ADD `relevance` TEXT;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='150' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 151) - { - modify_database("","ALTER TABLE `prefix_groups` ADD `randomization_group` VARCHAR(20) NOT NULL DEFAULT '';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='151' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 152) - { - modify_database("","CREATE INDEX `question_attributes_idx3` ON `prefix_question_attributes` (`attribute`);"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='152' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 153) - { - modify_database("","CREATE TABLE `prefix_expression_errors` ( - `id` int(9) NOT NULL AUTO_INCREMENT, - `errortime` varchar(50) DEFAULT NULL, - `sid` int(11) DEFAULT NULL, - `gid` int(11) DEFAULT NULL, - `qid` int(11) DEFAULT NULL, - `gseq` int(11) DEFAULT NULL, - `qseq` int(11) DEFAULT NULL, - `type` varchar(50) , - `eqn` text, - `prettyprint` text, - PRIMARY KEY (`id`) - ) ENGINE=MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='153' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 154) - { - modify_database("","ALTER TABLE `prefix_groups` ADD `grelevance` text DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update `prefix_settings_global` set `stg_value`='154' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 155) - { - modify_database("","ALTER TABLE `prefix_surveys` ADD `googleanalyticsstyle` char(1) DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` ADD `googleanalyticsapikey` varchar(25) DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE `prefix_surveys` CHANGE `showXquestions` `showxquestions` char(1) collate utf8_unicode_ci NOT NULL default 'Y';"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("", "UPDATE `prefix_settings_global` SET stg_value='155' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - if ($oldversion < 155.6) - { - LimeExpressionManager::UpgradeConditionsToRelevance(); - modify_database("", "UPDATE `prefix_settings_global` SET stg_value='155.6' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();ob_flush(); - } - fixLanguageConsistencyAllSurveys(); - echo '

    '.sprintf($clang->gT('Database update finished (%s)'),date('Y-m-d H:i:s')).'
    '; - return true; -} - - -function upgrade_survey_tables117() -{ - global $modifyoutput; - $surveyidquery = "SELECT sid FROM ".db_table_name('surveys')." WHERE active='Y' and datestamp='Y'"; - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".db_table_name('survey_'.$sv[0])." ADD `startdate` datetime AFTER `datestamp`"); echo $modifyoutput; flush();@ob_flush(); - } - } -} - -function upgrade_survey_tables118() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = "SHOW TABLES LIKE '".$dbprefix."tokens%'"; - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".$sv[0]." CHANGE `token` `token` VARCHAR(15)"); echo $modifyoutput; flush();@ob_flush(); - } - } -} - -function upgrade_token_tables125() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = "SHOW TABLES LIKE '".$dbprefix."tokens%'"; - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".$sv[0]." ADD `emailstatus` varchar(300) NOT NULL DEFAULT 'OK'"); echo $modifyoutput; flush();@ob_flush(); - } - } -} - -// Add the reminders tracking fields -function upgrade_token_tables128() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = "SHOW TABLES LIKE '".$dbprefix."tokens%'"; - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".$sv[0]." ADD `remindersent` VARCHAR(17) DEFAULT 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE ".$sv[0]." ADD `remindercount` INT(11) DEFAULT 0"); echo $modifyoutput; flush();@ob_flush(); - } - } -} - - - - -function fixLanguageConsistencyAllSurveys() -{ - $surveyidquery = "SELECT sid,additional_languages FROM ".db_table_name('surveys'); - $surveyidresult = db_execute_num($surveyidquery); - while ( $sv = $surveyidresult->FetchRow() ) - { - FixLanguageConsistency($sv[0]); - } -} - - -// Add the reminders tracking fields -function upgrade_token_tables134() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = "SHOW TABLES LIKE '".$dbprefix."tokens%'"; - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".$sv[0]." ADD `validfrom` Datetime"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE ".$sv[0]." ADD `validuntil` Datetime"); echo $modifyoutput; flush();@ob_flush(); - } - } -} - -// Add the usesleft field to all existing token tables -function upgrade_token_tables145() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = "SHOW TABLES LIKE '".$dbprefix."tokens%'"; - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ($sv = $surveyidresult->FetchRow()) - { - modify_database("","ALTER TABLE ".$sv[0]." ADD `usesleft` int(11) NOT NULL default '1'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE ".$sv[0]." SET `usesleft`='0' WHERE completed<>'N'"); echo $modifyoutput; flush();@ob_flush(); - } - } -} - - -function fix_mysql_collation() -{ - global $connect, $modifyoutput, $dbprefix; - $sql = 'SHOW TABLE STATUS'; - $result = db_execute_assoc($sql); - if (!$result) { - $modifyoutput .= 'SHOW TABLE - SQL Error'; - } - - while ( $tables = $result->FetchRow() ) { - // Loop through all tables in this database - $table = $tables['Name']; - $tablecollation=$tables['Collation']; - if (strpos($table,'old_')===false && ($dbprefix=='' || ($dbprefix!='' && strpos($table,$dbprefix)!==false))) - { - if ($tablecollation!='utf8_unicode_ci') - { - modify_database("","ALTER TABLE $table COLLATE utf8_unicode_ci"); - echo $modifyoutput; flush();@ob_flush(); - } - - # Now loop through all the fields within this table - $result2 = db_execute_assoc("SHOW FULL COLUMNS FROM ".$table); - while ( $column = $result2->FetchRow()) - { - if ($column['Collation']!= 'utf8_unicode_ci' ) - { - $field_name = $column['Field']; - $field_type = $column['Type']; - $field_default = $column['Default']; - if ($field_default!='NULL') {$field_default="'".$field_default."'";} - # Change text based fields - $skipped_field_types = array('char', 'text', 'enum', 'set'); - - foreach ( $skipped_field_types as $type ) - { - if ( strpos($field_type, $type) !== false ) - { - $modstatement="ALTER TABLE $table CHANGE `$field_name` `$field_name` $field_type CHARACTER SET utf8 COLLATE utf8_unicode_ci"; - if ($type!='text') {$modstatement.=" DEFAULT $field_default";} - modify_database("",$modstatement); - echo $modifyoutput; flush();@ob_flush(); - } - } - } - } - } - } -} - - -function upgrade_survey_tables139() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = db_select_tables_like($dbprefix."survey\_%"); - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - if (strpos($sv[0],$dbprefix."survey_")!==false) - { - modify_database("","ALTER TABLE ".$sv[0]." ADD `lastpage` integer"); echo $modifyoutput; flush();@ob_flush(); - } - } - } -} - -function upgrade_question_attributes142() -{ - global $modifyoutput,$dbprefix, $connect; - $attributequery="Select qid from {$dbprefix}question_attributes where attribute='exclude_all_other' group by qid having count(qid)>1 "; - $questionids = db_select_column($attributequery); - foreach ($questionids as $questionid) - { - //Select all affected question attributes - $attributevalues=db_select_column("SELECT value from {$dbprefix}question_attributes where attribute='exclude_all_other' and qid=".$questionid); - modify_database("","delete from {$dbprefix}question_attributes where attribute='exclude_all_other' and qid=".$questionid); echo $modifyoutput; flush();@ob_flush(); - $record['value']=implode(';',$attributevalues); - $record['attribute']='exclude_all_other'; - $record['qid']=$questionid; - $connect->AutoExecute("{$dbprefix}question_attributes", $record, 'INSERT'); - } -} - -function upgrade_tables143() -{ - global $modifyoutput,$dbprefix, $connect; - - - $aQIDReplacements=array(); - $answerquery = "select a.*, q.sid, q.gid from {$dbprefix}answers a,{$dbprefix}questions q where a.qid=q.qid and q.type in ('L','O','!') and a.default_value='Y'"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) {return "Database Error";} - else - { - while ( $row = $answerresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}defaultvalues (qid, scale_id,language,specialtype,defaultvalue) VALUES ({$row['qid']},0,".db_quoteall($row['language']).",'',".db_quoteall($row['code']).")"); echo $modifyoutput; flush();@ob_flush(); - } - } - - // Convert answers to subquestions - - $answerquery = "select a.*, q.sid, q.gid, q.type from {$dbprefix}answers a,{$dbprefix}questions q where a.qid=q.qid and a.language=q.language and q.type in ('1','A','B','C','E','F','H','K',';',':','M','P','Q')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) {return "Database Error";} - else - { - while ( $row = $answerresult->FetchRow() ) - { - - $insertarray=array(); - if (isset($aQIDReplacements[$row['qid'].'_'.$row['code']])) - { - $insertarray['qid']=$aQIDReplacements[$row['qid'].'_'.$row['code']]; - } - $insertarray['sid']=$row['sid']; - $insertarray['gid']=$row['gid']; - $insertarray['parent_qid']=$row['qid']; - $insertarray['type']=$row['type']; - $insertarray['title']=$row['code']; - $insertarray['question']=$row['answer']; - $insertarray['question_order']=$row['sortorder']; - $insertarray['language']=$row['language']; - $tablename="{$dbprefix}questions"; - $query=$connect->GetInsertSQL($tablename,$insertarray); - modify_database("",$query); echo $modifyoutput; flush();@ob_flush(); - if (!isset($insertarray['qid'])) - { - $aQIDReplacements[$row['qid'].'_'.$row['code']]=$connect->Insert_ID("{$dbprefix}questions","qid"); - $iSaveSQID=$aQIDReplacements[$row['qid'].'_'.$row['code']]; - } - else - { - $iSaveSQID=$insertarray['qid']; - } - if (($row['type']=='M' || $row['type']=='P') && $row['default_value']=='Y') - { - modify_database("","INSERT INTO {$dbprefix}defaultvalues (qid, sqid, scale_id,language,specialtype,defaultvalue) VALUES ({$row['qid']},{$iSaveSQID},0,".db_quoteall($row['language']).",'','Y')"); echo $modifyoutput; flush();@ob_flush(); - } - } - } - // Sanitize data - modify_database("","delete {$dbprefix}answers from {$dbprefix}answers LEFT join {$dbprefix}questions ON {$dbprefix}answers.qid={$dbprefix}questions.qid where {$dbprefix}questions.type in ('1','F','H','M','P','W','Z')"); echo $modifyoutput; flush();@ob_flush(); - - // Convert labels to answers - $answerquery = "select qid ,type ,lid ,lid1, language from {$dbprefix}questions where parent_qid=0 and type in ('1','F','H','M','P','W','Z')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) - { - return "Database Error"; - } - else - { - while ( $row = $answerresult->FetchRow() ) - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}answers (qid, code, answer, sortorder, language, assessment_value) VALUES ({$row['qid']},".db_quoteall($lrow['code']).",".db_quoteall($lrow['title']).",{$lrow['sortorder']},".db_quoteall($lrow['language']).",{$lrow['assessment_value']})"); echo $modifyoutput; flush();@ob_flush(); - //$labelids[] - } - if ($row['type']=='1') - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid1']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}answers (qid, code, answer, sortorder, language, scale_id, assessment_value) VALUES ({$row['qid']},".db_quoteall($lrow['code']).",".db_quoteall($lrow['title']).",{$lrow['sortorder']},".db_quoteall($lrow['language']).",1,{$lrow['assessment_value']})"); echo $modifyoutput; flush();@ob_flush(); - } - } - } - } - - // Convert labels to subquestions - $answerquery = "select * from {$dbprefix}questions where parent_qid=0 and type in (';',':')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) - { - return "Database Error"; - } - else - { - while ( $row = $answerresult->FetchRow() ) - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - $insertarray=array(); - if (isset($aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1'])) - { - $insertarray['qid']=$aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1']; - } - $insertarray['sid']=$row['sid']; - $insertarray['gid']=$row['gid']; - $insertarray['parent_qid']=$row['qid']; - $insertarray['type']=$row['type']; - $insertarray['title']=$lrow['code']; - $insertarray['question']=$lrow['title']; - $insertarray['question_order']=$lrow['sortorder']; - $insertarray['language']=$lrow['language']; - $insertarray['scale_id']=1; - $tablename="{$dbprefix}questions"; - $query=$connect->GetInsertSQL($tablename,$insertarray); - modify_database("",$query); echo $modifyoutput; flush();@ob_flush(); - if (isset($insertarray['qid'])) - { - $aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1']=$connect->Insert_ID("{$dbprefix}questions","qid"); - } - } - } - } - - - - $updatequery = "update {$dbprefix}questions set type='!' where type='W'"; - modify_database("",$updatequery); echo $modifyoutput; flush();@ob_flush(); - $updatequery = "update {$dbprefix}questions set type='L' where type='Z'"; - modify_database("",$updatequery); echo $modifyoutput; flush();@ob_flush(); - - // Now move all non-standard templates to the /upload dir - global $usertemplaterootdir, $standardtemplates,$standardtemplaterootdir; - - if (!$usertemplaterootdir) {die("gettemplatelist() no template directory");} - if ($handle = opendir($standardtemplaterootdir)) - { - while (false !== ($file = readdir($handle))) - { - if (!is_file("$standardtemplaterootdir/$file") && $file != "." && $file != ".." && $file!=".svn" && !isStandardTemplate($file)) - { - if (!rename($standardtemplaterootdir.DIRECTORY_SEPARATOR.$file,$usertemplaterootdir.DIRECTORY_SEPARATOR.$file)) - { - echo "There was a problem moving directory '".$standardtemplaterootdir.DIRECTORY_SEPARATOR.$file."' to '".$usertemplaterootdir.DIRECTORY_SEPARATOR.$file."' due to missing permissions. Please do this manually.
    "; - }; - } - } - closedir($handle); - } - -} - -function upgrade_timing_tables146() -{ - global $modifyoutput,$dbprefix, $connect; - $aTimingTables=$connect->MetaTables('TABLES',false, "%timings"); - foreach ($aTimingTables as $sTable) { - modify_database("","ALTER TABLE {$sTable} CHANGE `interviewTime` `interviewtime` DOUBLE NULL default 0;"); echo $modifyoutput; flush();@ob_flush(); - } -} diff --git a/include/limesurvey/admin/update/upgrade-postgres.php b/include/limesurvey/admin/update/upgrade-postgres.php deleted file mode 100644 index 9befdaf6..00000000 --- a/include/limesurvey/admin/update/upgrade-postgres.php +++ /dev/null @@ -1,687 +0,0 @@ -'||link||''"); echo $modifyoutput; flush();@ob_flush(); - // drop the old link field - modify_database("","ALTER TABLE prefix_assessments DROP COLUMN link"); echo $modifyoutput; flush();@ob_flush(); - // change the primary index to include language - modify_database("","ALTER TABLE prefix_assessments DROP CONSTRAINT prefix_assessments_pkey"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE prefix_assessments ADD CONSTRAINT prefix_assessments_pkey PRIMARY KEY (id,language)"); echo $modifyoutput; flush();@ob_flush(); - - // Add new fields to survey language settings - modify_database("","ALTER TABLE prefix_surveys_languagesettings ADD surveyls_url character varying(255)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE prefix_surveys_languagesettings ADD surveyls_endtext text"); echo $modifyoutput; flush();@ob_flush(); - - // copy old URL fields ot language specific entries - modify_database("","update prefix_surveys_languagesettings set surveyls_url=(select url from prefix_surveys where sid=prefix_surveys_languagesettings.surveyls_survey_id)"); echo $modifyoutput; flush();@ob_flush(); - // drop old URL field - modify_database("","ALTER TABLE prefix_surveys DROP COLUMN url"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","update prefix_settings_global set stg_value='133' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 134) - { - modify_database("","ALTER TABLE prefix_surveys ADD usetokens char(1) NOT NULL default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE prefix_surveys ADD attributedescriptions TEXT;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE prefix_surveys DROP COLUMN attribute1"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE prefix_surveys DROP COLUMN attribute2"); echo $modifyoutput; flush();@ob_flush(); - upgrade_token_tables134(); - modify_database("","update prefix_settings_global set stg_value='134' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - - } - if ($oldversion < 135) - { - modify_database("","ALTER TABLE prefix_question_attributes ALTER COLUMN value TYPE text"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update prefix_settings_global set stg_value='135' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 136) - { - modify_database("","ALTER TABLE prefix_quota ADD autoload_url integer NOT NULL DEFAULT 0"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","CREATE TABLE prefix_quota_languagesettings ( - quotals_id serial NOT NULL, - quotals_quota_id integer NOT NULL DEFAULT 0, - quotals_language character varying(45) NOT NULL DEFAULT 'en'::character varying, - quotals_name character varying(200), - quotals_message text NOT NULL, - quotals_url character varying(255), - quotals_urldescrip character varying(255));"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE ONLY prefix_quota_languagesettings - ADD CONSTRAINT prefix_quota_languagesettings_pkey PRIMARY KEY (quotals_id);"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE ONLY prefix_users ADD CONSTRAINT prefix_users_pkey PRIMARY KEY (uid)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE ONLY prefix_users ADD CONSTRAINT prefix_user_name_key UNIQUE (users_name)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","update prefix_settings_global set stg_value='136' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - - } - - if ($oldversion < 137) //New date format specs - { - modify_database("", "ALTER TABLE prefix_surveys_languagesettings ADD surveyls_dateformat integer NOT NULL default 1"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_users ADD \"dateformat\" integer NOT NULL default 1"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "update prefix_surveys set startdate=null where usestartdate='N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "update prefix_surveys set expires=null where useexpiry='N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys DROP COLUMN usestartdate"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys DROP COLUMN useexpiry"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "update prefix_settings_global set stg_value='137' where stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 138) //Modify quota field - { - modify_database("", "ALTER TABLE prefix_quota_members ALTER COLUMN code TYPE character varying(11)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='138' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 139) //Modify quota field - { - upgrade_survey_tables139(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='139' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 140) //Modify surveys table - { - modify_database("", "ALTER TABLE prefix_surveys ADD \"emailresponseto\" TEXT"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='140' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 141) //Modify surveys table - { - modify_database("", "ALTER TABLE prefix_surveys ADD \"tokenlength\" smallint NOT NULL DEFAULT '15'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='141' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 142) //Modify surveys table - { - upgrade_question_attributes142(); - modify_database("", "ALTER TABLE prefix_surveys ALTER COLUMN \"startdate\" TYPE timestamp"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ALTER COLUMN \"expires\" TYPE timestamp"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_question_attributes SET value='0' WHERE value='false'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_question_attributes SET value='1' WHERE value='true'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='142' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 143) //Modify surveys table - { - modify_database("", "ALTER TABLE prefix_questions ADD parent_qid integer NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_answers ADD scale_id smallint NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_questions ADD scale_id smallint NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_questions ADD same_default smallint NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_answers DROP CONSTRAINT prefix_answers_pkey"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_answers ADD CONSTRAINT prefix_answers_pkey PRIMARY KEY (qid,code,language,scale_id)"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("", "CREATE TABLE prefix_defaultvalues ( - qid integer NOT NULL default '0', - scale_id integer NOT NULL default '0', - sqid integer NOT NULL default '0', - language character varying(20) NOT NULL, - specialtype character varying(20) NOT NULL default '', - defaultvalue text)"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE prefix_defaultvalues ADD CONSTRAINT prefix_defaultvalues_pkey PRIMARY KEY (qid , scale_id, language, specialtype, sqid)"); echo $modifyoutput; flush();@ob_flush(); - - // -Move all 'answers' that are subquestions to the questions table - // -Move all 'labels' that are answers to the answers table - // -Transscribe the default values where applicable - // -Move default values from answers to questions - upgrade_tables143(); - - modify_database("", "ALTER TABLE prefix_answers DROP COLUMN default_value"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_questions DROP COLUMN lid"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_questions DROP COLUMN lid1"); echo $modifyoutput; flush();@ob_flush(); - // add field for timings and table for extended conditions - modify_database("", "CREATE TABLE prefix_sessions( - sesskey character varying( 64 ) NOT NULL DEFAULT '', - expiry TIMESTAMP NOT NULL , - expireref character varying( 250 ) DEFAULT '', - created TIMESTAMP NOT NULL , - modified TIMESTAMP NOT NULL , - sessdata TEXT DEFAULT '', - PRIMARY KEY ( sesskey ) - );"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "create INDEX sess2_expiry on prefix_sessions( expiry );"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "create INDEX sess2_expireref on prefix_sessions ( expireref );"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("", "UPDATE prefix_settings_global SET stg_value='143' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - - - - } - if ($oldversion < 145) - { - modify_database("", "ALTER TABLE prefix_surveys ADD savetimings CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD \"showXquestions\" CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD showgroupinfo CHAR(1) NULL default 'B'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD shownoanswer CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD showqnumcode CHAR(1) NULL default 'X'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD bouncetime bigint NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD bounceprocessing character varying(1) NULL default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD bounceaccounttype character varying(4) NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD bounceaccounthost character varying(200) NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD bounceaccountpass character varying(100) NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD bounceaccountencryption character varying(3) NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD bounceaccountuser character varying(200) NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD showwelcome CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD showprogress CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD allowjumps CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD navigationdelay smallint NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD nokeyboard char(1) default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys ADD alloweditaftercompletion char(1) default 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "CREATE TABLE prefix_survey_permissions ( - sid integer DEFAULT 0 NOT NULL, - uid integer DEFAULT 0 NOT NULL, - permission character varying(20) NOT NULL, - create_p integer DEFAULT 0 NOT NULL, - read_p integer DEFAULT 0 NOT NULL, - update_p integer DEFAULT 0 NOT NULL, - delete_p integer DEFAULT 0 NOT NULL, - import_p integer DEFAULT 0 NOT NULL, - export_p integer DEFAULT 0 NOT NULL - );"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE ONLY prefix_survey_permissions ADD CONSTRAINT prefix_survey_permissions_pkey PRIMARY KEY (sid,uid,permission);"); echo $modifyoutput; flush();@ob_flush(); - upgrade_surveypermissions_table145(); - - // drop the old survey rights table - modify_database("", "DROP TABLE prefix_surveys_rights"); echo $modifyoutput; flush();@ob_flush(); - - // Add new fields for email templates - modify_database("", "ALTER TABLE prefix_surveys_languagesettings ADD email_admin_notification_subj character varying(255)"); - modify_database("", "ALTER TABLE prefix_surveys_languagesettings ADD email_admin_responses_subj character varying(255)"); - modify_database("", "ALTER TABLE prefix_surveys_languagesettings ADD email_admin_notification text"); - modify_database("", "ALTER TABLE prefix_surveys_languagesettings ADD email_admin_responses text"); - - //Add index to questions table to speed up subquestions - modify_database("", "create INDEX parent_qid_idx on prefix_questions( parent_qid );"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("", "ALTER TABLE prefix_surveys ADD emailnotificationto text DEFAULT NULL"); echo $modifyoutput; flush();@ob_flush(); - upgrade_survey_table145(); - modify_database("", "ALTER TABLE prefix_surveys DROP COLUMN notification"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","ALTER TABLE prefix_conditions ALTER COLUMN method TYPE CHAR(5)"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","UPDATE prefix_surveys set private='N' where private is NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE prefix_surveys RENAME COLUMN private TO anonymized;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE prefix_surveys ALTER COLUMN anonymized TYPE char(1);"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE prefix_surveys ALTER COLUMN anonymized SET DEFAULT 'N';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE prefix_surveys ALTER COLUMN anonymized SET NOT NULL ;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "CREATE TABLE prefix_failed_login_attempts ( - id serial PRIMARY KEY NOT NULL, - ip character varying(37) NOT NULL, - last_attempt character varying(20) NOT NULL, - number_attempts integer NOT NULL - );"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_surveys_languagesettings ADD surveyls_numberformat integer default 0 NOT NULL"); echo $modifyoutput; flush();@ob_flush(); - upgrade_token_tables145(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='145' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 146) //Modify surveys table - { - upgrade_timing_tables146(); - modify_database("", "INSERT into prefix_survey_permissions (sid,uid,permission,read_p,update_p) SELECT sid,owner_id,'translations','1','1' from prefix_surveys"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='146' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - if ($oldversion < 147) - { - modify_database("", "ALTER TABLE prefix_users ADD templateeditormode character varying(7) NOT NULL DEFAULT 'default'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "ALTER TABLE prefix_users ADD questionselectormode character varying(7) NOT NULL DEFAULT 'default'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='147' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 148) - { - modify_database("","ALTER TABLE prefix_users ADD participant_panel integer NOT NULL default '0'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","CREATE TABLE prefix_participants ( - participant_id character varying( 50 ) NOT NULL, - firstname character varying( 40 ) NOT NULL, - lastname character varying( 40 ) NOT NULL, - email character varying( 80 ) NOT NULL, - language character varying( 2 ) NOT NULL, - blacklisted character varying( 1 ) NOT NULL, - owner_uid integer NOT NULL, - PRIMARY KEY (participant_id) - );"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","CREATE TABLE prefix_participant_attribute ( - participant_id character varying( 50 ) NOT NULL, - attribute_id integer NOT NULL, - value integer NOT NULL, - PRIMARY KEY (participant_id,attribute_id) - );"); echo $modifyoutput; flush();@ob_flush(); - - modify_database("",'CREATE TABLE prefix_participant_attribute_names ( - "attribute_id" serial NOT NULL, - "attribute_type" character varying( 30 ) NOT NULL, - "visible" character varying( 5 ) NOT NULL, - CONSTRAINT prefix_participant_attribute_names_pkey PRIMARY KEY (attribute_id, attribute_type) - );'); echo $modifyoutput; flush();@ob_flush(); - - modify_database("",'CREATE TABLE prefix_participant_attribute_names_lang ( - "id" serial PRIMARY KEY NOT NULL, - "attribute_id" integer NOT NULL, - "attribute_name" character varying( 30 ) NOT NULL, - "lang" character varying( 20 ) NOT NULL - );'); echo $modifyoutput; flush();@ob_flush(); - - modify_database("",'CREATE TABLE prefix_participant_attribute_values ( - "value_id" serial PRIMARY KEY NOT NULL, - "attribute_id" integer NOT NULL, - "value" character varying( 20 ) NOT NULL - );'); echo $modifyoutput; flush();@ob_flush(); - - modify_database("",'CREATE TABLE prefix_participant_shares ( - "participant_id" character varying( 50 ) NOT NULL, - "shared_uid" integer NOT NULL, - "date_added" date NOT NULL, - "can_edit" character varying( 5 ) NOT NULL, - CONSTRAINT prefix_participant_shares_pkey PRIMARY KEY (participant_id,shared_uid) - );'); echo $modifyoutput; flush();@ob_flush(); - - modify_database("","CREATE TABLE prefix_survey_links ( - participant_id character varying( 50 ) NOT NULL, - token_id integer NOT NULL, - survey_id integer NOT NULL, - date_created date NOT NULL, - PRIMARY KEY (participant_id,token_id,survey_id) - );"); echo $modifyoutput; flush();@ob_flush(); - - // add language field to question_attributes table - modify_database("","ALTER TABLE prefix_question_attributes ADD language character varying(20)"); echo $modifyoutput; flush();@ob_flush(); - upgrade_question_attributes148(); - fixSubquestions(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='148' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - - } - - if ($oldversion < 150) - { - modify_database("","ALTER TABLE prefix_questions ADD relevance TEXT;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='150' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 151) - { - modify_database("","ALTER TABLE prefix_groups ADD randomization_group character varying(20) NOT NULL DEFAULT '';"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='151' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 152) - { - modify_database("","CREATE INDEX question_attributes_idx3 ON prefix_question_attributes (attribute);"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='152' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 153) - { - modify_database("",'CREATE TABLE prefix_expression_errors ( - "id" serial PRIMARY KEY NOT NULL, - errortime character varying(50) DEFAULT NULL, - sid integer DEFAULT NULL, - gid integer DEFAULT NULL, - qid integer DEFAULT NULL, - gseq integer DEFAULT NULL, - qseq integer DEFAULT NULL, - "type" character varying(50) , - eqn text, - prettyprint text - );'); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='153' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 154) - { - modify_database("","ALTER TABLE prefix_groups ADD grelevance text DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("", "UPDATE prefix_settings_global SET stg_value='154' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 155) - { - modify_database("","ALTER TABLE prefix_surveys ADD googleanalyticsstyle char(1) DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE prefix_surveys ADD googleanalyticsapikey character varying(25) DEFAULT NULL;"); echo $modifyoutput; flush();@ob_flush(); - modify_database("",'ALTER TABLE prefix_surveys RENAME COLUMN "showXquestions" TO "showxquestions";'); - modify_database("","UPDATE prefix_settings_global SET stg_value='155' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - if ($oldversion < 155.6) - { - LimeExpressionManager::UpgradeConditionsToRelevance(); - modify_database("","UPDATE prefix_settings_global SET stg_value='155.6' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();@ob_flush(); - } - - fixLanguageConsistencyAllSurveys(); - echo '

    '.sprintf($clang->gT('Database update finished (%s)'),date('Y-m-d H:i:s')).'
    '; - return true; -} - -function upgrade_token_tables128() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = db_select_tables_like($dbprefix."tokens%"); - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".$sv['0']." ADD remindersent character varying(17) DEFAULT 'N'"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE ".$sv['0']." ADD remindercount INTEGER DEFAULT 0"); echo $modifyoutput; flush();@ob_flush(); - } - } -} - -function fixLanguageConsistencyAllSurveys() -{ - - $surveyidquery = "SELECT sid, additional_languages FROM ".db_table_name('surveys'); - $surveyidresult = db_execute_num($surveyidquery); - while ( $sv = $surveyidresult->FetchRow() ) - { - FixLanguageConsistency($sv[0]); - } -} - -function upgrade_token_tables134() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = db_select_tables_like($dbprefix."tokens%"); - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".$sv[0]." ADD validfrom timestamp"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","ALTER TABLE ".$sv[0]." ADD validuntil timestamp"); echo $modifyoutput; flush();@ob_flush(); - } - } -} -// Add the usesleft field to all existing token tables -function upgrade_token_tables145() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = db_select_tables_like($dbprefix."tokens%"); - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".$sv[0]." ADD usesleft integer DEFAULT 1 NOT NULL"); echo $modifyoutput; flush();@ob_flush(); - modify_database("","UPDATE ".$sv[0]." SET usesleft=0 WHERE completed<>'N'"); echo $modifyoutput; flush();@ob_flush(); - } - } -} - -function upgrade_survey_tables139() -{ - global $modifyoutput,$dbprefix; - $surveyidquery = db_select_tables_like($dbprefix."survey\_%"); - $surveyidresult = db_execute_num($surveyidquery); - if (!$surveyidresult) {return "Database Error";} - else - { - while ( $sv = $surveyidresult->FetchRow() ) - { - modify_database("","ALTER TABLE ".$sv[0]." ADD lastpage integer"); echo $modifyoutput; flush();@ob_flush(); - } - } -} - -function upgrade_question_attributes142() -{ - global $modifyoutput,$dbprefix, $connect; - $attributequery="Select qid from {$dbprefix}question_attributes where attribute='exclude_all_other' group by qid having count(qid)>1 "; - $questionids = db_select_column($attributequery); - foreach ($questionids as $questionid) - { - //Select all affected question attributes - $attributevalues=db_select_column("SELECT value from {$dbprefix}question_attributes where attribute='exclude_all_other' and qid=".$questionid); - modify_database("","delete from {$dbprefix}question_attributes where attribute='exclude_all_other' and qid=".$questionid); echo $modifyoutput; flush();@ob_flush(); - $record['value']=implode(';',$attributevalues); - $record['attribute']='exclude_all_other'; - $record['qid']=$questionid; - $connect->AutoExecute("{$dbprefix}question_attributes", $record, 'INSERT'); - } -} - -function upgrade_tables143() -{ - global $modifyoutput,$dbprefix, $connect; - - - $aQIDReplacements=array(); - $answerquery = "select a.*, q.sid, q.gid from {$dbprefix}answers a,{$dbprefix}questions q where a.qid=q.qid and q.type in ('L','O','!') and a.default_value='Y'"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) {return "Database Error";} - else - { - while ( $row = $answerresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}defaultvalues (qid, scale_id,language,specialtype,defaultvalue) VALUES ({$row['qid']},0,".db_quoteall($row['language']).",'',".db_quoteall($row['code']).")"); echo $modifyoutput; flush();@ob_flush(); - } - } - - // Convert answers to subquestions - - $answerquery = "select a.*, q.sid, q.gid, q.type from {$dbprefix}answers a,{$dbprefix}questions q where a.qid=q.qid and a.language=q.language and q.type in ('1','A','B','C','E','F','H','K',';',':','M','P','Q')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) {return "Database Error";} - else - { - while ( $row = $answerresult->FetchRow() ) - { - - $insertarray=array(); - if (isset($aQIDReplacements[$row['qid'].'_'.$row['code']])) - { - $insertarray['qid']=$aQIDReplacements[$row['qid'].'_'.$row['code']]; - } - $insertarray['sid']=$row['sid']; - $insertarray['gid']=$row['gid']; - $insertarray['parent_qid']=$row['qid']; - $insertarray['type']=$row['type']; - $insertarray['title']=$row['code']; - $insertarray['question']=$row['answer']; - $insertarray['question_order']=$row['sortorder']; - $insertarray['language']=$row['language']; - $tablename="{$dbprefix}questions"; - $query=$connect->GetInsertSQL($tablename,$insertarray); - modify_database("",$query); echo $modifyoutput; flush();@ob_flush(); - if (!isset($insertarray['qid'])) - { - $aQIDReplacements[$row['qid'].'_'.$row['code']]=$connect->Insert_ID("{$dbprefix}questions","qid"); - $iSaveSQID=$aQIDReplacements[$row['qid'].'_'.$row['code']]; - } - else - { - $iSaveSQID=$insertarray['qid']; - } - if (($row['type']=='M' || $row['type']=='P') && $row['default_value']=='Y') - { - modify_database("","INSERT INTO {$dbprefix}defaultvalues (qid, sqid, scale_id,language,specialtype,defaultvalue) VALUES ({$row['qid']},{$iSaveSQID},0,".db_quoteall($row['language']).",'','Y')"); echo $modifyoutput; flush();@ob_flush(); - } - } - } - modify_database("","delete from {$dbprefix}answers using {$dbprefix}questions where {$dbprefix}answers.qid={$dbprefix}questions.qid and {$dbprefix}questions.type in ('1','F','H','M','P','W','Z')"); echo $modifyoutput; flush();@ob_flush(); - - // Convert labels to answers - $answerquery = "select qid ,type ,lid ,lid1, language from {$dbprefix}questions where parent_qid=0 and type in ('1','F','H','M','P','W','Z')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) - { - return "Database Error"; - } - else - { - while ( $row = $answerresult->FetchRow() ) - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}answers (qid, code, answer, sortorder, language, assessment_value) VALUES ({$row['qid']},".db_quoteall($lrow['code']).",".db_quoteall($lrow['title']).",{$lrow['sortorder']},".db_quoteall($lrow['language']).",{$lrow['assessment_value']})"); echo $modifyoutput; flush();@ob_flush(); - //$labelids[] - } - if ($row['type']=='1') - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid1']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - modify_database("","INSERT INTO {$dbprefix}answers (qid, code, answer, sortorder, language, scale_id, assessment_value) VALUES ({$row['qid']},".db_quoteall($lrow['code']).",".db_quoteall($lrow['title']).",{$lrow['sortorder']},".db_quoteall($lrow['language']).",1,{$lrow['assessment_value']})"); echo $modifyoutput; flush();@ob_flush(); - } - } - } - } - - // Convert labels to subquestions - $answerquery = "select * from {$dbprefix}questions where parent_qid=0 and type in (';',':')"; - $answerresult = db_execute_assoc($answerquery); - if (!$answerresult) - { - return "Database Error"; - } - else - { - while ( $row = $answerresult->FetchRow() ) - { - $labelquery="Select * from {$dbprefix}labels where lid={$row['lid']} and language=".db_quoteall($row['language']); - $labelresult = db_execute_assoc($labelquery); - while ( $lrow = $labelresult->FetchRow() ) - { - $insertarray=array(); - if (isset($aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1'])) - { - $insertarray['qid']=$aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1']; - } - $insertarray['sid']=$row['sid']; - $insertarray['gid']=$row['gid']; - $insertarray['parent_qid']=$row['qid']; - $insertarray['type']=$row['type']; - $insertarray['title']=$lrow['code']; - $insertarray['question']=$lrow['title']; - $insertarray['question_order']=$lrow['sortorder']; - $insertarray['language']=$lrow['language']; - $insertarray['scale_id']=1; - $tablename="{$dbprefix}questions"; - $query=$connect->GetInsertSQL($tablename,$insertarray); - modify_database("",$query); echo $modifyoutput; flush();@ob_flush(); - if (isset($insertarray['qid'])) - { - $aQIDReplacements[$row['qid'].'_'.$lrow['code'].'_1']=$connect->Insert_ID("{$dbprefix}questions","qid"); - } - } - } - } - - - - - $updatequery = "update {$dbprefix}questions set type='!' where type='W'"; - modify_database("",$updatequery); echo $modifyoutput; flush();@ob_flush(); - $updatequery = "update {$dbprefix}questions set type='L' where type='Z'"; - modify_database("",$updatequery); echo $modifyoutput; flush();@ob_flush(); - - // Now move all non-standard templates to the /upload dir - global $usertemplaterootdir, $standardtemplates,$standardtemplaterootdir; - - if (!$usertemplaterootdir) {die("gettemplatelist() no template directory");} - if ($handle = opendir($standardtemplaterootdir)) - { - while (false !== ($file = readdir($handle))) - { - if (!is_file("$standardtemplaterootdir/$file") && $file != "." && $file != ".." && $file!=".svn" && !isStandardTemplate($file)) - { - if (!rename($standardtemplaterootdir.DIRECTORY_SEPARATOR.$file,$usertemplaterootdir.DIRECTORY_SEPARATOR.$file)) - { - echo "There was a problem moving directory '".$standardtemplaterootdir.DIRECTORY_SEPARATOR.$file."' to '".$usertemplaterootdir.DIRECTORY_SEPARATOR.$file."' due to missing permissions. Please do this manually.
    "; - }; - } - } - closedir($handle); - } - -} - -function upgrade_timing_tables146() -{ - global $modifyoutput,$dbprefix, $connect; - $aTimingTables=$connect->MetaTables('TABLES',false, "%timings"); - foreach ($aTimingTables as $sTable) { - modify_database("","ALTER TABLE {$sTable} RENAME COLUMN \"interviewTime\" TO interviewtime;"); echo $modifyoutput; flush();@ob_flush(); - } -} diff --git a/include/limesurvey/common.php b/include/limesurvey/common.php index 64dda7e0..206be404 100644 --- a/include/limesurvey/common.php +++ b/include/limesurvey/common.php @@ -231,12 +231,12 @@ if ($databasetype=='odbc_mssql' || $databasetype=='odbtp' || $databasetype=='mss //check if database exist and access is not via install script if (!$database_exists && !$cmd_install && (strcasecmp($slashlesspath,str_replace(array("\\", "/"), "", $homedir."install")) != 0)) { - die ("
    The LimeSurvey database does not exist. Please run the install script to create the necessary database."); + die ("
    The queXS/LimeSurvey database does not exist. Please read the README.md file for details of how to create the necessary database."); } // Check if the DB is up to date and access is not via install script if ($dbexistsbutempty && !$cmd_install && (strcasecmp($slashlesspath,str_replace(array("\\", "/"), "", $homedir."install")) != 0)) { - die ("
    The LimeSurvey database does exist but it seems to be empty. Please run the install script to create the necessary tables."); + die ("
    The queXS/LimeSurvey database does exist but it seems to be empty. Please read the README.md to create the necessary tables."); } // Default global values that should not appear in config-defaults.php @@ -260,38 +260,39 @@ if ($sourcefrom == "admin") } // Check if the DB is up to date -If (!$dbexistsbutempty && $sourcefrom=='admin') -{ - $usrow = getGlobalSetting('DBVersion'); - if (floatval($usrow)<$dbversionnumber) - { - $action=''; - require_once($rootdir.'/classes/core/language.php'); - $clang = new limesurvey_lang($defaultlang); - include_once($homedir.'/update/updater.php'); - if(isset($_GET['continue']) && $_GET['continue']==1) - { - echo getAdminHeader(); - CheckForDBUpgrades(); - echo "
    ".$clang->gT("Back to main menu")."
    "; - //updatecheck(); - echo getAdminFooter("http://docs.limesurvey.org", $clang->gT("LimeSurvey online manual")); - } - else - { - echo getAdminHeader(), - '
    ',CheckForDBUpgrades(),'
    ', - getAdminFooter("http://docs.limesurvey.org", $clang->gT("LimeSurvey online manual")) - ; - } - die; - } - - if (is_dir($homedir."/install") && $debug<2) - { - die ("

    Congratulations

    Your installation is now complete. The final step is to remove or rename the LimeSurvey installation directory (admin/install) on your server since it may be a security risk.

    Once this directory has been removed or renamed you will be able to log in to your new LimeSurvey Installation.

    Try again

    "); - } -} +// not for queXS +//if (!$dbexistsbutempty && $sourcefrom=='admin') +//{ +// $usrow = getGlobalSetting('DBVersion'); +// if (floatval($usrow)<$dbversionnumber) +// { +// $action=''; +// require_once($rootdir.'/classes/core/language.php'); +// $clang = new limesurvey_lang($defaultlang); +// include_once($homedir.'/update/updater.php'); +// if(isset($_GET['continue']) && $_GET['continue']==1) +// { +// echo getAdminHeader(); +// CheckForDBUpgrades(); +// echo "
    ".$clang->gT("Back to main menu")."
    "; +// //updatecheck(); +// echo getAdminFooter("http://docs.limesurvey.org", $clang->gT("LimeSurvey online manual")); +// } +// else +// { +// echo getAdminHeader(), +// '
    ',CheckForDBUpgrades(),'
    ', +// getAdminFooter("http://docs.limesurvey.org", $clang->gT("LimeSurvey online manual")) +// ; +// } +// die; +// } +// +// if (is_dir($homedir."/install") && $debug<2) +// { +// die ("

    Congratulations

    Your installation is now complete. The final step is to remove or rename the LimeSurvey installation directory (admin/install) on your server since it may be a security risk.

    Once this directory has been removed or renamed you will be able to log in to your new LimeSurvey Installation.

    Try again

    "); +// } +//} //Admin menus and standards //IF THIS IS AN ADMIN SCRIPT, RUN THE SESSIONCONTROL SCRIPT