<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.limesurvey.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mfaber</id>
	<title>LimeSurvey Manual - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.limesurvey.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mfaber"/>
	<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/Special:Contributions/Mfaber"/>
	<updated>2026-08-10T12:37:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Date_max&amp;diff=66007</id>
		<title>QS:Date max</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Date_max&amp;diff=66007"/>
		<updated>2015-06-08T16:25:00Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Small error in date example.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Maximum date (date_max){{NewIn|2.05}} === &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This question attribute can be used to set the maximum value for the calendar question. It applies to both, the popup-variant of the calendar and the dropdown fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Any date value in format YYYY-MM-DD&#039;&#039;&#039; (eg., 2013-08-24)&lt;br /&gt;
#&#039;&#039;&#039;Any year value&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Reference to another date/time question&#039;&#039;&#039; (eg., dateofbirth)&lt;br /&gt;
#&#039;&#039;&#039;Expressions&#039;&#039;&#039; With expressions, a maximum date can be dynamically calculated. For example, you can use a date from a previous answer + 4 weeks as a maximum for the present question by entering: date(&amp;quot;Y-m-d H:i&amp;quot;,strtotime(departuredate)+4*60*60*24*7).  Another example: you can set a restriction for &amp;quot;allowing any date not later than today&amp;quot; by entering: date(&#039;Y-m-d&#039;). By entering date(&amp;quot;Y-m-d&amp;quot;, strtotime(&amp;quot;now&amp;quot;)+60*60*24*2), dates up to two days from today are allowed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Advanced Question Settings]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Date_min&amp;diff=66006</id>
		<title>QS:Date min</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Date_min&amp;diff=66006"/>
		<updated>2015-06-08T16:24:02Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Small error in date example.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Minimum date (date_min){{NewIn|2.05}} === &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This question attribute can be used to set the minimum value for the date question. It applies to both, the popup-variant of the calendar and the dropdown fields.&lt;br /&gt;
Besides validation via Expression Manager, the slection of days in the popup calender is also limited accordingly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
[[File:date_validation.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Any date value in format YYYY-MM-DD&#039;&#039;&#039; (eg., 2013-08-24)&lt;br /&gt;
#&#039;&#039;&#039;Any year value&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Reference to another date/time question&#039;&#039;&#039;(eg., dateofbirth)&lt;br /&gt;
#&#039;&#039;&#039;Expressions&#039;&#039;&#039; With expressions, a minimum date can be dynamically calculated. For example, you can use a date from a previous answer + 3 days as a minimum for the present question by entering: date(&amp;quot;Y-m-d&amp;quot;,strtotime(departuredate)+3*60*60*24).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Advanced Question Settings]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Date_max&amp;diff=64555</id>
		<title>QS:Date max</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Date_max&amp;diff=64555"/>
		<updated>2015-03-27T20:20:47Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Erronous syntax to set maximum dates corrected.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Maximum date (date_max){{NewIn|2.05}} === &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This question attribute can be used to set the maximum value for the calendar question. It applies to both, the popup-variant of the calendar and the dropdown fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Any date value in format YYYY-MM-DD&#039;&#039;&#039; (eg., 2013-08-24)&lt;br /&gt;
#&#039;&#039;&#039;Any year value&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Reference to another date/time question&#039;&#039;&#039; (eg., dateofbirth)&lt;br /&gt;
#&#039;&#039;&#039;Expressions&#039;&#039;&#039; With expressions, a maximum date can be dynamically calculated. For example, you can use a date from a previous answer + 4 weeks as a maximum for the present question by entering: date(&amp;quot;Y-m-d H:i&amp;quot;,strtotime(departuredate)+4*60*60*24*7).  Another example: you can set a restriction for &amp;quot;allowing any date not later than today&amp;quot; by entering: date(&#039;Y-m-d H:i&#039;). By entering date(&amp;quot;Y-m-d H:i&amp;quot;, strtotime(&amp;quot;now&amp;quot;)+60*60*24*2), dates up to two days from today are allowed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Advanced Question Settings]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=61724</id>
		<title>Exporting results</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=61724"/>
		<updated>2014-05-26T19:48:26Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Modified note on string length limitations and added not regarding plugin settings.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt; &amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Once your survey is active you can start browsing responses and export them. To get to the survey response overview click...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
=Export to application (Excel/.csv)= &amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
On top of the browse responses page several export options are listed, beginning with &#039;&#039;export to CSV/application&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
When exporting results to an application there are several filter options which are separated into:&lt;br /&gt;
*&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
** Set a range like export records X to Y&lt;br /&gt;
** Set to export all records OR completed records only OR incomplete records only&lt;br /&gt;
*&#039;&#039;&#039;Questions&#039;&#039;&#039;&lt;br /&gt;
** Set how the heading should look like: Abbreviated heading OR full headings OR question codes&lt;br /&gt;
** Convert spaces in question text to underscores&lt;br /&gt;
*&#039;&#039;&#039;Answers&#039;&#039;&#039;&lt;br /&gt;
** You can either export full answers or convert answer codes Y and N to a defined variable&lt;br /&gt;
*&#039;&#039;&#039;Format&#039;&#039;&#039;&lt;br /&gt;
** Microsoft Word (latin charset)&lt;br /&gt;
** Microsoft Excel (all charsets)&lt;br /&gt;
** CSV File (all charsets)&lt;br /&gt;
** PDF&lt;br /&gt;
*&#039;&#039;&#039;Column Control&#039;&#039;&#039;&lt;br /&gt;
** Set which answers should be exported. All answers in this list are represented by their [[SGQA identifier|SGQA identifier]]&lt;br /&gt;
** Set which &#039;&#039;&#039;&#039;&#039;token&#039;&#039;&#039;&#039;&#039; data should be exported. This option is only available if your survey is &#039;&#039;&#039;&#039;&#039;not anonymous&#039;&#039;&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
=SPSS Export= &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
To export your response data to SPSS go to Responses &amp;amp; Statistics section and click the icon to export to SPSS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
[[File:spss_toolbar.png]]&lt;br /&gt;
&lt;br /&gt;
==Export and filter data== &amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
When exporting data to SPSS there are two filter options. You can select &#039;&#039;&#039;which data&#039;&#039;&#039; should be selected (&#039;&#039;all records/completed records only/incompleted records only&#039;&#039;) and for &#039;&#039;&#039;which SPSS version&#039;&#039;&#039; the export files will be used (&#039;&#039;prior version 16/16 or up&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
SPSS export includes two files:&lt;br /&gt;
# a syntax file (&#039;&#039;survey_xxxx_SPSS_syntax_file.sps&#039;&#039;)&lt;br /&gt;
# and a data file (&#039;&#039;survey_xxxx_SPSS_data_file.dat&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
After having downloaded these files you can open them using a raw text editor like notepad to take a look how the exported data looks like. The syntax file holds the commands that should be run to import the data. It is like a programming language inside SPSS. The data file contains a comma separated file with all data. If you just import this data as csv via a wizard you loose information about questions, labelsets etc. so we don&#039;t do that.&lt;br /&gt;
&lt;br /&gt;
==Import data in SPSS== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Place the two files in the same folder on your drive (example: &#039;&#039;c:\data\survey_xxxx_SPSS_syntax_file.sps&#039;&#039; and &#039;&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
We have two options now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
1. When using Windows use the explorer to browse to the folder used above. If SPSS is connected to the .sps file extension you can just open the file by double clicking it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
[[File:spss_explorer-screenshot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Now you can just choose Run-&amp;gt;All from the opened window and after some time have your output dataset that you can save as a normal .sav file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
2. Sometimes the easy solution above does not work. Then you can proceed as follows:&lt;br /&gt;
* Open SPSS&lt;br /&gt;
* Choose File-&amp;gt;Open-&amp;gt;Syntax&lt;br /&gt;
* Choose the appropriate file: c:\data\survey_xxxx_SPSS_syntax_file.sps&lt;br /&gt;
* Now the syntax opens.&lt;br /&gt;
* Change the line that reads &#039;&#039;/FILE=&#039;survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039; to include the path where the files are: &#039;&#039;/FILE=&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039;&lt;br /&gt;
* Now mark the whole command text and choose Run-&amp;gt;All from the menu and after a while (please be patient) you have the dataset with all info like questions, labels etc.&lt;br /&gt;
&lt;br /&gt;
=R Export= &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
Feel free to add more information if you have some!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
The freeware software [http://www.r-project.org/ R] is an alternative for SPSS. It is closely linked to the SPSS export in LimeSurvey. Instructions on how to import your dataset in R:&lt;br /&gt;
#Download the syntax file and the data file.&lt;br /&gt;
#Store both files in R work listing (use &#039;&#039;getwd()&#039;&#039; and &#039;&#039;setwd()&#039;&#039; in R command window to set and indicate).&lt;br /&gt;
#Enter &#039;&#039;source(&amp;quot;Surveydata_syntax.R&amp;quot;, encoding = &amp;quot;UTF-8&amp;quot;)&#039;&#039; in R command window.&lt;br /&gt;
&lt;br /&gt;
NB: R-export is a plugin in Limesurvey. If you cannot find the R-export option, make sure the R-export plugin is enabled in the plugin menu.&lt;br /&gt;
&lt;br /&gt;
=STATA-xml Export= &amp;lt;!--T:200--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:201--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;This option is available from version 2.05&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:202--&amp;gt;&lt;br /&gt;
STATA is a commercial data analysis and statistical software package. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:203--&amp;gt;&lt;br /&gt;
This export routine was created to facilitate rapid analysis of data collected with LimeSurvey. It creates an XML-file in STATAs proprietary format, which can be imported independent of the platform STATA is run on. Using this format offeres several advantages over importing plain CSV files:&lt;br /&gt;
*Data sets are fully labelled including variable labels (question, subquestion) and value labels (answers, if applicable).&lt;br /&gt;
*Dates are already transformed to STATAs internal date format and thus can directly be used to calculate difference between days etc.&lt;br /&gt;
*Variable names are, if necessary, converted to a STATA compatible format.&lt;br /&gt;
*Data formats of variables (string, integer, float, etc.) are already set according to the underlying data. (No more numbers encoded as strings!). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:204--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Howto load the file in STATA:&lt;br /&gt;
In STATA&#039;s menu, click on File, Import, xml-data. Choose browse to navigate to your exported file and click &#039;OK&#039;. That should be it.&lt;br /&gt;
If you prefer STATA&#039;s binary .dta files, you can just save your data again in this format.&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:205--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Be aware:&#039;&#039;&#039; &lt;br /&gt;
*Due to a limitation in STATA&#039;s data format, the length of string (text) variables have a maximum of 244 characters (Stata versions 8-12) and 2045 characters (Stata version 13 and above). Please indicate your Stata version in the settings of the export plugin. &lt;br /&gt;
*STATA only supports attaching value labels to numerical values. So to achieve short answers (usually one or two digits) and have these properly labelled, one should use numerical answer-codes in LimeSurvey (1=Totally agree).cIf non-numerical answer codes are used (A=Totally agree), then the complete answer text will be used as answer (eg.: &#039;Totally agree&#039;).&lt;br /&gt;
&lt;br /&gt;
=VVExport ([[File:exportvv.png]]) and VVImport ([[File:importvv.png]])= &amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:206--&amp;gt;&lt;br /&gt;
{{FeatureChange|v=2.05}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
Once you&#039;ve begun collecting responses, there may be occasions where you need to be able to directly edit and modify large quantities of data from your responses table, where a spreadsheet tool may be more useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
VVExport (the &amp;quot;VV&amp;quot; stands for vertical verification) allow you to export your responses table into a .csv file. So long as the general structure of the file remains intact, you can then edit values within it, and the import the file again into your responses table using the &amp;quot;VVImport&amp;quot; feature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Things you should be aware of:&lt;br /&gt;
* If you want to import responses using &amp;quot;VVImport&amp;quot; make sure to check whether the responses should be added to the existing responses or all responses should be overwritten.&lt;br /&gt;
* If you are trying to import responses from a different yet identical (e.g. identical questions/answers from another survey) make sure you are using the correct vv file and that the first two lines of the .csv-file are correct.&lt;br /&gt;
* If you import a survey to your LimeSurvey installation the SID will (if possible) not change. The group id and question id however might change. So you might have to adjust the first two heading lines to match the new group id/question id. See &#039;&#039;&#039;Adjusting vv file headings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== VVExport file version 2 {{NewIn|2.05}} == &amp;lt;!--T:207--&amp;gt;&lt;br /&gt;
This new feature allows different column names than the database. If your question code are unique, then the new version is selected. In the new version each column name uses the [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]]. For example this allows to update an existing survey in different installation  more easily.&lt;br /&gt;
&lt;br /&gt;
==Exporting a VV survey file== &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
[[File:limesurveyExportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
When you choose to export responses using VVExport you will be given the option to choose which survey to be exported, whether you want to export all responses or complete responses only or incomplete responses only. The file extension allows you to choose which extension the exported file will have. For easy use .csv should be chosen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
A &#039;vv survey file&#039; allows you to import the responses to a survey when the question/answer combinations have changed. Effectively this allows you to add or remove questions in an active survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Clicking on &amp;quot;Export a VV survey file&amp;quot; will then produce a tab delimited file that can be opened by Excel or similar style spreadsheet program. The first two rows of the spreadsheet are the column labels. The first row is a &amp;quot;human readable&amp;quot; column heading that details the name of the question/answer field. The second row is the internal PHP/database column name for that response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
You should not modify the first two rows of this spreadsheet if you want to be able to &amp;quot;import&amp;quot; the data back into LimeSurvey at a later point.&lt;br /&gt;
&lt;br /&gt;
===Exporting a VV survey file {{NewIn|v=2.05}}=== &amp;lt;!--T:208--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:209--&amp;gt;&lt;br /&gt;
{{FeatureStarting|v=2.05}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:210--&amp;gt;&lt;br /&gt;
[[File:VV2-export-en.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:211--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Export survey&#039;&#039;&#039; : The survey ID to be exported (read-only)&lt;br /&gt;
* &#039;&#039;&#039;Export&#039;&#039;&#039; : The completion state of the responses to be exported&lt;br /&gt;
* &#039;&#039;&#039;File extension&#039;&#039;&#039; : The file extension. The file is a TSV ([[wikipedia:Tab-separated_values|Tab-separated values]]) file. For easy opening in MS-Excel set the extension to .txt, with LibreOffice, OpenOffice or other spreadsheet program you can leave it to .csv.&lt;br /&gt;
* &#039;&#039;&#039;VV export version&#039;&#039;&#039; : The 1.0 version uses database column headers, version 2.0 uses [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]]. Version 2.0 is selected by default if all of your question code are unique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:212--&amp;gt;&lt;br /&gt;
The first two rows of the spreadsheet are the column labels. The first row is a &amp;quot;human readable&amp;quot; column heading that details the name of the question. The second row is the real column name (Internal DB- or Qcode-name) for that response.&lt;br /&gt;
&lt;br /&gt;
==Editing a VV survey file== &amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
When a .vv file has been successfully exported you can use a spreadsheet tool to open and edit the file. If you have to choose a column separator when opening the file please use the &amp;quot;Tab&amp;quot; character. If you are using non-ASCII characters make sure you set &amp;quot;UTF-8&amp;quot; as character set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
{{Alert|If you are using Microsoft Excel to edit the exported vv file, you should know that excel destroys the original data structure of the file. This causes an error when you try to re-import the edited .vv file.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
By default the first two rows of the .vv file are headers. If needed you can remove the first line to have a real TSV file. There are different use cases for importing a .vv file so we will differentiate between adding new responses to a survey and overwriting all responses of the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
Example structure of a .vv file:&lt;br /&gt;
&lt;br /&gt;
===VV version 1 TSV file=== &amp;lt;!--T:213--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:214--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	Token	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage	token	46492X40X1991&lt;br /&gt;
183	09.11.11 11:44	3	de	jsfhusdgqfygqsy	4&lt;br /&gt;
184	09.11.11 11:53	3	de	sdfhsifgsyergze	2&lt;br /&gt;
190	09.11.11 11:44	3	de	qsdqshkfhkdsjhj	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VV version 2 TSV file=== &amp;lt;!--T:215--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:216--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	Token	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage	token	QCODE&lt;br /&gt;
183	09.11.11 11:44	3	de	jsfhusdgqfygqsy	4&lt;br /&gt;
184	09.11.11 11:53	3	de	sdfhsifgsyergze	2&lt;br /&gt;
190	09.11.11 11:44	3	de	qsdqshkfhkdsjhj	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:217--&amp;gt;&lt;br /&gt;
Here SQGA identifier are not used - instead Qcode variable naming &amp;lt;code&amp;gt;QCODE&amp;lt;/code&amp;gt; is used in the second line.&lt;br /&gt;
&lt;br /&gt;
===Reserved names=== &amp;lt;!--T:218--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:219--&amp;gt;&lt;br /&gt;
.VV file uses left and right brackets for reserved names, when importing this string is replaced by :&lt;br /&gt;
* &amp;lt;code&amp;gt;{question_not_shown}&amp;lt;/code&amp;gt; : NULL value in database. LimeSurvey use [empty string] for not answered question, and NULL value for question not shown (by Expression manager or max step in survey).&lt;br /&gt;
* &amp;lt;code&amp;gt;{quote}&amp;lt;/code&amp;gt; : &amp;quot; (a double quote)&lt;br /&gt;
* &amp;lt;code&amp;gt;{cr}&amp;lt;/code&amp;gt; : Carriage return&lt;br /&gt;
* &amp;lt;code&amp;gt;{newline}&amp;lt;/code&amp;gt; : A new line&lt;br /&gt;
* &amp;lt;code&amp;gt;{lbrace}&amp;lt;/code&amp;gt; : Left bracket (for example, if you want to have {cr} in response : use &amp;lt;code&amp;gt;{lbrace}cr}&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
===VV Version 1 editing=== &amp;lt;!--T:220--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Adding new responses to the existing responses of a survey==== &amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
This is not supported for version 1 of the format as it easily can lead to various problems including data being imported into the wrong columns. The version 1 of the .vv file was always meant for vertical verification of data in an external tool like Excel, not as a mean to pull together data from different source (like the same survey running on another server).&lt;br /&gt;
&lt;br /&gt;
====Modify all responses of a survey==== &amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
If you want to modify responses of survey you can just add the edit the file. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
Step 1: Open the file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:221--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage		46492X40X1991&lt;br /&gt;
183	09.11.11 11:44	3	de	4&lt;br /&gt;
184	09.11.11 11:53	3	de	2&lt;br /&gt;
190	09.11.11 11:44	3	de	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
Step 2: Modify responses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:222--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage		46492X40X1991&lt;br /&gt;
1000	09.11.11 11:44	3	de	3&lt;br /&gt;
1001	09.11.11 11:53	3	de	3&lt;br /&gt;
1002	09.11.11 11:44	3	de	3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
You can then import the survey, make sure to override the existing responses (see &amp;quot;Importing a VV survey file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==Importing a VV survey file== &amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
[[File:LimeSurveyImportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
As long as the first two lines are intact, you can then import the data in your vv survey file back into an active LimeSurvey survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
If you used Microsoft Excel to edit the exported vv file, the data structure of this file may be corrupted, so LimeSurvey is not able to import the edited file. You can try the following workaround to get the import working without an error:&lt;br /&gt;
*Open your exported vv file in Excel and do your changes (I guess you already did that)&lt;br /&gt;
*Save it as tab-separated text file (It creates a new file with the extension .txt)&lt;br /&gt;
*Do another &amp;quot;clean&amp;quot; vv export from LimeSurvey&lt;br /&gt;
*Open this new exported vv file with a texteditor like notepad or something else (I used textwrangler on mac)&lt;br /&gt;
*Press CTRL + A to mark all of the content and delete it&lt;br /&gt;
*Open the Excel edited vv file (the tab separated .txt file) with a texteditor and press CTRL + A to mark all of the content&lt;br /&gt;
*Press CTRL + C to copy the content and paste it into the new (now empty) vv file&lt;br /&gt;
*Press CTRL + S to save the file as it is (as .csv)&lt;br /&gt;
*Now try to import this file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Then, from the browse screen, choose the &amp;quot;Import a VV Survey file&amp;quot; icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
The &amp;quot;Import a VV Survey File&amp;quot; screen needs you to choose the &amp;quot;vvexport&amp;quot; file you are importing. If you choose to &amp;quot;Exclude Record IDs&amp;quot; the records will be imported and brand new Record ID&#039;s will be generated for them (use this option for the use case &amp;quot;Adding new responses to the existing responses of a survey&amp;quot;). If you un-check this box, then the original record id&#039;s will be imported (use this option for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
There are a range of options you can choose that tell LimeSurvey how to deal with double or multiple entries.&lt;br /&gt;
*Report an error (and skip the new record).&lt;br /&gt;
*Renumber the new record&lt;br /&gt;
*Replace the existing record (uses this for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===Importing a VV survey file {{NewIn|2.05}}=== &amp;lt;!--T:227--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:228--&amp;gt;&lt;br /&gt;
[[File:VV2-import-en.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:229--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;File&#039;&#039;&#039; : Select the file to be uploaded. The file must be a [[wikipedia:Tab-separated_values|TSV file]]: A text file with each column separated by TAB.&lt;br /&gt;
* &#039;&#039;&#039;Exclude record IDs?&#039;&#039;&#039; : If &#039;id&#039; column exist in the file you can exclude this line or not. If this setting is checked then a new record is added for each line of the .vv file. If unchecked you can choose:&lt;br /&gt;
* &#039;&#039;&#039;When an imported record matches an existing record ID&#039;&#039;&#039;:&lt;br /&gt;
** &#039;&#039;skip&#039;&#039; : Report and skip the new record. After upload you will see if the record already existed - if it existed it&#039;s not imported.&lt;br /&gt;
** &#039;&#039;renumber&#039;&#039; : Renumber the new record. A new record is added to the response table with answer of the VV file.&lt;br /&gt;
** &#039;&#039;replace&#039;&#039; : Replace the existing record. The old record is deleted and completely replaced by the record from the VV file&lt;br /&gt;
** &#039;&#039;replaceanswer&#039;&#039; : Replace response details from the file in the existing record. The old record is updated with the new response from the VV file. This allow to replace only one question in the response table.&lt;br /&gt;
* &#039;&#039;&#039;Import as not finalized response?&#039;&#039;&#039; : If checked the submitdate is set to NULL, so the response is set to not completed.&lt;br /&gt;
* &#039;&#039;&#039;Character set of the file&#039;&#039;&#039; : You can choose the character set of the file - the default and recommended value is UTF-8 but some spreadsheet program don&#039;t allow to choose a character set.&lt;br /&gt;
* &#039;&#039;&#039;First line contains question codes&#039;&#039;&#039; : By default VV file first line contain human readable question, the real column names are in the second line. This allow to use the first line as the real column names.&lt;br /&gt;
* &#039;&#039;&#039;Force import&#039;&#039;&#039; : If the question codes are not found in the database name or in [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]] then columns are assigned depending of order. This can be used to import VV file from different LimeSurvey instance but each survey must be exactly the same. We strongly recommend to use this only if you know what you are doing. It can be very dangerous and lead to results ending up in the wrong column.&lt;br /&gt;
&lt;br /&gt;
=Other export options= &amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Export a single response== &amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
If you want to export an individual response, you can do it in 3 ways:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
1. Login to limesurvey admin backend, choose your survey, goto &amp;quot;Edit survey settings&amp;quot; -&amp;gt; &amp;quot;Notification and data management&amp;quot; and make sure you receive basic email notifications.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
Every time someone has completed a survey, you will receive an email with a link: &amp;quot;Click the following link to see the individual response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
This will take you to a page with a button above the data saying &amp;quot;Export this response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
2. Login to limesurvey admin backend, choose your survey and &amp;quot;Browse responses for this survey&amp;quot;. Click on &amp;quot;Display responses&amp;quot; and the id number you want to export in the left column. Then you can click on &amp;quot;Export this survey&amp;quot; above the data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
3. Login to limesurvey admin backend, choose your survey and &amp;quot;Export results to application&amp;quot;. In the last field above &amp;quot;Export data&amp;quot; you can choose which entry you want to export.&lt;br /&gt;
&lt;br /&gt;
==Match responses from different surveys== &amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
If you want to track survey responses for particular individuals over time, LimeSurvey can help you do that. A possible use case is to track group responses before and after the group takes a particular seminar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
The steps to implementing this are as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:143--&amp;gt;&lt;br /&gt;
1. Create the survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:144--&amp;gt;&lt;br /&gt;
2. Make sure the survey is non-anonymous and uses tokens. To create a non-anonymous survey:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:145--&amp;gt;&lt;br /&gt;
a - Click on the icon General settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:147--&amp;gt;&lt;br /&gt;
b - Then under the Tokens tab select &amp;quot;No&amp;quot; for Anonymized responses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:149--&amp;gt;&lt;br /&gt;
3. Activate the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:150--&amp;gt;&lt;br /&gt;
When you activate the survey, click on the &amp;quot;switch to closed-access mode&amp;quot; button to create the token table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:151--&amp;gt;&lt;br /&gt;
[[File:switch_to_closed.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:152--&amp;gt;&lt;br /&gt;
4. Populate the tokens table with whatever method you wish (follow the instructions found at the [[Tokens]] page ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:153--&amp;gt;&lt;br /&gt;
5. Export the survey results and make sure you include the token information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:154--&amp;gt;&lt;br /&gt;
To export click &#039;&#039;browse results&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:155--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:156--&amp;gt;&lt;br /&gt;
...and then &#039;&#039;export&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:157--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:158--&amp;gt;&lt;br /&gt;
Remember to choose one or more elements from the token table to associate with the survey responses:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:159--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:160--&amp;gt;&lt;br /&gt;
6. When you run the survey again, which can easily be done by copying the survey and tokens table using export/import, just repeat the steps, and make sure the same query is used to build the csv token import file.&lt;br /&gt;
&lt;br /&gt;
=Problems &amp;amp; Solutions= &amp;lt;!--T:161--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Excel== &amp;lt;!--T:162--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Modifying responses in Excel prior to Import=== &amp;lt;!--T:163--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:164--&amp;gt;&lt;br /&gt;
In order to make multiple changes to responses, you may choose to Export and open a file in Excel. Make changes to the data (other than the top lines) and then save as a .txt file. If you save as .csv, Excel uses comma-delimits which will not import into LimeSurvey. By saving as a .txt file, Excel saves as a tab-delimited file which imports back into LimeSurvey.&lt;br /&gt;
&lt;br /&gt;
===Edit .csv with Excel=== &amp;lt;!--T:165--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:166--&amp;gt;&lt;br /&gt;
In general &#039;&#039;&#039;&#039;&#039;we do not recommend to use Excel to edit the exported .csv files&#039;&#039;&#039;&#039;&#039; because Excel does some changes to the internal data structure which results in a failing import. If you nevertheless want to use Excel you have to set the seperator for Excel to a comma in System Control (Windows Systems):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:167--&amp;gt;&lt;br /&gt;
System Control|Region- Languageoptions|Regional Settings, customize...|Tab Numbers|Digit grouping symbol| replace ; with ,&lt;br /&gt;
&lt;br /&gt;
===Workaround to edit .csv files with Excel=== &amp;lt;!--T:168--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:169--&amp;gt;&lt;br /&gt;
Using Excel for editing questions can prevent you from being able to re-import them. But editing is the way to go if you have more than 5 or so options or ranking options, want to use Excel capabilities like sorting, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:170--&amp;gt;&lt;br /&gt;
This is a partial workaround that seems to work in 1.82-essentially, only use Excel on the part of the file that is the data:&lt;br /&gt;
* Export a question similar to what you would like to reuse as .csv file&lt;br /&gt;
* Open the CSV file in a rawtext editor&lt;br /&gt;
* Copy the part that has the answers to Excel, and parse it with Text to Columns or equivalent.&lt;br /&gt;
* Use the talent of Excel to allow pasting text in columns to paste in 20, 50, 100 answers, as you wish&lt;br /&gt;
* Save the file as Excel CSV, which will likely have no quotes.&lt;br /&gt;
* Open this file in the editor, and Select All, Copy&lt;br /&gt;
* Go back to the file you opened with the rawtext editor&lt;br /&gt;
* Paste over the answers there&lt;br /&gt;
* Save AS, with a different name, maybe one that you can remember for reuse&lt;br /&gt;
* Import this file.&lt;br /&gt;
&lt;br /&gt;
===Excel - export limited to 255 columns=== &amp;lt;!--T:171--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:172--&amp;gt;&lt;br /&gt;
Due to limitations in Excel (versions lower and equal to 2003), LimeSurvey can export only 255 columns at the same time. Microsoft has proposed a [http://support.microsoft.com/kb/272729/en-us workaround as a VB macro].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:173--&amp;gt;&lt;br /&gt;
Although newer spreadsheets (Excel &amp;gt;= 2007, OpenOffice) can display more than 255 columns, the internal module used by LimeSurvey still can&#039;t export more than 255 columns.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:174--&amp;gt;&lt;br /&gt;
Two workarounds are however possible, use one of the following solutions:&lt;br /&gt;
* Either export to CSV and import in your spreadsheet&lt;br /&gt;
* Or use multiple exports (selecting at most 250 columns at a time), then merge the exported results&lt;br /&gt;
&lt;br /&gt;
===Excel/.csv - export fails=== &amp;lt;!--T:175--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:176--&amp;gt;&lt;br /&gt;
If you are unable to export your data to excel or into a .csv file please try to clear your browser cache and cookies.&lt;br /&gt;
&lt;br /&gt;
==CSV== &amp;lt;!--T:177--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSV defaults to 255 columns=== &amp;lt;!--T:178--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:179--&amp;gt;&lt;br /&gt;
When exporting large surveys the GUI by default limits the export to the first 255 columns. To work around this, simply mark all data sets for export.&lt;br /&gt;
&lt;br /&gt;
==SPSS export== &amp;lt;!--T:180--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===General steps=== &amp;lt;!--T:181--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:182--&amp;gt;&lt;br /&gt;
To import the LimeSurvey response data please use the following steps:&lt;br /&gt;
#Click on the &#039;Export to SPSS&#039; icon.&lt;br /&gt;
#From the select boxes select which responses you want to export and your SPSS version.&lt;br /&gt;
#Download both files, the .sps (SPSS syntax command file) and .dat file (data file)&lt;br /&gt;
#Open the .sps file with SPSS by opening SPSS, then select &#039;Choose another type of file&#039; and select the downloaded .sps file.&lt;br /&gt;
#Now an editor opens inside SPS where you can edit the commands in that file. Look for the line that starts with &#039;/FILE=...&#039;&lt;br /&gt;
#Edit that line and adjust the path so it points to your .dat file. Example: Your *.dat file is in c:\temp so set this line to  /FILE=&#039;c:\temp\survey_(xxxx)_SPSS_data_file.dat&#039;&lt;br /&gt;
#Now select all commands inside the editor by pressing CTRL-A.&lt;br /&gt;
#From the SPSS menu select Run/All.&lt;br /&gt;
#Be patient, it will take some time to import all data and labels. Check the status bar for the progress.&lt;br /&gt;
#Done!&lt;br /&gt;
&lt;br /&gt;
===Possible error messages in SPSS=== &amp;lt;!--T:183--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====ERROR. command name:Get Data==== &amp;lt;!--T:184--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:185--&amp;gt;&lt;br /&gt;
If you receive the error message &#039;&#039;ERROR. command name:Get Data. 2267 Unexpected Token missing.&#039;&#039; please edit the forth line of your syntax file so it points to the absolute path of the data file like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:186--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;C:\spss\Data\limesurvey\SPSS\survey_35276_SPSS_data_file.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Error: &amp;quot;Text value unmappable in the current server locale&amp;quot;==== &amp;lt;!--T:187--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:188--&amp;gt;&lt;br /&gt;
This error can happen if you try to open an exported syntax file in SPSS 16. The solution is to force SPSS to interpret the syntax file as unicode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:189--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;Open SPSS. Go to Edit &amp;gt; Options &amp;gt; Character encoding for data and syntax. Change the option to &amp;quot;unicode&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:190--&amp;gt;&lt;br /&gt;
LimeSurvey data can now be exported to SPSS 16 without any problem.&lt;br /&gt;
&lt;br /&gt;
===Define the scale to use for your variable=== &amp;lt;!--T:191--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:192--&amp;gt;&lt;br /&gt;
It is possible to override the default scale used for a variable by setting the question attribute [[Advanced question settings#scale_export|scale_export]] to the appropriate value.&lt;br /&gt;
&lt;br /&gt;
==VV Export/Import== &amp;lt;!--T:193--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VV - Problems with vv import=== &amp;lt;!--T:194--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:195--&amp;gt;&lt;br /&gt;
If you have difficulties importing a vv file, try a Tab-delimited file and it should work fine.&lt;br /&gt;
&lt;br /&gt;
==Other problems and solutions== &amp;lt;!--T:196--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copying responses into a different survey (using tokens)=== &amp;lt;!--T:197--&amp;gt;&lt;br /&gt;
# Create new survey, add a dummy response, export the response file, open in Excel. This creates the format for the new import file.&lt;br /&gt;
# Export the responses from the old survey, including tokens, open in Excel.&lt;br /&gt;
# Use this data to create an Excel worksheet for the standard token file import (eg. Firstname, Lastname, Token, Email address, Email status (OK), Language (En)). Save as .csv and import tokens to the new survey in LimeSurvey.&lt;br /&gt;
# In Excel, copy the response fields from the old survey responses that you want in the new survey (including token) into the appropriate Excel column of the new survey format.&lt;br /&gt;
# Save as .txt file.&lt;br /&gt;
# Use VVImport to import the new data into the new survey.&lt;br /&gt;
# Possible import errors include date format - some system date fields do not allow a NULL value, some do. If the date looks okay but gives an error, use the Excel cell format &amp;quot;2009-12-01&amp;quot;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=61721</id>
		<title>Exporting results</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=61721"/>
		<updated>2014-05-20T21:36:55Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Value labels and better formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt; &amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Once your survey is active you can start browsing responses and export them. To get to the survey response overview click...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
=Export to application (Excel/.csv)= &amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
On top of the browse responses page several export options are listed, beginning with &#039;&#039;export to CSV/application&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
When exporting results to an application there are several filter options which are separated into:&lt;br /&gt;
*&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
** Set a range like export records X to Y&lt;br /&gt;
** Set to export all records OR completed records only OR incomplete records only&lt;br /&gt;
*&#039;&#039;&#039;Questions&#039;&#039;&#039;&lt;br /&gt;
** Set how the heading should look like: Abbreviated heading OR full headings OR question codes&lt;br /&gt;
** Convert spaces in question text to underscores&lt;br /&gt;
*&#039;&#039;&#039;Answers&#039;&#039;&#039;&lt;br /&gt;
** You can either export full answers or convert answer codes Y and N to a defined variable&lt;br /&gt;
*&#039;&#039;&#039;Format&#039;&#039;&#039;&lt;br /&gt;
** Microsoft Word (latin charset)&lt;br /&gt;
** Microsoft Excel (all charsets)&lt;br /&gt;
** CSV File (all charsets)&lt;br /&gt;
** PDF&lt;br /&gt;
*&#039;&#039;&#039;Column Control&#039;&#039;&#039;&lt;br /&gt;
** Set which answers should be exported. All answers in this list are represented by their [[SGQA identifier|SGQA identifier]]&lt;br /&gt;
** Set which &#039;&#039;&#039;&#039;&#039;token&#039;&#039;&#039;&#039;&#039; data should be exported. This option is only available if your survey is &#039;&#039;&#039;&#039;&#039;not anonymous&#039;&#039;&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
=SPSS Export= &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
To export your response data to SPSS go to Responses &amp;amp; Statistics section and click the icon to export to SPSS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
[[File:spss_toolbar.png]]&lt;br /&gt;
&lt;br /&gt;
==Export and filter data== &amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
When exporting data to SPSS there are two filter options. You can select &#039;&#039;&#039;which data&#039;&#039;&#039; should be selected (&#039;&#039;all records/completed records only/incompleted records only&#039;&#039;) and for &#039;&#039;&#039;which SPSS version&#039;&#039;&#039; the export files will be used (&#039;&#039;prior version 16/16 or up&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
SPSS export includes two files:&lt;br /&gt;
# a syntax file (&#039;&#039;survey_xxxx_SPSS_syntax_file.sps&#039;&#039;)&lt;br /&gt;
# and a data file (&#039;&#039;survey_xxxx_SPSS_data_file.dat&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
After having downloaded these files you can open them using a raw text editor like notepad to take a look how the exported data looks like. The syntax file holds the commands that should be run to import the data. It is like a programming language inside SPSS. The data file contains a comma separated file with all data. If you just import this data as csv via a wizard you loose information about questions, labelsets etc. so we don&#039;t do that.&lt;br /&gt;
&lt;br /&gt;
==Import data in SPSS== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Place the two files in the same folder on your drive (example: &#039;&#039;c:\data\survey_xxxx_SPSS_syntax_file.sps&#039;&#039; and &#039;&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
We have two options now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
1. When using Windows use the explorer to browse to the folder used above. If SPSS is connected to the .sps file extension you can just open the file by double clicking it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
[[File:spss_explorer-screenshot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Now you can just choose Run-&amp;gt;All from the opened window and after some time have your output dataset that you can save as a normal .sav file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
2. Sometimes the easy solution above does not work. Then you can proceed as follows:&lt;br /&gt;
* Open SPSS&lt;br /&gt;
* Choose File-&amp;gt;Open-&amp;gt;Syntax&lt;br /&gt;
* Choose the appropriate file: c:\data\survey_xxxx_SPSS_syntax_file.sps&lt;br /&gt;
* Now the syntax opens.&lt;br /&gt;
* Change the line that reads &#039;&#039;/FILE=&#039;survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039; to include the path where the files are: &#039;&#039;/FILE=&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039;&lt;br /&gt;
* Now mark the whole command text and choose Run-&amp;gt;All from the menu and after a while (please be patient) you have the dataset with all info like questions, labels etc.&lt;br /&gt;
&lt;br /&gt;
=R Export= &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
Feel free to add more information if you have some!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
The freeware software [http://www.r-project.org/ R] is an alternative for SPSS. It is closely linked to the SPSS export in LimeSurvey. Instructions on how to import your dataset in R:&lt;br /&gt;
#Download the syntax file and the data file.&lt;br /&gt;
#Store both files in R work listing (use &#039;&#039;getwd()&#039;&#039; and &#039;&#039;setwd()&#039;&#039; in R command window to set and indicate).&lt;br /&gt;
#Enter &#039;&#039;source(&amp;quot;Surveydata_syntax.R&amp;quot;, encoding = &amp;quot;UTF-8&amp;quot;)&#039;&#039; in R command window.&lt;br /&gt;
&lt;br /&gt;
NB: R-export is a plugin in Limesurvey. If you cannot find the R-export option, make sure the R-export plugin is enabled in the plugin menu.&lt;br /&gt;
&lt;br /&gt;
=STATA-xml Export= &amp;lt;!--T:200--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:201--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;This option is available from version 2.05&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:202--&amp;gt;&lt;br /&gt;
STATA is a commercial data analysis and statistical software package. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:203--&amp;gt;&lt;br /&gt;
This export routine was created to facilitate rapid analysis of data collected with LimeSurvey. It creates an XML-file in STATAs proprietary format, which can be imported independent of the platform STATA is run on. Using this format offeres several advantages over importing plain CSV files:&lt;br /&gt;
*Data sets are fully labelled including variable labels (question, subquestion) and value labels (answers, if applicable).&lt;br /&gt;
*Dates are already transformed to STATAs internal date format and thus can directly be used to calculate difference between days etc.&lt;br /&gt;
*Variable names are, if necessary, converted to a STATA compatible format.&lt;br /&gt;
*Data formats of variables (string, integer, float, etc.) are already set according to the underlying data. (No more numbers encoded as strings!). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:204--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Howto load the file in STATA:&lt;br /&gt;
In STATA&#039;s menu, click on File, Import, xml-data. Choose browse to navigate to your exported file and click &#039;OK&#039;. That should be it.&lt;br /&gt;
If you prefer STATA&#039;s binary .dta files, you can just save your data again in this format.&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:205--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Be aware:&#039;&#039;&#039; &lt;br /&gt;
*Due to a limitation in STATA&#039;s data format, the string length has a maximum of 244 characters. Everything &amp;gt; 244 characters is not exported.&lt;br /&gt;
*STATA only supports attaching value labels to numerical values. So to achieve short answers (usually one or two digits) and have these properly labelled, one should use numerical answer-codes in LimeSurvey (1=Totally agree).cIf non-numerical answer codes are used (A=Totally agree), then the complete answer text will be used as answer (eg.: &#039;Totally agree&#039;).&lt;br /&gt;
&lt;br /&gt;
=VVExport ([[File:exportvv.png]]) and VVImport ([[File:importvv.png]])= &amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:206--&amp;gt;&lt;br /&gt;
{{FeatureChange|v=2.05}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
Once you&#039;ve begun collecting responses, there may be occasions where you need to be able to directly edit and modify large quantities of data from your responses table, where a spreadsheet tool may be more useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
VVExport (the &amp;quot;VV&amp;quot; stands for vertical verification) allow you to export your responses table into a .csv file. So long as the general structure of the file remains intact, you can then edit values within it, and the import the file again into your responses table using the &amp;quot;VVImport&amp;quot; feature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Things you should be aware of:&lt;br /&gt;
* If you want to import responses using &amp;quot;VVImport&amp;quot; make sure to check whether the responses should be added to the existing responses or all responses should be overwritten.&lt;br /&gt;
* If you are trying to import responses from a different yet identical (e.g. identical questions/answers from another survey) make sure you are using the correct vv file and that the first two lines of the .csv-file are correct.&lt;br /&gt;
* If you import a survey to your LimeSurvey installation the SID will (if possible) not change. The group id and question id however might change. So you might have to adjust the first two heading lines to match the new group id/question id. See &#039;&#039;&#039;Adjusting vv file headings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== VVExport file version 2 {{NewIn|2.05}} == &amp;lt;!--T:207--&amp;gt;&lt;br /&gt;
This new feature allows different column names than the database. If your question code are unique, then the new version is selected. In the new version each column name uses the [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]]. For example this allows to update an existing survey in different installation  more easily.&lt;br /&gt;
&lt;br /&gt;
==Exporting a VV survey file== &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
[[File:limesurveyExportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
When you choose to export responses using VVExport you will be given the option to choose which survey to be exported, whether you want to export all responses or complete responses only or incomplete responses only. The file extension allows you to choose which extension the exported file will have. For easy use .csv should be chosen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
A &#039;vv survey file&#039; allows you to import the responses to a survey when the question/answer combinations have changed. Effectively this allows you to add or remove questions in an active survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Clicking on &amp;quot;Export a VV survey file&amp;quot; will then produce a tab delimited file that can be opened by Excel or similar style spreadsheet program. The first two rows of the spreadsheet are the column labels. The first row is a &amp;quot;human readable&amp;quot; column heading that details the name of the question/answer field. The second row is the internal PHP/database column name for that response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
You should not modify the first two rows of this spreadsheet if you want to be able to &amp;quot;import&amp;quot; the data back into LimeSurvey at a later point.&lt;br /&gt;
&lt;br /&gt;
===Exporting a VV survey file {{NewIn|v=2.05}}=== &amp;lt;!--T:208--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:209--&amp;gt;&lt;br /&gt;
{{FeatureStarting|v=2.05}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:210--&amp;gt;&lt;br /&gt;
[[File:VV2-export-en.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:211--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Export survey&#039;&#039;&#039; : The survey ID to be exported (read-only)&lt;br /&gt;
* &#039;&#039;&#039;Export&#039;&#039;&#039; : The completion state of the responses to be exported&lt;br /&gt;
* &#039;&#039;&#039;File extension&#039;&#039;&#039; : The file extension. The file is a TSV ([[wikipedia:Tab-separated_values|Tab-separated values]]) file. For easy opening in MS-Excel set the extension to .txt, with LibreOffice, OpenOffice or other spreadsheet program you can leave it to .csv.&lt;br /&gt;
* &#039;&#039;&#039;VV export version&#039;&#039;&#039; : The 1.0 version uses database column headers, version 2.0 uses [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]]. Version 2.0 is selected by default if all of your question code are unique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:212--&amp;gt;&lt;br /&gt;
The first two rows of the spreadsheet are the column labels. The first row is a &amp;quot;human readable&amp;quot; column heading that details the name of the question. The second row is the real column name (Internal DB- or Qcode-name) for that response.&lt;br /&gt;
&lt;br /&gt;
==Editing a VV survey file== &amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
When a .vv file has been successfully exported you can use a spreadsheet tool to open and edit the file. If you have to choose a column separator when opening the file please use the &amp;quot;Tab&amp;quot; character. If you are using non-ASCII characters make sure you set &amp;quot;UTF-8&amp;quot; as character set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
{{Alert|If you are using Microsoft Excel to edit the exported vv file, you should know that excel destroys the original data structure of the file. This causes an error when you try to re-import the edited .vv file.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
By default the first two rows of the .vv file are headers. If needed you can remove the first line to have a real TSV file. There are different use cases for importing a .vv file so we will differentiate between adding new responses to a survey and overwriting all responses of the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
Example structure of a .vv file:&lt;br /&gt;
&lt;br /&gt;
===VV version 1 TSV file=== &amp;lt;!--T:213--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:214--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	Token	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage	token	46492X40X1991&lt;br /&gt;
183	09.11.11 11:44	3	de	jsfhusdgqfygqsy	4&lt;br /&gt;
184	09.11.11 11:53	3	de	sdfhsifgsyergze	2&lt;br /&gt;
190	09.11.11 11:44	3	de	qsdqshkfhkdsjhj	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VV version 2 TSV file=== &amp;lt;!--T:215--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:216--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	Token	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage	token	QCODE&lt;br /&gt;
183	09.11.11 11:44	3	de	jsfhusdgqfygqsy	4&lt;br /&gt;
184	09.11.11 11:53	3	de	sdfhsifgsyergze	2&lt;br /&gt;
190	09.11.11 11:44	3	de	qsdqshkfhkdsjhj	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:217--&amp;gt;&lt;br /&gt;
Here SQGA identifier are not used - instead Qcode variable naming &amp;lt;code&amp;gt;QCODE&amp;lt;/code&amp;gt; is used in the second line.&lt;br /&gt;
&lt;br /&gt;
===Reserved names=== &amp;lt;!--T:218--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:219--&amp;gt;&lt;br /&gt;
.VV file uses left and right brackets for reserved names, when importing this string is replaced by :&lt;br /&gt;
* &amp;lt;code&amp;gt;{question_not_shown}&amp;lt;/code&amp;gt; : NULL value in database. LimeSurvey use [empty string] for not answered question, and NULL value for question not shown (by Expression manager or max step in survey).&lt;br /&gt;
* &amp;lt;code&amp;gt;{quote}&amp;lt;/code&amp;gt; : &amp;quot; (a double quote)&lt;br /&gt;
* &amp;lt;code&amp;gt;{cr}&amp;lt;/code&amp;gt; : Carriage return&lt;br /&gt;
* &amp;lt;code&amp;gt;{newline}&amp;lt;/code&amp;gt; : A new line&lt;br /&gt;
* &amp;lt;code&amp;gt;{lbrace}&amp;lt;/code&amp;gt; : Left bracket (for example, if you want to have {cr} in response : use &amp;lt;code&amp;gt;{lbrace}cr}&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
===VV Version 1 editing=== &amp;lt;!--T:220--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Adding new responses to the existing responses of a survey==== &amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
This is not supported for version 1 of the format as it easily can lead to various problems including data being imported into the wrong columns. The version 1 of the .vv file was always meant for vertical verification of data in an external tool like Excel, not as a mean to pull together data from different source (like the same survey running on another server).&lt;br /&gt;
&lt;br /&gt;
====Modify all responses of a survey==== &amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
If you want to modify responses of survey you can just add the edit the file. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
Step 1: Open the file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:221--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage		46492X40X1991&lt;br /&gt;
183	09.11.11 11:44	3	de	4&lt;br /&gt;
184	09.11.11 11:53	3	de	2&lt;br /&gt;
190	09.11.11 11:44	3	de	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
Step 2: Modify responses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:222--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage		46492X40X1991&lt;br /&gt;
1000	09.11.11 11:44	3	de	3&lt;br /&gt;
1001	09.11.11 11:53	3	de	3&lt;br /&gt;
1002	09.11.11 11:44	3	de	3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
You can then import the survey, make sure to override the existing responses (see &amp;quot;Importing a VV survey file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==Importing a VV survey file== &amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
[[File:LimeSurveyImportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
As long as the first two lines are intact, you can then import the data in your vv survey file back into an active LimeSurvey survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
If you used Microsoft Excel to edit the exported vv file, the data structure of this file may be corrupted, so LimeSurvey is not able to import the edited file. You can try the following workaround to get the import working without an error:&lt;br /&gt;
*Open your exported vv file in Excel and do your changes (I guess you already did that)&lt;br /&gt;
*Save it as tab-separated text file (It creates a new file with the extension .txt)&lt;br /&gt;
*Do another &amp;quot;clean&amp;quot; vv export from LimeSurvey&lt;br /&gt;
*Open this new exported vv file with a texteditor like notepad or something else (I used textwrangler on mac)&lt;br /&gt;
*Press CTRL + A to mark all of the content and delete it&lt;br /&gt;
*Open the Excel edited vv file (the tab separated .txt file) with a texteditor and press CTRL + A to mark all of the content&lt;br /&gt;
*Press CTRL + C to copy the content and paste it into the new (now empty) vv file&lt;br /&gt;
*Press CTRL + S to save the file as it is (as .csv)&lt;br /&gt;
*Now try to import this file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Then, from the browse screen, choose the &amp;quot;Import a VV Survey file&amp;quot; icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
The &amp;quot;Import a VV Survey File&amp;quot; screen needs you to choose the &amp;quot;vvexport&amp;quot; file you are importing. If you choose to &amp;quot;Exclude Record IDs&amp;quot; the records will be imported and brand new Record ID&#039;s will be generated for them (use this option for the use case &amp;quot;Adding new responses to the existing responses of a survey&amp;quot;). If you un-check this box, then the original record id&#039;s will be imported (use this option for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
There are a range of options you can choose that tell LimeSurvey how to deal with double or multiple entries.&lt;br /&gt;
*Report an error (and skip the new record).&lt;br /&gt;
*Renumber the new record&lt;br /&gt;
*Replace the existing record (uses this for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===Importing a VV survey file {{NewIn|2.05}}=== &amp;lt;!--T:227--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:228--&amp;gt;&lt;br /&gt;
[[File:VV2-import-en.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:229--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;File&#039;&#039;&#039; : Select the file to be uploaded. The file must be a [[wikipedia:Tab-separated_values|TSV file]]: A text file with each column separated by TAB.&lt;br /&gt;
* &#039;&#039;&#039;Exclude record IDs?&#039;&#039;&#039; : If &#039;id&#039; column exist in the file you can exclude this line or not. If this setting is checked then a new record is added for each line of the .vv file. If unchecked you can choose:&lt;br /&gt;
* &#039;&#039;&#039;When an imported record matches an existing record ID&#039;&#039;&#039;:&lt;br /&gt;
** &#039;&#039;skip&#039;&#039; : Report and skip the new record. After upload you will see if the record already existed - if it existed it&#039;s not imported.&lt;br /&gt;
** &#039;&#039;renumber&#039;&#039; : Renumber the new record. A new record is added to the response table with answer of the VV file.&lt;br /&gt;
** &#039;&#039;replace&#039;&#039; : Replace the existing record. The old record is deleted and completely replaced by the record from the VV file&lt;br /&gt;
** &#039;&#039;replaceanswer&#039;&#039; : Replace response details from the file in the existing record. The old record is updated with the new response from the VV file. This allow to replace only one question in the response table.&lt;br /&gt;
* &#039;&#039;&#039;Import as not finalized response?&#039;&#039;&#039; : If checked the submitdate is set to NULL, so the response is set to not completed.&lt;br /&gt;
* &#039;&#039;&#039;Character set of the file&#039;&#039;&#039; : You can choose the character set of the file - the default and recommended value is UTF-8 but some spreadsheet program don&#039;t allow to choose a character set.&lt;br /&gt;
* &#039;&#039;&#039;First line contains question codes&#039;&#039;&#039; : By default VV file first line contain human readable question, the real column names are in the second line. This allow to use the first line as the real column names.&lt;br /&gt;
* &#039;&#039;&#039;Force import&#039;&#039;&#039; : If the question codes are not found in the database name or in [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]] then columns are assigned depending of order. This can be used to import VV file from different LimeSurvey instance but each survey must be exactly the same. We strongly recommend to use this only if you know what you are doing. It can be very dangerous and lead to results ending up in the wrong column.&lt;br /&gt;
&lt;br /&gt;
=Other export options= &amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Export a single response== &amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
If you want to export an individual response, you can do it in 3 ways:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
1. Login to limesurvey admin backend, choose your survey, goto &amp;quot;Edit survey settings&amp;quot; -&amp;gt; &amp;quot;Notification and data management&amp;quot; and make sure you receive basic email notifications.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
Every time someone has completed a survey, you will receive an email with a link: &amp;quot;Click the following link to see the individual response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
This will take you to a page with a button above the data saying &amp;quot;Export this response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
2. Login to limesurvey admin backend, choose your survey and &amp;quot;Browse responses for this survey&amp;quot;. Click on &amp;quot;Display responses&amp;quot; and the id number you want to export in the left column. Then you can click on &amp;quot;Export this survey&amp;quot; above the data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
3. Login to limesurvey admin backend, choose your survey and &amp;quot;Export results to application&amp;quot;. In the last field above &amp;quot;Export data&amp;quot; you can choose which entry you want to export.&lt;br /&gt;
&lt;br /&gt;
==Match responses from different surveys== &amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
If you want to track survey responses for particular individuals over time, LimeSurvey can help you do that. A possible use case is to track group responses before and after the group takes a particular seminar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
The steps to implementing this are as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:143--&amp;gt;&lt;br /&gt;
1. Create the survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:144--&amp;gt;&lt;br /&gt;
2. Make sure the survey is non-anonymous and uses tokens. To create a non-anonymous survey:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:145--&amp;gt;&lt;br /&gt;
a - Click on the icon General settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:147--&amp;gt;&lt;br /&gt;
b - Then under the Tokens tab select &amp;quot;No&amp;quot; for Anonymized responses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:149--&amp;gt;&lt;br /&gt;
3. Activate the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:150--&amp;gt;&lt;br /&gt;
When you activate the survey, click on the &amp;quot;switch to closed-access mode&amp;quot; button to create the token table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:151--&amp;gt;&lt;br /&gt;
[[File:switch_to_closed.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:152--&amp;gt;&lt;br /&gt;
4. Populate the tokens table with whatever method you wish (follow the instructions found at the [[Tokens]] page ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:153--&amp;gt;&lt;br /&gt;
5. Export the survey results and make sure you include the token information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:154--&amp;gt;&lt;br /&gt;
To export click &#039;&#039;browse results&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:155--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:156--&amp;gt;&lt;br /&gt;
...and then &#039;&#039;export&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:157--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:158--&amp;gt;&lt;br /&gt;
Remember to choose one or more elements from the token table to associate with the survey responses:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:159--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:160--&amp;gt;&lt;br /&gt;
6. When you run the survey again, which can easily be done by copying the survey and tokens table using export/import, just repeat the steps, and make sure the same query is used to build the csv token import file.&lt;br /&gt;
&lt;br /&gt;
=Problems &amp;amp; Solutions= &amp;lt;!--T:161--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Excel== &amp;lt;!--T:162--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Modifying responses in Excel prior to Import=== &amp;lt;!--T:163--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:164--&amp;gt;&lt;br /&gt;
In order to make multiple changes to responses, you may choose to Export and open a file in Excel. Make changes to the data (other than the top lines) and then save as a .txt file. If you save as .csv, Excel uses comma-delimits which will not import into LimeSurvey. By saving as a .txt file, Excel saves as a tab-delimited file which imports back into LimeSurvey.&lt;br /&gt;
&lt;br /&gt;
===Edit .csv with Excel=== &amp;lt;!--T:165--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:166--&amp;gt;&lt;br /&gt;
In general &#039;&#039;&#039;&#039;&#039;we do not recommend to use Excel to edit the exported .csv files&#039;&#039;&#039;&#039;&#039; because Excel does some changes to the internal data structure which results in a failing import. If you nevertheless want to use Excel you have to set the seperator for Excel to a comma in System Control (Windows Systems):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:167--&amp;gt;&lt;br /&gt;
System Control|Region- Languageoptions|Regional Settings, customize...|Tab Numbers|Digit grouping symbol| replace ; with ,&lt;br /&gt;
&lt;br /&gt;
===Workaround to edit .csv files with Excel=== &amp;lt;!--T:168--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:169--&amp;gt;&lt;br /&gt;
Using Excel for editing questions can prevent you from being able to re-import them. But editing is the way to go if you have more than 5 or so options or ranking options, want to use Excel capabilities like sorting, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:170--&amp;gt;&lt;br /&gt;
This is a partial workaround that seems to work in 1.82-essentially, only use Excel on the part of the file that is the data:&lt;br /&gt;
* Export a question similar to what you would like to reuse as .csv file&lt;br /&gt;
* Open the CSV file in a rawtext editor&lt;br /&gt;
* Copy the part that has the answers to Excel, and parse it with Text to Columns or equivalent.&lt;br /&gt;
* Use the talent of Excel to allow pasting text in columns to paste in 20, 50, 100 answers, as you wish&lt;br /&gt;
* Save the file as Excel CSV, which will likely have no quotes.&lt;br /&gt;
* Open this file in the editor, and Select All, Copy&lt;br /&gt;
* Go back to the file you opened with the rawtext editor&lt;br /&gt;
* Paste over the answers there&lt;br /&gt;
* Save AS, with a different name, maybe one that you can remember for reuse&lt;br /&gt;
* Import this file.&lt;br /&gt;
&lt;br /&gt;
===Excel - export limited to 255 columns=== &amp;lt;!--T:171--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:172--&amp;gt;&lt;br /&gt;
Due to limitations in Excel (versions lower and equal to 2003), LimeSurvey can export only 255 columns at the same time. Microsoft has proposed a [http://support.microsoft.com/kb/272729/en-us workaround as a VB macro].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:173--&amp;gt;&lt;br /&gt;
Although newer spreadsheets (Excel &amp;gt;= 2007, OpenOffice) can display more than 255 columns, the internal module used by LimeSurvey still can&#039;t export more than 255 columns.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:174--&amp;gt;&lt;br /&gt;
Two workarounds are however possible, use one of the following solutions:&lt;br /&gt;
* Either export to CSV and import in your spreadsheet&lt;br /&gt;
* Or use multiple exports (selecting at most 250 columns at a time), then merge the exported results&lt;br /&gt;
&lt;br /&gt;
===Excel/.csv - export fails=== &amp;lt;!--T:175--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:176--&amp;gt;&lt;br /&gt;
If you are unable to export your data to excel or into a .csv file please try to clear your browser cache and cookies.&lt;br /&gt;
&lt;br /&gt;
==CSV== &amp;lt;!--T:177--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSV defaults to 255 columns=== &amp;lt;!--T:178--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:179--&amp;gt;&lt;br /&gt;
When exporting large surveys the GUI by default limits the export to the first 255 columns. To work around this, simply mark all data sets for export.&lt;br /&gt;
&lt;br /&gt;
==SPSS export== &amp;lt;!--T:180--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===General steps=== &amp;lt;!--T:181--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:182--&amp;gt;&lt;br /&gt;
To import the LimeSurvey response data please use the following steps:&lt;br /&gt;
#Click on the &#039;Export to SPSS&#039; icon.&lt;br /&gt;
#From the select boxes select which responses you want to export and your SPSS version.&lt;br /&gt;
#Download both files, the .sps (SPSS syntax command file) and .dat file (data file)&lt;br /&gt;
#Open the .sps file with SPSS by opening SPSS, then select &#039;Choose another type of file&#039; and select the downloaded .sps file.&lt;br /&gt;
#Now an editor opens inside SPS where you can edit the commands in that file. Look for the line that starts with &#039;/FILE=...&#039;&lt;br /&gt;
#Edit that line and adjust the path so it points to your .dat file. Example: Your *.dat file is in c:\temp so set this line to  /FILE=&#039;c:\temp\survey_(xxxx)_SPSS_data_file.dat&#039;&lt;br /&gt;
#Now select all commands inside the editor by pressing CTRL-A.&lt;br /&gt;
#From the SPSS menu select Run/All.&lt;br /&gt;
#Be patient, it will take some time to import all data and labels. Check the status bar for the progress.&lt;br /&gt;
#Done!&lt;br /&gt;
&lt;br /&gt;
===Possible error messages in SPSS=== &amp;lt;!--T:183--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====ERROR. command name:Get Data==== &amp;lt;!--T:184--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:185--&amp;gt;&lt;br /&gt;
If you receive the error message &#039;&#039;ERROR. command name:Get Data. 2267 Unexpected Token missing.&#039;&#039; please edit the forth line of your syntax file so it points to the absolute path of the data file like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:186--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;C:\spss\Data\limesurvey\SPSS\survey_35276_SPSS_data_file.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Error: &amp;quot;Text value unmappable in the current server locale&amp;quot;==== &amp;lt;!--T:187--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:188--&amp;gt;&lt;br /&gt;
This error can happen if you try to open an exported syntax file in SPSS 16. The solution is to force SPSS to interpret the syntax file as unicode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:189--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;Open SPSS. Go to Edit &amp;gt; Options &amp;gt; Character encoding for data and syntax. Change the option to &amp;quot;unicode&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:190--&amp;gt;&lt;br /&gt;
LimeSurvey data can now be exported to SPSS 16 without any problem.&lt;br /&gt;
&lt;br /&gt;
===Define the scale to use for your variable=== &amp;lt;!--T:191--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:192--&amp;gt;&lt;br /&gt;
It is possible to override the default scale used for a variable by setting the question attribute [[Advanced question settings#scale_export|scale_export]] to the appropriate value.&lt;br /&gt;
&lt;br /&gt;
==VV Export/Import== &amp;lt;!--T:193--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VV - Problems with vv import=== &amp;lt;!--T:194--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:195--&amp;gt;&lt;br /&gt;
If you have difficulties importing a vv file, try a Tab-delimited file and it should work fine.&lt;br /&gt;
&lt;br /&gt;
==Other problems and solutions== &amp;lt;!--T:196--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copying responses into a different survey (using tokens)=== &amp;lt;!--T:197--&amp;gt;&lt;br /&gt;
# Create new survey, add a dummy response, export the response file, open in Excel. This creates the format for the new import file.&lt;br /&gt;
# Export the responses from the old survey, including tokens, open in Excel.&lt;br /&gt;
# Use this data to create an Excel worksheet for the standard token file import (eg. Firstname, Lastname, Token, Email address, Email status (OK), Language (En)). Save as .csv and import tokens to the new survey in LimeSurvey.&lt;br /&gt;
# In Excel, copy the response fields from the old survey responses that you want in the new survey (including token) into the appropriate Excel column of the new survey format.&lt;br /&gt;
# Save as .txt file.&lt;br /&gt;
# Use VVImport to import the new data into the new survey.&lt;br /&gt;
# Possible import errors include date format - some system date fields do not allow a NULL value, some do. If the date looks okay but gives an error, use the Excel cell format &amp;quot;2009-12-01&amp;quot;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=61720</id>
		<title>Exporting results</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=61720"/>
		<updated>2014-05-20T20:58:52Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Hint regarding value labels&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt; &amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Once your survey is active you can start browsing responses and export them. To get to the survey response overview click...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
=Export to application (Excel/.csv)= &amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
On top of the browse responses page several export options are listed, beginning with &#039;&#039;export to CSV/application&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
When exporting results to an application there are several filter options which are separated into:&lt;br /&gt;
*&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
** Set a range like export records X to Y&lt;br /&gt;
** Set to export all records OR completed records only OR incomplete records only&lt;br /&gt;
*&#039;&#039;&#039;Questions&#039;&#039;&#039;&lt;br /&gt;
** Set how the heading should look like: Abbreviated heading OR full headings OR question codes&lt;br /&gt;
** Convert spaces in question text to underscores&lt;br /&gt;
*&#039;&#039;&#039;Answers&#039;&#039;&#039;&lt;br /&gt;
** You can either export full answers or convert answer codes Y and N to a defined variable&lt;br /&gt;
*&#039;&#039;&#039;Format&#039;&#039;&#039;&lt;br /&gt;
** Microsoft Word (latin charset)&lt;br /&gt;
** Microsoft Excel (all charsets)&lt;br /&gt;
** CSV File (all charsets)&lt;br /&gt;
** PDF&lt;br /&gt;
*&#039;&#039;&#039;Column Control&#039;&#039;&#039;&lt;br /&gt;
** Set which answers should be exported. All answers in this list are represented by their [[SGQA identifier|SGQA identifier]]&lt;br /&gt;
** Set which &#039;&#039;&#039;&#039;&#039;token&#039;&#039;&#039;&#039;&#039; data should be exported. This option is only available if your survey is &#039;&#039;&#039;&#039;&#039;not anonymous&#039;&#039;&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
=SPSS Export= &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
To export your response data to SPSS go to Responses &amp;amp; Statistics section and click the icon to export to SPSS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
[[File:spss_toolbar.png]]&lt;br /&gt;
&lt;br /&gt;
==Export and filter data== &amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
When exporting data to SPSS there are two filter options. You can select &#039;&#039;&#039;which data&#039;&#039;&#039; should be selected (&#039;&#039;all records/completed records only/incompleted records only&#039;&#039;) and for &#039;&#039;&#039;which SPSS version&#039;&#039;&#039; the export files will be used (&#039;&#039;prior version 16/16 or up&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
SPSS export includes two files:&lt;br /&gt;
# a syntax file (&#039;&#039;survey_xxxx_SPSS_syntax_file.sps&#039;&#039;)&lt;br /&gt;
# and a data file (&#039;&#039;survey_xxxx_SPSS_data_file.dat&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
After having downloaded these files you can open them using a raw text editor like notepad to take a look how the exported data looks like. The syntax file holds the commands that should be run to import the data. It is like a programming language inside SPSS. The data file contains a comma separated file with all data. If you just import this data as csv via a wizard you loose information about questions, labelsets etc. so we don&#039;t do that.&lt;br /&gt;
&lt;br /&gt;
==Import data in SPSS== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Place the two files in the same folder on your drive (example: &#039;&#039;c:\data\survey_xxxx_SPSS_syntax_file.sps&#039;&#039; and &#039;&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
We have two options now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
1. When using Windows use the explorer to browse to the folder used above. If SPSS is connected to the .sps file extension you can just open the file by double clicking it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
[[File:spss_explorer-screenshot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Now you can just choose Run-&amp;gt;All from the opened window and after some time have your output dataset that you can save as a normal .sav file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
2. Sometimes the easy solution above does not work. Then you can proceed as follows:&lt;br /&gt;
* Open SPSS&lt;br /&gt;
* Choose File-&amp;gt;Open-&amp;gt;Syntax&lt;br /&gt;
* Choose the appropriate file: c:\data\survey_xxxx_SPSS_syntax_file.sps&lt;br /&gt;
* Now the syntax opens.&lt;br /&gt;
* Change the line that reads &#039;&#039;/FILE=&#039;survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039; to include the path where the files are: &#039;&#039;/FILE=&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039;&lt;br /&gt;
* Now mark the whole command text and choose Run-&amp;gt;All from the menu and after a while (please be patient) you have the dataset with all info like questions, labels etc.&lt;br /&gt;
&lt;br /&gt;
=R Export= &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
Feel free to add more information if you have some!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
The freeware software [http://www.r-project.org/ R] is an alternative for SPSS. It is closely linked to the SPSS export in LimeSurvey. Instructions on how to import your dataset in R:&lt;br /&gt;
#Download the syntax file and the data file.&lt;br /&gt;
#Store both files in R work listing (use &#039;&#039;getwd()&#039;&#039; and &#039;&#039;setwd()&#039;&#039; in R command window to set and indicate).&lt;br /&gt;
#Enter &#039;&#039;source(&amp;quot;Surveydata_syntax.R&amp;quot;, encoding = &amp;quot;UTF-8&amp;quot;)&#039;&#039; in R command window.&lt;br /&gt;
&lt;br /&gt;
NB: R-export is a plugin in Limesurvey. If you cannot find the R-export option, make sure the R-export plugin is enabled in the plugin menu.&lt;br /&gt;
&lt;br /&gt;
=STATA-xml Export= &amp;lt;!--T:200--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:201--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;This option is available from version 2.05&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:202--&amp;gt;&lt;br /&gt;
STATA is a commercial data analysis and statistical software package. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:203--&amp;gt;&lt;br /&gt;
This export routine was created to facilitate rapid analysis of data collected with LimeSurvey. It creates an XML-file in STATAs proprietary format, which can be imported independent of the platform STATA is run on. Using this format offeres several advantages over importing plain CSV files:&lt;br /&gt;
*Data sets are fully labelled including variable labels (question, subquestion) and value labels (answers, if applicable).&lt;br /&gt;
*Dates are already transformed to STATAs internal date format and thus can directly be used to calculate difference between days etc.&lt;br /&gt;
*Variable names are, if necessary, converted to a STATA compatible format.&lt;br /&gt;
*Data formats of variables (string, integer, float, etc.) are already set according to the underlying data. (No more numbers encoded as strings!). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:204--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Howto load the file in STATA:&lt;br /&gt;
In STATA&#039;s menu, click on File, Import, xml-data. Choose browse to navigate to your exported file and click &#039;OK&#039;. That should be it.&lt;br /&gt;
If you prefer STATA&#039;s binary .dta files, you can just save your data again in this format.&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:205--&amp;gt;&lt;br /&gt;
Be aware: 1) Due to a limitation in STATA&#039;s data format, the string length has a maximum of 244 characters. Everything &amp;gt; 244 characters is not exported. 2) STATA only allows value labels on numerical variables. If the answer codes in a question of survey are not numerical, the plugin exports the full text-answer.&lt;br /&gt;
&lt;br /&gt;
=VVExport ([[File:exportvv.png]]) and VVImport ([[File:importvv.png]])= &amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:206--&amp;gt;&lt;br /&gt;
{{FeatureChange|v=2.05}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
Once you&#039;ve begun collecting responses, there may be occasions where you need to be able to directly edit and modify large quantities of data from your responses table, where a spreadsheet tool may be more useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
VVExport (the &amp;quot;VV&amp;quot; stands for vertical verification) allow you to export your responses table into a .csv file. So long as the general structure of the file remains intact, you can then edit values within it, and the import the file again into your responses table using the &amp;quot;VVImport&amp;quot; feature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Things you should be aware of:&lt;br /&gt;
* If you want to import responses using &amp;quot;VVImport&amp;quot; make sure to check whether the responses should be added to the existing responses or all responses should be overwritten.&lt;br /&gt;
* If you are trying to import responses from a different yet identical (e.g. identical questions/answers from another survey) make sure you are using the correct vv file and that the first two lines of the .csv-file are correct.&lt;br /&gt;
* If you import a survey to your LimeSurvey installation the SID will (if possible) not change. The group id and question id however might change. So you might have to adjust the first two heading lines to match the new group id/question id. See &#039;&#039;&#039;Adjusting vv file headings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== VVExport file version 2 {{NewIn|2.05}} == &amp;lt;!--T:207--&amp;gt;&lt;br /&gt;
This new feature allows different column names than the database. If your question code are unique, then the new version is selected. In the new version each column name uses the [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]]. For example this allows to update an existing survey in different installation  more easily.&lt;br /&gt;
&lt;br /&gt;
==Exporting a VV survey file== &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
[[File:limesurveyExportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
When you choose to export responses using VVExport you will be given the option to choose which survey to be exported, whether you want to export all responses or complete responses only or incomplete responses only. The file extension allows you to choose which extension the exported file will have. For easy use .csv should be chosen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
A &#039;vv survey file&#039; allows you to import the responses to a survey when the question/answer combinations have changed. Effectively this allows you to add or remove questions in an active survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Clicking on &amp;quot;Export a VV survey file&amp;quot; will then produce a tab delimited file that can be opened by Excel or similar style spreadsheet program. The first two rows of the spreadsheet are the column labels. The first row is a &amp;quot;human readable&amp;quot; column heading that details the name of the question/answer field. The second row is the internal PHP/database column name for that response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
You should not modify the first two rows of this spreadsheet if you want to be able to &amp;quot;import&amp;quot; the data back into LimeSurvey at a later point.&lt;br /&gt;
&lt;br /&gt;
===Exporting a VV survey file {{NewIn|v=2.05}}=== &amp;lt;!--T:208--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:209--&amp;gt;&lt;br /&gt;
{{FeatureStarting|v=2.05}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:210--&amp;gt;&lt;br /&gt;
[[File:VV2-export-en.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:211--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Export survey&#039;&#039;&#039; : The survey ID to be exported (read-only)&lt;br /&gt;
* &#039;&#039;&#039;Export&#039;&#039;&#039; : The completion state of the responses to be exported&lt;br /&gt;
* &#039;&#039;&#039;File extension&#039;&#039;&#039; : The file extension. The file is a TSV ([[wikipedia:Tab-separated_values|Tab-separated values]]) file. For easy opening in MS-Excel set the extension to .txt, with LibreOffice, OpenOffice or other spreadsheet program you can leave it to .csv.&lt;br /&gt;
* &#039;&#039;&#039;VV export version&#039;&#039;&#039; : The 1.0 version uses database column headers, version 2.0 uses [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]]. Version 2.0 is selected by default if all of your question code are unique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:212--&amp;gt;&lt;br /&gt;
The first two rows of the spreadsheet are the column labels. The first row is a &amp;quot;human readable&amp;quot; column heading that details the name of the question. The second row is the real column name (Internal DB- or Qcode-name) for that response.&lt;br /&gt;
&lt;br /&gt;
==Editing a VV survey file== &amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
When a .vv file has been successfully exported you can use a spreadsheet tool to open and edit the file. If you have to choose a column separator when opening the file please use the &amp;quot;Tab&amp;quot; character. If you are using non-ASCII characters make sure you set &amp;quot;UTF-8&amp;quot; as character set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
{{Alert|If you are using Microsoft Excel to edit the exported vv file, you should know that excel destroys the original data structure of the file. This causes an error when you try to re-import the edited .vv file.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
By default the first two rows of the .vv file are headers. If needed you can remove the first line to have a real TSV file. There are different use cases for importing a .vv file so we will differentiate between adding new responses to a survey and overwriting all responses of the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
Example structure of a .vv file:&lt;br /&gt;
&lt;br /&gt;
===VV version 1 TSV file=== &amp;lt;!--T:213--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:214--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	Token	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage	token	46492X40X1991&lt;br /&gt;
183	09.11.11 11:44	3	de	jsfhusdgqfygqsy	4&lt;br /&gt;
184	09.11.11 11:53	3	de	sdfhsifgsyergze	2&lt;br /&gt;
190	09.11.11 11:44	3	de	qsdqshkfhkdsjhj	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VV version 2 TSV file=== &amp;lt;!--T:215--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:216--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	Token	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage	token	QCODE&lt;br /&gt;
183	09.11.11 11:44	3	de	jsfhusdgqfygqsy	4&lt;br /&gt;
184	09.11.11 11:53	3	de	sdfhsifgsyergze	2&lt;br /&gt;
190	09.11.11 11:44	3	de	qsdqshkfhkdsjhj	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:217--&amp;gt;&lt;br /&gt;
Here SQGA identifier are not used - instead Qcode variable naming &amp;lt;code&amp;gt;QCODE&amp;lt;/code&amp;gt; is used in the second line.&lt;br /&gt;
&lt;br /&gt;
===Reserved names=== &amp;lt;!--T:218--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:219--&amp;gt;&lt;br /&gt;
.VV file uses left and right brackets for reserved names, when importing this string is replaced by :&lt;br /&gt;
* &amp;lt;code&amp;gt;{question_not_shown}&amp;lt;/code&amp;gt; : NULL value in database. LimeSurvey use [empty string] for not answered question, and NULL value for question not shown (by Expression manager or max step in survey).&lt;br /&gt;
* &amp;lt;code&amp;gt;{quote}&amp;lt;/code&amp;gt; : &amp;quot; (a double quote)&lt;br /&gt;
* &amp;lt;code&amp;gt;{cr}&amp;lt;/code&amp;gt; : Carriage return&lt;br /&gt;
* &amp;lt;code&amp;gt;{newline}&amp;lt;/code&amp;gt; : A new line&lt;br /&gt;
* &amp;lt;code&amp;gt;{lbrace}&amp;lt;/code&amp;gt; : Left bracket (for example, if you want to have {cr} in response : use &amp;lt;code&amp;gt;{lbrace}cr}&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
===VV Version 1 editing=== &amp;lt;!--T:220--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Adding new responses to the existing responses of a survey==== &amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
This is not supported for version 1 of the format as it easily can lead to various problems including data being imported into the wrong columns. The version 1 of the .vv file was always meant for vertical verification of data in an external tool like Excel, not as a mean to pull together data from different source (like the same survey running on another server).&lt;br /&gt;
&lt;br /&gt;
====Modify all responses of a survey==== &amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
If you want to modify responses of survey you can just add the edit the file. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
Step 1: Open the file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:221--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage		46492X40X1991&lt;br /&gt;
183	09.11.11 11:44	3	de	4&lt;br /&gt;
184	09.11.11 11:53	3	de	2&lt;br /&gt;
190	09.11.11 11:44	3	de	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
Step 2: Modify responses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:222--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage		46492X40X1991&lt;br /&gt;
1000	09.11.11 11:44	3	de	3&lt;br /&gt;
1001	09.11.11 11:53	3	de	3&lt;br /&gt;
1002	09.11.11 11:44	3	de	3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
You can then import the survey, make sure to override the existing responses (see &amp;quot;Importing a VV survey file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==Importing a VV survey file== &amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
[[File:LimeSurveyImportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
As long as the first two lines are intact, you can then import the data in your vv survey file back into an active LimeSurvey survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
If you used Microsoft Excel to edit the exported vv file, the data structure of this file may be corrupted, so LimeSurvey is not able to import the edited file. You can try the following workaround to get the import working without an error:&lt;br /&gt;
*Open your exported vv file in Excel and do your changes (I guess you already did that)&lt;br /&gt;
*Save it as tab-separated text file (It creates a new file with the extension .txt)&lt;br /&gt;
*Do another &amp;quot;clean&amp;quot; vv export from LimeSurvey&lt;br /&gt;
*Open this new exported vv file with a texteditor like notepad or something else (I used textwrangler on mac)&lt;br /&gt;
*Press CTRL + A to mark all of the content and delete it&lt;br /&gt;
*Open the Excel edited vv file (the tab separated .txt file) with a texteditor and press CTRL + A to mark all of the content&lt;br /&gt;
*Press CTRL + C to copy the content and paste it into the new (now empty) vv file&lt;br /&gt;
*Press CTRL + S to save the file as it is (as .csv)&lt;br /&gt;
*Now try to import this file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Then, from the browse screen, choose the &amp;quot;Import a VV Survey file&amp;quot; icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
The &amp;quot;Import a VV Survey File&amp;quot; screen needs you to choose the &amp;quot;vvexport&amp;quot; file you are importing. If you choose to &amp;quot;Exclude Record IDs&amp;quot; the records will be imported and brand new Record ID&#039;s will be generated for them (use this option for the use case &amp;quot;Adding new responses to the existing responses of a survey&amp;quot;). If you un-check this box, then the original record id&#039;s will be imported (use this option for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
There are a range of options you can choose that tell LimeSurvey how to deal with double or multiple entries.&lt;br /&gt;
*Report an error (and skip the new record).&lt;br /&gt;
*Renumber the new record&lt;br /&gt;
*Replace the existing record (uses this for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===Importing a VV survey file {{NewIn|2.05}}=== &amp;lt;!--T:227--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:228--&amp;gt;&lt;br /&gt;
[[File:VV2-import-en.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:229--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;File&#039;&#039;&#039; : Select the file to be uploaded. The file must be a [[wikipedia:Tab-separated_values|TSV file]]: A text file with each column separated by TAB.&lt;br /&gt;
* &#039;&#039;&#039;Exclude record IDs?&#039;&#039;&#039; : If &#039;id&#039; column exist in the file you can exclude this line or not. If this setting is checked then a new record is added for each line of the .vv file. If unchecked you can choose:&lt;br /&gt;
* &#039;&#039;&#039;When an imported record matches an existing record ID&#039;&#039;&#039;:&lt;br /&gt;
** &#039;&#039;skip&#039;&#039; : Report and skip the new record. After upload you will see if the record already existed - if it existed it&#039;s not imported.&lt;br /&gt;
** &#039;&#039;renumber&#039;&#039; : Renumber the new record. A new record is added to the response table with answer of the VV file.&lt;br /&gt;
** &#039;&#039;replace&#039;&#039; : Replace the existing record. The old record is deleted and completely replaced by the record from the VV file&lt;br /&gt;
** &#039;&#039;replaceanswer&#039;&#039; : Replace response details from the file in the existing record. The old record is updated with the new response from the VV file. This allow to replace only one question in the response table.&lt;br /&gt;
* &#039;&#039;&#039;Import as not finalized response?&#039;&#039;&#039; : If checked the submitdate is set to NULL, so the response is set to not completed.&lt;br /&gt;
* &#039;&#039;&#039;Character set of the file&#039;&#039;&#039; : You can choose the character set of the file - the default and recommended value is UTF-8 but some spreadsheet program don&#039;t allow to choose a character set.&lt;br /&gt;
* &#039;&#039;&#039;First line contains question codes&#039;&#039;&#039; : By default VV file first line contain human readable question, the real column names are in the second line. This allow to use the first line as the real column names.&lt;br /&gt;
* &#039;&#039;&#039;Force import&#039;&#039;&#039; : If the question codes are not found in the database name or in [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]] then columns are assigned depending of order. This can be used to import VV file from different LimeSurvey instance but each survey must be exactly the same. We strongly recommend to use this only if you know what you are doing. It can be very dangerous and lead to results ending up in the wrong column.&lt;br /&gt;
&lt;br /&gt;
=Other export options= &amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Export a single response== &amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
If you want to export an individual response, you can do it in 3 ways:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
1. Login to limesurvey admin backend, choose your survey, goto &amp;quot;Edit survey settings&amp;quot; -&amp;gt; &amp;quot;Notification and data management&amp;quot; and make sure you receive basic email notifications.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
Every time someone has completed a survey, you will receive an email with a link: &amp;quot;Click the following link to see the individual response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
This will take you to a page with a button above the data saying &amp;quot;Export this response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
2. Login to limesurvey admin backend, choose your survey and &amp;quot;Browse responses for this survey&amp;quot;. Click on &amp;quot;Display responses&amp;quot; and the id number you want to export in the left column. Then you can click on &amp;quot;Export this survey&amp;quot; above the data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
3. Login to limesurvey admin backend, choose your survey and &amp;quot;Export results to application&amp;quot;. In the last field above &amp;quot;Export data&amp;quot; you can choose which entry you want to export.&lt;br /&gt;
&lt;br /&gt;
==Match responses from different surveys== &amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
If you want to track survey responses for particular individuals over time, LimeSurvey can help you do that. A possible use case is to track group responses before and after the group takes a particular seminar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
The steps to implementing this are as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:143--&amp;gt;&lt;br /&gt;
1. Create the survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:144--&amp;gt;&lt;br /&gt;
2. Make sure the survey is non-anonymous and uses tokens. To create a non-anonymous survey:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:145--&amp;gt;&lt;br /&gt;
a - Click on the icon General settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:147--&amp;gt;&lt;br /&gt;
b - Then under the Tokens tab select &amp;quot;No&amp;quot; for Anonymized responses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:149--&amp;gt;&lt;br /&gt;
3. Activate the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:150--&amp;gt;&lt;br /&gt;
When you activate the survey, click on the &amp;quot;switch to closed-access mode&amp;quot; button to create the token table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:151--&amp;gt;&lt;br /&gt;
[[File:switch_to_closed.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:152--&amp;gt;&lt;br /&gt;
4. Populate the tokens table with whatever method you wish (follow the instructions found at the [[Tokens]] page ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:153--&amp;gt;&lt;br /&gt;
5. Export the survey results and make sure you include the token information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:154--&amp;gt;&lt;br /&gt;
To export click &#039;&#039;browse results&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:155--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:156--&amp;gt;&lt;br /&gt;
...and then &#039;&#039;export&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:157--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:158--&amp;gt;&lt;br /&gt;
Remember to choose one or more elements from the token table to associate with the survey responses:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:159--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:160--&amp;gt;&lt;br /&gt;
6. When you run the survey again, which can easily be done by copying the survey and tokens table using export/import, just repeat the steps, and make sure the same query is used to build the csv token import file.&lt;br /&gt;
&lt;br /&gt;
=Problems &amp;amp; Solutions= &amp;lt;!--T:161--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Excel== &amp;lt;!--T:162--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Modifying responses in Excel prior to Import=== &amp;lt;!--T:163--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:164--&amp;gt;&lt;br /&gt;
In order to make multiple changes to responses, you may choose to Export and open a file in Excel. Make changes to the data (other than the top lines) and then save as a .txt file. If you save as .csv, Excel uses comma-delimits which will not import into LimeSurvey. By saving as a .txt file, Excel saves as a tab-delimited file which imports back into LimeSurvey.&lt;br /&gt;
&lt;br /&gt;
===Edit .csv with Excel=== &amp;lt;!--T:165--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:166--&amp;gt;&lt;br /&gt;
In general &#039;&#039;&#039;&#039;&#039;we do not recommend to use Excel to edit the exported .csv files&#039;&#039;&#039;&#039;&#039; because Excel does some changes to the internal data structure which results in a failing import. If you nevertheless want to use Excel you have to set the seperator for Excel to a comma in System Control (Windows Systems):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:167--&amp;gt;&lt;br /&gt;
System Control|Region- Languageoptions|Regional Settings, customize...|Tab Numbers|Digit grouping symbol| replace ; with ,&lt;br /&gt;
&lt;br /&gt;
===Workaround to edit .csv files with Excel=== &amp;lt;!--T:168--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:169--&amp;gt;&lt;br /&gt;
Using Excel for editing questions can prevent you from being able to re-import them. But editing is the way to go if you have more than 5 or so options or ranking options, want to use Excel capabilities like sorting, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:170--&amp;gt;&lt;br /&gt;
This is a partial workaround that seems to work in 1.82-essentially, only use Excel on the part of the file that is the data:&lt;br /&gt;
* Export a question similar to what you would like to reuse as .csv file&lt;br /&gt;
* Open the CSV file in a rawtext editor&lt;br /&gt;
* Copy the part that has the answers to Excel, and parse it with Text to Columns or equivalent.&lt;br /&gt;
* Use the talent of Excel to allow pasting text in columns to paste in 20, 50, 100 answers, as you wish&lt;br /&gt;
* Save the file as Excel CSV, which will likely have no quotes.&lt;br /&gt;
* Open this file in the editor, and Select All, Copy&lt;br /&gt;
* Go back to the file you opened with the rawtext editor&lt;br /&gt;
* Paste over the answers there&lt;br /&gt;
* Save AS, with a different name, maybe one that you can remember for reuse&lt;br /&gt;
* Import this file.&lt;br /&gt;
&lt;br /&gt;
===Excel - export limited to 255 columns=== &amp;lt;!--T:171--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:172--&amp;gt;&lt;br /&gt;
Due to limitations in Excel (versions lower and equal to 2003), LimeSurvey can export only 255 columns at the same time. Microsoft has proposed a [http://support.microsoft.com/kb/272729/en-us workaround as a VB macro].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:173--&amp;gt;&lt;br /&gt;
Although newer spreadsheets (Excel &amp;gt;= 2007, OpenOffice) can display more than 255 columns, the internal module used by LimeSurvey still can&#039;t export more than 255 columns.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:174--&amp;gt;&lt;br /&gt;
Two workarounds are however possible, use one of the following solutions:&lt;br /&gt;
* Either export to CSV and import in your spreadsheet&lt;br /&gt;
* Or use multiple exports (selecting at most 250 columns at a time), then merge the exported results&lt;br /&gt;
&lt;br /&gt;
===Excel/.csv - export fails=== &amp;lt;!--T:175--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:176--&amp;gt;&lt;br /&gt;
If you are unable to export your data to excel or into a .csv file please try to clear your browser cache and cookies.&lt;br /&gt;
&lt;br /&gt;
==CSV== &amp;lt;!--T:177--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSV defaults to 255 columns=== &amp;lt;!--T:178--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:179--&amp;gt;&lt;br /&gt;
When exporting large surveys the GUI by default limits the export to the first 255 columns. To work around this, simply mark all data sets for export.&lt;br /&gt;
&lt;br /&gt;
==SPSS export== &amp;lt;!--T:180--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===General steps=== &amp;lt;!--T:181--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:182--&amp;gt;&lt;br /&gt;
To import the LimeSurvey response data please use the following steps:&lt;br /&gt;
#Click on the &#039;Export to SPSS&#039; icon.&lt;br /&gt;
#From the select boxes select which responses you want to export and your SPSS version.&lt;br /&gt;
#Download both files, the .sps (SPSS syntax command file) and .dat file (data file)&lt;br /&gt;
#Open the .sps file with SPSS by opening SPSS, then select &#039;Choose another type of file&#039; and select the downloaded .sps file.&lt;br /&gt;
#Now an editor opens inside SPS where you can edit the commands in that file. Look for the line that starts with &#039;/FILE=...&#039;&lt;br /&gt;
#Edit that line and adjust the path so it points to your .dat file. Example: Your *.dat file is in c:\temp so set this line to  /FILE=&#039;c:\temp\survey_(xxxx)_SPSS_data_file.dat&#039;&lt;br /&gt;
#Now select all commands inside the editor by pressing CTRL-A.&lt;br /&gt;
#From the SPSS menu select Run/All.&lt;br /&gt;
#Be patient, it will take some time to import all data and labels. Check the status bar for the progress.&lt;br /&gt;
#Done!&lt;br /&gt;
&lt;br /&gt;
===Possible error messages in SPSS=== &amp;lt;!--T:183--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====ERROR. command name:Get Data==== &amp;lt;!--T:184--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:185--&amp;gt;&lt;br /&gt;
If you receive the error message &#039;&#039;ERROR. command name:Get Data. 2267 Unexpected Token missing.&#039;&#039; please edit the forth line of your syntax file so it points to the absolute path of the data file like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:186--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;C:\spss\Data\limesurvey\SPSS\survey_35276_SPSS_data_file.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Error: &amp;quot;Text value unmappable in the current server locale&amp;quot;==== &amp;lt;!--T:187--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:188--&amp;gt;&lt;br /&gt;
This error can happen if you try to open an exported syntax file in SPSS 16. The solution is to force SPSS to interpret the syntax file as unicode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:189--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;Open SPSS. Go to Edit &amp;gt; Options &amp;gt; Character encoding for data and syntax. Change the option to &amp;quot;unicode&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:190--&amp;gt;&lt;br /&gt;
LimeSurvey data can now be exported to SPSS 16 without any problem.&lt;br /&gt;
&lt;br /&gt;
===Define the scale to use for your variable=== &amp;lt;!--T:191--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:192--&amp;gt;&lt;br /&gt;
It is possible to override the default scale used for a variable by setting the question attribute [[Advanced question settings#scale_export|scale_export]] to the appropriate value.&lt;br /&gt;
&lt;br /&gt;
==VV Export/Import== &amp;lt;!--T:193--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VV - Problems with vv import=== &amp;lt;!--T:194--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:195--&amp;gt;&lt;br /&gt;
If you have difficulties importing a vv file, try a Tab-delimited file and it should work fine.&lt;br /&gt;
&lt;br /&gt;
==Other problems and solutions== &amp;lt;!--T:196--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copying responses into a different survey (using tokens)=== &amp;lt;!--T:197--&amp;gt;&lt;br /&gt;
# Create new survey, add a dummy response, export the response file, open in Excel. This creates the format for the new import file.&lt;br /&gt;
# Export the responses from the old survey, including tokens, open in Excel.&lt;br /&gt;
# Use this data to create an Excel worksheet for the standard token file import (eg. Firstname, Lastname, Token, Email address, Email status (OK), Language (En)). Save as .csv and import tokens to the new survey in LimeSurvey.&lt;br /&gt;
# In Excel, copy the response fields from the old survey responses that you want in the new survey (including token) into the appropriate Excel column of the new survey format.&lt;br /&gt;
# Save as .txt file.&lt;br /&gt;
# Use VVImport to import the new data into the new survey.&lt;br /&gt;
# Possible import errors include date format - some system date fields do not allow a NULL value, some do. If the date looks okay but gives an error, use the Excel cell format &amp;quot;2009-12-01&amp;quot;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Survey_settings/de&amp;diff=61708</id>
		<title>Survey settings/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Survey_settings/de&amp;diff=61708"/>
		<updated>2014-05-13T09:26:06Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Übersicht=&lt;br /&gt;
&lt;br /&gt;
Um eine neue Umfrage zu erstellen klicken sie auf den [[File:add.png]] &amp;quot;Neue Umfrage erstellen, importieren oder kopieren&amp;quot;- Button   auf der rechten Seite der Administratorenleiste.&lt;br /&gt;
&lt;br /&gt;
Es erscheint die &amp;quot;Erstelle Umfrage&amp;quot;-Seite, bei der sie die Einstellungen der Umfragen vornehmen müssen. Die meisten dieser Einstellungen können Sie später in dem [[File:token_manage_30.png]] &amp;quot;Umfrage Einstellungen&amp;quot; Dropdown-Menü in der Umfragen-Toolbar wieder ändern.&lt;br /&gt;
&lt;br /&gt;
=Einstellungen=&lt;br /&gt;
&lt;br /&gt;
Alle Einstellungen sind in Tabs organisiert. Im Folgenden wird jeder Tab und jede Einstellungen beschrieben:&lt;br /&gt;
&lt;br /&gt;
==Generell==&lt;br /&gt;
#&#039;&#039;&#039;Basis Sprache&#039;&#039;&#039;: Basis Sprache für die Umfrage, kann nicht mehr geändert werden. Diese Sprache wird für mögliche Übersetzungen der Umfrage benutzt, so kann man mehrsprachige Umfragen erstellen. Während des Erstellens von Umfragen kann man aber keine zusätzliche Sprache hinzufügen, dies kann man es nachher in den Umfrageeinstellungen gemacht werden.&lt;br /&gt;
#&#039;&#039;&#039;Titel&#039;&#039;&#039;: Hier muss eine kurze und aussagekräftige Beschreibung des Thema der Umfrage sein (Beispiel: Studie des Einkaufsverhalten 2007), der Titel wird auf jeder Seite der Umfrage angezeigt.&lt;br /&gt;
#&#039;&#039;&#039;Beschreibung&#039;&#039;&#039;: Hier können sie eine Beschreibung zu ihrer Umfrage eingeben (Beispiel: Eine vergleichende Studie, wie sich das Einkaufsverhalten nach der Einführung des Euro verändert hat.). HTML-Elemente wie Bilder und Videos können mit dem WYSIWYG-Editor eingefügt werden.&lt;br /&gt;
#&#039;&#039;&#039;Willkommensnachricht&#039;&#039;&#039;: Hier können sie eine Nachricht verfassen, welche Teilnehmern bei deren ersten Besuch ihrer Umfrage angezeigt wird (Beispiel: Herzlichen Willkommen auf der Homepage zur Studie XYZ, es würde uns freuen, wenn sie sich ein paar Minuten zum Ausfüllen der Fragen Zeit nehmen.). In diesem Teil können sie HTML-Statements verwenden.&lt;br /&gt;
#&#039;&#039;&#039;Endnachricht&#039;&#039;&#039;: Hier können sie einen Text eingeben, der dem Teilnehmer nach Abschluss der Umfrage angezeigt wird. (Beispiel: &amp;quot;Vielen Dank für die Teilnahme an der Umfrage! Die Ergebnisse werden bald veröffentlicht.&amp;quot;). HTML-Elemente wie Bilder und Videos können mit dem WYSIWYG-Editor eingefügt werden.&lt;br /&gt;
#&#039;&#039;&#039;End-URL&#039;&#039;&#039;: Diese URL wird Besuchern am Ende ihrer Teilnahme an der Umfrage angezeigt. Mit dieser Einstellung können sie die Besucher auf jede erdenkliche Website weiterleiten bzw. auch wieder zurückleiten. Die End-URL muss mit &amp;quot;http://&amp;quot; am Beginn angegeben werden, z.B.: http://www.limesurvey.org Man kann {SAVEDID}, {TOKEN}, {SID} und {LANG} in der URL nutzen. Die &amp;quot;SAVEID&amp;quot; ist jene eindeutige Nummer, welcher an jede Antwort vergeben wird und TOKEN ist der Zugangsschlüssel, welchen der Befragte zur Teilnahme an der Umfrage benötigt hat. SID ist die ID der Umfrage und LANG der Sprachcode. Beispiel: http://www.ihreDomain.org/test.php?var1={SAVEDID}&amp;amp;var2;={TOKEN}&amp;amp;var3;={SID}&amp;amp;lang;={LANG} Zusätzlich kann man {INSERTANS:SGQA} nutzen (seit 1.82+). Dies erlaubt es die Antwort auf eine bestimmte Frage an die URL anzuhängen und einem Script zu senden, z.B. nützlich für die E-Mailadresse: &amp;quot;http://www.limesurvey.org/test.php?email={INSERTANS:1234X56X7}&amp;quot; Auch kann man einen &#039;pass-through&#039; Feldnamen und die Daten in die URL einfügen (seit 1.82+). In machen Fällen will man zum Beispiel einen Wert von Start bis zum Ende der Umfrage mitführen, z.B. die ID einer Marketing Firma. In diesem Fall startet man die Umfrage mit dem Link index.php?sid=12345&amp;amp;passthru;=subsid&amp;amp;subsid;=9999. Jetzt kannst du in der URL {PASSTHRULABEL} und {PASSTHRUVALUE} nutzen. Die URL http://www.limesurvey.org/test.php?{PASSTHRULABEL}={PASSTHRUVALUE} würde in diesem Fall zu http://www.limesurvey.org/test.php?subsid=9999 konvertiert werden.&lt;br /&gt;
#&#039;&#039;&#039;URL Beschreibung&#039;&#039;&#039;: Hier können sie einen Titel für die End-URL angeben.&lt;br /&gt;
#&#039;&#039;&#039;Administrator Name&#039;&#039;&#039;: Hier muss der Name des Hauptverantwortlichen für die Umfrage eingetragen werden. Dessen Name wird als Kontaktperson in allen Einladungs-E-mail angegeben, welche an potentielle Umfrageteilnehmer verschickt werden können.&lt;br /&gt;
#&#039;&#039;&#039;Administrator E-Mail&#039;&#039;&#039;: Hier soll die E-Mail-Adresse des Hauptverantwortlichen eingetragen werden, diese wird bei allen versendeten E-Mails als die Antwortadresse angegeben. Es ist auch möglich, mehrere Empfänger einzugeben, indem diese mit Semikolon getrennt notiert werden. Auf diese Weise können die sonst nur an den Administrator gesendeten Benachrichtigungen an weitere Adressen versandt werden. Beispiel: &amp;quot;admin@domain.org;office1@domain.org;email2@domain.org&amp;quot;&lt;br /&gt;
#&#039;&#039;&#039;E-Mail für Rückläufer&#039;&#039;&#039;: Das ist die Adresse an die Sendefehler Benachrichtigungen gesendet werden sollen. Standardmäßig ist die die E-Mailadresse das Administrators.&lt;br /&gt;
#&#039;&#039;&#039;Faxnummer&#039;&#039;&#039;: LimeSurvey bietet die Möglichkeit automatisch von einer Onlineumfrage eine druckbare Version herzustellen. In der druckbaren Version wird diese Faxnummer als Rücksendenummer angegeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;&#039;&#039;&#039;Achtung&#039;&#039;&#039;: Der HTML WYSIWYG editor erlaubt keinen Dateiupload! Dies wird in einer Fehlermeldung enden. Wenn sie Bilder oder andere Quellen hochladen müssen, erledigen sie dies bitte, nachdem sie die Umfrage erstellt haben, indem sie sie bearbeiten.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Präsentation &amp;amp; Navigation==&lt;br /&gt;
#&#039;&#039;&#039;Format&#039;&#039;&#039;: Hier können sie einstellen, wie ihre Fragen angezeigt werden sollen. Zur Auswahl stehen:&lt;br /&gt;
**&#039;&#039;&#039;Frage für Frage&#039;&#039;&#039;: Auf jeder Seite wird nur eine Frage angezeigt.&lt;br /&gt;
**&#039;&#039;&#039;Gruppe für Gruppe&#039;&#039;&#039;: Auf einer Seite werden immer alle Fragen einer Gruppe angezeigt. Es gibt natürlich schon noch eigene Willkommens- und Abschlussseiten.&lt;br /&gt;
**&#039;&#039;&#039;Alles auf einer Seite&#039;&#039;&#039;: Alle Fragen werden auf einer einzigen Seite angezeigt. Bei dieser Option gibt es bei aktivierten Umfragen keine eigene Willkommes- und Abschlussseite, somit wird auch die Willkommensmeldung und der Absenden-Knopf auf dieser einen Seite angezeigt.&lt;br /&gt;
#&#039;&#039;&#039;Vorlage&#039;&#039;&#039;: Hier können sie eine, auf ihrem System installierte, Vorlage für ihre Umfrage auswählen, um ihre Umfrage in einem gewissen Design darzustellen. Die &amp;quot;default&amp;quot;-Vorlage ist zwar sehr schlicht, dafür aber funktionell. Weitere Informationen zu Vorlage finden sie um Onlinebenutzerhandbuch unter Vorlagen / Vorlagen Editor.&lt;br /&gt;
#&#039;&#039;&#039;Zeige Willkommensseite &#039;&#039;&#039;: Ja/Nein. Wenn aktiviert, dann wird die unter &amp;quot;Generell&amp;quot; angegebene Willkommensnachricht angezeigt.&lt;br /&gt;
#&#039;&#039;&#039;Navigationsverzögerung&#039;&#039;&#039;: (in Sekunden): Zeit, nachdem der Vor- und der Zurück-Button aktiviert werden. (Standard: 0)&lt;br /&gt;
#&#039;&#039;&#039;[&amp;lt;&amp;lt; Zurück] Button zeigen&#039;&#039;&#039;: Diese Einstellung ist Standardmäßig auf &amp;quot;Nein&amp;quot; festgesetzt, wenn sie sie auf &amp;quot;Ja&amp;quot; ändern, wird ihren Besuchern ein [&amp;lt;&amp;lt; Zurück]-Knopf angezeigt und sie zu einer vorherigen Seite zurückkehren. Sonst besteht diese Möglichkeit nicht.&lt;br /&gt;
#&#039;&#039;&#039;Zeige Fragenindex / erlaube Springen&#039;&#039;&#039;: Ja/Nein. Standard Nein. Wenn die Einstellung auf Ja gesetzt wird, wird auf der rechten Seite ein Index aller Fragen angezeigt. Dadurch können die User zwischen den Fragen hin und her springen.&lt;br /&gt;
#&#039;&#039;&#039;Virtuelle Tastatur für Geräte ohne Tastatur &#039;&#039;&#039;: Durch Aktivierung wird auf Geräten ohne Tastatur für spezielle Typen von Fragen eine virtuelle Tastatur eingeblendet.&lt;br /&gt;
#&#039;&#039;&#039;Zeige Fortschrittsbalken &#039;&#039;&#039;: Ja/Nein. Standard Ja. Hier kann der für den Benutzer sichtbare Fortschrittsbalken abgeschaltet werden.&lt;br /&gt;
#&#039;&#039;&#039;Teilnehmer dürfen Antworten ausdrucken?&#039;&#039;&#039;: Diese Option ist standardmäßig deaktiviert. Wenn sie aktiviert wird, kann der Benutzer beim Absenden eine Übersicht seiner Antworten ausdrucken.&lt;br /&gt;
#&#039;&#039;&#039;Öffentliche Statistik&#039;&#039;&#039;: Wenn diese Option auf &amp;quot;Ja&amp;quot; gesetzt ist, wird den Nutzern, die den Fragebogen abgeschlossen haben, ein Link angezeigt, der sie zu den Statistiken der Umfrage weiterleitet. Der Administrator kann festlegen, welche Fragen in diesen Statistiken auftauchen dürfen, indem er das entsprechende Frage-Attribut &amp;quot;public_statistics&amp;quot; für diese Fragen aktiviert.&lt;br /&gt;
#&#039;&#039;&#039;Zeige Diagramme in öffentlicher Statistik&#039;&#039;&#039;: (ab 1.80) Legt fest, ob bei den öffentlichen Statistiken Grafiken mit ausgegeben werden oder ob lediglich eine tabellarische Übersicht angezeigt wird. Da das Erzeugen der Grafiken den Server bei großen Fragebögen mit vielen Antworten stark beanspruchen kann, kann man dies hier abschalten.&lt;br /&gt;
#&#039;&#039;&#039;URL automatisch laden, wenn die Umfrage abgeschlossen ist&#039;&#039;&#039;: Ja/Nein. Standard Nein. Wenn aktiviert, wird der User beim Abschicken der Umfrage automatisch an die End-URL weitergeleitet, welche unter &amp;quot;Generell&amp;quot; festgelegt werden kann.&lt;br /&gt;
#&#039;&#039;&#039;Zeige &amp;quot;Diese Umfrage besteht aus X Fragen.&amp;quot;&#039;&#039;&#039;: Ja/Nein. Standard Ja. Wenn aktiviert, wird diese Nachricht auf dem Begrüßungsbildschirm angezeigt. Diese Option hat keine Auswirkungen auf die Druck-Version.&lt;br /&gt;
#&#039;&#039;&#039;Zeige Fragengruppennamen und/oder -beschreibung &#039;&#039;&#039;: Steuert die Anzeigen der Frage-Gruppen Namen und Beschreibungen. Diese Option hat keine Auswirkungen auf die Druck-Version.&lt;br /&gt;
**&#039;&#039;&#039;Zeige Beides&#039;&#039;&#039; - Standard&lt;br /&gt;
**&#039;&#039;&#039;Nur Fragegruppenname zeigen&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;Nur Fragegruppenbeschreibung zeigen&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;Verstecke beides&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Zeige Fragennummer und/oder Fragencode&#039;&#039;&#039;:&lt;br /&gt;
**&#039;&#039;&#039;Zeige Beides&#039;&#039;&#039; - Standard&lt;br /&gt;
**&#039;&#039;&#039;Nur Fragennummer anzeigen&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;Nur Fragencode anzeigen&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;Verstecke beides&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Zeige &amp;quot;Keine Antwort&amp;quot;&#039;&#039;&#039;: Ja/Nein. Standard Ja. Wenn aktiviert, wird die Option &amp;quot;Keine Antwort&amp;quot; als Standard Antwort für einzelne Auswahlfragen angezeigt. Achtung, wenn sie das ausschalten, wird der Teilnehmer eine vorgegebene Antwort nicht mehr abwählen können.&lt;br /&gt;
&lt;br /&gt;
==Publizieren &amp;amp; Zugangskontrolle==&lt;br /&gt;
#&#039;&#039;&#039;Umfrage öffenlich listen&#039;&#039;&#039;: Ja/Nein. Standard Ja. Wenn aktiviert, ist die Umfrage im Umfragenportal zu sehen.&lt;br /&gt;
#&#039;&#039;&#039;Start-Datum/Zeit&#039;&#039;&#039;: Dies ist jenes Datum, ab der an ihrer Umfrage teilgenommen werden kann. Die Umfrage wird ab Mitternacht freigeschaltet. Zum Deaktivieren bitte das Feld einfach leer lassen.&lt;br /&gt;
#&#039;&#039;&#039;End-Datum/Zeit&#039;&#039;&#039;: Dies ist jenes Datum, bis zu dem an ihrer Umfrage teilgenommen werden kann. Beispiel: Wenn an ihrer Umfrage bis zum 31. Dezember teilgenommen werden kann, ist es nicht mehr möglich die Umfrage am 1. Januar auszufüllen. Zum Deaktivieren bitte das Feld einfach leer lassen.&lt;br /&gt;
#&#039;&#039;&#039;Setze Cookie um wiederholte Teilnahme auszuschließen&#039;&#039;&#039;: Wenn sie die Option aktivieren und sie keine Tokens verwenden um die Teilnehmer ihrer Umfrage zu steuern, dann wird auf jedem Client-Computer, auf dem die Umfrage ausgefüllt wurde ein &amp;quot;Cookie&amp;quot; gespeichert, sodass von diesem Computer aus nicht mehr an der Umfrage teilgenommen werden kann und bei einem erneuten Versuch eine Fehlermeldung erscheint. Die Sicherheitseinstellungen verschiedener Internetbrowser unterbinden die Speicherung von &amp;quot;Cookies&amp;quot;, dennoch sind sie ein gutes Mittel um bei anonymen Umfragen eine gewisse Kontrolle über unerwünschte Mehrfacheinträge zu erhalten.&lt;br /&gt;
#&#039;&#039;&#039;Benutze CAPTCHA für&#039;&#039;&#039;: Mit dieser Option können sie entscheiden, wann ein CAPTCHA benutzt werden soll. Standard ist für die Registrierung sowie das Speichern und Laden. Sie können CAPTCHAS aber auch für den Zugriff auf die Umfrage aktivieren.&lt;br /&gt;
&lt;br /&gt;
==Benachrichtigung &amp;amp; Datenverwaltung==&lt;br /&gt;
#&#039;&#039;&#039;Normale Bestätigung per E-Mail senden an&#039;&#039;&#039; und &#039;&#039;&#039;Ausführliche Bestätigung per E-Mail senden an&#039;&#039;&#039;: Diese Option ermöglicht es, die Antworten von einer ausgefüllten Umfrage an weitere E-Mail-Adressen zu senden, wenn der Fragebogen abgeschlossen wird. Daten können auf verschiedene Art und Weise und auch an mehrere Empfänger gesendet werden, Beispiel: &amp;quot;yourname@test.com;hisname@test.com&amp;quot; (mehrere Empfänger mit ; trennen) ODER mit verschiedenen Methoden: &amp;quot;yourname@test.com;{INSERTANS:82733X12X73};{TOKEN:EMAIL}&amp;quot;. Es gibt drei Methoden zum senden der Email:&lt;br /&gt;
**Eintragen einer E-Mail-Adresse&lt;br /&gt;
**Eintragen eines SGQA-Codes, so dass die Email an eine in der entsprechenden Frage eingetragene Adresse gesendet wird. Format: {INSERTANS:9999X88X12}&lt;br /&gt;
**Eintragen eines Token-Codes (funktioniert nur, wenn die Umfrage nicht anonym ist), die Antworten werden dann an eine im Tokenbereich hinterlegte E-Mail-Adresse gesendet. Format: {TOKEN:EMAIL} oder auch {TOKEN:ATTRIBUTE_1}&lt;br /&gt;
#&#039;&#039;&#039;Zeit-Datumsstempel&#039;&#039;&#039;: Mit dieser Einstellung können sie festlegen, ob die Antworten ihrer Umfrage mit einem Zeit- und Datumsstempel versehen werden. Falls ja, wird den Antworten ihrer Umfrage ein Feld mit der entsprechenden Information hinzugefügt.&lt;br /&gt;
#&#039;&#039;&#039;IP-Adresse speichern&#039;&#039;&#039;: Mit dieser Einstellung können sie festlegen, ob im Zuge der Umfrage die IP-Adresse des Umfrageteilnehmers gespeichert wird. Falls ja, wird der Umfrage ein Feld mit der entsprechenden Information hinzugefügt.&lt;br /&gt;
#&#039;&#039;&#039;Referrer-URL speichern&#039;&#039;&#039;: Mit dieser Einstellung können sie festlegen, ob die URL, von der ihr Besucher zu ihrer Umfrage gelangt ist gespeichert wird oder nicht. Falls ja, wird der Umfrage ein Feld mit der entsprechenden Information hin1.    #&#039;&#039;&#039;Bewertungsmodus aktivieren&#039;&#039;&#039;: Um innerhalb eines Fragebogens Bewertungen nutzen zu können, muss diese Einstellung aktiviert sein.&lt;br /&gt;
#&#039;&#039;&#039;Save timings&#039;&#039;&#039;: Wenn aktiviert, wird in einer separaten Tabelle die Zeit gespeichert, die die Teilnehmer zum Beantworten der einzelnen Fragen brauchten.&lt;br /&gt;
#&#039;&#039;&#039;Teilnehmer darf speichern und später fortsetzen&#039;&#039;&#039;: Wenn sie diese Option auf &amp;quot;Ja&amp;quot; festsetzen können die Benutzer nicht vollständig ausgefüllte Umfragen speichern und diese zu einem späteren Zeitpunkt laden und mit der Beantwortung der Fragen fortsetzen. Wenn sie eine Token-basierte Umfrage haben, ist es in den meisten Fällen besser, &amp;quot;Aktiviere Teilnehmerbasierte Antworten-Persistenz&amp;quot; im &amp;quot;Zugangsschlüssel&amp;quot; Tab zu aktivieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Google API howto&#039;&#039;&#039;:&lt;br /&gt;
# Register/login on Google Analytics (GA): [http://www.google.com/analytics/ www.google.com/analytics/]&lt;br /&gt;
# Create a key (the site should not point to the survey, but to the part before &#039;index.php?&#039;) The key should be UA-xxxxx.&lt;br /&gt;
# Go to your survey&#039;s global settings in LimeSurvey.&lt;br /&gt;
# Put the key in appropriate field (Google Analytics API Key). It&#039;s probably the best to set GA Style to track all pages as you can have more info.&lt;br /&gt;
# You don&#039;t need to do anything in shipped templates, as the {GOOGLE_ANALYTICS_JAVASCRIPT} part is already there.&lt;br /&gt;
# Activate the survey.&lt;br /&gt;
# Do the survey.&lt;br /&gt;
# Go to GA panel mainsite. (select appropriate account in left-hand upper corner if you have more than one). You should see some graphs with the statistics. Beware of the dates in upper right corner.&lt;br /&gt;
&lt;br /&gt;
==Zugangsschlüssel==&lt;br /&gt;
#&#039;&#039;&#039;Anonymisierte Antworten&#039;&#039;&#039;: Diese Option erlaubt ihnen festzulegen, ob man an ihrer Umfrage anonym teilnehmen kann oder nicht. Wenn sie dieses auf Nein setzen, werden alle Antworten mit einer Probandentabelle verbunden und sie können individuelle Antworten zu einem bestimmten Teilnehmer verfolgen. &#039;&#039;&#039;Achtung&#039;&#039;&#039;: Wenn die Umfrage anonym ist, gibt es absolut keine Möglichkeit, die Antworten mit den Teilnehmerdaten zu verknüpfen. Auch der Administrator ist dazu nicht in der Lage.&lt;br /&gt;
#&#039;&#039;&#039;Erlaube Bearbeiten von Antworten nach Absenden&#039;&#039;&#039;: Erlaubt es den Teilnehmern die Antworten nach Absenden der Umfrage zu bearbeiten, Standard: Nein. Funktioniert nur mit nicht-anonymen Umfragen!&lt;br /&gt;
#&#039;&#039;&#039;Aktiviere Teilnehmer-Basierte Antworten-Persistenz&#039;&#039;&#039;: Wenn in einer nicht anonymen Umfrage Tokens benutzt werden, dann möchten sie dieses Feature vielleicht aktivieren. Wenn sie es anschaltest wird jedes mal, wenn ein Teilnehmer eine Frage beantwortet, das Ergebnis automatisch gespeichert. Das heißt, auch wenn die Umfrage nicht abgeschlossen wurde oder der Browser abgestürzt ist, sind beim Wiederaufruf der Umfrage alle bereits eingegebenen Antworten vorhanden. Das kann auch für Umfragen genutzt werden, die schon mit eine Antwort vorausgefüllt sind.&lt;br /&gt;
#&#039;&#039;&#039;Offene Registrierung erlauben&#039;&#039;&#039;: Wenn sie den Zugang zu ihrer Umfrage über Probandenschlüssel steuern, können nur Besucher teilnehmen, für welche sie in der Probandentabelle einen passenden Schlüssel bereitstellen/-halten. Wenn sie Probandenschlüssel verwenden wollen und zusätzlich eine offene Registrierung erlauben wollen müssen sie dies hier einstellen. In diesem Fall können sich Besuchern unter Angabe von Namen und Email-Adresse für ihre Umfrage registrieren. Daraufhin wird vom Skript automatisch ein neuer Schlüssel in der Datenbank erstellt, welcher dem Benutzer mittels Einladungs-Email an die angegebene Email-Adresse zu gesendet wird. Das Skript überprüft weiter, dass pro Email-Adresse der Fragebogen nur einmal ausgefüllt werden kann.&lt;br /&gt;
#&#039;&#039;&#039;HTML Format für Teilnehmer-E-Mails benutzen &#039;&#039;&#039;: Wenn aktiviert, werden alle Mails der Zugangsschlüsselverwaltung, wie Einladungen, Erinnerungen und Bestätigungen als HTML formatiert gesendet werden.Dann können sie die Mails mit rich text formatieren. Achtung, wenn sie diese Einstellung verändern, müssen sie prüfen, ob die Mailtemplate immer noch so aussehen, wie sie wollen!&lt;br /&gt;
#&#039;&#039;&#039;Setzte Länge der Zugangsschlüssel auf&#039;&#039;&#039;: Diese Einstellung braucht normalerweise nicht geändert zu werden, der Defaultwert von 15 Zeichen (Maximalwert: 99) ist ausreichend. Wird hier ein neuer Wert X angegeben, so werden bei der Generierung jeweils Tokens von X Zeichen Länge erzeugt. Eine Mindestlänge von 5 sollte eingehalten werden, ist der eingegebene Wert geringer, so wird er automatisch auf den Defaultwert 15 gesetzt.&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Anonymized responses?&#039;&#039;&#039;: This allows you to determine whether responses to your survey are matched up with information from your surveys tokens table, or kept &#039;anonymous&#039;. The default is &#039;No&#039;. If you choose &#039;Yes&#039; then your survey is set to radically anonymize responses - there is really no way to connect answers and participants. Even the admin can&#039;t link response data and participant/token data. However you will always be able to specifically view each response entered by your participants in the survey. Thus individual, but anonymous, statistics is still possible to do. &#039;&#039;&#039;&#039;&#039;Attention:&#039;&#039;&#039;&#039;&#039;: If this feature is activated the response submission date and the token completed date are always set to 1980-01-01 00:00, no matter of other settings. Why? Invalidating the submission date ensures no match with webserver logs where the token key might show up when a survey is started. Invalidating the token completed date makes sure that you can&#039;t align the order of submitted responses to the order of the token date/time.&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Allow multiple responses or update responses with one token?&#039;&#039;&#039;: Default: No . If you activate this setting the participants may return to his survey by clicking the invitation link, even if he already submitted the survey. If survey is anonymous or Enable token-based response persistence is set to NO, this add a new responses. If survey is not anonymous and Enable token-based response persistence is Yes, user update existing responses.&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Enable token-based response persistence&#039;&#039;&#039;: If your survey uses tokens and your responses are not anonymized, then you may want to enable this feature. If you turn this on, then your participants can leave your survey and resume later at any time without using the &#039;Resume later&#039; function - for example if he/she gets distracted or his browser crashes. Upon clicking the invitation link again he will find his survey answers so far still in place when returns to the survey and will even continue on the last page seen.&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Allow public registration&#039;&#039;&#039;: If you use tokens to control access to your survey, the only people who can use the survey are those who have an entry and a unique token from the token table. If you would like to use tokens, but also allow public registration, set this to &amp;quot;Yes&amp;quot;.  The &amp;quot;Yes&amp;quot; setting will allow a visitor to register his name and email address. The script will create a new entry in your tokens table for this person, then send them an invitation email. The script will ensure that only one person per email address can complete your survey.&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Use HTML format for token emails?&#039;&#039;&#039;: When set to yes, all emails sent by the token management interface (invite, reminder, confirmation) will be formatted as HTML. You&#039;ll then be able to use rich formatting for this emails. Default is Yes at survey creation. Caution, when you switch on/off this feature, you&#039;ll have to double check that your email templates are still displayed as you want.&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Set token length to&#039;&#039;&#039;: Usually you don&#039;t need to change this, the default setting of 15 digits (max. supported value: 99) is fine. If changing this setting please enter a number (X) which should be greater than 5 (if the number entered is &amp;lt;5 it will be converted to the default value of 15). When generating tokens all tokens will use a length of X digits.&lt;br /&gt;
&lt;br /&gt;
==Importieren==&lt;br /&gt;
&lt;br /&gt;
Alternativ können sie eine Umfrage in diesem Tab importieren. Dabei haben die die Option, Ressourcen Links und INSERTANS Felder zu konvertieren, dies wird empfohlen!&lt;br /&gt;
&lt;br /&gt;
==Kopieren==&lt;br /&gt;
&lt;br /&gt;
Als zusätzliche Option kann mach auch Umfragen kopieren. Dabei haben die die Option, Ressourcen Links und INSERTANS Felder zu konvertieren, dies wird empfohlen! Die anderen Optionen sind selbsterklärend.&lt;br /&gt;
&lt;br /&gt;
==Panel-Integration (URL-Parameter)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt; Bitte beachten Sie, dass diese Registerkarte erst nach dem ersten Speichern der Umfrage sichtbar wird.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auf dieser Registerkarte können Sie festlegen, welche zusätzlichen URL-Parameter von Ihrer Umfrage akzeptiert werden. Wenn Sie möchten, können Sie auch den Wert als Antwort einer &amp;quot;Kurztext&amp;quot;- oder &amp;quot;Mehrfache Texte&amp;quot;-Fragtyp speichern (Sie können jede Textfrage als Ziel bestimmen). Auch wenn Sie den Wert des URL-Parameters nicht speichern, können Sie diese Parameter in der End-URL verwenden. Bitte werfen Sie einen Blick in die Dokumentation der End-URL für weitere Informationen.&lt;br /&gt;
&lt;br /&gt;
==Ressourcen==&lt;br /&gt;
&lt;br /&gt;
In diesem Tab können die Bilder und andere hochgeladenen Mediendateien ansehen, exportieren (ZIP) und importieren (ZIP). Dieser Tab ist nicht während der Erstellung, sondern nur während der nachträglichen Bearbeitung sichtbar.&lt;br /&gt;
&lt;br /&gt;
Sie können: &lt;br /&gt;
* Verfügbaren Dateien anschauen&lt;br /&gt;
* Dateien als ZIP-Archiv exportieren&lt;br /&gt;
* Dateien als ZIP-Archiv importieren&lt;br /&gt;
&lt;br /&gt;
Wichtige Hinweise:&lt;br /&gt;
#Erlaube Dateitypen werden in der config-defaults.php gesetzt.&lt;br /&gt;
#Die Dateien werden nach upload/surveys/&amp;lt;sid&amp;gt; hochgeladen.&lt;br /&gt;
#Sie können die Dateien nur in dieser Umfrage, und in keiner anderen einsehen&lt;br /&gt;
#Erwarten sie nicht, dass dieser Schutz Sicherheit für vertrauliche Dokumente gibt!&lt;br /&gt;
#Sie können keine ZIP Dateien mit Unterordner importieren&lt;br /&gt;
&lt;br /&gt;
=2. Schritt - Zusätzliche Sprachen=&lt;br /&gt;
&lt;br /&gt;
Um neue Sprachen hinzuzufügen, muss die Umfrage erste erstellt und gespeichert werden. Dann muss sie erneut editiert werden. Jetzt können sie neue Sprachen hinzufügen oder entfernen. Sprachen werde immer endgültig entfernt, also seien sie vorsichtig! Nach dem Klicken des &amp;quot;Speichern &amp;amp; Umfragetextelemente bearbeiten&amp;quot; Button landen sie auf einer Seite, wo sie alle einzelnen Sätze  der Umfrage übersetzten können / müssen. Zusätzlich kann hier noch das Datumsformat angepasst werden.&lt;br /&gt;
&lt;br /&gt;
By clicking on the button &#039;Save and continue&#039; on the first page in the survey settings you will be taken to the language-specific page which lets you change all texts for each language like &#039;&#039;Survey name&#039;&#039;, &#039;&#039;Welcome Text&#039;&#039;, etc. You can also edit the date format which should be used for a certain language.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Translations:Survey_settings/10/de&amp;diff=61707</id>
		<title>Translations:Survey settings/10/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Translations:Survey_settings/10/de&amp;diff=61707"/>
		<updated>2014-05-13T09:26:06Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Publizieren &amp;amp; Zugangskontrolle==&lt;br /&gt;
#&#039;&#039;&#039;Umfrage öffenlich listen&#039;&#039;&#039;: Ja/Nein. Standard Ja. Wenn aktiviert, ist die Umfrage im Umfragenportal zu sehen.&lt;br /&gt;
#&#039;&#039;&#039;Start-Datum/Zeit&#039;&#039;&#039;: Dies ist jenes Datum, ab der an ihrer Umfrage teilgenommen werden kann. Die Umfrage wird ab Mitternacht freigeschaltet. Zum Deaktivieren bitte das Feld einfach leer lassen.&lt;br /&gt;
#&#039;&#039;&#039;End-Datum/Zeit&#039;&#039;&#039;: Dies ist jenes Datum, bis zu dem an ihrer Umfrage teilgenommen werden kann. Beispiel: Wenn an ihrer Umfrage bis zum 31. Dezember teilgenommen werden kann, ist es nicht mehr möglich die Umfrage am 1. Januar auszufüllen. Zum Deaktivieren bitte das Feld einfach leer lassen.&lt;br /&gt;
#&#039;&#039;&#039;Setze Cookie um wiederholte Teilnahme auszuschließen&#039;&#039;&#039;: Wenn sie die Option aktivieren und sie keine Tokens verwenden um die Teilnehmer ihrer Umfrage zu steuern, dann wird auf jedem Client-Computer, auf dem die Umfrage ausgefüllt wurde ein &amp;quot;Cookie&amp;quot; gespeichert, sodass von diesem Computer aus nicht mehr an der Umfrage teilgenommen werden kann und bei einem erneuten Versuch eine Fehlermeldung erscheint. Die Sicherheitseinstellungen verschiedener Internetbrowser unterbinden die Speicherung von &amp;quot;Cookies&amp;quot;, dennoch sind sie ein gutes Mittel um bei anonymen Umfragen eine gewisse Kontrolle über unerwünschte Mehrfacheinträge zu erhalten.&lt;br /&gt;
#&#039;&#039;&#039;Benutze CAPTCHA für&#039;&#039;&#039;: Mit dieser Option können sie entscheiden, wann ein CAPTCHA benutzt werden soll. Standard ist für die Registrierung sowie das Speichern und Laden. Sie können CAPTCHAS aber auch für den Zugriff auf die Umfrage aktivieren.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=ComfortUpdate/de&amp;diff=61688</id>
		<title>ComfortUpdate/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=ComfortUpdate/de&amp;diff=61688"/>
		<updated>2014-04-30T07:52:14Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Allgemeines=&lt;br /&gt;
&lt;br /&gt;
Das ComfortUpdate ist ein neues Feature seit Version 1.87. Mit Hilfe des ComfortUpdate können Sie Ihre LimeSurvey Installation mit nur wenigen Mauslick aus Ihrem Browser aktualisieren - statt des üblichen manuellen Updates.&lt;br /&gt;
&lt;br /&gt;
Das ComfortUpdate ist momentan ein Service, der umsonst ist - aber ab einem noch nicht näher bestimmten Zeitpunkt in der Zukunft planen wir dafür ein geringes Entgelt zu nehmen.&lt;br /&gt;
=Voraussetzungen=&lt;br /&gt;
&lt;br /&gt;
Ihre PHP-Installation muss mit Unterstützung für zlib kompiliert werden. Überprüfen Sie Ihre PHPInfo zu sehen, und/oder kontaktieren Sie Ihren Systemadministrator, um dies zu bestätigen (siehe auch [http://php.net/manual/de/book.zlib.php]).&lt;br /&gt;
&lt;br /&gt;
Your server must be able to connect by SSL to update.limesurvey.org and update-data.limesurvey.org in order to use the ComfortUpdate tool. If you have problems with this and get error messages like&lt;br /&gt;
&lt;br /&gt;
   10060 could not connect to the host &amp;quot;update.limesurvey.org&amp;quot;&lt;br /&gt;
sollten Sie ihre Proxy / Firewall-Sicherheitseinstellungen bearbeiten oder Ihren Server-Administrator um Hilfe fragen.&lt;br /&gt;
&lt;br /&gt;
=Anwendung von ComfortUpdate=&lt;br /&gt;
&lt;br /&gt;
Das LimeSurvey ComfortUpdate kann auch mit aktiven Umfragen durchgeführt werden. Es ist nicht möglich damit vorhandenen Daten zu löschen oder zu zerstören. Allerdings sollte man im Hinterkopf behalten, dass dies eine Beta-Funktion ist und sicherzustellen, dass Sie Ihre Datenbank und Dateien gesichert haben, bevor Sie fortfahren.&lt;br /&gt;
&lt;br /&gt;
*Öffnen Sie die Globale Einstellungen, wählen Sie die ersten Registerkarte und klicken Sie auf die Schaltfläche für &amp;quot;Updates&amp;quot; &lt;br /&gt;
*Es wird ein Update Link angezeigt, wenn eine neue Version von LimeSurvey vorhanden ist. Wenn nicht klicken Sie auf &amp;quot; Jetzt prüfen &amp;quot;, um zu sehen, ob ein neues Update verfügbar ist. &lt;br /&gt;
*Wenn ein Update gefunden wird, wird LimeSurvey ein Link angezeigen, damit Sie aktualisieren können. Klicken Sie auf diesen Link um die Aktualisierung zu starten. &lt;br /&gt;
* LimeSurvey überprüft jetzt das Installations-Verzeichnis auf entsprechende Berechtigungen, die eine Aktualisierung ermöglichen müssen. Eine Liste der vorgeschlagenen Änderungen werden angezeigt. &lt;br /&gt;
* Wenn es irgendwelche Probleme gibt , müssen Sie diese zuerst korrigieren, und dann gelangen Sie zum nächsten Schritt . &lt;br /&gt;
* Die ComfortUpdate wird nun ein Backup Ihrer Datenbank anlegen (wenn Sie MySQL verwenden ) und speichert Ihre alte Installationsdateien im Verzeichnis /tmp. Wenn Sie eine anderen Datenbanktyp verwenden, sollten Sie Ihre Datenbank manuell sichern, bevor Sie fortfahren. ComfortUpdate wird nun Ihre Installation auf die neueste Version aktualisieren, einschließlich der Aktualisierung der Datenbank. &lt;br /&gt;
&lt;br /&gt;
=Bekannte Probleme=&lt;br /&gt;
&lt;br /&gt;
==Leere Seite auf Schritt 3==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie eine leere Seite beiSchritt 3 bekommen, bedeutet es in der Regel, dass das Arbeitsspeicherlimit Ihrer PHP-Konfiguration zu niedrig eingestellt ist. Während dieses Schrittes versucht LimeSurvey, ein Datenbank-Backup und ein Datei-Backup (von Dateien, die ersetzt werden soll) zu erstellen.&lt;br /&gt;
&lt;br /&gt;
==Verwendung eines Proxy-Servers für die Verbindung mit update.limesurvey.org==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich hinter einem Proxy befinden, müssen Sie möglicherweiseeinige Einstellungen anpassen, um das Komfort-Update nutzen zu können. In LimeSurvey 2.05 größer als build 140404 können Sie die den Proxy-Server in der Konfigurationsdatei festgelegen (siehe https://manual.limesurvey.org/Optional_settings#General_settings).&lt;br /&gt;
&lt;br /&gt;
Bei früheren Versionen müssen Sie die Datei http.php in Ihrer LimeSurvey-Installation anpassen. Werfen Sie mit Hilfe eines Texteditors einen Blick auf die Variablen in den ersten Zeilen der Datei und fügen ggf. die Daten Ihres Proxyserver hinzu.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Für eine Verbindung zu einem Proxy-Server 111.111.111.111 Port 1234 ohne Authentifizierung sollten Sie dies so setzen:&lt;br /&gt;
  var $proxy_host_name=&amp;quot;111.111.111.111&amp;quot;;&lt;br /&gt;
  var $proxy_host_port=1234;&lt;br /&gt;
&lt;br /&gt;
Abhängig von der verwendeten LimeSurvey-Version finden Sie die Datei in /admin/classes oder /application/libraries/admin/http/. Es gibt vor-kodierte Variablen in der Datei, daher werden nur die Details zu Ihrem Proxy benötigt. Wenn Ihre Installation ungewöhnlich langsam ist, kann das Setzen eines Proxies helfen.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Translations:ComfortUpdate/16/de&amp;diff=61687</id>
		<title>Translations:ComfortUpdate/16/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Translations:ComfortUpdate/16/de&amp;diff=61687"/>
		<updated>2014-04-30T07:52:14Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wenn Sie sich hinter einem Proxy befinden, müssen Sie möglicherweiseeinige Einstellungen anpassen, um das Komfort-Update nutzen zu können. In LimeSurvey 2.05 größer als build 140404 können Sie die den Proxy-Server in der Konfigurationsdatei festgelegen (siehe https://manual.limesurvey.org/Optional_settings#General_settings).&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=ComfortUpdate/de&amp;diff=61686</id>
		<title>ComfortUpdate/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=ComfortUpdate/de&amp;diff=61686"/>
		<updated>2014-04-30T07:51:41Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Allgemeines=&lt;br /&gt;
&lt;br /&gt;
Das ComfortUpdate ist ein neues Feature seit Version 1.87. Mit Hilfe des ComfortUpdate können Sie Ihre LimeSurvey Installation mit nur wenigen Mauslick aus Ihrem Browser aktualisieren - statt des üblichen manuellen Updates.&lt;br /&gt;
&lt;br /&gt;
Das ComfortUpdate ist momentan ein Service, der umsonst ist - aber ab einem noch nicht näher bestimmten Zeitpunkt in der Zukunft planen wir dafür ein geringes Entgelt zu nehmen.&lt;br /&gt;
=Voraussetzungen=&lt;br /&gt;
&lt;br /&gt;
Ihre PHP-Installation muss mit Unterstützung für zlib kompiliert werden. Überprüfen Sie Ihre PHPInfo zu sehen, und/oder kontaktieren Sie Ihren Systemadministrator, um dies zu bestätigen (siehe auch [http://php.net/manual/de/book.zlib.php]).&lt;br /&gt;
&lt;br /&gt;
Your server must be able to connect by SSL to update.limesurvey.org and update-data.limesurvey.org in order to use the ComfortUpdate tool. If you have problems with this and get error messages like&lt;br /&gt;
&lt;br /&gt;
   10060 could not connect to the host &amp;quot;update.limesurvey.org&amp;quot;&lt;br /&gt;
sollten Sie ihre Proxy / Firewall-Sicherheitseinstellungen bearbeiten oder Ihren Server-Administrator um Hilfe fragen.&lt;br /&gt;
&lt;br /&gt;
=Anwendung von ComfortUpdate=&lt;br /&gt;
&lt;br /&gt;
Das LimeSurvey ComfortUpdate kann auch mit aktiven Umfragen durchgeführt werden. Es ist nicht möglich damit vorhandenen Daten zu löschen oder zu zerstören. Allerdings sollte man im Hinterkopf behalten, dass dies eine Beta-Funktion ist und sicherzustellen, dass Sie Ihre Datenbank und Dateien gesichert haben, bevor Sie fortfahren.&lt;br /&gt;
&lt;br /&gt;
*Öffnen Sie die Globale Einstellungen, wählen Sie die ersten Registerkarte und klicken Sie auf die Schaltfläche für &amp;quot;Updates&amp;quot; &lt;br /&gt;
*Es wird ein Update Link angezeigt, wenn eine neue Version von LimeSurvey vorhanden ist. Wenn nicht klicken Sie auf &amp;quot; Jetzt prüfen &amp;quot;, um zu sehen, ob ein neues Update verfügbar ist. &lt;br /&gt;
*Wenn ein Update gefunden wird, wird LimeSurvey ein Link angezeigen, damit Sie aktualisieren können. Klicken Sie auf diesen Link um die Aktualisierung zu starten. &lt;br /&gt;
* LimeSurvey überprüft jetzt das Installations-Verzeichnis auf entsprechende Berechtigungen, die eine Aktualisierung ermöglichen müssen. Eine Liste der vorgeschlagenen Änderungen werden angezeigt. &lt;br /&gt;
* Wenn es irgendwelche Probleme gibt , müssen Sie diese zuerst korrigieren, und dann gelangen Sie zum nächsten Schritt . &lt;br /&gt;
* Die ComfortUpdate wird nun ein Backup Ihrer Datenbank anlegen (wenn Sie MySQL verwenden ) und speichert Ihre alte Installationsdateien im Verzeichnis /tmp. Wenn Sie eine anderen Datenbanktyp verwenden, sollten Sie Ihre Datenbank manuell sichern, bevor Sie fortfahren. ComfortUpdate wird nun Ihre Installation auf die neueste Version aktualisieren, einschließlich der Aktualisierung der Datenbank. &lt;br /&gt;
&lt;br /&gt;
=Bekannte Probleme=&lt;br /&gt;
&lt;br /&gt;
==Leere Seite auf Schritt 3==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie eine leere Seite beiSchritt 3 bekommen, bedeutet es in der Regel, dass das Arbeitsspeicherlimit Ihrer PHP-Konfiguration zu niedrig eingestellt ist. Während dieses Schrittes versucht LimeSurvey, ein Datenbank-Backup und ein Datei-Backup (von Dateien, die ersetzt werden soll) zu erstellen.&lt;br /&gt;
&lt;br /&gt;
==Verwendung eines Proxy-Servers für die Verbindung mit update.limesurvey.org==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich hinter einem Proxy befinden, müssen Sie möglicherweiseeinige Einstellungen anpassen, um das Komfort-Update zu nutzen. In LimeSurvey 2.05 größer als build 140404 können Sie die den Proxy-Server in der Konfigurationsdatei festgelegen (siehe https://manual.limesurvey.org/Optional_settings#General_settings).&lt;br /&gt;
&lt;br /&gt;
Bei früheren Versionen müssen Sie die Datei http.php in Ihrer LimeSurvey-Installation anpassen. Werfen Sie mit Hilfe eines Texteditors einen Blick auf die Variablen in den ersten Zeilen der Datei und fügen ggf. die Daten Ihres Proxyserver hinzu.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Für eine Verbindung zu einem Proxy-Server 111.111.111.111 Port 1234 ohne Authentifizierung sollten Sie dies so setzen:&lt;br /&gt;
  var $proxy_host_name=&amp;quot;111.111.111.111&amp;quot;;&lt;br /&gt;
  var $proxy_host_port=1234;&lt;br /&gt;
&lt;br /&gt;
Abhängig von der verwendeten LimeSurvey-Version finden Sie die Datei in /admin/classes oder /application/libraries/admin/http/. Es gibt vor-kodierte Variablen in der Datei, daher werden nur die Details zu Ihrem Proxy benötigt. Wenn Ihre Installation ungewöhnlich langsam ist, kann das Setzen eines Proxies helfen.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Translations:ComfortUpdate/18/de&amp;diff=61685</id>
		<title>Translations:ComfortUpdate/18/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Translations:ComfortUpdate/18/de&amp;diff=61685"/>
		<updated>2014-04-30T07:51:41Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Abhängig von der verwendeten LimeSurvey-Version finden Sie die Datei in /admin/classes oder /application/libraries/admin/http/. Es gibt vor-kodierte Variablen in der Datei, daher werden nur die Details zu Ihrem Proxy benötigt. Wenn Ihre Installation ungewöhnlich langsam ist, kann das Setzen eines Proxies helfen.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=ComfortUpdate/de&amp;diff=61684</id>
		<title>ComfortUpdate/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=ComfortUpdate/de&amp;diff=61684"/>
		<updated>2014-04-30T07:50:58Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Allgemeines=&lt;br /&gt;
&lt;br /&gt;
Das ComfortUpdate ist ein neues Feature seit Version 1.87. Mit Hilfe des ComfortUpdate können Sie Ihre LimeSurvey Installation mit nur wenigen Mauslick aus Ihrem Browser aktualisieren - statt des üblichen manuellen Updates.&lt;br /&gt;
&lt;br /&gt;
Das ComfortUpdate ist momentan ein Service, der umsonst ist - aber ab einem noch nicht näher bestimmten Zeitpunkt in der Zukunft planen wir dafür ein geringes Entgelt zu nehmen.&lt;br /&gt;
=Voraussetzungen=&lt;br /&gt;
&lt;br /&gt;
Ihre PHP-Installation muss mit Unterstützung für zlib kompiliert werden. Überprüfen Sie Ihre PHPInfo zu sehen, und/oder kontaktieren Sie Ihren Systemadministrator, um dies zu bestätigen (siehe auch [http://php.net/manual/de/book.zlib.php]).&lt;br /&gt;
&lt;br /&gt;
Your server must be able to connect by SSL to update.limesurvey.org and update-data.limesurvey.org in order to use the ComfortUpdate tool. If you have problems with this and get error messages like&lt;br /&gt;
&lt;br /&gt;
   10060 could not connect to the host &amp;quot;update.limesurvey.org&amp;quot;&lt;br /&gt;
sollten Sie ihre Proxy / Firewall-Sicherheitseinstellungen bearbeiten oder Ihren Server-Administrator um Hilfe fragen.&lt;br /&gt;
&lt;br /&gt;
=Anwendung von ComfortUpdate=&lt;br /&gt;
&lt;br /&gt;
Das LimeSurvey ComfortUpdate kann auch mit aktiven Umfragen durchgeführt werden. Es ist nicht möglich damit vorhandenen Daten zu löschen oder zu zerstören. Allerdings sollte man im Hinterkopf behalten, dass dies eine Beta-Funktion ist und sicherzustellen, dass Sie Ihre Datenbank und Dateien gesichert haben, bevor Sie fortfahren.&lt;br /&gt;
&lt;br /&gt;
*Öffnen Sie die Globale Einstellungen, wählen Sie die ersten Registerkarte und klicken Sie auf die Schaltfläche für &amp;quot;Updates&amp;quot; &lt;br /&gt;
*Es wird ein Update Link angezeigt, wenn eine neue Version von LimeSurvey vorhanden ist. Wenn nicht klicken Sie auf &amp;quot; Jetzt prüfen &amp;quot;, um zu sehen, ob ein neues Update verfügbar ist. &lt;br /&gt;
*Wenn ein Update gefunden wird, wird LimeSurvey ein Link angezeigen, damit Sie aktualisieren können. Klicken Sie auf diesen Link um die Aktualisierung zu starten. &lt;br /&gt;
* LimeSurvey überprüft jetzt das Installations-Verzeichnis auf entsprechende Berechtigungen, die eine Aktualisierung ermöglichen müssen. Eine Liste der vorgeschlagenen Änderungen werden angezeigt. &lt;br /&gt;
* Wenn es irgendwelche Probleme gibt , müssen Sie diese zuerst korrigieren, und dann gelangen Sie zum nächsten Schritt . &lt;br /&gt;
* Die ComfortUpdate wird nun ein Backup Ihrer Datenbank anlegen (wenn Sie MySQL verwenden ) und speichert Ihre alte Installationsdateien im Verzeichnis /tmp. Wenn Sie eine anderen Datenbanktyp verwenden, sollten Sie Ihre Datenbank manuell sichern, bevor Sie fortfahren. ComfortUpdate wird nun Ihre Installation auf die neueste Version aktualisieren, einschließlich der Aktualisierung der Datenbank. &lt;br /&gt;
&lt;br /&gt;
=Bekannte Probleme=&lt;br /&gt;
&lt;br /&gt;
==Leere Seite auf Schritt 3==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie eine leere Seite beiSchritt 3 bekommen, bedeutet es in der Regel, dass das Arbeitsspeicherlimit Ihrer PHP-Konfiguration zu niedrig eingestellt ist. Während dieses Schrittes versucht LimeSurvey, ein Datenbank-Backup und ein Datei-Backup (von Dateien, die ersetzt werden soll) zu erstellen.&lt;br /&gt;
&lt;br /&gt;
==Verwendung eines Proxy-Servers für die Verbindung mit update.limesurvey.org==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich hinter einem Proxy befinden, müssen Sie möglicherweiseeinige Einstellungen anpassen, um das Komfort-Update zu nutzen. In LimeSurvey 2.05 größer als build 140404 können Sie die den Proxy-Server in der Konfigurationsdatei festgelegen (siehe https://manual.limesurvey.org/Optional_settings#General_settings).&lt;br /&gt;
&lt;br /&gt;
Bei früheren Versionen müssen Sie die Datei http.php in Ihrer LimeSurvey-Installation anpassen. Werfen Sie mit Hilfe eines Texteditors einen Blick auf die Variablen in den ersten Zeilen der Datei und fügen ggf. die Daten Ihres Proxyserver hinzu.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Für eine Verbindung zu einem Proxy-Server 111.111.111.111 Port 1234 ohne Authentifizierung sollten Sie dies so setzen:&lt;br /&gt;
  var $proxy_host_name=&amp;quot;111.111.111.111&amp;quot;;&lt;br /&gt;
  var $proxy_host_port=1234;&lt;br /&gt;
&lt;br /&gt;
Abhängig von der verwendeten LimeSurvey-Version finden Sie Datei die http.php in  /admin/classes oder /application/libraries/admin/http/. Es gibt vor-kodierte Variablen in der Datei, daher werden nur die Details zu Ihrem Proxy benötigt. Wenn Ihre Installation ungewöhnlich langsam ist, kann das Setzen eines Proxies helfen.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Translations:ComfortUpdate/18/de&amp;diff=61683</id>
		<title>Translations:ComfortUpdate/18/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Translations:ComfortUpdate/18/de&amp;diff=61683"/>
		<updated>2014-04-30T07:50:57Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Abhängig von der verwendeten LimeSurvey-Version finden Sie Datei die http.php in  /admin/classes oder /application/libraries/admin/http/. Es gibt vor-kodierte Variablen in der Datei, daher werden nur die Details zu Ihrem Proxy benötigt. Wenn Ihre Installation ungewöhnlich langsam ist, kann das Setzen eines Proxies helfen.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=ComfortUpdate/de&amp;diff=61682</id>
		<title>ComfortUpdate/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=ComfortUpdate/de&amp;diff=61682"/>
		<updated>2014-04-30T07:49:10Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Created page with &amp;quot;Bei früheren Versionen müssen Sie die Datei http.php in Ihrer LimeSurvey-Installation anpassen. Werfen Sie mit Hilfe eines Texteditors einen Blick auf die Variablen in den e...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Allgemeines=&lt;br /&gt;
&lt;br /&gt;
Das ComfortUpdate ist ein neues Feature seit Version 1.87. Mit Hilfe des ComfortUpdate können Sie Ihre LimeSurvey Installation mit nur wenigen Mauslick aus Ihrem Browser aktualisieren - statt des üblichen manuellen Updates.&lt;br /&gt;
&lt;br /&gt;
Das ComfortUpdate ist momentan ein Service, der umsonst ist - aber ab einem noch nicht näher bestimmten Zeitpunkt in der Zukunft planen wir dafür ein geringes Entgelt zu nehmen.&lt;br /&gt;
=Voraussetzungen=&lt;br /&gt;
&lt;br /&gt;
Ihre PHP-Installation muss mit Unterstützung für zlib kompiliert werden. Überprüfen Sie Ihre PHPInfo zu sehen, und/oder kontaktieren Sie Ihren Systemadministrator, um dies zu bestätigen (siehe auch [http://php.net/manual/de/book.zlib.php]).&lt;br /&gt;
&lt;br /&gt;
Your server must be able to connect by SSL to update.limesurvey.org and update-data.limesurvey.org in order to use the ComfortUpdate tool. If you have problems with this and get error messages like&lt;br /&gt;
&lt;br /&gt;
   10060 could not connect to the host &amp;quot;update.limesurvey.org&amp;quot;&lt;br /&gt;
sollten Sie ihre Proxy / Firewall-Sicherheitseinstellungen bearbeiten oder Ihren Server-Administrator um Hilfe fragen.&lt;br /&gt;
&lt;br /&gt;
=Anwendung von ComfortUpdate=&lt;br /&gt;
&lt;br /&gt;
Das LimeSurvey ComfortUpdate kann auch mit aktiven Umfragen durchgeführt werden. Es ist nicht möglich damit vorhandenen Daten zu löschen oder zu zerstören. Allerdings sollte man im Hinterkopf behalten, dass dies eine Beta-Funktion ist und sicherzustellen, dass Sie Ihre Datenbank und Dateien gesichert haben, bevor Sie fortfahren.&lt;br /&gt;
&lt;br /&gt;
*Öffnen Sie die Globale Einstellungen, wählen Sie die ersten Registerkarte und klicken Sie auf die Schaltfläche für &amp;quot;Updates&amp;quot; &lt;br /&gt;
*Es wird ein Update Link angezeigt, wenn eine neue Version von LimeSurvey vorhanden ist. Wenn nicht klicken Sie auf &amp;quot; Jetzt prüfen &amp;quot;, um zu sehen, ob ein neues Update verfügbar ist. &lt;br /&gt;
*Wenn ein Update gefunden wird, wird LimeSurvey ein Link angezeigen, damit Sie aktualisieren können. Klicken Sie auf diesen Link um die Aktualisierung zu starten. &lt;br /&gt;
* LimeSurvey überprüft jetzt das Installations-Verzeichnis auf entsprechende Berechtigungen, die eine Aktualisierung ermöglichen müssen. Eine Liste der vorgeschlagenen Änderungen werden angezeigt. &lt;br /&gt;
* Wenn es irgendwelche Probleme gibt , müssen Sie diese zuerst korrigieren, und dann gelangen Sie zum nächsten Schritt . &lt;br /&gt;
* Die ComfortUpdate wird nun ein Backup Ihrer Datenbank anlegen (wenn Sie MySQL verwenden ) und speichert Ihre alte Installationsdateien im Verzeichnis /tmp. Wenn Sie eine anderen Datenbanktyp verwenden, sollten Sie Ihre Datenbank manuell sichern, bevor Sie fortfahren. ComfortUpdate wird nun Ihre Installation auf die neueste Version aktualisieren, einschließlich der Aktualisierung der Datenbank. &lt;br /&gt;
&lt;br /&gt;
=Bekannte Probleme=&lt;br /&gt;
&lt;br /&gt;
==Leere Seite auf Schritt 3==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie eine leere Seite beiSchritt 3 bekommen, bedeutet es in der Regel, dass das Arbeitsspeicherlimit Ihrer PHP-Konfiguration zu niedrig eingestellt ist. Während dieses Schrittes versucht LimeSurvey, ein Datenbank-Backup und ein Datei-Backup (von Dateien, die ersetzt werden soll) zu erstellen.&lt;br /&gt;
&lt;br /&gt;
==Verwendung eines Proxy-Servers für die Verbindung mit update.limesurvey.org==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich hinter einem Proxy befinden, müssen Sie möglicherweiseeinige Einstellungen anpassen, um das Komfort-Update zu nutzen. In LimeSurvey 2.05 größer als build 140404 können Sie die den Proxy-Server in der Konfigurationsdatei festgelegen (siehe https://manual.limesurvey.org/Optional_settings#General_settings).&lt;br /&gt;
&lt;br /&gt;
Bei früheren Versionen müssen Sie die Datei http.php in Ihrer LimeSurvey-Installation anpassen. Werfen Sie mit Hilfe eines Texteditors einen Blick auf die Variablen in den ersten Zeilen der Datei und fügen ggf. die Daten Ihres Proxyserver hinzu.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Für eine Verbindung zu einem Proxy-Server 111.111.111.111 Port 1234 ohne Authentifizierung sollten Sie dies so setzen:&lt;br /&gt;
  var $proxy_host_name=&amp;quot;111.111.111.111&amp;quot;;&lt;br /&gt;
  var $proxy_host_port=1234;&lt;br /&gt;
&lt;br /&gt;
Depending on your version, you will find the file in the /admin/classes/ folder or in /application/libraries/admin/http/. There are pre-coded variables within the file so only details of your proxy are needed. If your installation is running unusually slow, wrong proxy settings may be the cause.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Translations:ComfortUpdate/19/de&amp;diff=61681</id>
		<title>Translations:ComfortUpdate/19/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Translations:ComfortUpdate/19/de&amp;diff=61681"/>
		<updated>2014-04-30T07:49:10Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Created page with &amp;quot;Bei früheren Versionen müssen Sie die Datei http.php in Ihrer LimeSurvey-Installation anpassen. Werfen Sie mit Hilfe eines Texteditors einen Blick auf die Variablen in den e...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bei früheren Versionen müssen Sie die Datei http.php in Ihrer LimeSurvey-Installation anpassen. Werfen Sie mit Hilfe eines Texteditors einen Blick auf die Variablen in den ersten Zeilen der Datei und fügen ggf. die Daten Ihres Proxyserver hinzu.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=ComfortUpdate/de&amp;diff=61680</id>
		<title>ComfortUpdate/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=ComfortUpdate/de&amp;diff=61680"/>
		<updated>2014-04-30T07:46:14Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Allgemeines=&lt;br /&gt;
&lt;br /&gt;
Das ComfortUpdate ist ein neues Feature seit Version 1.87. Mit Hilfe des ComfortUpdate können Sie Ihre LimeSurvey Installation mit nur wenigen Mauslick aus Ihrem Browser aktualisieren - statt des üblichen manuellen Updates.&lt;br /&gt;
&lt;br /&gt;
Das ComfortUpdate ist momentan ein Service, der umsonst ist - aber ab einem noch nicht näher bestimmten Zeitpunkt in der Zukunft planen wir dafür ein geringes Entgelt zu nehmen.&lt;br /&gt;
=Voraussetzungen=&lt;br /&gt;
&lt;br /&gt;
Ihre PHP-Installation muss mit Unterstützung für zlib kompiliert werden. Überprüfen Sie Ihre PHPInfo zu sehen, und/oder kontaktieren Sie Ihren Systemadministrator, um dies zu bestätigen (siehe auch [http://php.net/manual/de/book.zlib.php]).&lt;br /&gt;
&lt;br /&gt;
Your server must be able to connect by SSL to update.limesurvey.org and update-data.limesurvey.org in order to use the ComfortUpdate tool. If you have problems with this and get error messages like&lt;br /&gt;
&lt;br /&gt;
   10060 could not connect to the host &amp;quot;update.limesurvey.org&amp;quot;&lt;br /&gt;
sollten Sie ihre Proxy / Firewall-Sicherheitseinstellungen bearbeiten oder Ihren Server-Administrator um Hilfe fragen.&lt;br /&gt;
&lt;br /&gt;
=Anwendung von ComfortUpdate=&lt;br /&gt;
&lt;br /&gt;
Das LimeSurvey ComfortUpdate kann auch mit aktiven Umfragen durchgeführt werden. Es ist nicht möglich damit vorhandenen Daten zu löschen oder zu zerstören. Allerdings sollte man im Hinterkopf behalten, dass dies eine Beta-Funktion ist und sicherzustellen, dass Sie Ihre Datenbank und Dateien gesichert haben, bevor Sie fortfahren.&lt;br /&gt;
&lt;br /&gt;
*Öffnen Sie die Globale Einstellungen, wählen Sie die ersten Registerkarte und klicken Sie auf die Schaltfläche für &amp;quot;Updates&amp;quot; &lt;br /&gt;
*Es wird ein Update Link angezeigt, wenn eine neue Version von LimeSurvey vorhanden ist. Wenn nicht klicken Sie auf &amp;quot; Jetzt prüfen &amp;quot;, um zu sehen, ob ein neues Update verfügbar ist. &lt;br /&gt;
*Wenn ein Update gefunden wird, wird LimeSurvey ein Link angezeigen, damit Sie aktualisieren können. Klicken Sie auf diesen Link um die Aktualisierung zu starten. &lt;br /&gt;
* LimeSurvey überprüft jetzt das Installations-Verzeichnis auf entsprechende Berechtigungen, die eine Aktualisierung ermöglichen müssen. Eine Liste der vorgeschlagenen Änderungen werden angezeigt. &lt;br /&gt;
* Wenn es irgendwelche Probleme gibt , müssen Sie diese zuerst korrigieren, und dann gelangen Sie zum nächsten Schritt . &lt;br /&gt;
* Die ComfortUpdate wird nun ein Backup Ihrer Datenbank anlegen (wenn Sie MySQL verwenden ) und speichert Ihre alte Installationsdateien im Verzeichnis /tmp. Wenn Sie eine anderen Datenbanktyp verwenden, sollten Sie Ihre Datenbank manuell sichern, bevor Sie fortfahren. ComfortUpdate wird nun Ihre Installation auf die neueste Version aktualisieren, einschließlich der Aktualisierung der Datenbank. &lt;br /&gt;
&lt;br /&gt;
=Bekannte Probleme=&lt;br /&gt;
&lt;br /&gt;
==Leere Seite auf Schritt 3==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie eine leere Seite beiSchritt 3 bekommen, bedeutet es in der Regel, dass das Arbeitsspeicherlimit Ihrer PHP-Konfiguration zu niedrig eingestellt ist. Während dieses Schrittes versucht LimeSurvey, ein Datenbank-Backup und ein Datei-Backup (von Dateien, die ersetzt werden soll) zu erstellen.&lt;br /&gt;
&lt;br /&gt;
==Verwendung eines Proxy-Servers für die Verbindung mit update.limesurvey.org==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie sich hinter einem Proxy befinden, müssen Sie möglicherweiseeinige Einstellungen anpassen, um das Komfort-Update zu nutzen. In LimeSurvey 2.05 größer als build 140404 können Sie die den Proxy-Server in der Konfigurationsdatei festgelegen (siehe https://manual.limesurvey.org/Optional_settings#General_settings).&lt;br /&gt;
&lt;br /&gt;
For earlier versions, you have to edit the http.php file in your LimeSurvey installation. Have a look at the variables in the first lines of this file in a text editor and add values if needed.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Für eine Verbindung zu einem Proxy-Server 111.111.111.111 Port 1234 ohne Authentifizierung sollten Sie dies so setzen:&lt;br /&gt;
  var $proxy_host_name=&amp;quot;111.111.111.111&amp;quot;;&lt;br /&gt;
  var $proxy_host_port=1234;&lt;br /&gt;
&lt;br /&gt;
Depending on your version, you will find the file in the /admin/classes/ folder or in /application/libraries/admin/http/. There are pre-coded variables within the file so only details of your proxy are needed. If your installation is running unusually slow, wrong proxy settings may be the cause.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Translations:ComfortUpdate/16/de&amp;diff=61679</id>
		<title>Translations:ComfortUpdate/16/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Translations:ComfortUpdate/16/de&amp;diff=61679"/>
		<updated>2014-04-30T07:46:13Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wenn Sie sich hinter einem Proxy befinden, müssen Sie möglicherweiseeinige Einstellungen anpassen, um das Komfort-Update zu nutzen. In LimeSurvey 2.05 größer als build 140404 können Sie die den Proxy-Server in der Konfigurationsdatei festgelegen (siehe https://manual.limesurvey.org/Optional_settings#General_settings).&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=ComfortUpdate&amp;diff=61326</id>
		<title>ComfortUpdate</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=ComfortUpdate&amp;diff=61326"/>
		<updated>2014-04-11T15:41:16Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Added info on new proxy settigns and a bit of streamlining&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=General= &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
The ComfortUpdate tool is a new feature for LimeSurvey introduced in version 1.87. ComfortUpdate is designed to update your installation of LimeSurvey automatically from your web browser, with just a few mouse clicks; instead of having to perform a manual update.&lt;br /&gt;
&lt;br /&gt;
ComfortUpdate is currently a free beta test service. We considering that at some point in the future users might have to pay a small fee to purchase an upgrade key to continue using the feature.&lt;br /&gt;
=Requirements= &amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Your PHP installation must be compiled with support for ZLib. Check your PHPInfo to see, and contact your system administrator to confirm. [http://php.net/manual/es/book.zlib.php].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Your server must be able to connect by SSL to update.limesurvey.org and update-data.limesurvey.org in order to use the ComfortUpdate tool. If you have problems with this and get error messages like&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
10060 could not connect to the host &amp;quot;update.limesurvey.org&amp;quot;&lt;br /&gt;
you should tweak/edit your proxy/firewall security settings or ask your server administrator for help.&lt;br /&gt;
&lt;br /&gt;
=Using ComfortUpdate= &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
The LimeSurvey ComfortUpdate feature is safe to use even with active surveys. It does not delete or destroy any existing data. However you should keep in mind that this is a beta feature and ensure you have backed up your database and files manually before proceeding.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
*Go to the Global Settings Icon, select the first tab, and click the button for “Updates”&lt;br /&gt;
*The ComfortUpdate screen will display an update link if a new version of LimeSurvey is available. If not click “Check now” to see if a new update is available.&lt;br /&gt;
*If an update is found, LimeSurvey will display a link to allow you to update. Click on this to begin updating.&lt;br /&gt;
*If you have never used before or ComfortUpdate upgrade key is not valid will be asked to enter an upgrade key. During the trial period use the default key for free updates.&lt;br /&gt;
*LimeSurvey will now verify your installation directory to check the appropriate permissions are set to allow an update. A list of proposed changes will be displayed.&lt;br /&gt;
*If there are any problems, you must correct them at this point, and then proceed to the next step.&lt;br /&gt;
*The ComfortUpdate will now make a backup of your database (if you use MySQL) and save your old installation files in the /tmp directory. If you use a different database, you should backup your database manually before proceeding.&lt;br /&gt;
ComfortUpdate will now update your installation to the latest version, including updating the database for any new changes. &lt;br /&gt;
&lt;br /&gt;
=Known problems= &amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Blank page on step 3== &amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
If you get a blank page on step 3 it usually means that the memory limit of your PHP configuration is set too low. During that step LimeSurvey tries to create a database backup and a file backup (of the files that will be replaced).&lt;br /&gt;
&lt;br /&gt;
==Using a proxy server to connect to update.limesurvey.com== &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
If you are behind a proxy, you may have to adjust some settings to be able to use comfort update. In LimeSurvey 2.05 later than build 140404, you can set the details of your proxy server in the configuration file (see https://manual.limesurvey.org/Optional_settings#General_settings).&lt;br /&gt;
&lt;br /&gt;
For earlier versions, you have to edit the http.php file in your LimeSurvey installation. Have a look at the variables in the first lines of this file in a text editor and add values if needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
Example: Connect to a proxy server 111.111.111.111 port 1234 without authentication edit the following lines to look like&lt;br /&gt;
  var $proxy_host_name=&amp;quot;111.111.111.111&amp;quot;;&lt;br /&gt;
  var $proxy_host_port=1234;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Depending on your version, you will find the file in the /admin/classes/ folder or in /application/libraries/admin/http/. There are pre-coded variables within the file so only details of your proxy are needed. If your installation is running unusually slow, wrong proxy settings may be the cause.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Optional_settings&amp;diff=61325</id>
		<title>Optional settings</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Optional_settings&amp;diff=61325"/>
		<updated>2014-04-11T15:29:47Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Settings for comfort update via proxy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt; &amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Note= &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
These optional settings can only be found in the file /application/config/config-defaults.php of a standard installation - some of them are only used for first installation and overriden in [[Global settings]]. &lt;br /&gt;
{{Alert|If you want to change these settings please do not change it in config-defaults.php but copy the particular setting/line over to /application/config/config.php in &amp;lt;nowiki&amp;gt;&#039;config&#039;=&amp;gt;array()&amp;lt;/nowiki&amp;gt; and change it there.}}&lt;br /&gt;
All settings in config.php overwrite the default values from config-defaults.php and some of these settings get overridden in the Global settings dialog{{NewIn|1.87}} . This way it is much easier to upgrade your installation at a later time!&lt;br /&gt;
&lt;br /&gt;
=General settings= &amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;sitename&#039;&#039;&#039;: Give your survey site a name. This name will appear in the survey list overview and in the administration header. This setting is overridden in the [[Global settings]] dialog {{NewIn|1.87}}.&lt;br /&gt;
*&#039;&#039;&#039;siteadminemail:&#039;&#039;&#039; This is the default email address of the site administrator and used for system messages and contact options. This setting is overridden by the [[Global settings]] dialog {{NewIn|1.87}}.&lt;br /&gt;
*&#039;&#039;&#039;siteadminbounce:&#039;&#039;&#039; This is the email address where bounced emails will be sent to. This setting is overridden by the [[Global settings]] dialog {{NewIn|1.87}}.&lt;br /&gt;
*&#039;&#039;&#039;siteadminname:&#039;&#039;&#039; The real name of the site administrator. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.&lt;br /&gt;
*&#039;&#039;&#039;proxy_host_name:&#039;&#039;&#039; This is the host name of your proxy server (if you are behind a proxy and want to update LS using ComfortUpdate) {{NewIn|2.05 build&amp;gt;140404}}.&lt;br /&gt;
*&#039;&#039;&#039;proxy_host_port:&#039;&#039;&#039; This is the port of your proxy server (if you are behind a proxy and want to update LS using ComfortUpdate) {{NewIn|2.05 build&amp;gt;140404}}.&lt;br /&gt;
&lt;br /&gt;
= Security= &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;surveyPreview_require_Auth&#039;&#039;&#039;: true by default. If you set this to false any person can test your survey using the survey URL - without logging in to the administration and without having to activate the survey first. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.&lt;br /&gt;
* &#039;&#039;&#039;usercontrolSameGroupPolicy&#039;&#039;&#039; :  set to true by default. By default non admin users defined in the LimeSurvey management interface will only be able to see users they create or user belongs to,at least one, same group. You can deactivate this behaviour.&lt;br /&gt;
*&#039;&#039;&#039;filterxsshtml:&#039;&#039;&#039; This setting enables filtering of suspicious html tags in survey, group, questions and answer texts in the administration interface. Only leave this to &#039;false&#039; if you absolutely trust the users you created for the administration of  LimeSurvey and if you want to allow these users to be able to use Javascript, Flash Movies, etc. &amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;Super admin never have their HTML filtered&amp;lt;/span&amp;gt;. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.&lt;br /&gt;
*&#039;&#039;&#039;demoModeOnly:&#039;&#039;&#039; If this option is set to true, then LimeSurvey will go into demo mode. The demo mode changes the following things:&lt;br /&gt;
** Disables changing of the admin user&#039;s details and password&lt;br /&gt;
** Disables uploading files on the template editor&lt;br /&gt;
** Disables sending email invitations and reminders&lt;br /&gt;
** Disables doing a database dump&lt;br /&gt;
** Disables the ability to save the following global settings: Site name, Default language, Default Htmleditor Mode, XSS filter&lt;br /&gt;
&lt;br /&gt;
= Resources= &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;sessionlifetime:&#039;&#039;&#039; Defines the time in seconds after which a survey session expires. Default: $sessionlifetime    =  3600; .This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.&lt;br /&gt;
*&#039;&#039;&#039;memorylimit:&#039;&#039;&#039; This sets how much memory LimeSurvey can access. &#039;32&#039; is the minimum (M=mb) recommended. If you receive time out errors or have problems generating statistics or exporting files raise this limit to &#039;128&#039; or &#039;256&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;warningbox&amp;quot;&amp;gt;Please mind that such local settings by an application can always be overruled by global server settings.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
To increase the memory limit to 128M you could also try adding:&lt;br /&gt;
*memory_limit = 128M to your server&#039;s main php.ini file (recommended, if you have access)&lt;br /&gt;
*memory_limit = 128M to a php.ini file in the LimeSurvey root&lt;br /&gt;
*php_value memory_limit 128M in a .htaccess file in the LimeSurvey root&lt;br /&gt;
&lt;br /&gt;
=Appearance= &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;$lwcdropdowns:&#039;&#039;&#039;{{ObsoleteIn|2.0}} This can be set to either &amp;quot;L&amp;quot; or &amp;quot;R&amp;quot;. Setting it to &amp;quot;R&amp;quot; will result in &#039;List with Comment&#039; questions being displayed as radio buttons, whereas &amp;quot;L&amp;quot; will result in &#039;List with Comment&#039; questions being displayed in a &#039;dropdown&#039; list box .&lt;br /&gt;
*&#039;&#039;&#039;$dropdownthreshold:&#039;&#039;&#039; When you have selected &amp;quot;R&amp;quot; for $dropdowns, this allows you to set a maximum number of options that will display as radio buttons, before converting back to a dropdown list. If you have a question that has a large number of options, displaying them all as radio buttons can look unweildy, and be counter-intuitive to users. Setting this to a maximum of, say 25 (which is the default) means that large lists are easier for the survey participant to use.&lt;br /&gt;
*&#039;&#039;&#039;$repeatheadings:&#039;&#039;&#039; With the array (flexible) type question, often you&#039;ll have a lot of answers, which - when displayed on screen - take up more than one page. The repeat-headers setting lets you decide how many answers should be displayed before repeating the header information for the question. A good setting for this is around 15. If you don&#039;t want the headings to repeat at all, set this to 0 (which is the default).&lt;br /&gt;
*&#039;&#039;&#039;$minrepeatheadings:&#039;&#039;&#039; The minimum number of reaming answers that are required before repeating the headings in array (flexible) questions.&lt;br /&gt;
*&#039;&#039;&#039;$addTitleToLinks:&#039;&#039;&#039; If this option is set to true, then LimeSurvey will add &#039;title&#039; html element to all links used in menus. This will help screen reader to analyze the menus. Only set this to true if you&#039;re using a screen reader because it overlaps with tool tips.&lt;br /&gt;
*&#039;&#039;&#039;$defaulttemplate:&#039;&#039;&#039; This setting specifys the default theme used for the &#039;public list&#039; of surveys. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.&lt;br /&gt;
*&#039;&#039;&#039;$defaulthtmleditormode:&#039;&#039;&#039; Sets the default mode for integrated HTML editor. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}. Valid settings are: inline (default), popup and none:&lt;br /&gt;
** &#039;&#039;inline&#039;&#039;: Inline replacement of fields by an HTML editor. Slow but convenient and user friendly&lt;br /&gt;
** &#039;&#039;popup&#039;&#039;: Adds an icon that runs a popup with and html editor. Faster, but html code is displayed on the form&lt;br /&gt;
** &#039;&#039;none&#039;&#039;: No html editor&lt;br /&gt;
&lt;br /&gt;
=Language &amp;amp; Time= &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;$defaultlang:&#039;&#039;&#039; This should be set to the default language to be used in your administration scripts, and also the default setting for language in the public surveys. You can change this setting for public surveys on a survey-by-survey basis from the admin scripts.  This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.&lt;br /&gt;
*&#039;&#039;&#039;$timeadjust:&#039;&#039;&#039; If your web server is in a different time zone to the location where your surveys will be based, put the difference between your server and your home time zone here. For example, I live in Australia but use a US web server. The web server is 14 hours behind my local time zone. So my setting here is &amp;quot;14&amp;quot;. In other words, it adds 14 hours to the web servers time. This setting is particularly important when surveys timestamp the responses. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.&lt;br /&gt;
* &#039;&#039;&#039;$modrewrite:&#039;&#039;&#039; {{ObsoleteIn|2.0}} If set to 1, it activates the fancy URL feature (Example: http://survey.example.com/123456/lang-fr/tk-sdlfkjozeiru instead of http://survey.example.com/index.php?sid=123456&amp;amp;lang;=fr&amp;amp;token;=sdlfkjozeiru). Before you activate this, you &amp;lt;u&amp;gt;must&amp;lt;/u&amp;gt; rename &amp;quot;&#039;&#039;htaccess.txt&#039;&#039;&amp;quot; file to &amp;quot;&#039;&#039;.htaccess&#039;&#039;&amp;quot;. You need to run an Apache web server with correctly installed mod_rewrite module.&lt;br /&gt;
&lt;br /&gt;
=Survey Behavior= &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;$allowmandbackwards:&#039;&#039;&#039; A setting of 1 for this variable will allow survey participants to move to a previous question even if they haven&#039;t answered a mandatory question. If it is set on 0, then participants will have to answer that question even to move to a previous question.&lt;br /&gt;
*&#039;&#039;&#039;$deletenonvalues:&#039;&#039;&#039; Use this feature with caution.  By default (a value of 1), irrelevant questions are NULLed in the database.  This ensures that the data in your database is internally consistent.  However, there are rare cases where you might want to hold onto irrelevant values, in which case you can set the value to 0.  Say you ask the person his gender, and he accidentally says &#039;female&#039; and then answers some female-specific questions (questions that are conditioned on being female, so are only relevant for women).  Then, he realizes his mistake, backs up, sets the gender to &#039;male&#039;, and continues with the survey.  Now, the female-specific questions are irrelevant.  If $deletenonvalues==1, those irrelevant values will be cleared (NULLed) in the database.  If $deletenonvalues==0, his erroneous answers will not be deleted, so they will still be present in the database when you analyze it.&lt;br /&gt;
*&#039;&#039;&#039;$shownoanswer:&#039;&#039;&#039; When a question of a radio button/select type that contains editable answers (ie: List, Array questions) is not mandatory and $shownoanswer is set to 1, an additional entry is shown for &amp;quot;N/A&amp;quot; - so that participants may choose to not answer the question. Some people prefer this not to be available. Set this to 0 to turn this off.  This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.&lt;br /&gt;
*&#039;&#039;&#039;$printanswershonorsconditions:&#039;&#039;&#039; This setting determines if the printanswers feature will display entries from questions that were hidden by conditions-branching (Default: 1 = hide answers from questions hidden by conditions).&lt;br /&gt;
*&#039;&#039;&#039;$hide_groupdescr_allinone:&#039;&#039;&#039;{{NewIn|1.85RC3}} This setting is relevant for all-in-one surveys using conditions . When this is set to true the group name and description is hidden if all questions in the group are hidden. (Default: true (hide group name and description when all conditions in the group are hidden by conditions))&lt;br /&gt;
*&#039;&#039;&#039;$showpopups:&#039;&#039;&#039;  Show popup messages if mandatory or conditional questions have not been answered correctly. 1=Show popup message (default), 0=Show message on page instead, -1=Do not show the message at all (in this case, users will still see the question-specific tips indicating which questions must be answered).&lt;br /&gt;
&lt;br /&gt;
=Development= &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;$debug:&#039;&#039;&#039; With this setting you set the PHP error reporting to E_ALL. That means every little notice, warning or error with the script is shown. This setting should be only switched to 1 if you are trying to debug the application for any reason, if you are a developer switch it to 2. Don&#039;t switch it to 1 or 2 in production since it might cause path disclosure. (Default: 0)&lt;br /&gt;
&lt;br /&gt;
= Email Settings= &amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Note: All these settings in this section are overridden in the [[Global settings]] dialog{{NewIn|1.87}}.&lt;br /&gt;
*&#039;&#039;&#039;$emailmethod:&#039;&#039;&#039;  This determines how E-mail messages are being sent. The following options are available:&lt;br /&gt;
**&#039;&#039;&#039;mail:&#039;&#039;&#039; use internal PHP mailer&lt;br /&gt;
**&#039;&#039;&#039;sendmail:&#039;&#039;&#039; use sendmail mailer&lt;br /&gt;
**&#039;&#039;&#039;smtp:&#039;&#039;&#039;use SMTP relaying. Use this setting when you are running LimeSurvey on a host that is not your mail server.&lt;br /&gt;
*&#039;&#039;&#039;$emailsmtphost:&#039;&#039;&#039; If you use &#039;smtp&#039; as $emailmethod then you have to put your SMTP-server here. If you are using Google mail you might have to add the port number like $emailsmtphost = &#039;smtp.gmail.com:465&#039;;&lt;br /&gt;
*&#039;&#039;&#039;$emailsmtpuser:&#039;&#039;&#039; If your SMTP-server needs authentication then set this to your user name, otherwise it must be blank.&lt;br /&gt;
*&#039;&#039;&#039;$emailsmtppassword:&#039;&#039;&#039; If your SMTP-server needs authentication then set this to your password, otherwise it must be blank.&lt;br /&gt;
*&#039;&#039;&#039;$emailsmtpssl:&#039;&#039;&#039; Set this to &#039;ssl&#039; or &#039;tls&#039; to use SSL/TLS for SMTP connection&lt;br /&gt;
*&#039;&#039;&#039;$maxemails:&#039;&#039;&#039; When sending invitations or reminders to survey participants, this setting is used to determine how many emails can be sent in one bunch. Different web servers have different email capacities, and if your script takes too long to send a bunch of emails, the script could time out and cause errors. Most web servers can send 100 emails at a time within the default 30 second time limit for a PHP script. If you get script timeout errors when sending large numbers of emails, reduce the number in this setting.  Clicking the &#039;send email invitation&#039; button on the token control toolbar, (not the button on the right of each token), sends the maxemails number of invitations, then displays a list of the addresses sent to and a warning that &amp;quot;There are more emails pending than could be sent in one batch. Continue sending emails by clicking below. There are ### emails still to be sent.&amp;quot; and provides a &amp;quot;continue button&amp;quot; to proceed with the next batch. I.e., the user determines when to send the next batch after each batch gets emailed.  It is not necessary to wait with this screen active.  The admin could log off and come back at a later time to send the next batch of invites.&lt;br /&gt;
&lt;br /&gt;
= Statistics and Response Browsing= &amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;usejpgraph:&#039;&#039;&#039; {{ObsoleteIn|1.8}} The [http://www.aditus.nu/jpgraph/ JPGraph-library] lets you display the results of your survey in the statistics part of LimeSurvey  in bar- and pie charts. If you have a correctly configured jpgraph class set up on your server, you can turn this feature on or off (1=on, 0=off). Please have a look, every version of PHP needs another version of JPGraph! This feature is currently in development, so expect a few weird outcomes.&lt;br /&gt;
*&#039;&#039;&#039;jpgraphdir:&#039;&#039;&#039; {{ObsoleteIn|1.8}} The physical disk location of the jpgraph class scripts. This setting is only required if $usejpgraph is equal to 1.&lt;br /&gt;
*&#039;&#039;&#039;jpgraphfont:&#039;&#039;&#039; {{ObsoleteIn|1.8}} The font to use with graphs. A failsafe setting would be &amp;quot;FF_FONT1&amp;quot;&lt;br /&gt;
*&#039;&#039;&#039;embedded:&#039;&#039;&#039;{{ObsoleteIn|2.0}} If you want to integrate LimeSurvey into another page then you can turn off sending HTML headers by using this setting and point instead to the header method of a custom function. This is a dirty hack but should work for a quick integration.&lt;br /&gt;
*&#039;&#039;&#039;filterout_incomplete_answers:&#039;&#039;&#039; Control the default behaviour of  filtering incomplete answers when browsing or analyzing responses. For a discussion on incomplete Responses see [[Browsing survey results]]. Since these records can corrupt the statistics, an option is given to switch this filter on or off in several GUI forms. This parameter config.php is just the default state for the incomplete answer filter. The following options are available:&lt;br /&gt;
**&#039;&#039;show&#039;&#039;: Show both complete and incomplete answers&lt;br /&gt;
**&#039;&#039;filter&#039;&#039;: Show only complete answers&lt;br /&gt;
**&#039;&#039;incomplete&#039;&#039;: Show only incomplete answers&lt;br /&gt;
*&#039;&#039;&#039;strip_query_from_referer_url&#039;&#039;&#039;: This setting determine if the referrer URL saves parameter or not. Default value is &amp;quot;false&amp;quot; (in this case referrer URL saves all parameter). Alternatively this value can be set to &amp;quot;true&amp;quot; and the parameter part of the referrer URL will be removed.&lt;br /&gt;
*&#039;&#039;&#039;showaggregateddata:&#039;&#039;&#039; {{NewIn|1.8}} When activated there are additional values like arithmetic mean and standard deviation at statistics. Furthermore data is aggregated to get a faster overview e.g. results of scale 1+2 and 4+5 are added to have a general ranking like &amp;quot;good&amp;quot; (1/2), &amp;quot;average&amp;quot; (3) and &amp;quot;bad&amp;quot; (4/5). This only affects question types &amp;quot;A&amp;quot; (5 point array) and &amp;quot;5&amp;quot; (5 point choice).&lt;br /&gt;
* &#039;&#039;&#039;PDF Export Settings:&#039;&#039;&#039; {{NewIn|1.85}} This feature activates PDF export for printable survey and Print Answers. The PDF export is totally experimental. The output is mostly ugly. At this point no support can be given - if you want to help to fix it please get in touch with us.&lt;br /&gt;
**usepdfexport: Set 0 to disable; 1 to enable&lt;br /&gt;
**pdfdefaultfont: Default font for the pdf Export&lt;br /&gt;
**pdffontsize: Fontsize for normal text; Surveytitle is +4; grouptitle is +2&lt;br /&gt;
**notsupportlanguages = array(&#039;zh-Hant-TW&#039;,&#039;zh-Hant-HK&#039;,&#039;zh-Hans&#039;,&#039;ja&#039;,&#039;th&#039;);&lt;br /&gt;
**pdforientation: Set L for Landscape or P for portrait format&lt;br /&gt;
*&#039;&#039;&#039;$showsgqacode:&#039;&#039;&#039; {{NewIn|1.91}} This setting is used at the printable survey feature and defaults to &#039;&#039;false&#039;&#039;. If you set &#039;&#039;showsgqacode = true;&#039;&#039; the IDs for each question - and answer if applicable - will be shown; these IDs match the column heading at the Lime_survey_12345 table which holds the answer data for a certain survey. These Ids can be used for a code book for manual database queries.&lt;br /&gt;
&lt;br /&gt;
= [[LDAP settings]]= &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
As this is an extensive topic we have moved [[LDAP settings]] to [[LDAP settings|another page.]]&lt;br /&gt;
&lt;br /&gt;
= Authentication= &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
In LimeSurvey 2.05 authentication will be handled by plugins. Because of this the information below might be outdated. See [[Plugins]] for most up to date information.&lt;br /&gt;
&lt;br /&gt;
== Delegate Authentication to the Webserver== &amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
System Administrators may want to have their &#039;&#039;&#039;survey administrators&#039;&#039;&#039; authenticated against a central authentication system (Active Directory, openLdap, Radius, ...) rather than using the internal LimeSurvey database. An easy way to do this is to setup your Webserver software to use this external authentication system, and then ask LimeSurvey to trust the user identity reported by the webserver. In order to enable this feature you have to:&lt;br /&gt;
* set &#039;&#039;&#039;auth_webserver&#039;&#039;&#039; to true in config.php&lt;br /&gt;
* enable authentication at the webserver side&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
Please note that:&lt;br /&gt;
* LimeSurvey will then bypass its own authentication process (by using the login name reported by the webserver without asking for a password)&lt;br /&gt;
* this can only replace the LimeSurvey GUI authentication system, &#039;&#039;&#039;not the survey invitation system&#039;&#039;&#039; (participant interface)&lt;br /&gt;
&lt;br /&gt;
== Authentication Delegation with no automatic user import== &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Please note however than &amp;lt;u&amp;gt;by default Authentication Delegation doesn&#039;t bypass the LimeSurvey authorization system&amp;lt;/u&amp;gt;: this means that, even if you don&#039;t have to manage passwords in LimeSurvey, you still need to define the users in the LimeSurvey database and assign them the correct set of rights in order to let them access survey resources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
A user is then granted access to LimeSurvey if and only if:&lt;br /&gt;
* he has been authenticated to the webserver&lt;br /&gt;
* his login name is defined as a user in the LimeSurvey user database (the user is then granted the privileges of the user defined in the LimeSurvey user database).&lt;br /&gt;
&lt;br /&gt;
== Authentication Delegation with automatic user import== &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
When managing huge user database, it is sometimes easier to auto-import user in the LimeSurvey database.&lt;br /&gt;
*&#039;&#039;&#039;auth_webserver_autocreate_user&#039;&#039;&#039;: if set to true LimeSurvey will try to autoimport users authenticated by the webserver but not already in its users&#039; DB&lt;br /&gt;
*&#039;&#039;&#039;auth_webserver_autocreate_profile&#039;&#039;&#039;: an array describing the default profile that will be assigned to the user (including fake First and Last name, email, privileges)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
If you want to customize the user profile so that it matches the logged-in user, you&#039;ll have to develop a simple function called &#039;&#039;&#039;hook_get_autouserprofile&#039;&#039;&#039;: with this function you can retrieve from a central User account database (for instance an LDAP directory), the true First&amp;amp;Last; names and email of a particular user. You can even customize his privileges on the system based on his groups on the external DB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
The &#039;&#039;&#039;hook_get_auth_webserver_profile&#039;&#039;&#039; function takes the user login name as the only argument and can return:&lt;br /&gt;
* False or an empty array: in this case the user is denied access to LimeSurvey&lt;br /&gt;
* an array containing all common userprofile entries as described in the  &#039;&#039;&#039;$WebserverAuth_autouserprofile&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;function hook_get_auth_webserver_profile($user_name)&lt;br /&gt;
{&lt;br /&gt;
     // Retrieve user&#039;s data from your database backend (for instance LDAP) here&lt;br /&gt;
     ... get $user_name_from_backend&lt;br /&gt;
     ... get $user_email_from_backend&lt;br /&gt;
     ... get $user_lang_from_backend&lt;br /&gt;
     ... from groups defined in your backend set $user_admin_status_frombackend_0_or_1&lt;br /&gt;
     return Array(&lt;br /&gt;
                     &#039;full_name&#039; =&amp;gt; &amp;quot;$user_name_from_backend&amp;quot;,&lt;br /&gt;
                     &#039;email&#039; =&amp;gt; &amp;quot;$user_email_from_backend&amp;quot;,&lt;br /&gt;
                     &#039;lang&#039; =&amp;gt; &#039;$user_lang_from_backend&#039;,&lt;br /&gt;
                     &#039;htmleditormode&#039; =&amp;gt; &#039;inline&#039;,&lt;br /&gt;
                     &#039;templatelist&#039; =&amp;gt; &#039;default,basic,MyOrgTemplate&#039;,&lt;br /&gt;
                     &#039;create_survey&#039; =&amp;gt; 1,&lt;br /&gt;
                     &#039;create_user&#039; =&amp;gt; 0,&lt;br /&gt;
                     &#039;delete_user&#039; =&amp;gt; 0,&lt;br /&gt;
                     &#039;superadmin&#039; =&amp;gt; $user_admin_status_frombackend_0_or_1,&lt;br /&gt;
                     &#039;configurator&#039; =&amp;gt;0,&lt;br /&gt;
                     &#039;manage_template&#039; =&amp;gt; 0,&lt;br /&gt;
                     &#039;manage_label&#039; =&amp;gt; 0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
     // If user should be denied access, return an empty array&lt;br /&gt;
&lt;br /&gt;
     // return Array();&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User name mapping== &amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
In case some users have an external user name that is different from their LimeSurvey user name, you may find useful to use a user name mapping. This is done in LimeSurvey by using the &#039;&#039;&#039;auth_webserver_user_map&#039;&#039;&#039; parameter. For instance imagine you don&#039;t have an &#039;admin&#039; username defined in your external authentication database. Then in order to login to LimeSurvey as admin, you&#039;ll have to map your external username let&#039;s call it &#039;myname&#039; to the admin login name ine LimeSurvey. The corresponding setup is :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$config[&#039;auth_webserver_user_map&#039;] = Array (&#039;myname&#039; =&amp;gt; &#039;admin&#039;);&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
After a successful authentication with the &#039;myname&#039; login and password to the webserver, you&#039;ll be directly authorized to use LimeSurvey as the &#039;admin&#039; user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
This obviously has serious security implications, so use it with care, and please protect your config.php from write access by the web server.&lt;br /&gt;
&lt;br /&gt;
== Use one time passwords== &amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
{{FeatureStarting|1.81}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
A user can call the limesurvey login at /limesurvey/admin and pass username and a one time password which was previously written into the users table (column one_time_pw) by an external application.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
This setting has to be turned on (&#039;&#039;&#039;use_one_time_passwords&#039;&#039;&#039; =&amp;gt; true) to enable the usage of one time passwords (default = false). More information can be found at [[Manage users#Use one-time passwords|&amp;quot;Manage Users&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
= Advanced Path Settings= &amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;If possible do no touch these settings. Additionally these settings can only be adjusted on config-defaults.php.&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;$homeurl:&#039;&#039;&#039; This should be set to the URL location of your administration scripts. These are the scripts in the /limesurvey/admin folder. This should be set to the WEB URL location - for example &amp;quot;http://www.example.com/limesurvey/html/admin&amp;quot;. Don&#039;t add a trailing slash to this entry. The default setting in config.php attempts to detect the name of your server automatically using a php variable setting - {$_SERVER&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;&#039;SERVER_NAME&#039;]}. In most cases you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in.&lt;br /&gt;
*&#039;&#039;&#039;$publicurl:&#039;&#039;&#039; This should be set to the URL location of your &#039;public scripts&#039;. The public scripts are those located in the &amp;quot;limesurvey&amp;quot; folder (or whatever name you gave to the directory that all the other scripts and directories are kept in).&lt;br /&gt;
*&#039;&#039;&#039;$tempurl:&#039;&#039;&#039; This should be set to the URL location of your &amp;quot;/limesurvey/tmp&amp;quot; directory - or a directory which you would like LimeSurvey to use to store temporary files, including uploads. This directory must be set to read &amp;amp; write for your webserver (e.g. chmod 755)&lt;br /&gt;
*&#039;&#039;&#039;$imagefiles:&#039;&#039;&#039; By default you should leave this pointing to the URL location of /limesurvey/admin/images - where the images are installed initially. You may, however, prefer to move these images to another location and if so point this to the URL directory where they are stored.&lt;br /&gt;
*&#039;&#039;&#039;$homedir:&#039;&#039;&#039; This should be set to the physical disk location of your administration scripts - for example &amp;quot;/home/usr/htdocs/limesurvey/admin&amp;quot;. Don&#039;t add a trailing slash to this entry. The default setting in config.php attempts to detect the default root path of all your documents using the php variable setting - {$_SERVER&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;&#039;DOCUMENT_ROOT&#039;]}. In most cases you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in.&lt;br /&gt;
*&#039;&#039;&#039;$publicdir:&#039;&#039;&#039; This should be set to the physical disk location of your &#039;public scripts&#039;.&lt;br /&gt;
*&#039;&#039;&#039;$tempdir:&#039;&#039;&#039; This should be set to the physical disk location of your /limesurvey/tmp directory so that the script can read and write files.&lt;br /&gt;
*&#039;&#039;&#039;$fckeditordir:&#039;&#039;&#039; url of the fckeditor script&lt;br /&gt;
*&#039;&#039;&#039;$fckeditexpandtoolbar:&#039;&#039;&#039; defines if the FCKeditor toolbar should be opened by default&lt;br /&gt;
*&#039;&#039;&#039;$pdfexportdir:&#039;&#039;&#039; Directory with the tcpdf.php extensiontcpdf.php&lt;br /&gt;
*&#039;&#039;&#039;$pdffonts:&#039;&#039;&#039; Directory for the TCPDF fonts&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=61324</id>
		<title>Exporting results</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=61324"/>
		<updated>2014-04-10T12:25:51Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: note concerning plugin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt; &amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Once your survey is active you can start browsing responses and export them. To get to the survey response overview click...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
=Export to application (Excel/.csv)= &amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
On top of the browse responses page several export options are listed, beginning with &#039;&#039;export to CSV/application&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
When exporting results to an application there are several filter options which are separated into:&lt;br /&gt;
*&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
** Set a range like export records X to Y&lt;br /&gt;
** Set to export all records OR completed records only OR incomplete records only&lt;br /&gt;
*&#039;&#039;&#039;Questions&#039;&#039;&#039;&lt;br /&gt;
** Set how the heading should look like: Abbreviated heading OR full headings OR question codes&lt;br /&gt;
** Convert spaces in question text to underscores&lt;br /&gt;
*&#039;&#039;&#039;Answers&#039;&#039;&#039;&lt;br /&gt;
** You can either export full answers or convert answer codes Y and N to a defined variable&lt;br /&gt;
*&#039;&#039;&#039;Format&#039;&#039;&#039;&lt;br /&gt;
** Microsoft Word (latin charset)&lt;br /&gt;
** Microsoft Excel (all charsets)&lt;br /&gt;
** CSV File (all charsets)&lt;br /&gt;
** PDF&lt;br /&gt;
*&#039;&#039;&#039;Column Control&#039;&#039;&#039;&lt;br /&gt;
** Set which answers should be exported. All answers in this list are represented by their [[SGQA identifier|SGQA identifier]]&lt;br /&gt;
** Set which &#039;&#039;&#039;&#039;&#039;token&#039;&#039;&#039;&#039;&#039; data should be exported. This option is only available if your survey is &#039;&#039;&#039;&#039;&#039;not anonymous&#039;&#039;&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
=SPSS Export= &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
To export your response data to SPSS go to Responses &amp;amp; Statistics section and click the icon to export to SPSS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
[[File:spss_toolbar.png]]&lt;br /&gt;
&lt;br /&gt;
==Export and filter data== &amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
When exporting data to SPSS there are two filter options. You can select &#039;&#039;&#039;which data&#039;&#039;&#039; should be selected (&#039;&#039;all records/completed records only/incompleted records only&#039;&#039;) and for &#039;&#039;&#039;which SPSS version&#039;&#039;&#039; the export files will be used (&#039;&#039;prior version 16/16 or up&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
SPSS export includes two files:&lt;br /&gt;
# a syntax file (&#039;&#039;survey_xxxx_SPSS_syntax_file.sps&#039;&#039;)&lt;br /&gt;
# and a data file (&#039;&#039;survey_xxxx_SPSS_data_file.dat&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
After having downloaded these files you can open them using a raw text editor like notepad to take a look how the exported data looks like. The syntax file holds the commands that should be run to import the data. It is like a programming language inside SPSS. The data file contains a comma separated file with all data. If you just import this data as csv via a wizard you loose information about questions, labelsets etc. so we don&#039;t do that.&lt;br /&gt;
&lt;br /&gt;
==Import data in SPSS== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Place the two files in the same folder on your drive (example: &#039;&#039;c:\data\survey_xxxx_SPSS_syntax_file.sps&#039;&#039; and &#039;&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
We have two options now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
1. When using Windows use the explorer to browse to the folder used above. If SPSS is connected to the .sps file extension you can just open the file by double clicking it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
[[File:spss_explorer-screenshot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Now you can just choose Run-&amp;gt;All from the opened window and after some time have your output dataset that you can save as a normal .sav file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
2. Sometimes the easy solution above does not work. Then you can proceed as follows:&lt;br /&gt;
* Open SPSS&lt;br /&gt;
* Choose File-&amp;gt;Open-&amp;gt;Syntax&lt;br /&gt;
* Choose the appropriate file: c:\data\survey_xxxx_SPSS_syntax_file.sps&lt;br /&gt;
* Now the syntax opens.&lt;br /&gt;
* Change the line that reads &#039;&#039;/FILE=&#039;survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039; to include the path where the files are: &#039;&#039;/FILE=&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039;&lt;br /&gt;
* Now mark the whole command text and choose Run-&amp;gt;All from the menu and after a while (please be patient) you have the dataset with all info like questions, labels etc.&lt;br /&gt;
&lt;br /&gt;
=R Export= &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
Feel free to add more information if you have some!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
The freeware software [http://www.r-project.org/ R] is an alternative for SPSS. It is closely linked to the SPSS export in LimeSurvey. Instructions on how to import your dataset in R:&lt;br /&gt;
#Download the syntax file and the data file.&lt;br /&gt;
#Store both files in R work listing (use &#039;&#039;getwd()&#039;&#039; and &#039;&#039;setwd()&#039;&#039; in R command window to set and indicate).&lt;br /&gt;
#Enter &#039;&#039;source(&amp;quot;Surveydata_syntax.R&amp;quot;, encoding = &amp;quot;UTF-8&amp;quot;)&#039;&#039; in R command window.&lt;br /&gt;
&lt;br /&gt;
NB: R-export is a plugin in Limesurvey. If you cannot find the R-export option, make sure the R-export plugin is enabled in the plugin menu.&lt;br /&gt;
&lt;br /&gt;
=STATA-xml Export= &amp;lt;!--T:200--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:201--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;This option is available from version 2.05&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:202--&amp;gt;&lt;br /&gt;
STATA is a commercial data analysis and statistical software package. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:203--&amp;gt;&lt;br /&gt;
This export routine was created to facilitate rapid analysis of data collected with LimeSurvey. It creates an XML-file in STATAs proprietary format, which can be imported independent of the platform STATA is run on. Using this format offeres several advantages over importing plain CSV files:&lt;br /&gt;
*Data sets are fully labelled including variable labels (question, subquestion) and value labels (answers, if applicable).&lt;br /&gt;
*Dates are already transformed to STATAs internal date format and thus can directly be used to calculate difference between days etc.&lt;br /&gt;
*Variable names are, if necessary, converted to a STATA compatible format.&lt;br /&gt;
*Data formats of variables (string, integer, float, etc.) are already set according to the underlying data. (No more numbers encoded as strings!). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:204--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Howto load the file in STATA:&lt;br /&gt;
In STATA&#039;s menu, click on File, Import, xml-data. Choose browse to navigate to your exported file and click &#039;OK&#039;. That should be it.&lt;br /&gt;
If you prefer STATA&#039;s binary .dta files, you can just save your data again in this format.&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:205--&amp;gt;&lt;br /&gt;
Be aware: Due to a limitation in STATA&#039;s data format, the string length has a maximum of 244 characters. Everything &amp;gt; 244 characters is not exported.&lt;br /&gt;
&lt;br /&gt;
=VVExport ([[File:exportvv.png]]) and VVImport ([[File:importvv.png]])= &amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:206--&amp;gt;&lt;br /&gt;
{{FeatureChange|v=2.05}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
Once you&#039;ve begun collecting responses, there may be occasions where you need to be able to directly edit and modify large quantities of data from your responses table, where a spreadsheet tool may be more useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
VVExport (the &amp;quot;VV&amp;quot; stands for vertical verification) allow you to export your responses table into a .csv file. So long as the general structure of the file remains intact, you can then edit values within it, and the import the file again into your responses table using the &amp;quot;VVImport&amp;quot; feature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Things you should be aware of:&lt;br /&gt;
* If you want to import responses using &amp;quot;VVImport&amp;quot; make sure to check whether the responses should be added to the existing responses or all responses should be overwritten.&lt;br /&gt;
* If you are trying to import responses from a different yet identical (e.g. identical questions/answers from another survey) make sure you are using the correct vv file and that the first two lines of the .csv-file are correct.&lt;br /&gt;
* If you import a survey to your LimeSurvey installation the SID will (if possible) not change. The group id and question id however might change. So you might have to adjust the first two heading lines to match the new group id/question id. See &#039;&#039;&#039;Adjusting vv file headings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== VVExport file version 2 {{NewIn|2.05}} == &amp;lt;!--T:207--&amp;gt;&lt;br /&gt;
This new feature allows different column names than the database. If your question code are unique, then the new version is selected. In the new version each column name uses the [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]]. For example this allows to update an existing survey in different installation  more easily.&lt;br /&gt;
&lt;br /&gt;
==Exporting a VV survey file== &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
[[File:limesurveyExportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
When you choose to export responses using VVExport you will be given the option to choose which survey to be exported, whether you want to export all responses or complete responses only or incomplete responses only. The file extension allows you to choose which extension the exported file will have. For easy use .csv should be chosen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
A &#039;vv survey file&#039; allows you to import the responses to a survey when the question/answer combinations have changed. Effectively this allows you to add or remove questions in an active survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Clicking on &amp;quot;Export a VV survey file&amp;quot; will then produce a tab delimited file that can be opened by Excel or similar style spreadsheet program. The first two rows of the spreadsheet are the column labels. The first row is a &amp;quot;human readable&amp;quot; column heading that details the name of the question/answer field. The second row is the internal PHP/database column name for that response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
You should not modify the first two rows of this spreadsheet if you want to be able to &amp;quot;import&amp;quot; the data back into LimeSurvey at a later point.&lt;br /&gt;
&lt;br /&gt;
===Exporting a VV survey file {{NewIn|v=2.05}}=== &amp;lt;!--T:208--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:209--&amp;gt;&lt;br /&gt;
{{FeatureStarting|v=2.05}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:210--&amp;gt;&lt;br /&gt;
[[File:VV2-export-en.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:211--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Export survey&#039;&#039;&#039; : The survey ID to be exported (read-only)&lt;br /&gt;
* &#039;&#039;&#039;Export&#039;&#039;&#039; : The completion state of the responses to be exported&lt;br /&gt;
* &#039;&#039;&#039;File extension&#039;&#039;&#039; : The file extension. The file is a TSV ([[wikipedia:Tab-separated_values|Tab-separated values]]) file. For easy opening in MS-Excel set the extension to .txt, with LibreOffice, OpenOffice or other spreadsheet program you can leave it to .csv.&lt;br /&gt;
* &#039;&#039;&#039;VV export version&#039;&#039;&#039; : The 1.0 version uses database column headers, version 2.0 uses [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]]. Version 2.0 is selected by default if all of your question code are unique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:212--&amp;gt;&lt;br /&gt;
The first two rows of the spreadsheet are the column labels. The first row is a &amp;quot;human readable&amp;quot; column heading that details the name of the question. The second row is the real column name (Internal DB- or Qcode-name) for that response.&lt;br /&gt;
&lt;br /&gt;
==Editing a VV survey file== &amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
When a .vv file has been successfully exported you can use a spreadsheet tool to open and edit the file. If you have to choose a column separator when opening the file please use the &amp;quot;Tab&amp;quot; character. If you are using non-ASCII characters make sure you set &amp;quot;UTF-8&amp;quot; as character set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
{{Alert|If you are using Microsoft Excel to edit the exported vv file, you should know that excel destroys the original data structure of the file. This causes an error when you try to re-import the edited .vv file.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
By default the first two rows of the .vv file are headers. If needed you can remove the first line to have a real TSV file. There are different use cases for importing a .vv file so we will differentiate between adding new responses to a survey and overwriting all responses of the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
Example structure of a .vv file:&lt;br /&gt;
&lt;br /&gt;
===VV version 1 TSV file=== &amp;lt;!--T:213--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:214--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	Token	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage	token	46492X40X1991&lt;br /&gt;
183	09.11.11 11:44	3	de	jsfhusdgqfygqsy	4&lt;br /&gt;
184	09.11.11 11:53	3	de	sdfhsifgsyergze	2&lt;br /&gt;
190	09.11.11 11:44	3	de	qsdqshkfhkdsjhj	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VV version 2 TSV file=== &amp;lt;!--T:215--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:216--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	Token	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage	token	QCODE&lt;br /&gt;
183	09.11.11 11:44	3	de	jsfhusdgqfygqsy	4&lt;br /&gt;
184	09.11.11 11:53	3	de	sdfhsifgsyergze	2&lt;br /&gt;
190	09.11.11 11:44	3	de	qsdqshkfhkdsjhj	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:217--&amp;gt;&lt;br /&gt;
Here SQGA identifier are not used - instead Qcode variable naming &amp;lt;code&amp;gt;QCODE&amp;lt;/code&amp;gt; is used in the second line.&lt;br /&gt;
&lt;br /&gt;
===Reserved names=== &amp;lt;!--T:218--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:219--&amp;gt;&lt;br /&gt;
.VV file uses left and right brackets for reserved names, when importing this string is replaced by :&lt;br /&gt;
* &amp;lt;code&amp;gt;{question_not_shown}&amp;lt;/code&amp;gt; : NULL value in database. LimeSurvey use [empty string] for not answered question, and NULL value for question not shown (by Expression manager or max step in survey).&lt;br /&gt;
* &amp;lt;code&amp;gt;{quote}&amp;lt;/code&amp;gt; : &amp;quot; (a double quote)&lt;br /&gt;
* &amp;lt;code&amp;gt;{cr}&amp;lt;/code&amp;gt; : Carriage return&lt;br /&gt;
* &amp;lt;code&amp;gt;{newline}&amp;lt;/code&amp;gt; : A new line&lt;br /&gt;
* &amp;lt;code&amp;gt;{lbrace}&amp;lt;/code&amp;gt; : Left bracket (for example, if you want to have {cr} in response : use &amp;lt;code&amp;gt;{lbrace}cr}&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
===VV Version 1 editing=== &amp;lt;!--T:220--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Adding new responses to the existing responses of a survey==== &amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
This is not supported for version 1 of the format as it easily can lead to various problems including data being imported into the wrong columns. The version 1 of the .vv file was always meant for vertical verification of data in an external tool like Excel, not as a mean to pull together data from different source (like the same survey running on another server).&lt;br /&gt;
&lt;br /&gt;
====Modify all responses of a survey==== &amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
If you want to modify responses of survey you can just add the edit the file. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
Step 1: Open the file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:221--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage		46492X40X1991&lt;br /&gt;
183	09.11.11 11:44	3	de	4&lt;br /&gt;
184	09.11.11 11:53	3	de	2&lt;br /&gt;
190	09.11.11 11:44	3	de	1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
Step 2: Modify responses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:222--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
Response ID	Date submitted	Last page	Start language	please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
id	submitdate	lastpage	startlanguage		46492X40X1991&lt;br /&gt;
1000	09.11.11 11:44	3	de	3&lt;br /&gt;
1001	09.11.11 11:53	3	de	3&lt;br /&gt;
1002	09.11.11 11:44	3	de	3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
You can then import the survey, make sure to override the existing responses (see &amp;quot;Importing a VV survey file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==Importing a VV survey file== &amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
[[File:LimeSurveyImportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
As long as the first two lines are intact, you can then import the data in your vv survey file back into an active LimeSurvey survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
If you used Microsoft Excel to edit the exported vv file, the data structure of this file may be corrupted, so LimeSurvey is not able to import the edited file. You can try the following workaround to get the import working without an error:&lt;br /&gt;
*Open your exported vv file in Excel and do your changes (I guess you already did that)&lt;br /&gt;
*Save it as tab-separated text file (It creates a new file with the extension .txt)&lt;br /&gt;
*Do another &amp;quot;clean&amp;quot; vv export from LimeSurvey&lt;br /&gt;
*Open this new exported vv file with a texteditor like notepad or something else (I used textwrangler on mac)&lt;br /&gt;
*Press CTRL + A to mark all of the content and delete it&lt;br /&gt;
*Open the Excel edited vv file (the tab separated .txt file) with a texteditor and press CTRL + A to mark all of the content&lt;br /&gt;
*Press CTRL + C to copy the content and paste it into the new (now empty) vv file&lt;br /&gt;
*Press CTRL + S to save the file as it is (as .csv)&lt;br /&gt;
*Now try to import this file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Then, from the browse screen, choose the &amp;quot;Import a VV Survey file&amp;quot; icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
The &amp;quot;Import a VV Survey File&amp;quot; screen needs you to choose the &amp;quot;vvexport&amp;quot; file you are importing. If you choose to &amp;quot;Exclude Record IDs&amp;quot; the records will be imported and brand new Record ID&#039;s will be generated for them (use this option for the use case &amp;quot;Adding new responses to the existing responses of a survey&amp;quot;). If you un-check this box, then the original record id&#039;s will be imported (use this option for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
There are a range of options you can choose that tell LimeSurvey how to deal with double or multiple entries.&lt;br /&gt;
*Report an error (and skip the new record).&lt;br /&gt;
*Renumber the new record&lt;br /&gt;
*Replace the existing record (uses this for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===Importing a VV survey file {{NewIn|2.05}}=== &amp;lt;!--T:227--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:228--&amp;gt;&lt;br /&gt;
[[File:VV2-import-en.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:229--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;File&#039;&#039;&#039; : Select the file to be uploaded. The file must be a [[wikipedia:Tab-separated_values|TSV file]]: A text file with each column separated by TAB.&lt;br /&gt;
* &#039;&#039;&#039;Exclude record IDs?&#039;&#039;&#039; : If &#039;id&#039; column exist in the file you can exclude this line or not. If this setting is checked then a new record is added for each line of the .vv file. If unchecked you can choose:&lt;br /&gt;
* &#039;&#039;&#039;When an imported record matches an existing record ID&#039;&#039;&#039;:&lt;br /&gt;
** &#039;&#039;skip&#039;&#039; : Report and skip the new record. After upload you will see if the record already existed - if it existed it&#039;s not imported.&lt;br /&gt;
** &#039;&#039;renumber&#039;&#039; : Renumber the new record. A new record is added to the response table with answer of the VV file.&lt;br /&gt;
** &#039;&#039;replace&#039;&#039; : Replace the existing record. The old record is deleted and completely replaced by the record from the VV file&lt;br /&gt;
** &#039;&#039;replaceanswer&#039;&#039; : Replace response details from the file in the existing record. The old record is updated with the new response from the VV file. This allow to replace only one question in the response table.&lt;br /&gt;
* &#039;&#039;&#039;Import as not finalized response?&#039;&#039;&#039; : If checked the submitdate is set to NULL, so the response is set to not completed.&lt;br /&gt;
* &#039;&#039;&#039;Character set of the file&#039;&#039;&#039; : You can choose the character set of the file - the default and recommended value is UTF-8 but some spreadsheet program don&#039;t allow to choose a character set.&lt;br /&gt;
* &#039;&#039;&#039;First line contains question codes&#039;&#039;&#039; : By default VV file first line contain human readable question, the real column names are in the second line. This allow to use the first line as the real column names.&lt;br /&gt;
* &#039;&#039;&#039;Force import&#039;&#039;&#039; : If the question codes are not found in the database name or in [[Expression_Manager#Qcode_Variable_Naming|Qcode Variable Naming]] then columns are assigned depending of order. This can be used to import VV file from different LimeSurvey instance but each survey must be exactly the same. We strongly recommend to use this only if you know what you are doing. It can be very dangerous and lead to results ending up in the wrong column.&lt;br /&gt;
&lt;br /&gt;
=Other export options= &amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Export a single response== &amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
If you want to export an individual response, you can do it in 3 ways:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
1. Login to limesurvey admin backend, choose your survey, goto &amp;quot;Edit survey settings&amp;quot; -&amp;gt; &amp;quot;Notification and data management&amp;quot; and make sure you receive basic email notifications.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
Every time someone has completed a survey, you will receive an email with a link: &amp;quot;Click the following link to see the individual response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
This will take you to a page with a button above the data saying &amp;quot;Export this response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
2. Login to limesurvey admin backend, choose your survey and &amp;quot;Browse responses for this survey&amp;quot;. Click on &amp;quot;Display responses&amp;quot; and the id number you want to export in the left column. Then you can click on &amp;quot;Export this survey&amp;quot; above the data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
3. Login to limesurvey admin backend, choose your survey and &amp;quot;Export results to application&amp;quot;. In the last field above &amp;quot;Export data&amp;quot; you can choose which entry you want to export.&lt;br /&gt;
&lt;br /&gt;
==Match responses from different surveys== &amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
If you want to track survey responses for particular individuals over time, LimeSurvey can help you do that. A possible use case is to track group responses before and after the group takes a particular seminar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
The steps to implementing this are as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:143--&amp;gt;&lt;br /&gt;
1. Create the survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:144--&amp;gt;&lt;br /&gt;
2. Make sure the survey is non-anonymous and uses tokens. To create a non-anonymous survey:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:145--&amp;gt;&lt;br /&gt;
a - Click on the icon General settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:147--&amp;gt;&lt;br /&gt;
b - Then under the Tokens tab select &amp;quot;No&amp;quot; for Anonymized responses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:149--&amp;gt;&lt;br /&gt;
3. Activate the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:150--&amp;gt;&lt;br /&gt;
When you activate the survey, click on the &amp;quot;switch to closed-access mode&amp;quot; button to create the token table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:151--&amp;gt;&lt;br /&gt;
[[File:switch_to_closed.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:152--&amp;gt;&lt;br /&gt;
4. Populate the tokens table with whatever method you wish (follow the instructions found at the [[Tokens]] page ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:153--&amp;gt;&lt;br /&gt;
5. Export the survey results and make sure you include the token information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:154--&amp;gt;&lt;br /&gt;
To export click &#039;&#039;browse results&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:155--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:156--&amp;gt;&lt;br /&gt;
...and then &#039;&#039;export&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:157--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:158--&amp;gt;&lt;br /&gt;
Remember to choose one or more elements from the token table to associate with the survey responses:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:159--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:160--&amp;gt;&lt;br /&gt;
6. When you run the survey again, which can easily be done by copying the survey and tokens table using export/import, just repeat the steps, and make sure the same query is used to build the csv token import file.&lt;br /&gt;
&lt;br /&gt;
=Problems &amp;amp; Solutions= &amp;lt;!--T:161--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Excel== &amp;lt;!--T:162--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Modifying responses in Excel prior to Import=== &amp;lt;!--T:163--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:164--&amp;gt;&lt;br /&gt;
In order to make multiple changes to responses, you may choose to Export and open a file in Excel. Make changes to the data (other than the top lines) and then save as a .txt file. If you save as .csv, Excel uses comma-delimits which will not import into LimeSurvey. By saving as a .txt file, Excel saves as a tab-delimited file which imports back into LimeSurvey.&lt;br /&gt;
&lt;br /&gt;
===Edit .csv with Excel=== &amp;lt;!--T:165--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:166--&amp;gt;&lt;br /&gt;
In general &#039;&#039;&#039;&#039;&#039;we do not recommend to use Excel to edit the exported .csv files&#039;&#039;&#039;&#039;&#039; because Excel does some changes to the internal data structure which results in a failing import. If you nevertheless want to use Excel you have to set the seperator for Excel to a comma in System Control (Windows Systems):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:167--&amp;gt;&lt;br /&gt;
System Control|Region- Languageoptions|Regional Settings, customize...|Tab Numbers|Digit grouping symbol| replace ; with ,&lt;br /&gt;
&lt;br /&gt;
===Workaround to edit .csv files with Excel=== &amp;lt;!--T:168--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:169--&amp;gt;&lt;br /&gt;
Using Excel for editing questions can prevent you from being able to re-import them. But editing is the way to go if you have more than 5 or so options or ranking options, want to use Excel capabilities like sorting, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:170--&amp;gt;&lt;br /&gt;
This is a partial workaround that seems to work in 1.82-essentially, only use Excel on the part of the file that is the data:&lt;br /&gt;
* Export a question similar to what you would like to reuse as .csv file&lt;br /&gt;
* Open the CSV file in a rawtext editor&lt;br /&gt;
* Copy the part that has the answers to Excel, and parse it with Text to Columns or equivalent.&lt;br /&gt;
* Use the talent of Excel to allow pasting text in columns to paste in 20, 50, 100 answers, as you wish&lt;br /&gt;
* Save the file as Excel CSV, which will likely have no quotes.&lt;br /&gt;
* Open this file in the editor, and Select All, Copy&lt;br /&gt;
* Go back to the file you opened with the rawtext editor&lt;br /&gt;
* Paste over the answers there&lt;br /&gt;
* Save AS, with a different name, maybe one that you can remember for reuse&lt;br /&gt;
* Import this file.&lt;br /&gt;
&lt;br /&gt;
===Excel - export limited to 255 columns=== &amp;lt;!--T:171--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:172--&amp;gt;&lt;br /&gt;
Due to limitations in Excel (versions lower and equal to 2003), LimeSurvey can export only 255 columns at the same time. Microsoft has proposed a [http://support.microsoft.com/kb/272729/en-us workaround as a VB macro].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:173--&amp;gt;&lt;br /&gt;
Although newer spreadsheets (Excel &amp;gt;= 2007, OpenOffice) can display more than 255 columns, the internal module used by LimeSurvey still can&#039;t export more than 255 columns.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:174--&amp;gt;&lt;br /&gt;
Two workarounds are however possible, use one of the following solutions:&lt;br /&gt;
* Either export to CSV and import in your spreadsheet&lt;br /&gt;
* Or use multiple exports (selecting at most 250 columns at a time), then merge the exported results&lt;br /&gt;
&lt;br /&gt;
===Excel/.csv - export fails=== &amp;lt;!--T:175--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:176--&amp;gt;&lt;br /&gt;
If you are unable to export your data to excel or into a .csv file please try to clear your browser cache and cookies.&lt;br /&gt;
&lt;br /&gt;
==CSV== &amp;lt;!--T:177--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSV defaults to 255 columns=== &amp;lt;!--T:178--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:179--&amp;gt;&lt;br /&gt;
When exporting large surveys the GUI by default limits the export to the first 255 columns. To work around this, simply mark all data sets for export.&lt;br /&gt;
&lt;br /&gt;
==SPSS export== &amp;lt;!--T:180--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===General steps=== &amp;lt;!--T:181--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:182--&amp;gt;&lt;br /&gt;
To import the LimeSurvey response data please use the following steps:&lt;br /&gt;
#Click on the &#039;Export to SPSS&#039; icon.&lt;br /&gt;
#From the select boxes select which responses you want to export and your SPSS version.&lt;br /&gt;
#Download both files, the .sps (SPSS syntax command file) and .dat file (data file)&lt;br /&gt;
#Open the .sps file with SPSS by opening SPSS, then select &#039;Choose another type of file&#039; and select the downloaded .sps file.&lt;br /&gt;
#Now an editor opens inside SPS where you can edit the commands in that file. Look for the line that starts with &#039;/FILE=...&#039;&lt;br /&gt;
#Edit that line and adjust the path so it points to your .dat file. Example: Your *.dat file is in c:\temp so set this line to  /FILE=&#039;c:\temp\survey_(xxxx)_SPSS_data_file.dat&#039;&lt;br /&gt;
#Now select all commands inside the editor by pressing CTRL-A.&lt;br /&gt;
#From the SPSS menu select Run/All.&lt;br /&gt;
#Be patient, it will take some time to import all data and labels. Check the status bar for the progress.&lt;br /&gt;
#Done!&lt;br /&gt;
&lt;br /&gt;
===Possible error messages in SPSS=== &amp;lt;!--T:183--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====ERROR. command name:Get Data==== &amp;lt;!--T:184--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:185--&amp;gt;&lt;br /&gt;
If you receive the error message &#039;&#039;ERROR. command name:Get Data. 2267 Unexpected Token missing.&#039;&#039; please edit the forth line of your syntax file so it points to the absolute path of the data file like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:186--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;C:\spss\Data\limesurvey\SPSS\survey_35276_SPSS_data_file.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Error: &amp;quot;Text value unmappable in the current server locale&amp;quot;==== &amp;lt;!--T:187--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:188--&amp;gt;&lt;br /&gt;
This error can happen if you try to open an exported syntax file in SPSS 16. The solution is to force SPSS to interpret the syntax file as unicode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:189--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;Open SPSS. Go to Edit &amp;gt; Options &amp;gt; Character encoding for data and syntax. Change the option to &amp;quot;unicode&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:190--&amp;gt;&lt;br /&gt;
LimeSurvey data can now be exported to SPSS 16 without any problem.&lt;br /&gt;
&lt;br /&gt;
===Define the scale to use for your variable=== &amp;lt;!--T:191--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:192--&amp;gt;&lt;br /&gt;
It is possible to override the default scale used for a variable by setting the question attribute [[Advanced question settings#scale_export|scale_export]] to the appropriate value.&lt;br /&gt;
&lt;br /&gt;
==VV Export/Import== &amp;lt;!--T:193--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VV - Problems with vv import=== &amp;lt;!--T:194--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:195--&amp;gt;&lt;br /&gt;
If you have difficulties importing a vv file, try a Tab-delimited file and it should work fine.&lt;br /&gt;
&lt;br /&gt;
==Other problems and solutions== &amp;lt;!--T:196--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copying responses into a different survey (using tokens)=== &amp;lt;!--T:197--&amp;gt;&lt;br /&gt;
# Create new survey, add a dummy response, export the response file, open in Excel. This creates the format for the new import file.&lt;br /&gt;
# Export the responses from the old survey, including tokens, open in Excel.&lt;br /&gt;
# Use this data to create an Excel worksheet for the standard token file import (eg. Firstname, Lastname, Token, Email address, Email status (OK), Language (En)). Save as .csv and import tokens to the new survey in LimeSurvey.&lt;br /&gt;
# In Excel, copy the response fields from the old survey responses that you want in the new survey (including token) into the appropriate Excel column of the new survey format.&lt;br /&gt;
# Save as .txt file.&lt;br /&gt;
# Use VVImport to import the new data into the new survey.&lt;br /&gt;
# Possible import errors include date format - some system date fields do not allow a NULL value, some do. If the date looks okay but gives an error, use the Excel cell format &amp;quot;2009-12-01&amp;quot;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Workarounds:_Question_design,_layout_and_templating&amp;diff=61044</id>
		<title>Workarounds: Question design, layout and templating</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Workarounds:_Question_design,_layout_and_templating&amp;diff=61044"/>
		<updated>2014-03-13T17:13:10Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: workaround not working anymore in recent versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This section more or less deals with styling your survey, adjusting the layout and setting up special question types. You can find &#039;&#039;&#039;similar information&#039;&#039;&#039; at these pages:&lt;br /&gt;
* [[The template editor]]&lt;br /&gt;
* [[Workarounds: Manipulating a survey at runtime using Javascript]]&lt;br /&gt;
* [[Workarounds: Survey behaviour]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;&amp;lt;center&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Please keep in mind that these workarounds are not official LimeSurvey extensions - they are solutions that users have created for themselves.&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#EE0000,#FFFFFF&#039;&amp;gt;Therefore LimeSurvey can&#039;t offer guarantees or support for these solutions.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;If you have questions, please contact the users that, thankfully, shared their solutions with the community.&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Get rid of the quetstion mark (help.gif)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.80+ (6536)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To get rid of the question mark symbol that LimeSurvey displays at the end of a question, you can either upload an empty help.gif into the template folder (as discussed in the forum) or you can use the Template editor: Open the &#039;&#039;template.css&#039;&#039; of your template and search for &#039;&#039;div.questionhelp img&#039;&#039;, then add a &#039;&#039;visibility:hidden;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It will look something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
div.questionhelp img&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  margin:5px;&lt;br /&gt;
&lt;br /&gt;
  visibility:hidden;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;replace the image&#039;&#039;&#039; by following [[The template editor#Replacing the help icon|these instructions]].&lt;br /&gt;
&lt;br /&gt;
=Require users to check a box agreeing to privacy statement before registering for a survey=&lt;br /&gt;
&lt;br /&gt;
If you need to have users positively acknowledge a privacy statement before submitting a registration form, the following will help you do this.&lt;br /&gt;
&lt;br /&gt;
It involves a minor modification to common.php in versions up to 1.85. Later versions may not require this.&lt;br /&gt;
&lt;br /&gt;
Edit common.php and look for the line (at approximately line 3014)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$registerform .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;input class=&#039;submit&#039; type=&#039;submit&#039; value=&#039;&amp;quot;.$clang-&amp;gt;gT(&amp;quot;Continue&amp;quot;).&amp;quot;&#039; /&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and change it to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$registerform .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;input id=&#039;registercontinue&#039; class=&#039;submit&#039; type=&#039;submit&#039; value=&#039;&amp;quot;.$clang-&amp;gt;gT(&amp;quot;Continue&amp;quot;).&amp;quot;&#039; /&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then save common.php. This gives you DOM access to the &amp;quot;continue&amp;quot; button on the register form, but will have no other practical effect or change to LimeSurvey&#039;s operations.&lt;br /&gt;
&lt;br /&gt;
Next, you need to edit the template you are using (see the documentation on the Template editor if you don&#039;t know how to do this).&lt;br /&gt;
&lt;br /&gt;
In the template editor, open the screen &amp;quot;Register page&amp;quot; and select the file &amp;quot;register.pstpl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
There are two modifications you need to make to this file. The first is to add the following code after the line that says &#039;&#039;{REGISTERFORM}&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&#039;text/javascript&#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code disables the &amp;quot;Continue&amp;quot; button so that nobody can process the registration form until they&#039;ve clicked the checkbox.&lt;br /&gt;
&lt;br /&gt;
The second modification to make is to be done between the lines {REGISTERMESSAGE2} and {REGISTERFORM}. Add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;center&amp;gt;&lt;br /&gt;
 &amp;lt;label&amp;gt; Accept&lt;br /&gt;
   &amp;lt;input type=&#039;radio&#039;&lt;br /&gt;
          name=&amp;quot;privacy&amp;quot;&lt;br /&gt;
          value=&amp;quot;YES&amp;quot;&lt;br /&gt;
          onChange=&amp;quot;if(this.checked) {&lt;br /&gt;
                      document.getElementById(&#039;registercontinue&#039;).disabled=false;&lt;br /&gt;
                    }&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;label&amp;gt;I don&#039;t accept&lt;br /&gt;
   &amp;lt;input type=&#039;radio&#039;&lt;br /&gt;
          name=&amp;quot;privacy&amp;quot;&lt;br /&gt;
          value=&amp;quot;NO&amp;quot;&lt;br /&gt;
          CHECKED&lt;br /&gt;
          onChange=&amp;quot;if(this.checked) {&lt;br /&gt;
                      document.getElementById(&#039;registercontinue&#039;).disabled=true;&lt;br /&gt;
                    }&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the users will have to agree to whatever text you replace &amp;quot;Do you agree to privacy stuff?&amp;quot; before they continue on and register.&lt;br /&gt;
&lt;br /&gt;
(Thanks to &#039;&#039;Pippo_Jedi&#039;&#039; for helping work this out)&lt;br /&gt;
&lt;br /&gt;
=Different progress indicator=&lt;br /&gt;
&lt;br /&gt;
==Version 1.87 and later:==&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of template.js. It will find the progress value and insert it into the element following the progress bar.&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that I had to introduce a delay in firing the function because the progress value is not calculated until after template.js is called. The delay is set at 1/10 of a second but you may be able to reduce that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   // Display progress value&lt;br /&gt;
&lt;br /&gt;
   function setProgValue() {&lt;br /&gt;
&lt;br /&gt;
       var progress = $(&#039;#progressbar&#039;).attr(&#039;aria-valuenow&#039;);&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#progress-post&#039;).text(progress+&#039;%&#039;).show();&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#progress-post&#039;).hide();&lt;br /&gt;
&lt;br /&gt;
       setTimeout(&#039;setProgValue()&#039;,100);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to hide the &amp;quot;0%&amp;quot; before the progress bar, add the following to the end of template.css:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#progress-pre {&lt;br /&gt;
&lt;br /&gt;
   display: none;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Delete unwanted gaps in question title=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When copying data (questions, answers, ...) from MS Word or other applications into the editor there might occur some gaps in the question title.&lt;br /&gt;
&lt;br /&gt;
There are two solutions to this:&lt;br /&gt;
# Use popup mode and manually delete unwanting extra html tags (requires html knowledge).&lt;br /&gt;
# Disable paste word feature: Tweak your limesurvey-config.js file in limesurvey/admin/scripts/fckeditor.26 and set the following option to true:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;FCKConfig.ForcePasteAsPlainText = true ;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that clear you browser cache and try again.&lt;br /&gt;
&lt;br /&gt;
=How to change the &amp;lt;font-size&amp;gt; tags using CSS=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workaround was deleted because it is outdated. Such changes can be done by [[The template editor#Styling questions with CSS|adjusting template.css]] of your template.&lt;br /&gt;
&lt;br /&gt;
=Question type variation: Scale with bars (one and two sided)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some methodogical issues to think about: Very often a common scale as 1 to 5 or -2 to +2 fits all needs, as the shown subject is clearly defined as positive or negative. As soon as you would reduce the influence from the question and scale on the respondent, you will need something neutral to determine tendences, emphases and so on.&lt;br /&gt;
&lt;br /&gt;
So I put up a new variation of the one and two sided array question:&lt;br /&gt;
&lt;br /&gt;
ttp://www.limesurvey.org/images/fbfiles/images/example_bar_scale.jpg&lt;br /&gt;
&lt;br /&gt;
In my example the left side reads &amp;quot;strategical planning&amp;quot; and the right side &amp;quot;operative business&amp;quot;. None of these are purely negative or positive, so the bars only show in which direction the balancing point moves.&lt;br /&gt;
&lt;br /&gt;
To realize a question as shown above just do as follows:&lt;br /&gt;
&lt;br /&gt;
Set up as many bars as you will need (in my example there are four different bars in total) with a graphic program like PAINT .NET, GIMP or similar ones (yes, you may also use commercial software like Photoshop). To prevent the bars from looking twitchy, designate the size in advance. I did one bar 60x15 px, one 45x15px, one 30x15px and at last 15x15px. Save them as PNG, JPG or GIF.&lt;br /&gt;
# Create a new label set within Lime. Call it whatever you like.&lt;br /&gt;
# Enter a code number at first, then press the pencil symbol to enter the editor.&lt;br /&gt;
#Press the &amp;quot;Insert / edit image&amp;quot; button and upload the bar you want to insert with the FCK upload tool. Then choose the uploaded picture, save and leave the FCK editor.&lt;br /&gt;
#The row in the lable editor now shows an &amp;lt;img&amp;gt;-tag which refers to your bar picture.&lt;br /&gt;
#Repeat the above described steps as often as needed to build up your bar scale.&lt;br /&gt;
&lt;br /&gt;
=Doing a Likert Scale=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A Likert Scale is a special type of the Semantic Differential question where several item shall be rated on different scales, each marked at the beginning and at the end with opposite statements. See example:&lt;br /&gt;
&lt;br /&gt;
http://www.limesurvey.org/images/fbfiles/images/lickert.jpg&lt;br /&gt;
&lt;br /&gt;
To do this in LimeSurvey just follow these steps:&lt;br /&gt;
#Create a label set with values from 0 to 7 (for the classic Likert Scale - feel free to choose other ranges).&lt;br /&gt;
#Create a new question and choose Array (Flexible Labels) as question type.&lt;br /&gt;
#Assign the Likert Scale label set to this question.&lt;br /&gt;
#Enter your answers as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;DIV style=&amp;quot;white-space: nowrap;&amp;quot;&amp;gt;ITEM statement1|statement2&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The white-space style is to avoid line breaks which would ruin the whole scale. feel free to insert non-breakable spaces between the ITEM and statement1 to define the margin between these to strings.&lt;br /&gt;
&lt;br /&gt;
=Alternate background colour of questions=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7191)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To alternate the background colour of questions, open the &#039;&#039;template.css&#039;&#039; of your template with the Template Editor or a text editor and modify the &#039;&#039;Question styles&#039;&#039; section to include the following style.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
div#question2 td.questiontext,&lt;br /&gt;
&lt;br /&gt;
div#question4 td.questiontext,&lt;br /&gt;
&lt;br /&gt;
div#question6 td.questiontext {&lt;br /&gt;
&lt;br /&gt;
   background-color: #E0EBF8;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to apply the style to all of the questions you would like modified using their question IDs (&#039;&#039;question2, question4, question6&#039;&#039; in this case). Question IDs are displayed when creating or editing questions - see below:&lt;br /&gt;
&lt;br /&gt;
[[File:qid_1_493x173.gif]]&lt;br /&gt;
&lt;br /&gt;
Here the question ID is #question80 .&lt;br /&gt;
&lt;br /&gt;
=Embedding audio in questions=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7191), IE 7, FireFox 3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Audio clips can be embedded in most question text or answer text. In this example, using the default template, I&#039;ve embedded clips into the answers of an &#039;&#039;&#039;&#039;&#039;Array (Yes/No/Uncertain)&#039;&#039;&#039;&#039;&#039; question to ask respondents how they feel about some sounds. The resulting question will look like this.&lt;br /&gt;
&lt;br /&gt;
[[File:audioTest_595x202.gif]]&lt;br /&gt;
&lt;br /&gt;
It&#039;s accomplished by placing the following code in each of the answers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embed height=&amp;quot;20&amp;quot; width=&amp;quot;128&amp;quot; autostart=&amp;quot;false&amp;quot; controls=&amp;quot;console&amp;quot;&lt;br /&gt;
&lt;br /&gt;
loop=&amp;quot;true&amp;quot; volume=&amp;quot;50&amp;quot; src=&amp;quot;{TEMPLATEURL}audio_1.mp3&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some notes about the code:&lt;br /&gt;
*The &#039;&#039;audio_1.mp3&#039;&#039; part will be different for each answer (it&#039;s the audio file name).&lt;br /&gt;
*In this case the audio files are residing in the template folder being used for this survey (that&#039;s where &#039;&#039;{TEMPLATEURL}&#039;&#039; points to) but they can be placed anywhere if you use an absolute URL in the &#039;&#039;src&#039;&#039; parameter - something like &#039;&#039;src=&amp;quot;http://mysite.com/audio/audio_1.mp3&amp;quot;&#039;&#039;&lt;br /&gt;
*If the audio file doesn&#039;t exist where the &#039;&#039;src&#039;&#039; parameter indicates, the player will not appear.&lt;br /&gt;
*You&#039;ll need to insert the code into the answers using the source screen - click on &amp;quot;Edit answers&amp;quot;, click the pencil beside the text box, click &amp;quot;Source&amp;quot; in the pop-up, enter the code and save it with the little diskette icon.&lt;br /&gt;
*You may need to turn off the XSS filter - see the documentation for [http://docs.limesurvey.org/tiki-index.php?page=Global+settings&amp;amp;structure;=English+Instructions+for+LimeSurvey#Security Global settings].&lt;br /&gt;
&lt;br /&gt;
Although the above example places the audio in the answer text of the question, the same principles can be used to place it in the question text itself. Something like this perhaps.&lt;br /&gt;
&lt;br /&gt;
[[File:audioTest_595x154.gif]]&lt;br /&gt;
&lt;br /&gt;
=Hiding inputs of a &amp;quot;Multiple options with comments&amp;quot; question=&lt;br /&gt;
&lt;br /&gt;
Tested with: 1.85+ (7253), IE 6/7, FireFox 3.0, Safari 3.2, Chrome 2.0&lt;br /&gt;
&lt;br /&gt;
There may be times when you want to hide some of the input boxes of a &#039;&#039;&#039;&#039;&#039;Multiple options with comments&#039;&#039;&#039;&#039;&#039; question as in the image below.&lt;br /&gt;
&lt;br /&gt;
[[File:hidden_inputs_541x168.gif]]&lt;br /&gt;
&lt;br /&gt;
This can be accomplished with CSS (see [[The template editor#Styling questions with CSS|Styling questions in LimeSurvey 1.8]]). For each input that you want to hide, add the following style to your template.css file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#answer11111X22X33Acomment {&lt;br /&gt;
   display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Where 11111 is your survey ID, 22 is your group ID, 33 is your question ID and A is the answer code.&lt;br /&gt;
&lt;br /&gt;
Note that you will still see columns for the hidden inputs in your data but they will be empty.&lt;br /&gt;
&lt;br /&gt;
=Multiple question types in array=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.90 - 1.92+, IE 7/8/9, Firefox 13, Safari 5, Chrome 10&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Media:limesurvey_survey_62584.lss|Download the sample survey]]&lt;br /&gt;
&lt;br /&gt;
This workaround allows you to present multiple question types in what appears to be an array - as depicted in the image below and [http://www.partnersinc.biz/surveys//index.php?sid=62584&amp;amp;newtest=Y&amp;amp;lang=en demonstrated here] (download the sample survey - [[Media:limesurvey_survey_62584.lss|limesurvey_survey_62584.lss]]). This example uses the default template but should be adaptable to any template using divisions for question containers.&lt;br /&gt;
&lt;br /&gt;
[[File:inline_questions_700x228.png]]&lt;br /&gt;
&lt;br /&gt;
Basically what we do is take groups of questions (5 in this case), wrap them in a division and make them line up nicely horizontally and vertically. The width of the survey is also fixed to prevent wrapping issues. We do this with a JavaScript/jQuery function that inserts the necessary wrappers and then modifies styles so everything behaves properly. The top row is 5 boilerplate questions with the &amp;quot;column headers&amp;quot; as question text (the first just has a blank space). The following rows are a boilerplate with the &amp;quot;row headers&amp;quot; followed by 4 assorted questions.&lt;br /&gt;
&lt;br /&gt;
It should be noted that using conditions on these questions may result in unexpected behavior. If a question is hidden by conditions, the question(s) to the right of it will move over to take its place.&lt;br /&gt;
&lt;br /&gt;
Implementation is as follows:&lt;br /&gt;
#Create your questions keeping in mind how they will lay out when grouped into rows (in this example - boilerplate, yes/no, short text, numeric, dropdown, and repeat).&lt;br /&gt;
#In the source of the first boilerplate question add the function below (see [http://manual.limesurvey.org/wiki/Workarounds:_Manipulating_a_survey_at_runtime_using_Javascript#How_to_use_Script_.28eg._JavaScript_etc..29_in_LimeSurvey.3F How to use script]).&lt;br /&gt;
#Modify the number of rows, number of columns and the start placement in the function call (line 6) as required (the example uses 4 rows and 5 columns and the &amp;quot;array&amp;quot; starts with the third question on the page).&lt;br /&gt;
&lt;br /&gt;
The code may look intimidating at first but it&#039;s actually fairly simple. I&#039;ve laid it out as sequentially as possible and purposely used few shortcuts and many comments to make it easier to follow.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
*If you use question types other than boilerplate, short text, list dropdown, numeric or yes-no, you&#039;ll need to add to the last section of code, where it hides the question text and formats the inputs for display this way.&lt;br /&gt;
*Any extra questions on the page should follow this grid of questions, not precede them.&lt;br /&gt;
* If you use boilerplate as question type you should add after:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
// Hide the question text elements in non-boilerplate questions&lt;br /&gt;
$(&#039;div.questionCell td.questiontext&#039;).parent().hide();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
the following 2 lines&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
//repair boilerplate questioncells&lt;br /&gt;
$(&#039;div.boilerplate td.questiontext&#039;).parent().show();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Javascript code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	$(document).ready(function() {&lt;br /&gt;
		// Call the &amp;quot;sideBySide&amp;quot; function with number of rows, columns and start position&lt;br /&gt;
		sideBySide(4, 5, 3);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	function sideBySide(rows, columns, startQuestion) {&lt;br /&gt;
&lt;br /&gt;
		/*********** Display multiple questions side by side ***********/&lt;br /&gt;
&lt;br /&gt;
		if ($(&#039;div.qRow1&#039;).length == 0) {&lt;br /&gt;
&lt;br /&gt;
			var rowNum = 0;&lt;br /&gt;
			var colNum = 1;&lt;br /&gt;
			var rowList = new Array();&lt;br /&gt;
&lt;br /&gt;
			//////// Add question classes for later use ////////&lt;br /&gt;
&lt;br /&gt;
			// Loop through all questions and add row and column specific classes&lt;br /&gt;
			$(&#039;div[id^=&amp;quot;question&amp;quot;]&#039;).each(function(i) {&lt;br /&gt;
				if(i &amp;gt;= (startQuestion-1) &amp;amp;&amp;amp; rowNum &amp;lt; rows) { // This IF condition only needed if there are questions before or following the &amp;quot;inline&amp;quot; questions&lt;br /&gt;
					$(this).addClass(&#039;qRow&#039;+rowNum+&#039;&#039;).addClass(&#039;qCol&#039;+colNum+&#039;&#039;).addClass(&#039;inlineQuestion&#039;);&lt;br /&gt;
					if(rowNum == 0 &amp;amp;&amp;amp; colNum &amp;gt; 1) {&lt;br /&gt;
						$(this).addClass(&#039;columnLabel&#039;);&lt;br /&gt;
					}  &lt;br /&gt;
					if(rowNum &amp;gt; 0 &amp;amp;&amp;amp; colNum == 1) {&lt;br /&gt;
						$(this).addClass(&#039;rowLabel&#039;);&lt;br /&gt;
					}&lt;br /&gt;
					else if(rowNum &amp;gt; 0 &amp;amp;&amp;amp; colNum &amp;gt; 1) {&lt;br /&gt;
						$(this).addClass(&#039;questionCell&#039;);&lt;br /&gt;
					}&lt;br /&gt;
					if(colNum == columns) {&lt;br /&gt;
						rowList.push(&#039;qRow&#039;+rowNum+&#039;&#039;);&lt;br /&gt;
						rowNum++;&lt;br /&gt;
						colNum = 1;&lt;br /&gt;
					}&lt;br /&gt;
					else {&lt;br /&gt;
						colNum++;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				else {&lt;br /&gt;
					$(this).addClass(&#039;normalQuestion&#039;);&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			//////// Survey layout manipulation ////////&lt;br /&gt;
&lt;br /&gt;
			// Fix the width of the survey&lt;br /&gt;
			$(&#039;table.outerframe&#039;).css({&lt;br /&gt;
				&#039;width&#039;: &#039;900px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Wrap each &amp;quot;row&amp;quot; in a wrapper div&lt;br /&gt;
			$(rowList).each(function(i) {&lt;br /&gt;
				$(&#039;.&#039;+this+&#039;&#039;).wrapAll(&#039;&amp;lt;div id=&amp;quot;inlineWrapper&#039;+i+&#039;&amp;quot; class=&amp;quot;inlineRow&amp;quot; /&amp;gt;&#039;);&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Style the wrapper divs&lt;br /&gt;
			$(&#039;.inlineRow&#039;).css({&lt;br /&gt;
				&#039;width&#039;: &#039;850px&#039;,&lt;br /&gt;
				&#039;margin&#039;: &#039;0 auto 0 auto&#039;,&lt;br /&gt;
				&#039;clear&#039;: &#039;both&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			$( &#039;.inlineRow:first&#039; ).css({&lt;br /&gt;
				&#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Get all the questions to sit politely side by side&lt;br /&gt;
			$( &#039;.inlineQuestion&#039; ).css({&lt;br /&gt;
				&#039;float&#039;: &#039;left&#039;,&lt;br /&gt;
				&#039;height&#039;:&#039;41px&#039;,&lt;br /&gt;
				&#039;overflow&#039;:&#039;hidden&#039;,&lt;br /&gt;
				&#039;margin-bottom&#039;: &#039;-8px&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;.inlineQuestion .questionhelp&#039; ).hide();&lt;br /&gt;
			$( &#039;.inlineQuestion .survey-question-help&#039; ).parent().hide();&lt;br /&gt;
		   &lt;br /&gt;
			// A little space under the last row&lt;br /&gt;
			$( &#039;.inlineRow:last .inlineQuestion&#039; ).css({&lt;br /&gt;
				&#039;margin-bottom&#039;: &#039;10px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Any questions not displayed inline (this is only needed if there are questions following the &amp;quot;inline&amp;quot; questions)&lt;br /&gt;
			$( &#039;.normalQuestion&#039; ).css({&lt;br /&gt;
				&#039;clear&#039;: &#039;both&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			//////// Column manipulation ////////&lt;br /&gt;
&lt;br /&gt;
			// Set the column widths - can be set individually if necessary&lt;br /&gt;
			// Must add up to less than 100%&lt;br /&gt;
			$( &#039;.qCol1&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;12%&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			$( &#039;.qCol2, .qCol3, .qCol4, .qCol5&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;22%&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			//////// Question manipulation ////////&lt;br /&gt;
&lt;br /&gt;
			// Hide the answer element in boilerplate questions&lt;br /&gt;
			$( &#039;div.boilerplate td.answer&#039; ).parent().hide();&lt;br /&gt;
&lt;br /&gt;
			// Hide the question text elements in non-boilerplate questions&lt;br /&gt;
			$(&#039;div.questionCell td.questiontext&#039;).parent().hide();&lt;br /&gt;
&lt;br /&gt;
			// Push the question tables to 100%&lt;br /&gt;
			$( &#039;div.inlineRow table&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Get everything to line up nicely vertically&lt;br /&gt;
			$( &#039;.inlineQuestion td.questiontext, .inlineQuestion td.answer p&#039; ).css({&lt;br /&gt;
				&#039;text-align&#039;: &#039;center&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Adjust cell heights so everything lines up nicely horizontally&lt;br /&gt;
			$( &#039;.inlineQuestion td.answer, .inlineQuestion td.questiontext&#039; ).css({&lt;br /&gt;
				&#039;height&#039;:&#039;35px&#039;,&lt;br /&gt;
				&#039;overflow&#039;:&#039;hidden&#039;,&lt;br /&gt;
				&#039;padding&#039;:&#039;0.5em&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;#inlineWrapper0 .inlineQuestion&#039; ).css({ &#039;height&#039;:&#039;50px&#039; });&lt;br /&gt;
			$( &#039;#inlineWrapper0 td.questiontext&#039; ).css({&lt;br /&gt;
				&#039;height&#039;:&#039;50px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Yes-no question styles&lt;br /&gt;
			$( &#039;div.yes-no ul&#039; ).css({&lt;br /&gt;
				&#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
				&#039;font-size&#039;: &#039;90%&#039;,&lt;br /&gt;
				&#039;margin&#039;: &#039;0&#039;,&lt;br /&gt;
				&#039;padding-bottom&#039;: &#039;5px&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;div.yes-no li&#039; ).css({&lt;br /&gt;
				&#039;padding-right&#039;: &#039;1.5em&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;div.yes-no td.answer&#039; ).css({&lt;br /&gt;
				&#039;padding-bottom&#039;: &#039;0&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Short-text question styles&lt;br /&gt;
			$( &#039;div.text-short input&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;125px&#039;,&lt;br /&gt;
				&#039;margin-left&#039;: &#039;0&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Numeric question styles&lt;br /&gt;
			$( &#039;div.numeric input&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;125px&#039;,&lt;br /&gt;
				&#039;margin-left&#039;: &#039;0&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;div.numeric p.tip&#039; ).css({&lt;br /&gt;
				&#039;display&#039;: &#039;none&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Get rid of the margins around select boxes&lt;br /&gt;
			$( &#039;p.question&#039; ).css({ &#039;margin&#039;:&#039;0&#039; });&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Star Rating System=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7557), IE 6/7, FireFox 3.0, Safari 3.2,&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses the [http://www.fyneworks.com/jquery/star-rating/ jQuery Star Rating Plugin] to display a series of stars that are used to generate a rating value. This value is then passed to either a hidden numeric input question or a hidden list radio question. Both methods are outlined below - use one or both depending on whether you want to use [Assessments|assessments].&lt;br /&gt;
&lt;br /&gt;
The plugin uses a series of radio inputs to generate the stars (more about these below). It allows the use of whole or partial stars as shown in [http://www.partnersinc.biz/surveys//index.php?sid=47586&amp;amp;newtest=Y&amp;amp;lang=en this demo] and the image below.&lt;br /&gt;
&lt;br /&gt;
[[File:star_rating_700x324.png]]&lt;br /&gt;
&lt;br /&gt;
==Star Rating System Using Numeric Input Question==&lt;br /&gt;
&lt;br /&gt;
Use this method if you would like your rating data to be collected as a numeric value and don&#039;t want to use [[Assessments|LimeSurvey assessments]] - it&#039;s a little easier to implement. There is a demo [http://www.partnersinc.biz/surveys//index.php?sid=47586&amp;amp;newtest=Y&amp;amp;lang=en here] (first question).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Implementation is as follows:&#039;&#039;&#039;&lt;br /&gt;
#Turn off &#039;&#039;$filterxsshtml&#039;&#039; to allow insertion of JavaScript in the questions. (See [[Optional settings#Security|documentation here]])&lt;br /&gt;
#[http://www.fyneworks.com/jquery/star-rating/ Download the plugin] and place the following included files in your template folder:&lt;br /&gt;
##jquery.MetaData.js&lt;br /&gt;
##jquery.rating.css&lt;br /&gt;
##jquery.rating.js&lt;br /&gt;
##delete.gif&lt;br /&gt;
##star.gif&lt;br /&gt;
#In the &amp;lt;head&amp;gt; section of your startpage.pstpl, add the following code to link to the files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.rating.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.MetaData.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;{TEMPLATEURL}jquery.rating.css&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Create a numeric input question and then in the source of the question add as many radio inputs as star segments. For example, if you would like 5 stars, each with half-segments (as in the demo Q1), you would need 10 radio inputs and that would give rating values from 1-10.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t confuse these inputs with the actual question, they are just for the plugin&#039;s use.&lt;br /&gt;
&lt;br /&gt;
At this point your question source code should look something like below. Make sure that all inputs have the same name. Each input must have the same title as value and these must be sequential. Don&#039;t worry about how all of this looks in the WSYSWYG editor - the plugin is going to hide these inputs and replace them with stars.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q1 - Some question text here.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;starContainer&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;2&amp;quot; value=&amp;quot;2&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;3&amp;quot; value=&amp;quot;3&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;4&amp;quot; value=&amp;quot;4&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;5&amp;quot; value=&amp;quot;5&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;6&amp;quot; value=&amp;quot;6&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;7&amp;quot; value=&amp;quot;7&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;8&amp;quot; value=&amp;quot;8&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;9&amp;quot; value=&amp;quot;9&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;10&amp;quot; value=&amp;quot;10&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. A note on split stars. The stars in the above example are split in half by the &#039;&#039;{ split:2 }&#039;&#039; metadata. So if you don&#039;t want split stars, your inputs would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And stars split into third-segments would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:3 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
7. Finally, in the source of the question add the following function after your inputs. (See [[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|How to use script here]])&lt;br /&gt;
&lt;br /&gt;
Some notes on the code:&lt;br /&gt;
*Replace &amp;quot;SSSSS&amp;quot;, &amp;quot;GG&amp;quot;, &amp;quot;QQ&amp;quot; in the function call at the end with the survey ID, group ID and question ID respectively.&lt;br /&gt;
*The code will hide the numeric input and pass the rating values into it as they are changed. If the rating is canceled the numeric input is nullified. If a respondent navigates away from the page then returns the code &amp;quot;remembers&amp;quot; the previous rating and displays the stars accordingly.&lt;br /&gt;
*If you want to apply it to more numeric questions on the same page simply add more calls with the appropriate IDs. (eg. handleRatingNumeric(11111, 22, 1); handleRatingNumeric(11111, 22, 2); ...) .&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
function handleRatingNumeric (sID, gID, qID) {&lt;br /&gt;
&lt;br /&gt;
   // Hide the numeric input&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; td.answer&#039;).parent().hide();&lt;br /&gt;
&lt;br /&gt;
   // Get a previous rating (if any) and use it to initialize the star display&lt;br /&gt;
&lt;br /&gt;
   var rating = $(&#039;#answer&#039; + sID + &#039;X&#039; + gID + &#039;X&#039; + qID + &#039;&#039;).val();&lt;br /&gt;
&lt;br /&gt;
   if ( rating != &#039;&#039; ) {&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.star&#039;).rating(&#039;select&#039;, rating);&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating cancel element&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.rating-cancel&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Nullify the rating if the Cancel element is clicked&lt;br /&gt;
&lt;br /&gt;
       rating = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#answer&#039; + sID + &#039;X&#039; + gID + &#039;X&#039; + qID + &#039;&#039;).val(rating);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating elements&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.star-rating&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Find the value of the highest clicked star and pass it into the text input&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; div.star-rating-on&#039;).each(function(i) {&lt;br /&gt;
&lt;br /&gt;
           rating = $(this).children(&#039;a&#039;).html( );&lt;br /&gt;
&lt;br /&gt;
       });&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#answer&#039; + sID + &#039;X&#039; + gID + &#039;X&#039; + qID + &#039;&#039;).val(rating);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Call the function for the numeric question&lt;br /&gt;
&lt;br /&gt;
handleRatingNumeric (SSSSS, GG, QQ);&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Star Rating System Using List (Radio) Question==&lt;br /&gt;
&lt;br /&gt;
Use this method if you would like to use [[Assessments|assessments]]. There is a demo [http://www.partnersinc.biz/surveys//index.php?sid=47586&amp;amp;newtest=Y&amp;amp;lang=en here] (second question).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Implementation is as follows:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Turn off &#039;&#039;$filterxsshtml&#039;&#039; to allow insertion of JavaScript in the questions. (See [[Optional settings#Security|documentation here]])&lt;br /&gt;
&lt;br /&gt;
2. Set up the template to use custom onload functions. (See the [[Workarounds: Manipulating a survey at runtime using Javascript#Custom onload function|workaround here]])&lt;br /&gt;
&lt;br /&gt;
3. [http://www.fyneworks.com/jquery/star-rating/ Download the plugin] and place the following included files in your template folder:&lt;br /&gt;
*jquery.MetaData.js&lt;br /&gt;
*jquery.rating.css&lt;br /&gt;
*jquery.rating.js&lt;br /&gt;
*delete.gif&lt;br /&gt;
*star.gif&lt;br /&gt;
&lt;br /&gt;
4. In the &amp;lt;head&amp;gt; section of your startpage.pstpl, add the following code to link to the files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.rating.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.MetaData.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;{TEMPLATEURL}jquery.rating.css&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Create a list (radio) question with the same amount of sequentially numbered answers as star ratings. For example, if you want 5 whole-stars, you would create 5 answers, as in the image below, and this would give you ratings from 1-5. Note that the &amp;quot;Codes&amp;quot; and &amp;quot;Answers&amp;quot; must be sequential numbers.&lt;br /&gt;
&lt;br /&gt;
[[File:star_rating_700x156_v2.png]]&lt;br /&gt;
&lt;br /&gt;
6. In the list (radio) question, set the [[Advanced question settings|hide_tip]] question attribute to 1&lt;br /&gt;
&lt;br /&gt;
7. In the source of the question add as many radio inputs as star segments. So 5 whole-stars (as in the demo Q2), would need 5 radio inputs.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t confuse these inputs with the actual question, they are just for the plugin&#039;s use.&lt;br /&gt;
&lt;br /&gt;
At this point your question source code should look something like below. Make sure that all inputs have the same name. Each input must have the same title as value and these must be sequential. Don&#039;t worry about how all of this looks in the WSYSWYG editor - the plugin is going to hide these inputs and replace them with stars.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q2 - Some question text here.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;starContainer&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;2&amp;quot; value=&amp;quot;2&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;3&amp;quot; value=&amp;quot;3&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;4&amp;quot; value=&amp;quot;4&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;5&amp;quot; value=&amp;quot;5&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. A note on split stars. The stars in the above example are whole-stars. If you want them split you need to add metadata to the class - something like &#039;&#039;{ split:2 }&#039;&#039;. So if you want half-stars your inputs would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And stars split into third-segments would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:3 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
9. Finally, in the source of the question add the following function after your inputs. (See [http://docs.limesurvey.org/tiki-index.php?page=Workarounds&amp;amp;structure;=English+Instructions+for+LimeSurvey#How_to_use_Script_eg._JavaScript_etc._ How to use script here])&lt;br /&gt;
&lt;br /&gt;
Some notes on the code:&lt;br /&gt;
*Replace &amp;quot;SSSSS&amp;quot;, &amp;quot;GG&amp;quot;, &amp;quot;QQ&amp;quot; in the function call at the end with the survey ID, group ID and question ID respectively.&lt;br /&gt;
*The code will hide the question radio buttons and toggle them as the rating values are changed. If the rating is canceled all question inputs are unchecked. If a respondent navigates away from the page then returns the code &amp;quot;remembers&amp;quot; the previous rating and displays the stars accordingly.&lt;br /&gt;
*If you want to apply it to more numeric questions on the same page simply add more calls with the appropriate IDs. (eg. handleRatingRadio(11111, 22, 1); handleRatingRadio(11111, 22, 2); ...) .&lt;br /&gt;
&lt;br /&gt;
Onload code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
function handleRatingRadio (sID, gID, qID) {&lt;br /&gt;
&lt;br /&gt;
   // Hide the radio input&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; td.answer&#039;).parent().hide();&lt;br /&gt;
&lt;br /&gt;
   // Get a previous rating (if any) and use it to initialize the star display&lt;br /&gt;
&lt;br /&gt;
   var rating = $(&#039;#question&#039; + qID + &#039; input.radio[checked=true]&#039;).attr(&#039;value&#039;);&lt;br /&gt;
&lt;br /&gt;
   //if ( rating != &#039;&#039; ) {&lt;br /&gt;
&lt;br /&gt;
   if ( rating ) {&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.star&#039;).rating(&#039;select&#039;, rating);&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating cancel element&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.rating-cancel&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Nullify the rating if the Cancel element is clicked&lt;br /&gt;
&lt;br /&gt;
       rating = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.radio&#039;).attr(&#039;checked&#039;, false);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating elements&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.star-rating&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Find the value of the highest clicked star and pass it into the text input&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; div.star-rating-on&#039;).each(function(i) {&lt;br /&gt;
&lt;br /&gt;
           rating = $(this).children(&#039;a&#039;).html( );&lt;br /&gt;
&lt;br /&gt;
       });&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.radio[value=&#039; + rating + &#039;]&#039;).attr(&#039;checked&#039;, true);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Call the function for the radio question&lt;br /&gt;
&lt;br /&gt;
handleRatingRadio (SSSSS, GG, QQ);&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Variable column widths in array=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7557), IE 6/7, Firefox 3.0, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround allows you to define all column widths of an array question - as shown in the image below and [http://www.partnersinc.biz/surveys//index.php?sid=26842&amp;amp;newtest=Y&amp;amp;lang=en demonstrated here]. This example uses the default template shipped with 7557 but should be adaptable to any template.&lt;br /&gt;
&lt;br /&gt;
[[File:array_widths_701x226.gif]]&lt;br /&gt;
&lt;br /&gt;
We use a function to remove all of the widths imposed by the core code and then insert our own.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Implementation is as follows:&#039;&#039;&#039;&lt;br /&gt;
#Turn off &#039;&#039;$filterxsshtml&#039;&#039; to allow insertion of JavaScript in the questions (see [http://docs.limesurvey.org/tiki-index.php?page=Optional+settings&amp;amp;structure;=English+Instructions+for+LimeSurvey#Filtering_dangerous_HTML_tags_in_survey_objects documentation here]).&lt;br /&gt;
#Create the array question.&lt;br /&gt;
#In the source of the array question add the following script (see [[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|How to use script here]]).&lt;br /&gt;
#Replace all instances of QQ with the question ID.&lt;br /&gt;
#In the third section of code, adjust the widths and add/remove columns as necessary. This example is for an array with a question text column followed by 3 answer columns as shown above.&lt;br /&gt;
#In the final section adjust the question text alignment to your liking&lt;br /&gt;
&lt;br /&gt;
Onload code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
   // Get rid of all the widths that the API imposes&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question col&#039; ).attr(&#039;width&#039;, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question thead td&#039; ).attr(&#039;width&#039;, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
   // Define a width for the question table so we can do so for its children&lt;br /&gt;
&lt;br /&gt;
   // NOTE: Keep this to 95% or less so IE will behave&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question&#039; ).attr(&#039;width&#039;, &#039;95%&#039;);&lt;br /&gt;
&lt;br /&gt;
   // Define the column widths&lt;br /&gt;
&lt;br /&gt;
   // Add or remove columns and adjust widths as necessary but widths should add up to 100%&lt;br /&gt;
&lt;br /&gt;
   // NOTE: Columns must be sequentially numbered starting at 0 - eg, td:eq(0), td:eq(1), td:eq(2).....&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody th:eq(0)&#039; ).css({ &#039;width&#039;:&#039;10%&#039; }); // Answer text column&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody td:eq(0)&#039; ).css({ &#039;width&#039;:&#039;50%&#039; }); // First answer column&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody td:eq(1)&#039; ).css({ &#039;width&#039;:&#039;20%&#039; }); // Second answer column&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody td:eq(2)&#039; ).css({ &#039;width&#039;:&#039;20%&#039; }); // Third answer column&lt;br /&gt;
&lt;br /&gt;
   // Push the text input widths to 95% of their parent containers&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question input[type=&amp;quot;text&amp;quot;]&#039; ).css({ &#039;width&#039;:&#039;95%&#039; });&lt;br /&gt;
&lt;br /&gt;
   // Align the answer text - feel free to experiment&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody th&#039; ).css({&#039;text-align&#039;:&#039;center&#039;});&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Use images for radio buttons and checkboxes=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: LimeSurvey 1.92/2.0, using IE 9, FireFox 13, Chrome 16, Safari 5&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses an adaptation of the jQuery imagetick.js plugin to replace the default radio buttons and checkboxes with images as pictured below:&lt;br /&gt;
&lt;br /&gt;
[[File:images.png]] &lt;br /&gt;
&lt;br /&gt;
This adaptation will work in the following question types:&lt;br /&gt;
*Array&lt;br /&gt;
*Array by column&lt;br /&gt;
*Array dual scale&lt;br /&gt;
*Array (5 point choice)&lt;br /&gt;
*Array (10 point choice)&lt;br /&gt;
*Array (Increase-Same-Decrease)&lt;br /&gt;
*Array (Yes-No-Uncertain)&lt;br /&gt;
*Gender&lt;br /&gt;
*Yes-No&lt;br /&gt;
*Multiple choice&lt;br /&gt;
*Multiple choice with comments&lt;br /&gt;
*5 point choice&lt;br /&gt;
*List (Radio)&lt;br /&gt;
*List with comment&lt;br /&gt;
&lt;br /&gt;
==LimeSurvey 1.92 and earlier implementation==&lt;br /&gt;
#[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]].&lt;br /&gt;
#Download [[Media:imagetick_lime_v1.3.zip|this modified version of the plugin]].&lt;br /&gt;
#Extract all files and place them in your template directory.&lt;br /&gt;
#Add the following line to the &amp;lt;head&amp;gt; element in your startpage.pstpl &#039;&#039;&#039;BEFORE&#039;&#039;&#039; the call for template.js:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}imagetick_lime.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Add the following to the source of a question or the group description&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	$(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
		var templatePath = $(&#039;head link[href*=&amp;quot;template.css&amp;quot;]&#039;).attr(&#039;href&#039;).replace(/template.css/, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
		// Apply images to radios&lt;br /&gt;
		$(&#039;input[type=&amp;quot;radio&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
			// Image to use as a selected state of the radio&lt;br /&gt;
			tick_image_path:  templatePath+&amp;quot;radio.gif&amp;quot;,&lt;br /&gt;
			// Image to use as a non-selected state&lt;br /&gt;
			no_tick_image_path:  templatePath+&amp;quot;no_radio.gif&amp;quot;,&lt;br /&gt;
			// Class to apply to all radio images that are dynamically created&lt;br /&gt;
			image_tick_class: &amp;quot;radios&amp;quot;&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		// Apply images to checkboxes&lt;br /&gt;
		$(&#039;input[type=&amp;quot;checkbox&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
			// Image to use as a selected state of the checkbox&lt;br /&gt;
			tick_image_path: templatePath+&amp;quot;check.gif&amp;quot;,&lt;br /&gt;
			// Image to use as a non-selected state&lt;br /&gt;
			no_tick_image_path: templatePath+&amp;quot;no_check.gif&amp;quot;,&lt;br /&gt;
			// Class to apply to all checkbox images that are dynamically created&lt;br /&gt;
			image_tick_class: &amp;quot;checkboxes&amp;quot;&lt;br /&gt;
		});&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#You can also call the imagetick function from template.js. Skip the last step above and add the following to the end of template.js. Replace &amp;quot;yourTemplateName&amp;quot; with your template directory name.&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
	var templatePath = $(&#039;head link[href*=&amp;quot;template.css&amp;quot;]&#039;).attr(&#039;href&#039;).replace(/template.css/, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
	// Apply images to radios&lt;br /&gt;
	$(&#039;input[type=&amp;quot;radio&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
		// Image to use as a selected state of the radio&lt;br /&gt;
		tick_image_path: templatePath+&amp;quot;radio.gif&amp;quot;,&lt;br /&gt;
		// Image to use as a non-selected state&lt;br /&gt;
		no_tick_image_path: templatePath+&amp;quot;no_radio.gif&amp;quot;,&lt;br /&gt;
		// Class to apply to all radio images that are dynamically created&lt;br /&gt;
		image_tick_class: &amp;quot;radios&amp;quot;&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	// Apply images to checkboxes&lt;br /&gt;
	$(&#039;input[type=&amp;quot;checkbox&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
		// Image to use as a selected state of the checkbox&lt;br /&gt;
		tick_image_path: templatePath+&amp;quot;check.gif&amp;quot;,&lt;br /&gt;
		// Image to use as a non-selected state&lt;br /&gt;
		no_tick_image_path: templatePath+&amp;quot;no_check.gif&amp;quot;,&lt;br /&gt;
		// Class to apply to all checkbox images that are dynamically created&lt;br /&gt;
		image_tick_class: &amp;quot;checkboxes&amp;quot;&lt;br /&gt;
	});&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to apply it to only one question on a page use selector (where QQ is the question ID)&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(&#039;#questionQQ input[type=&amp;quot;radio&amp;quot;]&#039;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to apply it to a single radio button in a question (to maybe have different images for each option) use selector (where SSSSS is the survey ID, GG is the group ID, QQ is the question ID, AA is the answer code)&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(&amp;quot;input#answerSSSSSXGGXQQAA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LimeSurvey 2.0 and later implementation==&lt;br /&gt;
&lt;br /&gt;
Follow the instructions above with these changes:&lt;br /&gt;
#Download [[Media:Imagetick_lime_v2.1.zip|this modified version of the plugin for 2.0 and up]] instead of the one mentioned above and add all contained files to your template directory.&lt;br /&gt;
#Add these lines to the &amp;lt;head&amp;gt; element in your startpage.pstpl instead of the one above:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}imagetick_lime_2.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;{TEMPLATEURL}imagetick_lime_2.css&amp;quot; /&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks to Jordan Boesch for the original plugin.&lt;br /&gt;
&lt;br /&gt;
=Changing the position and layout of an individual question using &amp;quot;question code&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.87+ (6536)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To use this very flexible workaround you first have to apply a minor change to the question.pstpl of the used template.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;survey-question&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div class=&amp;quot;survey-question-text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
needs to be changed to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;survey-question&amp;quot; id=&amp;quot;{QUESTION_CODE}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div class=&amp;quot;survey-question-text&amp;quot; id=&amp;quot;{QUESTION_CODE}&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
this change won&#039;t change anything in the layout and can be left in the template even if you don&#039;t need this workaround. It&#039;s just a means to have a handle to actually change individual questions.&lt;br /&gt;
&lt;br /&gt;
You can then use a code such as the following in the question text to make question specific format changes. &amp;quot;SAMPLE&amp;quot; needs to be replaced with the concerning question code and javascript has to be allowed ([[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|older versions of limesurvey]], under global settings for newer versions).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;SAMPLE&#039;).style.borderTop= &amp;quot;0px&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;SAMPLE&#039;).style.marginTop= &amp;quot;-62px&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;SAMPLE&#039;).style.marginLeft= &amp;quot;30px&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sample code will hide the border at the top of the question, will move the whole question up by 62px and to the right by 30px. Using this workaround you can change a whole a lot of things concerning format and positions of a specific question without changing all the questions. A (German) list of all the allowed options can be found [http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften here].&lt;br /&gt;
&lt;br /&gt;
=Create MaxDiff question type=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.87+ (8518), IE 6/7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses JavaScript to convert an &#039;&#039;&#039;&#039;&#039;Array (flexible labels) by column&#039;&#039;&#039;&#039;&#039; question into a [http://en.wikipedia.org/wiki/MaxDiff MaxDiff] question type.&lt;br /&gt;
&lt;br /&gt;
[[File:max_diff_596x253.gif]]&lt;br /&gt;
&lt;br /&gt;
There is a demo [http://www.partnersinc.biz/surveys//index.php?sid=29191&amp;amp;newtest=Y&amp;amp;lang=en here] and implementation is as follows.&lt;br /&gt;
#[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]].&lt;br /&gt;
#Create an &#039;&#039;&#039;&#039;&#039;Array (flexible labels) by column&#039;&#039;&#039;&#039;&#039; question with 2 &amp;quot;answers&amp;quot; - these will be the left and right columns.&lt;br /&gt;
#Assign a label set to the question - these will be the labels in the center column.&lt;br /&gt;
#Place the following script in the source of the question or in the group description.&lt;br /&gt;
#In  line 5, replace &amp;quot;QQ&amp;quot; with the ID of the question and modify the message to your needs.&lt;br /&gt;
#Adjust the styles in lines 15-18 as required.&lt;br /&gt;
&lt;br /&gt;
The script moves the question columns into the MaxDiff configuration and alerts the user if they select the same option for both max and min columns.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
       maxDiff(QQ, &#039;You cannot select this answer twice.&#039;);&lt;br /&gt;
&lt;br /&gt;
       function maxDiff(qID, msg) {&lt;br /&gt;
&lt;br /&gt;
           // Move the cells around&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question col:eq(1)&#039;).prependTo(&#039;colgroup.col-responses&#039;);&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question thead tr:eq(0) th:eq(0)&#039;).prependTo(&#039;#question&#039;+qID+&#039; table.question thead tr:eq(0)&#039;);&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody tr&#039;).each(function(i){&lt;br /&gt;
&lt;br /&gt;
               $(&#039;td:eq(0)&#039;, this).prependTo(this);&lt;br /&gt;
&lt;br /&gt;
           });&lt;br /&gt;
&lt;br /&gt;
           // Style stuff&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question col.odd&#039;).css({ &#039;background-color&#039;:&#039;transparent&#039; });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody th&#039;).css({ &#039;text-align&#039;:&#039;center&#039; });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody tr:even td, #question&#039;+qID+&#039; table.question tbody tr:even th&#039;).css({ &#039;background-color&#039;:&#039;#F1F1F1&#039; });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody tr:odd td, #question&#039;+qID+&#039; table.question tbody tr:odd th&#039;).css({ &#039;background-color&#039;:&#039;#FCFCFC&#039; });&lt;br /&gt;
&lt;br /&gt;
           // Prevent clicking twice in the same row&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; input.radio&#039;).mousedown(function () {&lt;br /&gt;
&lt;br /&gt;
               var clickRow = $(this).parents(&#039;tr:eq(0)&#039;);&lt;br /&gt;
&lt;br /&gt;
               if ($(&#039;input.radio:checked&#039;, clickRow).length &amp;gt; 0) {&lt;br /&gt;
&lt;br /&gt;
                   alert (msg);&lt;br /&gt;
&lt;br /&gt;
                   return false;&lt;br /&gt;
&lt;br /&gt;
               }&lt;br /&gt;
&lt;br /&gt;
           });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody td&#039;).mousedown(function () {&lt;br /&gt;
&lt;br /&gt;
               var clickRow = $(this).parents(&#039;tr:eq(0)&#039;);&lt;br /&gt;
&lt;br /&gt;
               if ($(&#039;input.radio:checked&#039;, clickRow).length &amp;gt; 0) {&lt;br /&gt;
&lt;br /&gt;
                   alert (msg);&lt;br /&gt;
&lt;br /&gt;
                   return false;&lt;br /&gt;
&lt;br /&gt;
               }&lt;br /&gt;
&lt;br /&gt;
           });&lt;br /&gt;
&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Load SVG Code From Drawing Tool=&lt;br /&gt;
&lt;br /&gt;
This workaround uses JavaScript/jQuery to load a drawing tool and store the results in a huge-text question. The details are outlined in the [[Workarounds: Manipulating a survey at runtime using Javascript#Load SVG Code From Drawing Tool|JavaScript section of the workarounds]].&lt;br /&gt;
&lt;br /&gt;
=Minimum or Maximum Date in Datepicker=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.90, IE 7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please note: From version 2.05 beta6, you MUST set the minimum and maximum date for the date picker directly in the advanced question attributes of the date/time question. This workaround will seize to work.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can set the minimum or maximum selectible date in a datepicker as follows&lt;br /&gt;
&lt;br /&gt;
[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]] and add the following to the source of the date question text or help. Replace &amp;quot;QQ&amp;quot; with the date question ID.&lt;br /&gt;
&lt;br /&gt;
For a minimum date of April 15, 2010:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
       var qID = QQ;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039;+qID+&#039; .popupdate&#039;).datepicker( &#039;option&#039;, &#039;minDate&#039;, new Date(2010, 4-1, 15) );&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a minimum date of the current date (today):&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
       var qID = QQ;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039;+qID+&#039; .popupdate&#039;).datepicker( &#039;option&#039;, &#039;minDate&#039;, new Date() );&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a maximum date of May 10, 2015:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
       var qID = QQ;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039;+qID+&#039; .popupdate&#039;).datepicker( &#039;option&#039;, &#039;maxDate&#039;, new Date(2015, 5-1, 10) );&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More details here - http://jqueryui.com/demos/datepicker/#option-minDate&lt;br /&gt;
&lt;br /&gt;
=Evaluative Space Grid (ESG)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.91, IE 7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The evaluative space grid (ESG) is a two-dimensional grid that provides a single-item measure of positivity and negativity (Larsen et al, 2009). See [http://leeds-faculty.colorado.edu/mcgrawp/pdf/larsen.norris.mcgraw.hawkley.cacioppo.2009.pdf page 4 of this PDF].&lt;br /&gt;
&lt;br /&gt;
This can be accomplished using a multiple-numeric question, some simple HTML and a little JavaScript.&lt;br /&gt;
&lt;br /&gt;
A table can be shown in the question. When a respondent clicks a grid cell in the table JavaScript loads the coordinates of the cell into the multiple-numeric question inputs.&lt;br /&gt;
&lt;br /&gt;
[[File:space_grid.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Create a Multiple Numeric question with two sub-questions labelled &amp;quot;X&amp;quot; and &amp;quot;Y&amp;quot;.&lt;br /&gt;
#Add the following HTML to the source of the question to create the table:&amp;lt;syntaxhighlight lang=&amp;quot;html4strict&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;spaceGrid&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td rowspan=&amp;quot;5&amp;quot; class=&amp;quot;yAxisLabel&amp;quot;&amp;gt;How NEGATIVE&amp;lt;br&amp;gt;&lt;br /&gt;
			do you feel about&amp;lt;br&amp;gt;&lt;br /&gt;
		the stimulus?&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Extremely&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Quite a bit&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Moderately&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Slightly&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Not at all&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;Not at all&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Slightly&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Moderately&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Quite a bit&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Extremely&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td colspan=&amp;quot;5&amp;quot; class=&amp;quot;xAxisLabel&amp;quot;&amp;gt;How POSITIVE do you feel about the stimulus?&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following styles to the end of your template.css file:&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.spaceGrid {&lt;br /&gt;
	border: 0 none;&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.spaceGrid td {&lt;br /&gt;
	padding: 0 3px;&lt;br /&gt;
	text-align: center !important;&lt;br /&gt;
	border: 0 none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.xAxisLabel {&lt;br /&gt;
	padding-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.yAxisLabel {&lt;br /&gt;
	padding-right: 10px;&lt;br /&gt;
	width: 125px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.xLabel {&lt;br /&gt;
	height: 20px;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.yLabel {&lt;br /&gt;
	text-align: right !important;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.gridCell {&lt;br /&gt;
	width: 70px;&lt;br /&gt;
	height: 70px;&lt;br /&gt;
	border: 1px solid #666666;&lt;br /&gt;
	background-color: #FFFFFF;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.checkedCell {&lt;br /&gt;
	background-color: #66FF00;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of your template.js file:&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;	&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
	// Listener on the grid cells&lt;br /&gt;
	$(&#039;.gridCell&#039;).click(function(){&lt;br /&gt;
&lt;br /&gt;
		// Define some vars&lt;br /&gt;
		var parentQ = $(this).parents(&#039;div[id&amp;lt;/div&amp;gt;=&amp;quot;question&amp;quot;]:eq(0)&#039;);&lt;br /&gt;
		var parentTable = $(this).parents(&#039;table.spaceGrid:eq(0)&#039;);&lt;br /&gt;
		var parentRow = $(this).parent();&lt;br /&gt;
		var numGridCell = $(&#039;.gridCell&#039;).length;&lt;br /&gt;
		var numCols = $(&#039;.gridCell&#039;, parentRow).length;&lt;br /&gt;
		var numRows = numGridCell/numCols;&lt;br /&gt;
&lt;br /&gt;
		// Add class to checked cell&lt;br /&gt;
		$(&#039;.checkedCell&#039;, parentQ).removeClass(&#039;checkedCell&#039;);&lt;br /&gt;
		$(this).addClass(&#039;checkedCell&#039;);&lt;br /&gt;
&lt;br /&gt;
		// Find the cell coordinates&lt;br /&gt;
		var reverseRowIndex = (numRows - $(&#039;tr&#039;, parentTable).index($(parentRow)));&lt;br /&gt;
		var colIndex = $(&#039;.gridCell&#039;, parentRow).index($(this)) + 1;&lt;br /&gt;
&lt;br /&gt;
		// Load coordinates into inputs&lt;br /&gt;
		$(&#039;input.text:eq(0)&#039;, parentQ).val(colIndex);&lt;br /&gt;
		$(&#039;input.text:eq(1)&#039;, parentQ).val(reverseRowIndex);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The script should automatically handle different grid sizes.&lt;br /&gt;
&lt;br /&gt;
=Slider Highlighting=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.91, IE 7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You may want to highlight a slider after it has been moved/changed to allow respondents to easily see which slider sub-questions have been answered.&lt;br /&gt;
&lt;br /&gt;
[[File:Capture.PNG]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of &#039;&#039;&#039;template.js&#039;&#039;&#039;:&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
$(&#039;html&#039;).bind(&#039;slidecreate&#039;, function(event, ui) {&lt;br /&gt;
	$(&#039;.slider_callout&#039;).each(function(i){&lt;br /&gt;
		if($(this).text().length &amp;gt; 0) {&lt;br /&gt;
			$(this).parents(&#039;li:eq(0)&#039;).addClass(&#039;changedSlider&#039;);&lt;br /&gt;
		}&lt;br /&gt;
	});&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
	$(&#039;.ui-slider-horizontal&#039;).bind(&#039;slidechange&#039;, function(event, ui) {&lt;br /&gt;
	 $(this).parents(&#039;li:eq(0)&#039;).addClass(&#039;changedSlider&#039;);&lt;br /&gt;
	});&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add something like the following to the end of &#039;&#039;&#039;template.css&#039;&#039;&#039; (these styles are for the default template and would need to be modified for other templates):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.numeric-multi .answer li {&lt;br /&gt;
	border-bottom: 5px solid #FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.numeric-multi .answer li label {&lt;br /&gt;
	background-color: #FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.numeric-multi .answer li div.multinum-slider {&lt;br /&gt;
	margin: 1.5em 0.5em 0.2em 0;&lt;br /&gt;
	padding-left: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ui-slider-1 {&lt;br /&gt;
	margin-bottom: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.changedSlider {&lt;br /&gt;
	background-color: #99FFFF;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Sliders in Array-Numbers or Array-Dual-Scale-Numbers=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.91, IE 7/8/9, Firefox 3/7, Safari 5, Chrome 15&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround will replace the dropdowns in &#039;&#039;&#039;&#039;&#039;array-numbers&#039;&#039;&#039;&#039;&#039; or &#039;&#039;&#039;&#039;&#039;array-dual-scale-numbers&#039;&#039;&#039;&#039;&#039; questions with sliders. The sliders will automatically have the same minimum, maximum and steps that you set in the advanced question settings.&lt;br /&gt;
&lt;br /&gt;
[[File:custom_sliders_1.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
There is a [http://www.partnersinc.biz/surveys//index.php?sid=66653&amp;amp;newtest=Y&amp;amp;lang=en &#039;&#039;&#039;demo here&#039;&#039;&#039;].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]].&lt;br /&gt;
#Create your array-numbers or array-dual-scale-numbers question.&lt;br /&gt;
#Add the following to the source of the question. Replace &amp;quot;QQ&amp;quot; with the array question ID. (NOTE: In 1.92 or newer, you can replace &amp;quot;QQ&amp;quot; with &amp;quot;{QID}&amp;quot;)&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
		insertSlider (QQ);&lt;br /&gt;
&lt;br /&gt;
		function insertSlider (qID) {&lt;br /&gt;
&lt;br /&gt;
			$(&#039;#question&#039;+qID+&#039; select&#039;).each(function(i, el){&lt;br /&gt;
&lt;br /&gt;
				// Hide the dropdown&lt;br /&gt;
				$(el).hide();&lt;br /&gt;
&lt;br /&gt;
				var id = $(el).attr(&#039;id&#039;).replace(/#/g,&#039;-&#039;);&lt;br /&gt;
&lt;br /&gt;
				// Some dropdown values&lt;br /&gt;
				var currentVal = Number($(&#039;option:selected&#039;, el).val());&lt;br /&gt;
				var firstVal = Number($(&#039;option[value!=&amp;quot;&amp;quot;]:first&#039;, el).val());&lt;br /&gt;
				var secondVal = Number($(&#039;option[value!=&amp;quot;&amp;quot;]:first&#039;, el).next(&#039;option&#039;).val());&lt;br /&gt;
				var lastVal = Number($(&#039;option[value!=&amp;quot;&amp;quot;]:last&#039;, el).val());&lt;br /&gt;
&lt;br /&gt;
				// Insert a container for the slider&lt;br /&gt;
				var container = $(&#039;&amp;lt;div class=&amp;quot;customSliderWrapper&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;).insertAfter(el);&lt;br /&gt;
&lt;br /&gt;
				// Insert a callout&lt;br /&gt;
				var callout = $(&#039;&amp;lt;div id=&amp;quot;callOut-&#039;+id+&#039;&amp;quot; class=&amp;quot;customCallout&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;).appendTo(container).text($(&#039;option:selected&#039;, el).val());&lt;br /&gt;
&lt;br /&gt;
				// Initiate the slider&lt;br /&gt;
				var slider = $(&#039;&amp;lt;div id=&amp;quot;slider-&#039;+id+&#039;&amp;quot; class=&amp;quot;customSlider&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;).appendTo(container).slider({&lt;br /&gt;
					min: firstVal,&lt;br /&gt;
					max: lastVal,&lt;br /&gt;
					range: &#039;min&#039;,&lt;br /&gt;
					value: currentVal,&lt;br /&gt;
					step: secondVal - firstVal,&lt;br /&gt;
					slide: function( event, ui ) {&lt;br /&gt;
						$(&#039;option[value=&amp;quot;&#039;+ui.value+&#039;&amp;quot;]&#039;, el).attr(&#039;selected&#039;, &#039;selected&#039;);&lt;br /&gt;
						function updateCustomCallout() {&lt;br /&gt;
							$(&#039;#callOut-&#039;+id).text($(&#039;option:selected&#039;, el).val()).css({ &#039;left&#039;: $(&#039;#slider-&#039;+id+&#039; .ui-slider-handle&#039;).css(&#039;left&#039;) });&lt;br /&gt;
						}&lt;br /&gt;
						// Delay updating the callout because it was picking up the last postion of the slider&lt;br /&gt;
						setTimeout(updateCustomCallout, 10);&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
&lt;br /&gt;
				// Change the slider if the dropdown is changed&lt;br /&gt;
				// (not required if dropdown is hidden)&lt;br /&gt;
				$(el).change(function() {&lt;br /&gt;
					slider.slider(&#039;value&#039;, Number($(&#039;option:selected&#039;, el).val()));&lt;br /&gt;
					$(&#039;#callOut-&#039;+id).text($(&#039;option:selected&#039;, el).val());&lt;br /&gt;
				});&lt;br /&gt;
&lt;br /&gt;
				// Set a value as soon as the slider handle is clicked&lt;br /&gt;
				$(&#039;#slider-&#039;+id+&#039; .ui-slider-handle&#039;).mousedown(function() {&lt;br /&gt;
					$(&#039;option[value=&amp;quot;&#039;+slider.slider(&#039;value&#039;)+&#039;&amp;quot;]&#039;, el).attr(&#039;selected&#039;, &#039;selected&#039;);&lt;br /&gt;
					$(&#039;#callOut-&#039;+id).text(slider.slider(&#039;value&#039;));&lt;br /&gt;
				});&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add something like the following to the end of &#039;&#039;&#039;template.css&#039;&#039;&#039; (these styles are for the default template and may need to be modified for other templates):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
table.innerframe {&lt;br /&gt;
	width:850px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.array-multi-flexi table.question {&lt;br /&gt;
	width:90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.customCallout {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	top: 0;&lt;br /&gt;
	left: 0;&lt;br /&gt;
	width: 50px;&lt;br /&gt;
	height: 1.75em;&lt;br /&gt;
	text-align: left;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	margin: 0 0 0 -0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.customSliderWrapper {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	margin: 0 10px;&lt;br /&gt;
	padding-top: 1.75em;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Vertical Sliders=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.92+, 2.00+, IE 9, Firefox 13, Chrome 19&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses a custom jQuery plugin to apply vertical sliders to multiple-numeric questions. You can download a sample template here (with the plugin in template.js) - [[Media:default_vertical_sliders.zip|vertical slider template]] - and a sample survey here - [[Media:demo_vertical_sliders.lss|vertical slider survey]].&lt;br /&gt;
&lt;br /&gt;
[[File:verticalsliders_1.jpg]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create your multi-numeric question(s). Do NOT use any of the slider advanced settings.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.js. Replace &amp;quot;QQ&amp;quot; (line 5) with the question ID and adjust the options in the function call as desired. Repeat the call as many times as you need for more questions&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
	// Call the vertical slider plugin with the question ID&lt;br /&gt;
	// Edit options here as desired&lt;br /&gt;
	$(&#039;#questionQQ&#039;).lsVerticalSlider({&lt;br /&gt;
		minValue		:0,		// Minimum value (default 0)&lt;br /&gt;
		maxValue		:200,	// Maximum value (default 100)&lt;br /&gt;
		startValue		:100,	// Start value (default null)&lt;br /&gt;
		step			:10,	// Slider increments (default 1)&lt;br /&gt;
		height			:100,	// Height of slider in pixels (default 200)&lt;br /&gt;
		recordStart		:true,	// Record the start value? (default no)&lt;br /&gt;
		showMin			:true,	// Show minimum value? (default no)&lt;br /&gt;
		showMax			:true	// Show maximum value? (default no)&lt;br /&gt;
	});&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// NO EDITING REQUIRED BELOW HERE&lt;br /&gt;
// A jQuery plugin to convert multiple-numeric questions to vertical sliders&lt;br /&gt;
(function( $ ){&lt;br /&gt;
	$.fn.lsVerticalSlider = function(options) {&lt;br /&gt;
&lt;br /&gt;
		// The defaults, extended and modified with any passed in the function call&lt;br /&gt;
		var opts = $.extend( {&lt;br /&gt;
			minValue		:0,&lt;br /&gt;
			maxValue		:100,&lt;br /&gt;
			startValue		:&#039;&#039;,&lt;br /&gt;
			step			:1,&lt;br /&gt;
			height			:150,&lt;br /&gt;
			recordStart		:false,&lt;br /&gt;
			showMin			:false,&lt;br /&gt;
			showMax			:false&lt;br /&gt;
		}, options);&lt;br /&gt;
&lt;br /&gt;
		return this.each(function() {&lt;br /&gt;
&lt;br /&gt;
			var $this = $(this);&lt;br /&gt;
&lt;br /&gt;
			// Some classes for the question and sub-questions&lt;br /&gt;
			$this.addClass(&#039;vertical-slider-question&#039;);&lt;br /&gt;
			$(&#039;li:[id&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;=&amp;quot;javatbd&amp;quot;]&#039;, $this).addClass(&#039;vertical-slider-sub-question&#039;);&lt;br /&gt;
&lt;br /&gt;
			// Loop through the sub-questions&lt;br /&gt;
			$(&#039;li:[id&amp;lt;/div&amp;gt;=&amp;quot;javatbd&amp;quot;]&#039;, $this).each(function(i){&lt;br /&gt;
				var itemID = $(this).attr(&#039;id&#039;).replace(/javatbd/, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
				// Check for pre-existing answer&lt;br /&gt;
				if($(&#039;#answer&#039;+itemID).val() != &#039;&#039;) {&lt;br /&gt;
					opts.startValue = $(&#039;#answer&#039;+itemID).val();&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				// Insert the slider elements&lt;br /&gt;
				$(&#039;#answer&#039;+itemID).after(&lt;br /&gt;
					&#039;&amp;lt;div class=&amp;quot;vertical-slider-max-min&amp;quot; style=&amp;quot;height:&#039;+(opts.height+2)+&#039;px;&amp;quot;&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;vertical-slider-max&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;vertical-slider-min&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;div id=&amp;quot;vertical-slider-&#039;+itemID+&#039;&amp;quot; class=&amp;quot;vertical-slider&amp;quot; style=&amp;quot;height:&#039;+opts.height+&#039;px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;div class=&amp;quot;vertical-slider-callout-wrapper&amp;quot; style=&amp;quot;height:&#039;+(opts.height+2)+&#039;px;&amp;quot;&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;vertical-slider-callout&amp;quot; id=&amp;quot;slider-callout-&#039;+itemID+&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
				);&lt;br /&gt;
&lt;br /&gt;
				// Show min/max if option is set&lt;br /&gt;
				if(opts.showMax) {&lt;br /&gt;
					$(&#039;.vertical-slider-max&#039;, $this).text(opts.maxValue);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				if(opts.showMin) {&lt;br /&gt;
					$(&#039;.vertical-slider-min&#039;, $this).text(opts.minValue);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				// Initiate the slider&lt;br /&gt;
				$(&#039;#vertical-slider-&#039;+itemID).slider({&lt;br /&gt;
					orientation: &#039;vertical&#039;,&lt;br /&gt;
					range: &#039;min&#039;,&lt;br /&gt;
					min: opts.minValue,&lt;br /&gt;
					max: opts.maxValue,&lt;br /&gt;
					value: opts.startValue,&lt;br /&gt;
					step: opts.step,&lt;br /&gt;
					slide: function(event, ui) {&lt;br /&gt;
						$(&#039;#answer&#039;+itemID).val(ui.value);&lt;br /&gt;
						$(&#039;#slider-callout-&#039;+itemID).text(ui.value);&lt;br /&gt;
						setTimeout(function() {&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).css({ &#039;bottom&#039;:$(&#039;#vertical-slider-&#039;+itemID+&#039; .ui-slider-handle&#039;).css(&#039;bottom&#039;) }).show();&lt;br /&gt;
						}, 10);&lt;br /&gt;
					},&lt;br /&gt;
					create: function(event, ui) {&lt;br /&gt;
						// Initial values and positions&lt;br /&gt;
						if($(&#039;#answer&#039;+itemID).val() != &#039;&#039;) { // Pre-existing answer&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).text(opts.startValue);&lt;br /&gt;
						}&lt;br /&gt;
						else if(opts.recordStart) { // Record the start value (if option is set)&lt;br /&gt;
							$(&#039;#answer&#039;+itemID).val(opts.startValue);&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).text(opts.startValue);&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).hide();&lt;br /&gt;
						}&lt;br /&gt;
						$(&#039;#slider-callout-&#039;+itemID).css({ &#039;bottom&#039;:$(&#039;#vertical-slider-&#039;+itemID+&#039; .ui-slider-handle&#039;).css(&#039;bottom&#039;) });&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	};&lt;br /&gt;
})( jQuery );&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.css (these styles are for the default template):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;/* Vertical slider styles and overrides */&lt;br /&gt;
.vertical-slider-question p.tip {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-sub-question {&lt;br /&gt;
	float: left;&lt;br /&gt;
	margin: 0 3em 0 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question label {&lt;br /&gt;
	display: block;&lt;br /&gt;
	padding: 0 0 0.75em 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question span.input {&lt;br /&gt;
	padding: 0.3em 0 0 0;&lt;br /&gt;
	display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question input.text {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider {&lt;br /&gt;
	float: left;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question .ui-slider-handle {&lt;br /&gt;
	top: auto;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max-min,&lt;br /&gt;
.vertical-slider-callout-wrapper {&lt;br /&gt;
	float: left;&lt;br /&gt;
	position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-callout-wrapper {&lt;br /&gt;
	min-width: 3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max-min {&lt;br /&gt;
	margin-right: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max,&lt;br /&gt;
.vertical-slider-min {&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	color:#666666;&lt;br /&gt;
	line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max {&lt;br /&gt;
	margin-top: -0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-min {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	right: 0;&lt;br /&gt;
	bottom: 0;&lt;br /&gt;
	margin-bottom: -0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-callout {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	top: auto;&lt;br /&gt;
	margin: 0 0 -0.6em 0.5em;&lt;br /&gt;
	padding: 0.1em;&lt;br /&gt;
	font-size: 0.9em;&lt;br /&gt;
	color:#000000;&lt;br /&gt;
	line-height: 1;&lt;br /&gt;
	background: #F8F8FF;&lt;br /&gt;
	border: 1px solid #D2E0F2;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Range Slider=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.92+, 2.00+, IE 9, Firefox 13, Chrome 19&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses a custom jQuery plugin to insert a jQuery UI range slider into a multi-numeric question and automatically populate that question&#039;s inputs with the range min and max values. You can download a sample template here - [[Media:Demo_Range_Slider.zip|range slider template]] - and a sample survey here - [[Media:Limesurvey_survey_range_slider.lss|range slider survey]].&lt;br /&gt;
&lt;br /&gt;
[[File:Range_slider.jpg]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The plugin handles:&lt;br /&gt;
*previous answers&lt;br /&gt;
*slider max/min&lt;br /&gt;
*range min start&lt;br /&gt;
*range max start&lt;br /&gt;
*range span min&lt;br /&gt;
*slider step&lt;br /&gt;
*slider width&lt;br /&gt;
*record the start values&lt;br /&gt;
*show slider max and min&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Requirements:&lt;br /&gt;
*LimeSurvey 1.92 or newer&lt;br /&gt;
*A multiple-numeric question with two sub-questions&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create your multi-numeric question. Do NOT use any of the slider advanced settings.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.js.&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;// A jQuery plugin to display a range slider in LimeSurvey&lt;br /&gt;
(function( $ ){&lt;br /&gt;
 &lt;br /&gt;
	$.fn.lsRangeSlider = function(options) {  &lt;br /&gt;
 &lt;br /&gt;
		// The defaults, extended and modified with any passed in the function call&lt;br /&gt;
		var opts = $.extend( {&lt;br /&gt;
			range			:true, &lt;br /&gt;
			sliderMin		:0, &lt;br /&gt;
			sliderMax		:100,&lt;br /&gt;
			rangeStartMin		:&#039;&#039;,&lt;br /&gt;
			rangeStartMax		:&#039;&#039;,&lt;br /&gt;
			minRangeSpan		:0,&lt;br /&gt;
			step			:1,&lt;br /&gt;
			width			:250, &lt;br /&gt;
			recordStart		:false,&lt;br /&gt;
			showMin			:false,&lt;br /&gt;
			showMax			:false&lt;br /&gt;
		}, options);&lt;br /&gt;
 &lt;br /&gt;
		return this.each(function() { &lt;br /&gt;
 &lt;br /&gt;
			if($(this).hasClass(&#039;numeric-multi&#039;) &amp;amp;&amp;amp; $(&#039;input.text&#039;, this).length == 2) {&lt;br /&gt;
 &lt;br /&gt;
				// Define some vars	&lt;br /&gt;
				var $this = $(this);&lt;br /&gt;
				var qID = $(this).attr(&#039;id&#039;).split(&#039;question&#039;)[1];&lt;br /&gt;
				var rangeMinInput = $(&#039;input.text:eq(0)&#039;, $this); &lt;br /&gt;
				var rangeMaxInput = $(&#039;input.text:eq(1)&#039;, $this); &lt;br /&gt;
 &lt;br /&gt;
				// Some classes for the question and sub-questions&lt;br /&gt;
				$this.addClass(&#039;range-slider-question&#039;);&lt;br /&gt;
 &lt;br /&gt;
				// Check for pre-existing answer&lt;br /&gt;
				if($(rangeMinInput).val() != &#039;&#039; &amp;amp;&amp;amp; $(rangeMinInput).val() != &#039;&#039;) {&lt;br /&gt;
					opts.rangeStartMin = $(rangeMinInput).val();&lt;br /&gt;
					opts.rangeStartMax = $(rangeMaxInput).val();&lt;br /&gt;
				}&lt;br /&gt;
 &lt;br /&gt;
				// Insert the slider elements&lt;br /&gt;
				$(&#039;.subquestions-list&#039;, $this).before(&lt;br /&gt;
					&#039;&amp;lt;div class=&amp;quot;range-slider-wrapper&amp;quot;&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;range-slider-min&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div id=&amp;quot;range-slider-&#039;+qID+&#039;&amp;quot; class=&amp;quot;range-slider&amp;quot; style=&amp;quot;width:&#039;+opts.width+&#039;px;&amp;quot;&amp;gt; \&lt;br /&gt;
							&amp;lt;div class=&amp;quot;range-slider-callout&amp;quot; id=&amp;quot;slider-callout-min-&#039;+qID+&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
							&amp;lt;div class=&amp;quot;range-slider-callout&amp;quot; id=&amp;quot;slider-callout-max-&#039;+qID+&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;range-slider-max&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
				);&lt;br /&gt;
 &lt;br /&gt;
				// Show min/max if option is set&lt;br /&gt;
				if(opts.showMax) {&lt;br /&gt;
					$(&#039;.range-slider-max&#039;, $this).text(opts.sliderMax);&lt;br /&gt;
				}&lt;br /&gt;
				if(opts.showMin) {&lt;br /&gt;
					$(&#039;.range-slider-min&#039;, $this).text(opts.sliderMin);&lt;br /&gt;
				}&lt;br /&gt;
 &lt;br /&gt;
				// Initiate the slider&lt;br /&gt;
				var rangeMin;&lt;br /&gt;
				var rangeMax;&lt;br /&gt;
				if(opts.rangeStartMin == &#039;&#039; || opts.rangeStartMin &amp;lt; opts.sliderMin || opts.rangeStartMin &amp;gt; opts.rangeStartMax) {&lt;br /&gt;
					rangeMin = opts.sliderMin+((opts.sliderMax-opts.sliderMin)*0.3333);&lt;br /&gt;
				}&lt;br /&gt;
				else {&lt;br /&gt;
					rangeMin = opts.rangeStartMin;&lt;br /&gt;
				}&lt;br /&gt;
				if(opts.rangeStartMax == &#039;&#039; || opts.rangeStartMax &amp;gt; opts.sliderMax || opts.rangeStartMax &amp;lt; opts.rangeStartMin) {&lt;br /&gt;
					rangeMax = opts.sliderMin+((opts.sliderMax-opts.sliderMin)*0.6667);&lt;br /&gt;
				}&lt;br /&gt;
				else {&lt;br /&gt;
					rangeMax = opts.rangeStartMax;&lt;br /&gt;
				}&lt;br /&gt;
				$(&#039;#range-slider-&#039;+qID).slider({&lt;br /&gt;
					range: true,&lt;br /&gt;
					min: opts.sliderMin,&lt;br /&gt;
					max: opts.sliderMax, &lt;br /&gt;
					values: [ rangeMin, rangeMax ],&lt;br /&gt;
					step: opts.step,&lt;br /&gt;
					slide: function(event, ui) {&lt;br /&gt;
						if((ui.values[1] - ui.values[0]) &amp;lt; opts.minRangeSpan) {&lt;br /&gt;
							return false; // Nothing happens if less than minRangeSpan&lt;br /&gt;
						}&lt;br /&gt;
						$(rangeMinInput).val(ui.values[0]);&lt;br /&gt;
						$(rangeMaxInput).val(ui.values[1]);&lt;br /&gt;
						$(&#039;#slider-callout-min-&#039;+qID).text(ui.values[0]);&lt;br /&gt;
						$(&#039;#slider-callout-max-&#039;+qID).text(ui.values[1]);&lt;br /&gt;
						setTimeout(function() { &lt;br /&gt;
							$(&#039;#slider-callout-min-&#039;+qID).css({ &#039;left&#039;:$(&#039;.ui-slider-handle:eq(0)&#039;, $this).position().left - $(&#039;#slider-callout-min-&#039;+qID).outerWidth() - ($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; }).show();&lt;br /&gt;
							$(&#039;#slider-callout-max-&#039;+qID).css({ &#039;left&#039;:($(&#039;.ui-slider-handle:eq(1)&#039;, $this).position().left)+($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; }).show();&lt;br /&gt;
						}, 10);&lt;br /&gt;
					},&lt;br /&gt;
					create: function(event, ui) {&lt;br /&gt;
						// Initial values and positions&lt;br /&gt;
						if($(rangeMinInput).val() != &#039;&#039; &amp;amp;&amp;amp; $(rangeMaxInput).val() != &#039;&#039;) { // Pre-existing answer&lt;br /&gt;
							$(&#039;#slider-callout-min-&#039;+qID).text(opts.rangeStartMin);&lt;br /&gt;
							$(&#039;#slider-callout-max-&#039;+qID).text(opts.rangeStartMax);&lt;br /&gt;
						}&lt;br /&gt;
						else if(opts.recordStart &amp;amp;&amp;amp; opts.rangeStartMin &amp;amp;&amp;amp; opts.rangeStartMin &amp;amp;&amp;amp; $(rangeMinInput).val() == &#039;&#039; &amp;amp;&amp;amp; $(rangeMaxInput).val() == &#039;&#039;) { // Record the start value (if option is set)&lt;br /&gt;
							$(rangeMinInput).val(opts.rangeStartMin);&lt;br /&gt;
							$(rangeMaxInput).val(opts.rangeStartMax);&lt;br /&gt;
							$(&#039;#slider-callout-min-&#039;+qID).text(opts.rangeStartMin);&lt;br /&gt;
							$(&#039;#slider-callout-max-&#039;+qID).text(opts.rangeStartMax);&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							$(&#039;.range-slider-callout&#039;, $this).hide();&lt;br /&gt;
						} &lt;br /&gt;
						$(&#039;#slider-callout-min-&#039;+qID).css({ &#039;left&#039;:$(&#039;.ui-slider-handle:eq(0)&#039;, $this).position().left - $(&#039;#slider-callout-min-&#039;+qID).outerWidth() - ($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; });&lt;br /&gt;
						$(&#039;#slider-callout-max-&#039;+qID).css({ &#039;left&#039;:($(&#039;.ui-slider-handle:eq(1)&#039;, $this).position().left)+($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; });&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
 &lt;br /&gt;
	};&lt;br /&gt;
})( jQuery );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.css (these styles are for the default template but easily modified for others):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.range-slider-question p.tip,&lt;br /&gt;
.range-slider-question .subquestions-list {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-wrapper {&lt;br /&gt;
	clear: both;&lt;br /&gt;
	margin: 10px 0;&lt;br /&gt;
	padding-top: 20px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider,&lt;br /&gt;
.range-slider-max,&lt;br /&gt;
.range-slider-min {&lt;br /&gt;
	float: left;&lt;br /&gt;
	position: relative;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-max,&lt;br /&gt;
.range-slider-min {&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	color:#666666;&lt;br /&gt;
	line-height: 1.20;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-min {&lt;br /&gt;
	margin-right: 5px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-max {&lt;br /&gt;
	margin-left: 5px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-question .ui-slider-handle {&lt;br /&gt;
	top: -4px;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-callout {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	top: -30px;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	min-width: 1.3em;&lt;br /&gt;
	padding: 0.1em;&lt;br /&gt;
	font-size: 0.9em;&lt;br /&gt;
	color:#000000;&lt;br /&gt;
	line-height: 1;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	background: #F8F8FF;&lt;br /&gt;
	border: 1px solid #D2E0F2;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Then, add something like this to the source of your question to apply the plugin with some custom option settings (I think the comments explain the options adequately)&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
	$(document).ready(function(){&lt;br /&gt;
 &lt;br /&gt;
		$(&#039;#question{QID}&#039;).lsRangeSlider({&lt;br /&gt;
			sliderMin	:0,	// Minimum slider value (default 0)&lt;br /&gt;
			sliderMax	:100,	// Maximum slider value (default 100) &lt;br /&gt;
			rangeStartMin	:20,	// Minimum range handle start value  &lt;br /&gt;
			rangeStartMax	:80,	// Maximum range handle start value  &lt;br /&gt;
			minRangeSpan	:5,	// Minimum allowed range span &lt;br /&gt;
			step		:1,	// Slider increments (default 1)&lt;br /&gt;
			width		:400,	// Width of slider in pixels (default 250)&lt;br /&gt;
			recordStart	:true,	// Record the start value? (default no)&lt;br /&gt;
			showMin		:true,	// Show slider minimum value? (default no)&lt;br /&gt;
			showMax		:true	// Show slider maximum value? (default no)&lt;br /&gt;
		});&lt;br /&gt;
 &lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Or, to apply the plugin with the default option settings&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
	$(document).ready(function(){&lt;br /&gt;
 &lt;br /&gt;
		$(&#039;#question{QID}&#039;).lsRangeSlider();&lt;br /&gt;
 &lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Split your sample into legs (cells) that see slightly different wording and media=&lt;br /&gt;
&lt;br /&gt;
Sometimes you may need to test candidate A vs candidate B or brand 1 vs brand 2 &amp;amp;hellip; vs brand n. Typically in such cases the phrasing of the questionnaire is identical except for the brand (candidate) and some logo/media. Rather than create several questionnaires it is best to control survey logic by assigning respondents to different groups and showing them different versions of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
The logical engine in the current version (1.91) does not support this but you can still do it using the attribute fields in the token table. The instructions below are not really a workaround, but more of a translation of conditional logic to database questionnaire logic.&lt;br /&gt;
&lt;br /&gt;
This works for closed surveys. If your survey is not closed you may want to consider ways to create automatically tokens for each respondent like: &amp;quot;Create token on the fly and Edit completed survey&amp;quot;: http://bugs.limesurvey.org/view.php?id=2982&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Case A: you need different text for each version&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Step 1: you create a tokens table adding attribute fields for each variation you need: [[Tokens#User-defined attribute fields|User defined attribute fields]]. For example you may store in attribute_1 the name of the candidate, in attribute_2 the name of the party etc.&lt;br /&gt;
&lt;br /&gt;
Step 2 You export the structure of your tokens database and populate it with the relevant values for the attribute fields. Then import it back&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
http://img502.imageshack.us/img502/7425/58d0ff2c68d74366a81e6f7.png&lt;br /&gt;
&lt;br /&gt;
Please use the instructions here: [[Tokens#Importing/exporting tokens|importing and exporting tokens]], and pay attention because this can be error-prone.&lt;br /&gt;
&lt;br /&gt;
Step 3&lt;br /&gt;
&lt;br /&gt;
When creating a question use the insert replacement field icon http://img502.imageshack.us/img502/540/81a6c17d49f04f88bd52e72.png to insert your proper keyword.&lt;br /&gt;
&lt;br /&gt;
This is it. The overall process is quite simple once you get the hang of using tokens, but the database can be space-consuming if you are running on limited resources.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Case B: you need to run different media, from public hosting websites.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The process is just like in case A, just that you will populate the attribute field with unique identifiers for the media.&lt;br /&gt;
&lt;br /&gt;
See below an example on how to embed a youtube video&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;iframe allowfullscreen=&amp;quot;&amp;quot; frameborder=&amp;quot;0&amp;quot; height=&amp;quot;349&amp;quot; src=&amp;quot;http://www.youtube.com/embed/&#039;&#039;&#039;{TOKEN:ATTRIBUTE_5}&#039;&#039;&#039;?rel=0&amp;amp;amp;modestbranding=1&amp;amp;amp;loop=0&amp;amp;amp;controls=0&amp;amp;amp;autoplay=1&amp;amp;amp;rel=0&amp;amp;amp;showinfo=0&amp;amp;amp;showsearch=0&amp;amp;amp;iv_load_policy=o&amp;quot; width=&amp;quot;560&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you embed images you will want to make sure that the hotlinks for your pictures only differ by the image ID. IF not, you may use a larger portion, or maybe even the entire URL as your unique identifier. As said before, please consider how much space you are allowed for your databases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Case C: you want to run media from your server, which is organized in relevant folders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For this scenario I will assume your media is organized as follows&lt;br /&gt;
&lt;br /&gt;
Project folder ...leg folder (for each leg) ... media (1 to n). You can use a FTP client to upload this structure to you LS installation.&lt;br /&gt;
&lt;br /&gt;
In this case you only need to store the &amp;lt;leg folder&amp;gt; into the tokens table and then use this info to build your embed tag. This may free a significant amount of space,&lt;br /&gt;
&lt;br /&gt;
For example if you have the data as below...&lt;br /&gt;
&lt;br /&gt;
http://img534.imageshack.us/img534/8967/a62e6ff48476492c8795f79.png&lt;br /&gt;
&lt;br /&gt;
&amp;amp;hellip; then your embed for the party logo will look somewhere along these lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;[path to project folder]/&#039;&#039;&#039;{TOKEN:ATTRIBUTE_3}&#039;&#039;&#039;/logo1.png&amp;quot; alt=&amp;quot;&#039;&#039;&#039;{TOKEN:ATTRIBUTE_2}&#039;&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The alt tag is, of course, optional.&lt;br /&gt;
***&lt;br /&gt;
&lt;br /&gt;
You  can match and mix all 3 cases as it suites you best. You need to be a little careful when you work with tokens and embed tags, but it will save you from using intricate and error-prone survey logic or from duplicating surveys endlessly.&lt;br /&gt;
&lt;br /&gt;
=Limit the language options dropdown on the list surveys page=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;Note: This feature is implemented in Version 2.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This solution allows you to define (in config.php) a comma-delimited list of languages you want in the dropdown.  It is not optimized (it loads all the languages and then unsets everything you don&#039;t want), but is fairly easy to implement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$supportedLanguagesKeys = &#039;en,vi&#039;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filter out everything except the your selected languages (if defined).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   // if $supportedLanguagesKeys is defined in config, filter&lt;br /&gt;
&lt;br /&gt;
   if (!empty($GLOBALS[&#039;supportedLanguagesKeys&#039;]))&lt;br /&gt;
&lt;br /&gt;
   foreach (array_keys($supportedLanguages) as $lang) {&lt;br /&gt;
&lt;br /&gt;
     if (!in_array($lang, explode(&#039;,&#039;, $GLOBALS[&#039;supportedLanguagesKeys&#039;]))) {&lt;br /&gt;
&lt;br /&gt;
       unset($supportedLanguages[$lang]);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now only my languages, plus the base language, is displayed. To get rid of the redundant base language, do the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
   } elseif (!isset($surveyid))&lt;br /&gt;
&lt;br /&gt;
   {&lt;br /&gt;
&lt;br /&gt;
       global $defaultlang, $baselang;&lt;br /&gt;
&lt;br /&gt;
       $htmlcode = &amp;quot;&amp;lt;select name=\&amp;quot;select\&amp;quot; class=&#039;languagechanger&#039; onchange=\&amp;quot;javascript:window.location=this.value\&amp;quot;&amp;gt;\n&amp;quot;;&lt;br /&gt;
#    REMOVE THE NEXT LINE OR COMMENT IT OUT)&lt;br /&gt;
&lt;br /&gt;
       $htmlcode .= &amp;quot;&amp;lt;option value=\&amp;quot;$relativeurl/index.php?lang=&amp;quot;. $defaultlang .&amp;quot;$tokenparam\&amp;quot;&amp;gt;&amp;quot;.getLanguageNameFromCode($defaultlang,false).&amp;quot;&amp;lt;/option&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   foreach(getlanguagedata() as $key=&amp;gt;$val)&lt;br /&gt;
&lt;br /&gt;
       {&lt;br /&gt;
&lt;br /&gt;
           $htmlcode .= &amp;quot;\t&amp;lt;option value=\&amp;quot;$relativeurl/index.php?lang=&amp;quot;.$key.&amp;quot;$tokenparam\&amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
           if ($key == $baselang) $htmlcode .= &amp;quot; selected=&#039;selected&#039;&amp;quot;; /* ADD THIS TO SET SELECTION */&lt;br /&gt;
&lt;br /&gt;
           $htmlcode .= &amp;quot;&amp;gt;&amp;quot;.getLanguageNameFromCode($key,false).&amp;quot;&amp;lt;/option&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       $htmlcode .= &amp;quot;&amp;lt;/select&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically it just pre-selects the base language from the list.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Date_min&amp;diff=60116</id>
		<title>QS:Date min</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Date_min&amp;diff=60116"/>
		<updated>2014-01-23T15:53:20Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Add picture to QS:date_min&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Minimum date (date_min){{NewIn|2.05}} === &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This question attribute can be used to set the minimum value for the date question. It applies to both, the popup-variant of the calendar and the dropdown fields.&lt;br /&gt;
Besides validation via Expression Manager, the slection of days in the popup calender is also limited accordingly.&lt;br /&gt;
&lt;br /&gt;
[[File:date_validation.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Any date value in format YYYY-MM-DD&#039;&#039;&#039; (eg., 2013-08-24)&lt;br /&gt;
#&#039;&#039;&#039;Any year value&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Reference to another date/time question&#039;&#039;&#039;(eg., dateofbirth)&lt;br /&gt;
#&#039;&#039;&#039;Expressions&#039;&#039;&#039; With expressions, a minimum date can be dynamically calculated. For example, you can use a date from a previous answer + 3 days as a minimum for the present question by entering: date(&amp;quot;Y-m-d H:i&amp;quot;,strtotime(departuredate)+3*60*60*24).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Advanced Question Settings]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=File:Date_validation.jpg&amp;diff=60115</id>
		<title>File:Date validation.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=File:Date_validation.jpg&amp;diff=60115"/>
		<updated>2014-01-23T15:51:58Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Date validation using min/max date fields.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Date validation using min/max date fields.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Date_min&amp;diff=60114</id>
		<title>QS:Date min</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Date_min&amp;diff=60114"/>
		<updated>2014-01-23T15:51:29Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Minimum date (date_min){{NewIn|2.05}} === &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This question attribute can be used to set the minimum value for the date question. It applies to both, the popup-variant of the calendar and the dropdown fields.&lt;br /&gt;
Besides validation via Expression Manager, the slection of days in the popup calender is also limited accordingly.&lt;br /&gt;
[[File:date_validation.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Any date value in format YYYY-MM-DD&#039;&#039;&#039; (eg., 2013-08-24)&lt;br /&gt;
#&#039;&#039;&#039;Any year value&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Reference to another date/time question&#039;&#039;&#039;(eg., dateofbirth)&lt;br /&gt;
#&#039;&#039;&#039;Expressions&#039;&#039;&#039; With expressions, a minimum date can be dynamically calculated. For example, you can use a date from a previous answer + 3 days as a minimum for the present question by entering: date(&amp;quot;Y-m-d H:i&amp;quot;,strtotime(departuredate)+3*60*60*24).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Advanced Question Settings]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60100</id>
		<title>Question type - Date</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60100"/>
		<updated>2014-01-23T15:11:46Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Short description= &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#ifeq:{{{transcludesection|short_description}}}|short_description|&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
This question type can be used to ask for a certain date, for a time or a combination of date and time. Dates and times can be entered directly, chosen from a popup calendar or from drop-down boxes. For validation, minimum and maximum dates can be chosen. Various date and time formats are supported. Some of these features are only available from LimeSurvey version 2.05+.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
[[File:D_Date_DD.jpg]]&lt;br /&gt;
[[File:datetime.jpg]]&lt;br /&gt;
[[File:timepicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Core settings= &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
{{QS:mandatory}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
{{QS:relevance}}&lt;br /&gt;
&lt;br /&gt;
=Advanced settings= &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
{{QS:Reverse}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
{{QS:Random_group}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
{{QS:Hidden}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
{{QS:date_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
{{QS:date_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
{{QS:date_time_format}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
{{QS:em_validation_q_tip}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
{{QS:Page_break}}&lt;br /&gt;
&lt;br /&gt;
=Dates and Expression Manager: Advanced validation and calculation= &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Limesurvey versions 2.05+ and above make it fairly easy to validate dates using the date_min and date_max fields (see above). Use these whenever possible. If you need to do more fancy stuff, you may be able to work (and calculate) with dates using Expression Manager and the function strtotime(){{NewIn|2.0|b=130515}}. It calculates the number of seconds from the 1st January 1970 to a given date. Example: if you want to display in a question text the number of days that have passed since a departure date (asked in a previous question) and today, you can can use the expression {(strtotime(&amp;quot;now&amp;quot;)-strtotime(departure))/60/60/24}.&lt;br /&gt;
Please be aware that strtotime() works with a lot of different but not ALL date formats. Limesurvey&#039;s default date format (MM-DD-YYYY) does NOT work with strtotime(). Please set your survey to use one of the following date formats to avoid problems: YYYY-MM-DD, YYYY/MM/DD, DD.MM.YYYY, MM/DD/YYYY, DD-MM-YYYY.&lt;br /&gt;
&lt;br /&gt;
{{Alert||text=Dates in Limesurvey are saved as a string (text format).Starting in ver. 2.05+, Expression Manager converts all dates part of an expression into the standard format &amp;quot;yyyy-mm-dd HH:MM:SS&amp;quot;. This makes it much easier to compare dates in an expression (e.g. &amp;quot;date1&amp;gt;date2&amp;quot;). If you need a datetring in the format it was asked in the question, use the &amp;quot;.shown&amp;quot; attribute (e.g.: &amp;quot;So you were born on the {birthdate.shown}. Is this right?&amp;quot;}} &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60099</id>
		<title>Question type - Date</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60099"/>
		<updated>2014-01-23T15:06:40Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Short description= &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#ifeq:{{{transcludesection|short_description}}}|short_description|&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
This question type can be used to ask for a certain date, for a time or a combination of date and time. Dates and times can be entered directly, chosen from a popup calendar or from drop-down boxes. For validation, minimum and maximum dates can be chosen. Various date and time formats are supported. Some of these features are only available from LimeSurvey version 2.05+.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
[[File:D_Date_DD.jpg]]&lt;br /&gt;
[[File:datetime.jpg]]&lt;br /&gt;
[[File:timepicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Core settings= &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
{{QS:mandatory}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
{{QS:relevance}}&lt;br /&gt;
&lt;br /&gt;
=Advanced settings= &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
{{QS:Reverse}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
{{QS:Random_group}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
{{QS:Hidden}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
{{QS:date_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
{{QS:date_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
{{QS:date_time_format}}&lt;br /&gt;
&lt;br /&gt;
===Expression Manager: Advanced validation of and calculation with dates=== &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
{{Alert||text=Dates in Limesurvey are saved as a string (text format).}} &lt;br /&gt;
&amp;lt;div class=&amp;quot;boxed&amp;quot;&amp;gt;Limesurvey versions 2.05+ and above make it fairly easy to validate dates using the date_min and date_max fields (see above). Use these whenever possible. If you need to do more fancy stuff, you may be able to work (and calculate) with dates using Expression Manager and the function strtotime(){{NewIn|2.0|b=130515}}. It calculates the number of seconds from the 1st January 1970 to a given date. Example: if you want to display in a question text the number of days that have passed since a departure date (asked in a previous question) and today, you can can use the expression {(strtotime(&amp;quot;now&amp;quot;)-strtotime(departure))/60/60/24}.&lt;br /&gt;
Please be aware that strtotime() works with a lot of different but not ALL date formats. Limesurvey&#039;s default date format (MM-DD-YYYY) does NOT work with strtotime(). Please set your survey to use one of the following date formats to avoid problems: YYYY-MM-DD, YYYY/MM/DD, DD.MM.YYYY, MM/DD/YYYY, DD-MM-YYYY.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in ver. 2.05+, Expression Manager converts all dates part of an expression into the standard format &amp;quot;yyyy-mm-dd HH:MM:SS&amp;quot; format. This makes it much easier to compare dates in an expression (e.g. &amp;quot;date1&amp;gt;date2&amp;quot;). If you need a datetring in the format it was asked in the question, use the &amp;quot;.shown&amp;quot; attribute (e.g.: &amp;quot;So you were born on the {birthdate.shown}. Is this right?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
{{QS:em_validation_q_tip}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
{{QS:Page_break}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60098</id>
		<title>Question type - Date</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60098"/>
		<updated>2014-01-23T15:06:19Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Update validation of dates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Short description= &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#ifeq:{{{transcludesection|short_description}}}|short_description|&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
This question type can be used to ask for a certain date, for a time or a combination of date and time. Dates and times can be entered directly, chosen from a popup calendar or from drop-down boxes. For validation, minimum and maximum dates can be chosen. Various date and time formats are supported. Some of these features are only available from LimeSurvey version 2.05+.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
[[File:D_Date_DD.jpg]]&lt;br /&gt;
[[File:datetime.jpg]]&lt;br /&gt;
[[File:timepicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Core settings= &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
{{QS:mandatory}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
{{QS:relevance}}&lt;br /&gt;
&lt;br /&gt;
=Advanced settings= &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
{{QS:Reverse}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
{{QS:Random_group}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
{{QS:Hidden}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
{{QS:date_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
{{QS:date_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
{{QS:date_time_format}}&lt;br /&gt;
&lt;br /&gt;
===&amp;gt;Expression Manager: Advanced validation of and calculation with dates=== &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
{{Alert||text=Dates in Limesurvey are saved as a string (text format).}} &lt;br /&gt;
&amp;lt;div class=&amp;quot;boxed&amp;quot;&amp;gt;Limesurvey versions 2.05+ and above make it fairly easy to validate dates using the date_min and date_max fields (see above). Use these whenever possible. If you need to do more fancy stuff, you may be able to work (and calculate) with dates using Expression Manager and the function strtotime(){{NewIn|2.0|b=130515}}. It calculates the number of seconds from the 1st January 1970 to a given date. Example: if you want to display in a question text the number of days that have passed since a departure date (asked in a previous question) and today, you can can use the expression {(strtotime(&amp;quot;now&amp;quot;)-strtotime(departure))/60/60/24}.&lt;br /&gt;
Please be aware that strtotime() works with a lot of different but not ALL date formats. Limesurvey&#039;s default date format (MM-DD-YYYY) does NOT work with strtotime(). Please set your survey to use one of the following date formats to avoid problems: YYYY-MM-DD, YYYY/MM/DD, DD.MM.YYYY, MM/DD/YYYY, DD-MM-YYYY.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in ver. 2.05+, Expression Manager converts all dates part of an expression into the standard format &amp;quot;yyyy-mm-dd HH:MM:SS&amp;quot; format. This makes it much easier to compare dates in an expression (e.g. &amp;quot;date1&amp;gt;date2&amp;quot;). If you need a datetring in the format it was asked in the question, use the &amp;quot;.shown&amp;quot; attribute (e.g.: &amp;quot;So you were born on the {birthdate.shown}. Is this right?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
{{QS:em_validation_q_tip}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
{{QS:Page_break}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Date_time_format&amp;diff=60097</id>
		<title>QS:Date time format</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Date_time_format&amp;diff=60097"/>
		<updated>2014-01-23T14:29:56Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Add month and year format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Date/Time format=== &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This question attribute can be used to specify a custom date format. If it&#039;s empty, the survey date format is used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
The d/dd m/mm yy/yyyy H/HH M/MM formats and &amp;quot;-./:&amp;quot; characters are allowed for day/month/year/hour/minutes without or with leading zero respectively.&lt;br /&gt;
Example are: &amp;quot;yyyy-mm-dd&amp;quot;, &amp;quot;dd.mm.yyyy HH:MM&amp;quot;, &amp;quot;HH:MM&amp;quot; (only ask for time) or &amp;quot;yyyy/mm&amp;quot; (only ask for month and year).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Advanced Question Settings]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60096</id>
		<title>Question type - Date</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60096"/>
		<updated>2014-01-23T14:24:46Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Took out the generic description of the whole question validation. Not helpful for the date question.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Short description= &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#ifeq:{{{transcludesection|short_description}}}|short_description|&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
This question type can be used to ask for a certain date, for a time or a combination of date and time. Dates and times can be entered directly, chosen from a popup calendar or from drop-down boxes. For validation, minimum and maximum dates can be chosen. Various date and time formats are supported. Some of these features are only available from LimeSurvey version 2.05+.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
[[File:D_Date_DD.jpg]]&lt;br /&gt;
[[File:datetime.jpg]]&lt;br /&gt;
[[File:timepicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Core settings= &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
{{QS:mandatory}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
{{QS:relevance}}&lt;br /&gt;
&lt;br /&gt;
=Advanced settings= &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
{{QS:Reverse}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
{{QS:Random_group}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
{{QS:Hidden}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
{{QS:date_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
{{QS:date_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
{{QS:date_time_format}}&lt;br /&gt;
&lt;br /&gt;
===Validation on date=== &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
{{Alert||text=Dates in Limesurvey are saved as a string (text format).}} &lt;br /&gt;
&amp;lt;div class=&amp;quot;boxed&amp;quot;&amp;gt;To really be able to work (and calculate) with dates, these have to be converted to a number format. The function strtotime{{NewIn|2.0|b=130515}} , which calculates the number of seconds from the 1st January 1970 to a given date can be used for this. Using strtotime() one can for example enforce that only dates before &amp;quot;today&amp;quot; are entered using the following expression: strtotime(self)&amp;lt;=strtotime(&amp;quot;now&amp;quot;).&lt;br /&gt;
Or enforce that that only dates after a certain date can be entered: strtotime(self)&amp;gt;strtotime(&amp;quot;2013-03-27&amp;quot;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
{{Alert|Please be aware that strtotime() works with a lot of different but not ALL date formats. Limesurvey&#039;s default date format (MM-DD-YYYY) does NOT work with strtotime(). Please set your survey to use one of the following date formats to avoid problems: YYYY-MM-DD, YYYY/MM/DD, DD.MM.YYYY, MM/DD/YYYY, DD-MM-YYYY.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
{{QS:em_validation_q_tip}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
{{QS:Page_break}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Date_time_format&amp;diff=60095</id>
		<title>QS:Date time format</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Date_time_format&amp;diff=60095"/>
		<updated>2014-01-23T14:16:06Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Add adv. question attrib &amp;quot;date/time format&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Date/Time format=== &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This question attribute can be used to specify a custom date format. If it&#039;s empty, the survey date format is used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
The d/dd m/mm yy/yyyy H/HH M/MM formats and &amp;quot;-./:&amp;quot; characters are allowed for day/month/year/hour/minutes without or with leading zero respectively.&lt;br /&gt;
Example are: &amp;quot;yyyy-mm-dd&amp;quot;, &amp;quot;dd.mm.yyyy HH:MM&amp;quot;, &amp;quot;HH:MM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Advanced Question Settings]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60094</id>
		<title>Question type - Date</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60094"/>
		<updated>2014-01-23T14:08:58Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Short description= &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#ifeq:{{{transcludesection|short_description}}}|short_description|&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
This question type can be used to ask for a certain date, for a time or a combination of date and time. Dates and times can be entered directly, chosen from a popup calendar or from drop-down boxes. For validation, minimum and maximum dates can be chosen. Various date and time formats are supported. Some of these features are only available from LimeSurvey version 2.05+.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
[[File:D_Date_DD.jpg]]&lt;br /&gt;
[[File:datetime.jpg]]&lt;br /&gt;
[[File:timepicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Core settings= &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
{{QS:mandatory}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
{{QS:relevance}}&lt;br /&gt;
&lt;br /&gt;
=Advanced settings= &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
{{QS:Reverse}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
{{QS:Random_group}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
{{QS:Hidden}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
{{QS:date_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
{{QS:date_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
{{QS:em_validation_q}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
{{QS:date_time_format}}&lt;br /&gt;
&lt;br /&gt;
===Validation on date=== &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
{{Alert||text=Dates in Limesurvey are saved as a string (text format).}} &lt;br /&gt;
&amp;lt;div class=&amp;quot;boxed&amp;quot;&amp;gt;To really be able to work (and calculate) with dates, these have to be converted to a number format. The function strtotime{{NewIn|2.0|b=130515}} , which calculates the number of seconds from the 1st January 1970 to a given date can be used for this. Using strtotime() one can for example enforce that only dates before &amp;quot;today&amp;quot; are entered using the following expression: strtotime(self)&amp;lt;=strtotime(&amp;quot;now&amp;quot;).&lt;br /&gt;
Or enforce that that only dates after a certain date can be entered: strtotime(self)&amp;gt;strtotime(&amp;quot;2013-03-27&amp;quot;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
{{Alert|Please be aware that strtotime() works with a lot of different but not ALL date formats. Limesurvey&#039;s default date format (MM-DD-YYYY) does NOT work with strtotime(). Please set your survey to use one of the following date formats to avoid problems: YYYY-MM-DD, YYYY/MM/DD, DD.MM.YYYY, MM/DD/YYYY, DD-MM-YYYY.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
{{QS:em_validation_q_tip}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
{{QS:Page_break}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Date_max&amp;diff=60093</id>
		<title>QS:Date max</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Date_max&amp;diff=60093"/>
		<updated>2014-01-23T13:53:10Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Maximum date, new logic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Maximum date (date_max){{NewIn|2.05}} === &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This question attribute can be used to set the maximum value for the calendar question. It applies to both, the popup-variant of the calendar and the dropdown fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Any date value in format YYYY-MM-DD&#039;&#039;&#039; (eg., 2013-08-24)&lt;br /&gt;
#&#039;&#039;&#039;Any year value&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Reference to another date/time question&#039;&#039;&#039; (eg., dateofbirth)&lt;br /&gt;
#&#039;&#039;&#039;Expressions&#039;&#039;&#039; With expressions, a maximum date can be dynamically calculated. For example, you can use a date from a previous answer + 4 weeks as a maximum for the present question by entering: date(&amp;quot;Y-m-d H:i&amp;quot;,strtotime(departuredate)+4*60*60*24*7).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Advanced Question Settings]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Date_min&amp;diff=60092</id>
		<title>QS:Date min</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Date_min&amp;diff=60092"/>
		<updated>2014-01-23T13:50:41Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Update minimum date for new logic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Minimum date (date_min){{NewIn|2.05}} === &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This question attribute can be used to set the minimum value for the date question. It applies to both, the popup-variant of the calendar and the dropdown fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Any date value in format YYYY-MM-DD&#039;&#039;&#039; (eg., 2013-08-24)&lt;br /&gt;
#&#039;&#039;&#039;Any year value&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Reference to another date/time question&#039;&#039;&#039;(eg., dateofbirth)&lt;br /&gt;
#&#039;&#039;&#039;Expressions&#039;&#039;&#039; With expressions, a minimum date can be dynamically calculated. For example, you can use a date from a previous answer + 3 days as a minimum for the present question by entering: date(&amp;quot;Y-m-d H:i&amp;quot;,strtotime(departuredate)+3*60*60*24).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Advanced Question Settings]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date/de&amp;diff=60091</id>
		<title>Question type - Date/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date/de&amp;diff=60091"/>
		<updated>2014-01-23T13:38:40Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Created page with &amp;quot;Mit diesem Fragetyp kann ein Datum, eine Uhrzeit oder eine Kombination von Datum und Uhrzeit erhoben werden. Datum und Uhrzeit können direkt eingegeben werden, aus einem Popu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Kurzbeschreibung=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#ifeq:{{{transcludesection|short_description}}}|short_description|Mit diesem Fragetyp kann ein Datum, eine Uhrzeit oder eine Kombination von Datum und Uhrzeit erhoben werden. Datum und Uhrzeit können direkt eingegeben werden, aus einem Popup-Kalender oder aus Drop-Down-Boxen ausgewählt werden. Zur Validierung können Minimal- und Maximaldaten festgelegt werden. Verschiedene Datums-und Zeitformate werden unterstützt. Einige Funktionen sind erst ab LimeSurvey Version 2.05+ verfügbar.&lt;br /&gt;
&lt;br /&gt;
[[File:D_Date_DD.jpg]] [[File:datetime.jpg]] [[File:timepicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
=Basis-Einstellungen=&lt;br /&gt;
&lt;br /&gt;
{{QS:mandatory/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:relevance/de}}&lt;br /&gt;
&lt;br /&gt;
=Erweiterte Einstellungen=&lt;br /&gt;
&lt;br /&gt;
{{QS:Reverse/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:Random_group/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:dropdown_dates/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:Hidden/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:dropdown_dates_year_min/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:dropdown_dates_year_max/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:date_min}}&lt;br /&gt;
&lt;br /&gt;
{{QS:date_max}}&lt;br /&gt;
&lt;br /&gt;
{{QS:em_validation_q}}&lt;br /&gt;
&lt;br /&gt;
===Validation on date===&lt;br /&gt;
{{Alert||text=Dates in Limesurvey are saved as a string (text format).}} &lt;br /&gt;
&amp;lt;div class=&amp;quot;boxed&amp;quot;&amp;gt;To really be able to work (and calculate) with dates, these have to be converted to a number format. The function strtotime{{NewIn|2.0|b=130515}} , which calculates the number of seconds from the 1st January 1970 to a given date can be used for this. Using strtotime() one can for example enforce that only dates before &amp;quot;today&amp;quot; are entered using the following expression: strtotime(self)&amp;lt;=strtotime(&amp;quot;now&amp;quot;).&lt;br /&gt;
Or enforce that that only dates after a certain date can be entered: strtotime(self)&amp;gt;strtotime(&amp;quot;2013-03-27&amp;quot;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Alert|Please be aware that strtotime() works with a lot of different but not ALL date formats. Limesurvey&#039;s default date format (MM-DD-YYYY) does NOT work with strtotime(). Please set your survey to use one of the following date formats to avoid problems: YYYY-MM-DD, YYYY/MM/DD, DD.MM.YYYY, MM/DD/YYYY, DD-MM-YYYY.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{QS:em_validation_q_tip}}&lt;br /&gt;
&lt;br /&gt;
{{QS:Page_break}}&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Translations:Question_type_-_Date/25/de&amp;diff=60090</id>
		<title>Translations:Question type - Date/25/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Translations:Question_type_-_Date/25/de&amp;diff=60090"/>
		<updated>2014-01-23T13:38:39Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Created page with &amp;quot;Mit diesem Fragetyp kann ein Datum, eine Uhrzeit oder eine Kombination von Datum und Uhrzeit erhoben werden. Datum und Uhrzeit können direkt eingegeben werden, aus einem Popu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mit diesem Fragetyp kann ein Datum, eine Uhrzeit oder eine Kombination von Datum und Uhrzeit erhoben werden. Datum und Uhrzeit können direkt eingegeben werden, aus einem Popup-Kalender oder aus Drop-Down-Boxen ausgewählt werden. Zur Validierung können Minimal- und Maximaldaten festgelegt werden. Verschiedene Datums-und Zeitformate werden unterstützt. Einige Funktionen sind erst ab LimeSurvey Version 2.05+ verfügbar.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date/de&amp;diff=60089</id>
		<title>Question type - Date/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date/de&amp;diff=60089"/>
		<updated>2014-01-23T13:35:13Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Kurzbeschreibung=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#ifeq:{{{transcludesection|short_description}}}|short_description|This question type can be used to ask for a certain date, for a time or a combination of date and time. Dates and times can be entered directly, chosen from a popup calendar or from drop-down boxes. For validation, minimum and maximum dates can be chosen. Various date and time formats are supported. Some of these features are only available from LimeSurvey version 2.05+.&lt;br /&gt;
&lt;br /&gt;
[[File:D_Date_DD.jpg]] [[File:datetime.jpg]] [[File:timepicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
=Basis-Einstellungen=&lt;br /&gt;
&lt;br /&gt;
{{QS:mandatory/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:relevance/de}}&lt;br /&gt;
&lt;br /&gt;
=Erweiterte Einstellungen=&lt;br /&gt;
&lt;br /&gt;
{{QS:Reverse/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:Random_group/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:dropdown_dates/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:Hidden/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:dropdown_dates_year_min/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:dropdown_dates_year_max/de}}&lt;br /&gt;
&lt;br /&gt;
{{QS:date_min}}&lt;br /&gt;
&lt;br /&gt;
{{QS:date_max}}&lt;br /&gt;
&lt;br /&gt;
{{QS:em_validation_q}}&lt;br /&gt;
&lt;br /&gt;
===Validation on date===&lt;br /&gt;
{{Alert||text=Dates in Limesurvey are saved as a string (text format).}} &lt;br /&gt;
&amp;lt;div class=&amp;quot;boxed&amp;quot;&amp;gt;To really be able to work (and calculate) with dates, these have to be converted to a number format. The function strtotime{{NewIn|2.0|b=130515}} , which calculates the number of seconds from the 1st January 1970 to a given date can be used for this. Using strtotime() one can for example enforce that only dates before &amp;quot;today&amp;quot; are entered using the following expression: strtotime(self)&amp;lt;=strtotime(&amp;quot;now&amp;quot;).&lt;br /&gt;
Or enforce that that only dates after a certain date can be entered: strtotime(self)&amp;gt;strtotime(&amp;quot;2013-03-27&amp;quot;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Alert|Please be aware that strtotime() works with a lot of different but not ALL date formats. Limesurvey&#039;s default date format (MM-DD-YYYY) does NOT work with strtotime(). Please set your survey to use one of the following date formats to avoid problems: YYYY-MM-DD, YYYY/MM/DD, DD.MM.YYYY, MM/DD/YYYY, DD-MM-YYYY.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{QS:em_validation_q_tip}}&lt;br /&gt;
&lt;br /&gt;
{{QS:Page_break}}&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Translations:Question_type_-_Date/4/de&amp;diff=60088</id>
		<title>Translations:Question type - Date/4/de</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Translations:Question_type_-_Date/4/de&amp;diff=60088"/>
		<updated>2014-01-23T13:35:12Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:D_Date_DD.jpg]] [[File:datetime.jpg]] [[File:timepicker.jpg]]&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Relevance&amp;diff=60081</id>
		<title>QS:Relevance</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Relevance&amp;diff=60081"/>
		<updated>2014-01-23T13:17:15Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Added a description of what relevance actually is.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Relevance equation=== &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
{{FeatureStarting|v=1.92}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
If the value of the relevance equation is &amp;quot;1&amp;quot; or &amp;quot;true&amp;quot;, the question is &amp;quot;relevant&amp;quot; in the survey context, i.e. it is shown to the survey participant. If not, the question is hidden. All questions let you specify a relevance equation. Relevance is the successor to conditions and supports much more complex conditional logic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Syntax Highlighting&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Whenever you save the relevance equation, it will be evaluated and syntax-highlighted.  Any errors will be color coded so that you can quickly detect and fix them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Any equation, using [[Expression Manager|Expression Manager]] syntax, without surrounding curly braces.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Examples&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Here are good examples of [[Expression Manager HowTos#Syntax Highlighting|syntax highlighting]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Core Question Settings]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60076</id>
		<title>Question type - Date</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60076"/>
		<updated>2014-01-23T13:10:09Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Removed &amp;quot;default value&amp;quot;...there is no such field in date/time question&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Short description= &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#ifeq:{{{transcludesection|short_description}}}|short_description|&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
This question type can be used to ask for a certain date, for a time or a combination of date and time. Dates and times can be entered directly, chosen from a popup calendar or from drop-down boxes. For validation, minimum and maximum dates can be chosen. Various date and time formats are supported. Some of these features are only available from LimeSurvey version 2.05+.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
[[File:D_Date_DD.jpg]]&lt;br /&gt;
[[File:datetime.jpg]]&lt;br /&gt;
[[File:timepicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Core settings= &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
{{QS:mandatory}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
{{QS:relevance}}&lt;br /&gt;
&lt;br /&gt;
=Advanced settings= &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
{{QS:Reverse}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
{{QS:Random_group}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
{{QS:Hidden}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
{{QS:date_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
{{QS:date_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
{{QS:em_validation_q}}&lt;br /&gt;
&lt;br /&gt;
===Validation on date=== &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
{{Alert||text=Dates in Limesurvey are saved as a string (text format).}} &lt;br /&gt;
&amp;lt;div class=&amp;quot;boxed&amp;quot;&amp;gt;To really be able to work (and calculate) with dates, these have to be converted to a number format. The function strtotime{{NewIn|2.0|b=130515}} , which calculates the number of seconds from the 1st January 1970 to a given date can be used for this. Using strtotime() one can for example enforce that only dates before &amp;quot;today&amp;quot; are entered using the following expression: strtotime(self)&amp;lt;=strtotime(&amp;quot;now&amp;quot;).&lt;br /&gt;
Or enforce that that only dates after a certain date can be entered: strtotime(self)&amp;gt;strtotime(&amp;quot;2013-03-27&amp;quot;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
{{Alert|Please be aware that strtotime() works with a lot of different but not ALL date formats. Limesurvey&#039;s default date format (MM-DD-YYYY) does NOT work with strtotime(). Please set your survey to use one of the following date formats to avoid problems: YYYY-MM-DD, YYYY/MM/DD, DD.MM.YYYY, MM/DD/YYYY, DD-MM-YYYY.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
{{QS:em_validation_q_tip}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
{{QS:Page_break}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60075</id>
		<title>Question type - Date</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Question_type_-_Date&amp;diff=60075"/>
		<updated>2014-01-23T13:07:30Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Feature overview of date/time question in short description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Short description= &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#ifeq:{{{transcludesection|short_description}}}|short_description|&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
This question type can be used to ask for a certain date, for a time or a combination of date and time. Dates and times can be entered directly, chosen from a popup calendar or from drop-down boxes. For validation, minimum and maximum dates can be chosen. Various date and time formats are supported. Some of these features are only available from LimeSurvey version 2.05+.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
[[File:D_Date_DD.jpg]]&lt;br /&gt;
[[File:datetime.jpg]]&lt;br /&gt;
[[File:timepicker.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Core settings= &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
{{QS:mandatory}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
{{QS:defaults}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
{{QS:relevance}}&lt;br /&gt;
&lt;br /&gt;
=Advanced settings= &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
{{QS:Reverse}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
{{QS:Random_group}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
{{QS:Hidden}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
{{QS:dropdown_dates_year_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
{{QS:date_min}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
{{QS:date_max}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
{{QS:em_validation_q}}&lt;br /&gt;
&lt;br /&gt;
===Validation on date=== &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
{{Alert||text=Dates in Limesurvey are saved as a string (text format).}} &lt;br /&gt;
&amp;lt;div class=&amp;quot;boxed&amp;quot;&amp;gt;To really be able to work (and calculate) with dates, these have to be converted to a number format. The function strtotime{{NewIn|2.0|b=130515}} , which calculates the number of seconds from the 1st January 1970 to a given date can be used for this. Using strtotime() one can for example enforce that only dates before &amp;quot;today&amp;quot; are entered using the following expression: strtotime(self)&amp;lt;=strtotime(&amp;quot;now&amp;quot;).&lt;br /&gt;
Or enforce that that only dates after a certain date can be entered: strtotime(self)&amp;gt;strtotime(&amp;quot;2013-03-27&amp;quot;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
{{Alert|Please be aware that strtotime() works with a lot of different but not ALL date formats. Limesurvey&#039;s default date format (MM-DD-YYYY) does NOT work with strtotime(). Please set your survey to use one of the following date formats to avoid problems: YYYY-MM-DD, YYYY/MM/DD, DD.MM.YYYY, MM/DD/YYYY, DD-MM-YYYY.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
{{QS:em_validation_q_tip}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
{{QS:Page_break}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=File:Timepicker.jpg&amp;diff=60074</id>
		<title>File:Timepicker.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=File:Timepicker.jpg&amp;diff=60074"/>
		<updated>2014-01-23T13:05:31Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Choosing a time using the timepicker in LimeSurvey&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Choosing a time using the timepicker in LimeSurvey&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=File:Datetime.jpg&amp;diff=60073</id>
		<title>File:Datetime.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=File:Datetime.jpg&amp;diff=60073"/>
		<updated>2014-01-23T13:04:49Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Datetimepicker in Limesurvey&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datetimepicker in Limesurvey&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Changing_an_active_survey&amp;diff=60072</id>
		<title>Changing an active survey</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Changing_an_active_survey&amp;diff=60072"/>
		<updated>2014-01-23T09:51:45Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Instructions for using the new vvimport/vvexport for changing an active survey&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Changing an active survey= &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
While a survey is active, it is not possible to add or remove questions or answers, or to change the type of the question.  However, it is still possible to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
* Modify the text of a question (for example to correct typos or whatever)&lt;br /&gt;
* Modify the attributes of a question (for example to include it in the public statistics, insist on a particular number of answers for a multiple options question or whatever).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
To make more complicated changes, you need to use the import/export facilities described in the next section.&lt;br /&gt;
&lt;br /&gt;
= Changing an active survey by import and export= &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
If you find you need to add or remove questions or answers or a combination of these, LimeSurvey has functions called &amp;quot;VV-Import&amp;quot; and &amp;quot;VV-Export&amp;quot; that can be used to move all the results from one survey across to another survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
VV-Import and VV-Export can also be used to combine survey results when the same survey has been run on more than one server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
The method for using VV-Import and VV-Export is as follows:&lt;br /&gt;
* Create a new survey and copy the structure of the original one. If necessary modify this new survey so it has the changes you want.&lt;br /&gt;
* Activate the new survey&lt;br /&gt;
* Perform a VV-Export from the _old_ survey&lt;br /&gt;
* Perform the VV-Import into the _new_ survey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In older Versions of LimeSurvey (&amp;lt;2.05+) you need to apply a method involving some manual handling of data files:&lt;br /&gt;
* Export the structure of the original survey. Then import that file as a new survey, and - if necessary - modify this new survey so it has the changes you want.&lt;br /&gt;
* Activate the new survey&lt;br /&gt;
* Perform a VV-Export from the _new_ survey (we&#039;ll call this the &#039;first export&#039;)&lt;br /&gt;
* Perform a VV-Export from the _old_ survey (we&#039;ll call this the &#039;second export&#039;)&lt;br /&gt;
* Cut the two top rows from the first export and insert them as the top two rows in the second export.&lt;br /&gt;
* While leaving the first two rows unchanged, cut and paste the columns below so that they are now in the right place according to the first two rows.&lt;br /&gt;
* Once all the data is in the correct spot, delete the 3rd and 4th row (ie: the headings from the second export)&lt;br /&gt;
* Save it all as a Tab-Delimited file&lt;br /&gt;
* Perform the VV-Import into the _new_ survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Exporting the survey structure is done in the survey toolbar. The VV-Import and VV-Export buttons are found in the &amp;quot;Browse responses&amp;quot; page of an active survey.&lt;br /&gt;
&lt;br /&gt;
= Tricks= &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
* When &#039;&#039;&#039;rearranging columns&#039;&#039;&#039; switch column ids ( row 2) instead of all content columns (3-end)&lt;br /&gt;
* &#039;&#039;&#039;Rename vv files&#039;&#039;&#039; as .txt and excel will open them correctly (save as unicode and rename)&lt;br /&gt;
* To &#039;&#039;&#039;change the survey title&#039;&#039;&#039; go to your admin section and click the &#039;edit survey&#039; button you will be presented with a screen where you can edit your survey details. On the first Edit Survey - Step 1 of 2 page, click the &#039;Save and continue&#039; button at the bottom of the page and you will get the screen you need to change the title.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Workarounds:_Question_design,_layout_and_templating&amp;diff=59163</id>
		<title>Workarounds: Question design, layout and templating</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Workarounds:_Question_design,_layout_and_templating&amp;diff=59163"/>
		<updated>2013-11-01T12:17:19Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: correction of a typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This section more or less deals with styling your survey, adjusting the layout and setting up special question types. You can find &#039;&#039;&#039;similar information&#039;&#039;&#039; at these pages:&lt;br /&gt;
* [[The template editor]]&lt;br /&gt;
* [[Workarounds: Manipulating a survey at runtime using Javascript]]&lt;br /&gt;
* [[Workarounds: Survey behaviour]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;&amp;lt;center&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Please keep in mind that these workarounds are not official LimeSurvey extensions - they are solutions that users have created for themselves.&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#EE0000,#FFFFFF&#039;&amp;gt;Therefore LimeSurvey can&#039;t offer guarantees or support for these solutions.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;If you have questions, please contact the users that, thankfully, shared their solutions with the community.&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Get rid of the quetstion mark (help.gif)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.80+ (6536)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To get rid of the question mark symbol that LimeSurvey displays at the end of a question, you can either upload an empty help.gif into the template folder (as discussed in the forum) or you can use the Template editor: Open the &#039;&#039;template.css&#039;&#039; of your template and search for &#039;&#039;div.questionhelp img&#039;&#039;, then add a &#039;&#039;visibility:hidden;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It will look something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
div.questionhelp img&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  margin:5px;&lt;br /&gt;
&lt;br /&gt;
  visibility:hidden;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;replace the image&#039;&#039;&#039; by following [[The template editor#Replacing the help icon|these instructions]].&lt;br /&gt;
&lt;br /&gt;
=Require users to check a box agreeing to privacy statement before registering for a survey=&lt;br /&gt;
&lt;br /&gt;
If you need to have users positively acknowledge a privacy statement before submitting a registration form, the following will help you do this.&lt;br /&gt;
&lt;br /&gt;
It involves a minor modification to common.php in versions up to 1.85. Later versions may not require this.&lt;br /&gt;
&lt;br /&gt;
Edit common.php and look for the line (at approximately line 3014)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$registerform .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;input class=&#039;submit&#039; type=&#039;submit&#039; value=&#039;&amp;quot;.$clang-&amp;gt;gT(&amp;quot;Continue&amp;quot;).&amp;quot;&#039; /&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and change it to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$registerform .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;input id=&#039;registercontinue&#039; class=&#039;submit&#039; type=&#039;submit&#039; value=&#039;&amp;quot;.$clang-&amp;gt;gT(&amp;quot;Continue&amp;quot;).&amp;quot;&#039; /&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then save common.php. This gives you DOM access to the &amp;quot;continue&amp;quot; button on the register form, but will have no other practical effect or change to LimeSurvey&#039;s operations.&lt;br /&gt;
&lt;br /&gt;
Next, you need to edit the template you are using (see the documentation on the Template editor if you don&#039;t know how to do this).&lt;br /&gt;
&lt;br /&gt;
In the template editor, open the screen &amp;quot;Register page&amp;quot; and select the file &amp;quot;register.pstpl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
There are two modifications you need to make to this file. The first is to add the following code after the line that says &#039;&#039;{REGISTERFORM}&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&#039;text/javascript&#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code disables the &amp;quot;Continue&amp;quot; button so that nobody can process the registration form until they&#039;ve clicked the checkbox.&lt;br /&gt;
&lt;br /&gt;
The second modification to make is to be done between the lines {REGISTERMESSAGE2} and {REGISTERFORM}. Add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;center&amp;gt;&lt;br /&gt;
 &amp;lt;label&amp;gt; Accept&lt;br /&gt;
   &amp;lt;input type=&#039;radio&#039;&lt;br /&gt;
          name=&amp;quot;privacy&amp;quot;&lt;br /&gt;
          value=&amp;quot;YES&amp;quot;&lt;br /&gt;
          onChange=&amp;quot;if(this.checked) {&lt;br /&gt;
                      document.getElementById(&#039;registercontinue&#039;).disabled=false;&lt;br /&gt;
                    }&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;label&amp;gt;I don&#039;t accept&lt;br /&gt;
   &amp;lt;input type=&#039;radio&#039;&lt;br /&gt;
          name=&amp;quot;privacy&amp;quot;&lt;br /&gt;
          value=&amp;quot;NO&amp;quot;&lt;br /&gt;
          CHECKED&lt;br /&gt;
          onChange=&amp;quot;if(this.checked) {&lt;br /&gt;
                      document.getElementById(&#039;registercontinue&#039;).disabled=true;&lt;br /&gt;
                    }&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the users will have to agree to whatever text you replace &amp;quot;Do you agree to privacy stuff?&amp;quot; before they continue on and register.&lt;br /&gt;
&lt;br /&gt;
(Thanks to &#039;&#039;Pippo_Jedi&#039;&#039; for helping work this out)&lt;br /&gt;
&lt;br /&gt;
=Different progress indicator=&lt;br /&gt;
&lt;br /&gt;
==Version 1.87 and later:==&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of template.js. It will find the progress value and insert it into the element following the progress bar.&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that I had to introduce a delay in firing the function because the progress value is not calculated until after template.js is called. The delay is set at 1/10 of a second but you may be able to reduce that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   // Display progress value&lt;br /&gt;
&lt;br /&gt;
   function setProgValue() {&lt;br /&gt;
&lt;br /&gt;
       var progress = $(&#039;#progressbar&#039;).attr(&#039;aria-valuenow&#039;);&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#progress-post&#039;).text(progress+&#039;%&#039;).show();&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#progress-post&#039;).hide();&lt;br /&gt;
&lt;br /&gt;
       setTimeout(&#039;setProgValue()&#039;,100);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to hide the &amp;quot;0%&amp;quot; before the progress bar, add the following to the end of template.css:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#progress-pre {&lt;br /&gt;
&lt;br /&gt;
   display: none;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Delete unwanted gaps in question title=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When copying data (questions, answers, ...) from MS Word or other applications into the editor there might occur some gaps in the question title.&lt;br /&gt;
&lt;br /&gt;
There are two solutions to this:&lt;br /&gt;
# Use popup mode and manually delete unwanting extra html tags (requires html knowledge).&lt;br /&gt;
# Disable paste word feature: Tweak your limesurvey-config.js file in limesurvey/admin/scripts/fckeditor.26 and set the following option to true:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;FCKConfig.ForcePasteAsPlainText = true ;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that clear you browser cache and try again.&lt;br /&gt;
&lt;br /&gt;
=How to change the &amp;lt;font-size&amp;gt; tags using CSS=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workaround was deleted because it is outdated. Such changes can be done by [[The template editor#Styling questions with CSS|adjusting template.css]] of your template.&lt;br /&gt;
&lt;br /&gt;
=Question type variation: Scale with bars (one and two sided)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some methodogical issues to think about: Very often a common scale as 1 to 5 or -2 to +2 fits all needs, as the shown subject is clearly defined as positive or negative. As soon as you would reduce the influence from the question and scale on the respondent, you will need something neutral to determine tendences, emphases and so on.&lt;br /&gt;
&lt;br /&gt;
So I put up a new variation of the one and two sided array question:&lt;br /&gt;
&lt;br /&gt;
ttp://www.limesurvey.org/images/fbfiles/images/example_bar_scale.jpg&lt;br /&gt;
&lt;br /&gt;
In my example the left side reads &amp;quot;strategical planning&amp;quot; and the right side &amp;quot;operative business&amp;quot;. None of these are purely negative or positive, so the bars only show in which direction the balancing point moves.&lt;br /&gt;
&lt;br /&gt;
To realize a question as shown above just do as follows:&lt;br /&gt;
&lt;br /&gt;
Set up as many bars as you will need (in my example there are four different bars in total) with a graphic program like PAINT .NET, GIMP or similar ones (yes, you may also use commercial software like Photoshop). To prevent the bars from looking twitchy, designate the size in advance. I did one bar 60x15 px, one 45x15px, one 30x15px and at last 15x15px. Save them as PNG, JPG or GIF.&lt;br /&gt;
# Create a new label set within Lime. Call it whatever you like.&lt;br /&gt;
# Enter a code number at first, then press the pencil symbol to enter the editor.&lt;br /&gt;
#Press the &amp;quot;Insert / edit image&amp;quot; button and upload the bar you want to insert with the FCK upload tool. Then choose the uploaded picture, save and leave the FCK editor.&lt;br /&gt;
#The row in the lable editor now shows an &amp;lt;img&amp;gt;-tag which refers to your bar picture.&lt;br /&gt;
#Repeat the above described steps as often as needed to build up your bar scale.&lt;br /&gt;
&lt;br /&gt;
=Doing a Likert Scale=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A Likert Scale is a special type of the Semantic Differential question where several item shall be rated on different scales, each marked at the beginning and at the end with opposite statements. See example:&lt;br /&gt;
&lt;br /&gt;
http://www.limesurvey.org/images/fbfiles/images/lickert.jpg&lt;br /&gt;
&lt;br /&gt;
To do this in LimeSurvey just follow these steps:&lt;br /&gt;
#Create a label set with values from 0 to 7 (for the classic Likert Scale - feel free to choose other ranges).&lt;br /&gt;
#Create a new question and choose Array (Flexible Labels) as question type.&lt;br /&gt;
#Assign the Likert Scale label set to this question.&lt;br /&gt;
#Enter your answers as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;DIV style=&amp;quot;white-space: nowrap;&amp;quot;&amp;gt;ITEM statement1|statement2&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The white-space style is to avoid line breaks which would ruin the whole scale. feel free to insert non-breakable spaces between the ITEM and statement1 to define the margin between these to strings.&lt;br /&gt;
&lt;br /&gt;
=Alternate background colour of questions=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7191)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To alternate the background colour of questions, open the &#039;&#039;template.css&#039;&#039; of your template with the Template Editor or a text editor and modify the &#039;&#039;Question styles&#039;&#039; section to include the following style.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
div#question2 td.questiontext,&lt;br /&gt;
&lt;br /&gt;
div#question4 td.questiontext,&lt;br /&gt;
&lt;br /&gt;
div#question6 td.questiontext {&lt;br /&gt;
&lt;br /&gt;
   background-color: #E0EBF8;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to apply the style to all of the questions you would like modified using their question IDs (&#039;&#039;question2, question4, question6&#039;&#039; in this case). Question IDs are displayed when creating or editing questions - see below:&lt;br /&gt;
&lt;br /&gt;
[[File:qid_1_493x173.gif]]&lt;br /&gt;
&lt;br /&gt;
Here the question ID is #question80 .&lt;br /&gt;
&lt;br /&gt;
=Embedding audio in questions=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7191), IE 7, FireFox 3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Audio clips can be embedded in most question text or answer text. In this example, using the default template, I&#039;ve embedded clips into the answers of an &#039;&#039;&#039;&#039;&#039;Array (Yes/No/Uncertain)&#039;&#039;&#039;&#039;&#039; question to ask respondents how they feel about some sounds. The resulting question will look like this.&lt;br /&gt;
&lt;br /&gt;
[[File:audioTest_595x202.gif]]&lt;br /&gt;
&lt;br /&gt;
It&#039;s accomplished by placing the following code in each of the answers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embed height=&amp;quot;20&amp;quot; width=&amp;quot;128&amp;quot; autostart=&amp;quot;false&amp;quot; controls=&amp;quot;console&amp;quot;&lt;br /&gt;
&lt;br /&gt;
loop=&amp;quot;true&amp;quot; volume=&amp;quot;50&amp;quot; src=&amp;quot;{TEMPLATEURL}audio_1.mp3&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some notes about the code:&lt;br /&gt;
*The &#039;&#039;audio_1.mp3&#039;&#039; part will be different for each answer (it&#039;s the audio file name).&lt;br /&gt;
*In this case the audio files are residing in the template folder being used for this survey (that&#039;s where &#039;&#039;{TEMPLATEURL}&#039;&#039; points to) but they can be placed anywhere if you use an absolute URL in the &#039;&#039;src&#039;&#039; parameter - something like &#039;&#039;src=&amp;quot;http://mysite.com/audio/audio_1.mp3&amp;quot;&#039;&#039;&lt;br /&gt;
*If the audio file doesn&#039;t exist where the &#039;&#039;src&#039;&#039; parameter indicates, the player will not appear.&lt;br /&gt;
*You&#039;ll need to insert the code into the answers using the source screen - click on &amp;quot;Edit answers&amp;quot;, click the pencil beside the text box, click &amp;quot;Source&amp;quot; in the pop-up, enter the code and save it with the little diskette icon.&lt;br /&gt;
*You may need to turn off the XSS filter - see the documentation for [http://docs.limesurvey.org/tiki-index.php?page=Global+settings&amp;amp;structure;=English+Instructions+for+LimeSurvey#Security Global settings].&lt;br /&gt;
&lt;br /&gt;
Although the above example places the audio in the answer text of the question, the same principles can be used to place it in the question text itself. Something like this perhaps.&lt;br /&gt;
&lt;br /&gt;
[[File:audioTest_595x154.gif]]&lt;br /&gt;
&lt;br /&gt;
=Hiding inputs of a &amp;quot;Multiple options with comments&amp;quot; question=&lt;br /&gt;
&lt;br /&gt;
Tested with: 1.85+ (7253), IE 6/7, FireFox 3.0, Safari 3.2, Chrome 2.0&lt;br /&gt;
&lt;br /&gt;
There may be times when you want to hide some of the input boxes of a &#039;&#039;&#039;&#039;&#039;Multiple options with comments&#039;&#039;&#039;&#039;&#039; question as in the image below.&lt;br /&gt;
&lt;br /&gt;
[[File:hidden_inputs_541x168.gif]]&lt;br /&gt;
&lt;br /&gt;
This can be accomplished with CSS (see [[The template editor#Styling questions with CSS|Styling questions in LimeSurvey 1.8]]). For each input that you want to hide, add the following style to your template.css file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#answer11111X22X33Acomment {&lt;br /&gt;
   display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Where 11111 is your survey ID, 22 is your group ID, 33 is your question ID and A is the answer code.&lt;br /&gt;
&lt;br /&gt;
Note that you will still see columns for the hidden inputs in your data but they will be empty.&lt;br /&gt;
&lt;br /&gt;
=Multiple question types in array=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.90 - 1.92+, IE 7/8/9, Firefox 13, Safari 5, Chrome 10&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: sample survey works in 2.00+ but code is different from example below. Make sure to use the right code. Copy paste the script from the sample survey and adapt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Media:limesurvey_survey_62584.lss|Download the sample survey]]&lt;br /&gt;
&lt;br /&gt;
This workaround allows you to present multiple question types in what appears to be an array - as depicted in the image below and [http://www.partnersinc.biz/surveys//index.php?sid=62584&amp;amp;newtest=Y&amp;amp;lang=en demonstrated here] (download the sample survey - [[Media:limesurvey_survey_62584.lss|limesurvey_survey_62584.lss]]). This example uses the default template but should be adaptable to any template using divisions for question containers.&lt;br /&gt;
&lt;br /&gt;
[[File:inline_questions_700x228.png]]&lt;br /&gt;
&lt;br /&gt;
Basically what we do is take groups of questions (5 in this case), wrap them in a division and make them line up nicely horizontally and vertically. The width of the survey is also fixed to prevent wrapping issues. We do this with a JavaScript/jQuery function that inserts the necessary wrappers and then modifies styles so everything behaves properly. The top row is 5 boilerplate questions with the &amp;quot;column headers&amp;quot; as question text (the first just has a blank space). The following rows are a boilerplate with the &amp;quot;row headers&amp;quot; followed by 4 assorted questions.&lt;br /&gt;
&lt;br /&gt;
It should be noted that using conditions on these questions may result in unexpected behavior. If a question is hidden by conditions, the question(s) to the right of it will move over to take its place.&lt;br /&gt;
&lt;br /&gt;
Implementation is as follows:&lt;br /&gt;
#Create your questions keeping in mind how they will lay out when grouped into rows (in this example - boilerplate, yes/no, short text, numeric, dropdown, and repeat).&lt;br /&gt;
#In the source of the first boilerplate question add the function below (see [http://manual.limesurvey.org/wiki/Workarounds:_Manipulating_a_survey_at_runtime_using_Javascript#How_to_use_Script_.28eg._JavaScript_etc..29_in_LimeSurvey.3F How to use script]).&lt;br /&gt;
#Modify the number of rows, number of columns and the start placement in the function call (line 6) as required (the example uses 4 rows and 5 columns and the &amp;quot;array&amp;quot; starts with the third question on the page).&lt;br /&gt;
&lt;br /&gt;
The code may look intimidating at first but it&#039;s actually fairly simple. I&#039;ve laid it out as sequentially as possible and purposely used few shortcuts and many comments to make it easier to follow.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
*If you use question types other than boilerplate, short text, list dropdown, numeric or yes-no, you&#039;ll need to add to the last section of code, where it hides the question text and formats the inputs for display this way.&lt;br /&gt;
*Any extra questions on the page should follow this grid of questions, not precede them.&lt;br /&gt;
* If you use boilerplate as question type you should add after:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
// Hide the question text elements in non-boilerplate questions&lt;br /&gt;
$(&#039;div.questionCell td.questiontext&#039;).parent().hide();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
the following 2 lines&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
//repair boilerplate questioncells&lt;br /&gt;
$(&#039;div.boilerplate td.questiontext&#039;).parent().show();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Javascript code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
	$(document).ready(function() {&lt;br /&gt;
		// Call the &amp;quot;sideBySide&amp;quot; function with number of rows, columns and start position&lt;br /&gt;
		sideBySide(4, 5, 3);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	function sideBySide(rows, columns, startQuestion) {&lt;br /&gt;
&lt;br /&gt;
		/*********** Display multiple questions side by side ***********/&lt;br /&gt;
&lt;br /&gt;
		if ($(&#039;div.qRow1&#039;).length == 0) {&lt;br /&gt;
			var rowNum = 0;&lt;br /&gt;
			var colNum = 1;&lt;br /&gt;
			var rowList = new Array();&lt;br /&gt;
&lt;br /&gt;
			//////// Add question classes for later use ////////&lt;br /&gt;
			&lt;br /&gt;
			// Loop through all questions and add row and column specific classes&lt;br /&gt;
			$(&#039;div[id&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;=&amp;quot;question&amp;quot;]&#039;).each(function(i) {&lt;br /&gt;
				if(i &amp;gt;= (startQuestion-1) &amp;amp;&amp;amp; rowNum &amp;lt; rows) { // This IF condition only needed if there are questions before or following the &amp;quot;inline&amp;quot; questions&lt;br /&gt;
					$(this).addClass(&#039;qRow&#039;+rowNum+&#039;&#039;).addClass(&#039;qCol&#039;+colNum+&#039;&#039;).addClass(&#039;inlineQuestion&#039;);&lt;br /&gt;
					if(rowNum == 0 &amp;amp;&amp;amp; colNum &amp;gt; 1) {&lt;br /&gt;
						$(this).addClass(&#039;columnLabel&#039;);&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if(rowNum &amp;gt; 0 &amp;amp;&amp;amp; colNum == 1) {&lt;br /&gt;
						$(this).addClass(&#039;rowLabel&#039;);&lt;br /&gt;
					}&lt;br /&gt;
					else if(rowNum &amp;gt; 0 &amp;amp;&amp;amp; colNum &amp;gt; 1) {&lt;br /&gt;
						$(this).addClass(&#039;questionCell&#039;);&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					if(colNum == columns) {&lt;br /&gt;
						rowList.push(&#039;qRow&#039;+rowNum+&#039;&#039;);&lt;br /&gt;
						rowNum++;&lt;br /&gt;
						colNum = 1;&lt;br /&gt;
					}&lt;br /&gt;
					else {&lt;br /&gt;
						colNum++;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				else {&lt;br /&gt;
					$(this).addClass(&#039;normalQuestion&#039;);&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			//////// Survey layout manipulation ////////&lt;br /&gt;
&lt;br /&gt;
			// Fix the width of the survey&lt;br /&gt;
			$(&#039;table.outerframe&#039;).css({&lt;br /&gt;
				&#039;width&#039;: &#039;900px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Wrap each &amp;quot;row&amp;quot; in a wrapper div&lt;br /&gt;
			$(rowList).each(function(i) {&lt;br /&gt;
				$(&#039;.&#039;+this+&#039;&#039;).wrapAll(&#039;&amp;lt;div id=&amp;quot;inlineWrapper&#039;+i+&#039;&amp;quot; class=&amp;quot;inlineRow&amp;quot; /&amp;gt;&#039;);&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Style the wrapper divs&lt;br /&gt;
			$(&#039;.inlineRow&#039;).css({&lt;br /&gt;
				&#039;width&#039;: &#039;850px&#039;,&lt;br /&gt;
				&#039;margin&#039;: &#039;0 auto 0 auto&#039;,&lt;br /&gt;
				&#039;clear&#039;: &#039;both&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			$( &#039;.inlineRow:first&#039; ).css({&lt;br /&gt;
				&#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Get all the questions to sit politely side by side&lt;br /&gt;
			$( &#039;.inlineQuestion&#039; ).css({&lt;br /&gt;
				&#039;float&#039;: &#039;left&#039;,&lt;br /&gt;
				&#039;height&#039;:&#039;41px&#039;,&lt;br /&gt;
				&#039;overflow&#039;:&#039;hidden&#039;,&lt;br /&gt;
				&#039;margin-bottom&#039;: &#039;-8px&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;.inlineQuestion .questionhelp&#039; ).hide();&lt;br /&gt;
			$( &#039;.inlineQuestion .survey-question-help&#039; ).parent().hide();&lt;br /&gt;
			&lt;br /&gt;
			// A little space under the last row&lt;br /&gt;
			$( &#039;.inlineRow:last .inlineQuestion&#039; ).css({&lt;br /&gt;
				&#039;margin-bottom&#039;: &#039;10px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Any questions not displayed inline (this is only needed if there are questions following the &amp;quot;inline&amp;quot; questions)&lt;br /&gt;
			$( &#039;.normalQuestion&#039; ).css({&lt;br /&gt;
				&#039;clear&#039;: &#039;both&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			//////// Column manipulation ////////&lt;br /&gt;
&lt;br /&gt;
			// Set the column widths - can be set individually if necessary&lt;br /&gt;
			// Must add up to less than 100%&lt;br /&gt;
			$( &#039;.qCol1&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;12%&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			$( &#039;.qCol2, .qCol3, .qCol4, .qCol5&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;22%&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			//////// Question manipulation ////////&lt;br /&gt;
&lt;br /&gt;
			// Hide the answer element in boilerplate questions&lt;br /&gt;
			$( &#039;div.boilerplate td.answer&#039; ).parent().hide();&lt;br /&gt;
&lt;br /&gt;
			// Hide the question text elements in non-boilerplate questions&lt;br /&gt;
			$(&#039;div.questionCell td.questiontext&#039;).parent().hide();&lt;br /&gt;
&lt;br /&gt;
			// Push the question tables to 100%&lt;br /&gt;
			$( &#039;div.inlineRow table&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Get everything to line up nicely vertically&lt;br /&gt;
			$( &#039;.inlineQuestion td.questiontext, .inlineQuestion td.answer p&#039; ).css({&lt;br /&gt;
				&#039;text-align&#039;: &#039;center&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Adjust cell heights so everything lines up nicely horizontally&lt;br /&gt;
			$( &#039;.inlineQuestion td.answer, .inlineQuestion td.questiontext&#039; ).css({&lt;br /&gt;
				&#039;height&#039;:&#039;35px&#039;,&lt;br /&gt;
				&#039;overflow&#039;:&#039;hidden&#039;,&lt;br /&gt;
				&#039;padding&#039;:&#039;0.5em&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;#inlineWrapper0 .inlineQuestion&#039; ).css({ &#039;height&#039;:&#039;50px&#039; });&lt;br /&gt;
			$( &#039;#inlineWrapper0 td.questiontext&#039; ).css({&lt;br /&gt;
				&#039;height&#039;:&#039;50px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Yes-no question styles&lt;br /&gt;
			$( &#039;div.yes-no ul&#039; ).css({&lt;br /&gt;
				&#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
				&#039;font-size&#039;: &#039;90%&#039;,&lt;br /&gt;
				&#039;margin&#039;: &#039;0&#039;,&lt;br /&gt;
				&#039;padding-bottom&#039;: &#039;5px&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;div.yes-no li&#039; ).css({&lt;br /&gt;
				&#039;padding-right&#039;: &#039;1.5em&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;div.yes-no td.answer&#039; ).css({&lt;br /&gt;
				&#039;padding-bottom&#039;: &#039;0&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Short-text question styles&lt;br /&gt;
			$( &#039;div.text-short input&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;125px&#039;,&lt;br /&gt;
				&#039;margin-left&#039;: &#039;0&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Numeric question styles&lt;br /&gt;
			$( &#039;div.numeric input&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;125px&#039;,&lt;br /&gt;
				&#039;margin-left&#039;: &#039;0&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;div.numeric p.tip&#039; ).css({&lt;br /&gt;
				&#039;display&#039;: &#039;none&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Get rid of the margins around select boxes&lt;br /&gt;
			$( &#039;p.question&#039; ).css({ &#039;margin&#039;:&#039;0&#039; });&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Star Rating System=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7557), IE 6/7, FireFox 3.0, Safari 3.2,&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses the [http://www.fyneworks.com/jquery/star-rating/ jQuery Star Rating Plugin] to display a series of stars that are used to generate a rating value. This value is then passed to either a hidden numeric input question or a hidden list radio question. Both methods are outlined below - use one or both depending on whether you want to use [Assessments|assessments].&lt;br /&gt;
&lt;br /&gt;
The plugin uses a series of radio inputs to generate the stars (more about these below). It allows the use of whole or partial stars as shown in [http://www.partnersinc.biz/surveys//index.php?sid=47586&amp;amp;newtest=Y&amp;amp;lang=en this demo] and the image below.&lt;br /&gt;
&lt;br /&gt;
[[File:star_rating_700x324.png]]&lt;br /&gt;
&lt;br /&gt;
==Star Rating System Using Numeric Input Question==&lt;br /&gt;
&lt;br /&gt;
Use this method if you would like your rating data to be collected as a numeric value and don&#039;t want to use [[Assessments|LimeSurvey assessments]] - it&#039;s a little easier to implement. There is a demo [http://www.partnersinc.biz/surveys//index.php?sid=47586&amp;amp;newtest=Y&amp;amp;lang=en here] (first question).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Implementation is as follows:&#039;&#039;&#039;&lt;br /&gt;
#Turn off &#039;&#039;$filterxsshtml&#039;&#039; to allow insertion of JavaScript in the questions. (See [[Optional settings#Security|documentation here]])&lt;br /&gt;
#[http://www.fyneworks.com/jquery/star-rating/ Download the plugin] and place the following included files in your template folder:&lt;br /&gt;
##jquery.MetaData.js&lt;br /&gt;
##jquery.rating.css&lt;br /&gt;
##jquery.rating.js&lt;br /&gt;
##delete.gif&lt;br /&gt;
##star.gif&lt;br /&gt;
#In the &amp;lt;head&amp;gt; section of your startpage.pstpl, add the following code to link to the files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.rating.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.MetaData.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;{TEMPLATEURL}jquery.rating.css&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Create a numeric input question and then in the source of the question add as many radio inputs as star segments. For example, if you would like 5 stars, each with half-segments (as in the demo Q1), you would need 10 radio inputs and that would give rating values from 1-10.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t confuse these inputs with the actual question, they are just for the plugin&#039;s use.&lt;br /&gt;
&lt;br /&gt;
At this point your question source code should look something like below. Make sure that all inputs have the same name. Each input must have the same title as value and these must be sequential. Don&#039;t worry about how all of this looks in the WSYSWYG editor - the plugin is going to hide these inputs and replace them with stars.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q1 - Some question text here.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;starContainer&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;2&amp;quot; value=&amp;quot;2&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;3&amp;quot; value=&amp;quot;3&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;4&amp;quot; value=&amp;quot;4&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;5&amp;quot; value=&amp;quot;5&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;6&amp;quot; value=&amp;quot;6&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;7&amp;quot; value=&amp;quot;7&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;8&amp;quot; value=&amp;quot;8&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;9&amp;quot; value=&amp;quot;9&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;10&amp;quot; value=&amp;quot;10&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. A note on split stars. The stars in the above example are split in half by the &#039;&#039;{ split:2 }&#039;&#039; metadata. So if you don&#039;t want split stars, your inputs would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And stars split into third-segments would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:3 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
7. Finally, in the source of the question add the following function after your inputs. (See [[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|How to use script here]])&lt;br /&gt;
&lt;br /&gt;
Some notes on the code:&lt;br /&gt;
*Replace &amp;quot;SSSSS&amp;quot;, &amp;quot;GG&amp;quot;, &amp;quot;QQ&amp;quot; in the function call at the end with the survey ID, group ID and question ID respectively.&lt;br /&gt;
*The code will hide the numeric input and pass the rating values into it as they are changed. If the rating is canceled the numeric input is nullified. If a respondent navigates away from the page then returns the code &amp;quot;remembers&amp;quot; the previous rating and displays the stars accordingly.&lt;br /&gt;
*If you want to apply it to more numeric questions on the same page simply add more calls with the appropriate IDs. (eg. handleRatingNumeric(11111, 22, 1); handleRatingNumeric(11111, 22, 2); ...) .&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
function handleRatingNumeric (sID, gID, qID) {&lt;br /&gt;
&lt;br /&gt;
   // Hide the numeric input&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; td.answer&#039;).parent().hide();&lt;br /&gt;
&lt;br /&gt;
   // Get a previous rating (if any) and use it to initialize the star display&lt;br /&gt;
&lt;br /&gt;
   var rating = $(&#039;#answer&#039; + sID + &#039;X&#039; + gID + &#039;X&#039; + qID + &#039;&#039;).val();&lt;br /&gt;
&lt;br /&gt;
   if ( rating != &#039;&#039; ) {&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.star&#039;).rating(&#039;select&#039;, rating);&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating cancel element&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.rating-cancel&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Nullify the rating if the Cancel element is clicked&lt;br /&gt;
&lt;br /&gt;
       rating = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#answer&#039; + sID + &#039;X&#039; + gID + &#039;X&#039; + qID + &#039;&#039;).val(rating);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating elements&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.star-rating&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Find the value of the highest clicked star and pass it into the text input&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; div.star-rating-on&#039;).each(function(i) {&lt;br /&gt;
&lt;br /&gt;
           rating = $(this).children(&#039;a&#039;).html( );&lt;br /&gt;
&lt;br /&gt;
       });&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#answer&#039; + sID + &#039;X&#039; + gID + &#039;X&#039; + qID + &#039;&#039;).val(rating);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Call the function for the numeric question&lt;br /&gt;
&lt;br /&gt;
handleRatingNumeric (SSSSS, GG, QQ);&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Star Rating System Using List (Radio) Question==&lt;br /&gt;
&lt;br /&gt;
Use this method if you would like to use [[Assessments|assessments]]. There is a demo [http://www.partnersinc.biz/surveys//index.php?sid=47586&amp;amp;newtest=Y&amp;amp;lang=en here] (second question).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Implementation is as follows:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Turn off &#039;&#039;$filterxsshtml&#039;&#039; to allow insertion of JavaScript in the questions. (See [[Optional settings#Security|documentation here]])&lt;br /&gt;
&lt;br /&gt;
2. Set up the template to use custom onload functions. (See the [[Workarounds: Manipulating a survey at runtime using Javascript#Custom onload function|workaround here]])&lt;br /&gt;
&lt;br /&gt;
3. [http://www.fyneworks.com/jquery/star-rating/ Download the plugin] and place the following included files in your template folder:&lt;br /&gt;
*jquery.MetaData.js&lt;br /&gt;
*jquery.rating.css&lt;br /&gt;
*jquery.rating.js&lt;br /&gt;
*delete.gif&lt;br /&gt;
*star.gif&lt;br /&gt;
&lt;br /&gt;
4. In the &amp;lt;head&amp;gt; section of your startpage.pstpl, add the following code to link to the files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.rating.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.MetaData.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;{TEMPLATEURL}jquery.rating.css&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Create a list (radio) question with the same amount of sequentially numbered answers as star ratings. For example, if you want 5 whole-stars, you would create 5 answers, as in the image below, and this would give you ratings from 1-5. Note that the &amp;quot;Codes&amp;quot; and &amp;quot;Answers&amp;quot; must be sequential numbers.&lt;br /&gt;
&lt;br /&gt;
[[File:star_rating_700x156_v2.png]]&lt;br /&gt;
&lt;br /&gt;
6. In the list (radio) question, set the [[Advanced question settings|hide_tip]] question attribute to 1&lt;br /&gt;
&lt;br /&gt;
7. In the source of the question add as many radio inputs as star segments. So 5 whole-stars (as in the demo Q2), would need 5 radio inputs.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t confuse these inputs with the actual question, they are just for the plugin&#039;s use.&lt;br /&gt;
&lt;br /&gt;
At this point your question source code should look something like below. Make sure that all inputs have the same name. Each input must have the same title as value and these must be sequential. Don&#039;t worry about how all of this looks in the WSYSWYG editor - the plugin is going to hide these inputs and replace them with stars.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q2 - Some question text here.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;starContainer&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;2&amp;quot; value=&amp;quot;2&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;3&amp;quot; value=&amp;quot;3&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;4&amp;quot; value=&amp;quot;4&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;5&amp;quot; value=&amp;quot;5&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. A note on split stars. The stars in the above example are whole-stars. If you want them split you need to add metadata to the class - something like &#039;&#039;{ split:2 }&#039;&#039;. So if you want half-stars your inputs would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And stars split into third-segments would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:3 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
9. Finally, in the source of the question add the following function after your inputs. (See [http://docs.limesurvey.org/tiki-index.php?page=Workarounds&amp;amp;structure;=English+Instructions+for+LimeSurvey#How_to_use_Script_eg._JavaScript_etc._ How to use script here])&lt;br /&gt;
&lt;br /&gt;
Some notes on the code:&lt;br /&gt;
*Replace &amp;quot;SSSSS&amp;quot;, &amp;quot;GG&amp;quot;, &amp;quot;QQ&amp;quot; in the function call at the end with the survey ID, group ID and question ID respectively.&lt;br /&gt;
*The code will hide the question radio buttons and toggle them as the rating values are changed. If the rating is canceled all question inputs are unchecked. If a respondent navigates away from the page then returns the code &amp;quot;remembers&amp;quot; the previous rating and displays the stars accordingly.&lt;br /&gt;
*If you want to apply it to more numeric questions on the same page simply add more calls with the appropriate IDs. (eg. handleRatingRadio(11111, 22, 1); handleRatingRadio(11111, 22, 2); ...) .&lt;br /&gt;
&lt;br /&gt;
Onload code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
function handleRatingRadio (sID, gID, qID) {&lt;br /&gt;
&lt;br /&gt;
   // Hide the radio input&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; td.answer&#039;).parent().hide();&lt;br /&gt;
&lt;br /&gt;
   // Get a previous rating (if any) and use it to initialize the star display&lt;br /&gt;
&lt;br /&gt;
   var rating = $(&#039;#question&#039; + qID + &#039; input.radio[checked=true]&#039;).attr(&#039;value&#039;);&lt;br /&gt;
&lt;br /&gt;
   //if ( rating != &#039;&#039; ) {&lt;br /&gt;
&lt;br /&gt;
   if ( rating ) {&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.star&#039;).rating(&#039;select&#039;, rating);&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating cancel element&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.rating-cancel&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Nullify the rating if the Cancel element is clicked&lt;br /&gt;
&lt;br /&gt;
       rating = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.radio&#039;).attr(&#039;checked&#039;, false);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating elements&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.star-rating&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Find the value of the highest clicked star and pass it into the text input&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; div.star-rating-on&#039;).each(function(i) {&lt;br /&gt;
&lt;br /&gt;
           rating = $(this).children(&#039;a&#039;).html( );&lt;br /&gt;
&lt;br /&gt;
       });&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.radio[value=&#039; + rating + &#039;]&#039;).attr(&#039;checked&#039;, true);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Call the function for the radio question&lt;br /&gt;
&lt;br /&gt;
handleRatingRadio (SSSSS, GG, QQ);&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Variable column widths in array=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7557), IE 6/7, Firefox 3.0, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround allows you to define all column widths of an array question - as shown in the image below and [http://www.partnersinc.biz/surveys//index.php?sid=26842&amp;amp;newtest=Y&amp;amp;lang=en demonstrated here]. This example uses the default template shipped with 7557 but should be adaptable to any template.&lt;br /&gt;
&lt;br /&gt;
[[File:array_widths_701x226.gif]]&lt;br /&gt;
&lt;br /&gt;
We use a function to remove all of the widths imposed by the core code and then insert our own.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Implementation is as follows:&#039;&#039;&#039;&lt;br /&gt;
#Turn off &#039;&#039;$filterxsshtml&#039;&#039; to allow insertion of JavaScript in the questions (see [http://docs.limesurvey.org/tiki-index.php?page=Optional+settings&amp;amp;structure;=English+Instructions+for+LimeSurvey#Filtering_dangerous_HTML_tags_in_survey_objects documentation here]).&lt;br /&gt;
#Create the array question.&lt;br /&gt;
#In the source of the array question add the following script (see [[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|How to use script here]]).&lt;br /&gt;
#Replace all instances of QQ with the question ID.&lt;br /&gt;
#In the third section of code, adjust the widths and add/remove columns as necessary. This example is for an array with a question text column followed by 3 answer columns as shown above.&lt;br /&gt;
#In the final section adjust the question text alignment to your liking&lt;br /&gt;
&lt;br /&gt;
Onload code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
   // Get rid of all the widths that the API imposes&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question col&#039; ).attr(&#039;width&#039;, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question thead td&#039; ).attr(&#039;width&#039;, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
   // Define a width for the question table so we can do so for its children&lt;br /&gt;
&lt;br /&gt;
   // NOTE: Keep this to 95% or less so IE will behave&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question&#039; ).attr(&#039;width&#039;, &#039;95%&#039;);&lt;br /&gt;
&lt;br /&gt;
   // Define the column widths&lt;br /&gt;
&lt;br /&gt;
   // Add or remove columns and adjust widths as necessary but widths should add up to 100%&lt;br /&gt;
&lt;br /&gt;
   // NOTE: Columns must be sequentially numbered starting at 0 - eg, td:eq(0), td:eq(1), td:eq(2).....&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody th:eq(0)&#039; ).css({ &#039;width&#039;:&#039;10%&#039; }); // Answer text column&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody td:eq(0)&#039; ).css({ &#039;width&#039;:&#039;50%&#039; }); // First answer column&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody td:eq(1)&#039; ).css({ &#039;width&#039;:&#039;20%&#039; }); // Second answer column&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody td:eq(2)&#039; ).css({ &#039;width&#039;:&#039;20%&#039; }); // Third answer column&lt;br /&gt;
&lt;br /&gt;
   // Push the text input widths to 95% of their parent containers&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question input[type=&amp;quot;text&amp;quot;]&#039; ).css({ &#039;width&#039;:&#039;95%&#039; });&lt;br /&gt;
&lt;br /&gt;
   // Align the answer text - feel free to experiment&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody th&#039; ).css({&#039;text-align&#039;:&#039;center&#039;});&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Use images for radio buttons and checkboxes=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: LimeSurvey 1.92/2.0, using IE 9, FireFox 13, Chrome 16, Safari 5&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses an adaptation of the jQuery imagetick.js plugin to replace the default radio buttons and checkboxes with images as pictured below:&lt;br /&gt;
&lt;br /&gt;
[[File:images.png]] &lt;br /&gt;
&lt;br /&gt;
This adaptation will work in the following question types:&lt;br /&gt;
*Array&lt;br /&gt;
*Array by column&lt;br /&gt;
*Array dual scale&lt;br /&gt;
*Array (5 point choice)&lt;br /&gt;
*Array (10 point choice)&lt;br /&gt;
*Array (Increase-Same-Decrease)&lt;br /&gt;
*Array (Yes-No-Uncertain)&lt;br /&gt;
*Gender&lt;br /&gt;
*Yes-No&lt;br /&gt;
*Multiple choice&lt;br /&gt;
*Multiple choice with comments&lt;br /&gt;
*5 point choice&lt;br /&gt;
*List (Radio)&lt;br /&gt;
*List with comment&lt;br /&gt;
&lt;br /&gt;
==LimeSurvey 1.92 and earlier implementation==&lt;br /&gt;
#[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]].&lt;br /&gt;
#Download [[Media:imagetick_lime_v1.3.zip|this modified version of the plugin]].&lt;br /&gt;
#Extract all files and place them in your template directory.&lt;br /&gt;
#Add the following line to the &amp;lt;head&amp;gt; element in your startpage.pstpl &#039;&#039;&#039;BEFORE&#039;&#039;&#039; the call for template.js:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}imagetick_lime.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Add the following to the source of a question or the group description&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	$(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
		var templatePath = $(&#039;head link[href*=&amp;quot;template.css&amp;quot;]&#039;).attr(&#039;href&#039;).replace(/template.css/, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
		// Apply images to radios&lt;br /&gt;
		$(&#039;input[type=&amp;quot;radio&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
			// Image to use as a selected state of the radio&lt;br /&gt;
			tick_image_path:  templatePath+&amp;quot;radio.gif&amp;quot;,&lt;br /&gt;
			// Image to use as a non-selected state&lt;br /&gt;
			no_tick_image_path:  templatePath+&amp;quot;no_radio.gif&amp;quot;,&lt;br /&gt;
			// Class to apply to all radio images that are dynamically created&lt;br /&gt;
			image_tick_class: &amp;quot;radios&amp;quot;&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		// Apply images to checkboxes&lt;br /&gt;
		$(&#039;input[type=&amp;quot;checkbox&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
			// Image to use as a selected state of the checkbox&lt;br /&gt;
			tick_image_path: templatePath+&amp;quot;check.gif&amp;quot;,&lt;br /&gt;
			// Image to use as a non-selected state&lt;br /&gt;
			no_tick_image_path: templatePath+&amp;quot;no_check.gif&amp;quot;,&lt;br /&gt;
			// Class to apply to all checkbox images that are dynamically created&lt;br /&gt;
			image_tick_class: &amp;quot;checkboxes&amp;quot;&lt;br /&gt;
		});&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#You can also call the imagetick function from template.js. Skip the last step above and add the following to the end of template.js. Replace &amp;quot;yourTemplateName&amp;quot; with your template directory name.&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
	var templatePath = $(&#039;head link[href*=&amp;quot;template.css&amp;quot;]&#039;).attr(&#039;href&#039;).replace(/template.css/, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
	// Apply images to radios&lt;br /&gt;
	$(&#039;input[type=&amp;quot;radio&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
		// Image to use as a selected state of the radio&lt;br /&gt;
		tick_image_path: templatePath+&amp;quot;radio.gif&amp;quot;,&lt;br /&gt;
		// Image to use as a non-selected state&lt;br /&gt;
		no_tick_image_path: templatePath+&amp;quot;no_radio.gif&amp;quot;,&lt;br /&gt;
		// Class to apply to all radio images that are dynamically created&lt;br /&gt;
		image_tick_class: &amp;quot;radios&amp;quot;&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	// Apply images to checkboxes&lt;br /&gt;
	$(&#039;input[type=&amp;quot;checkbox&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
		// Image to use as a selected state of the checkbox&lt;br /&gt;
		tick_image_path: templatePath+&amp;quot;check.gif&amp;quot;,&lt;br /&gt;
		// Image to use as a non-selected state&lt;br /&gt;
		no_tick_image_path: templatePath+&amp;quot;no_check.gif&amp;quot;,&lt;br /&gt;
		// Class to apply to all checkbox images that are dynamically created&lt;br /&gt;
		image_tick_class: &amp;quot;checkboxes&amp;quot;&lt;br /&gt;
	});&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to apply it to only one question on a page use selector (where QQ is the question ID)&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(&#039;#questionQQ input[type=&amp;quot;radio&amp;quot;]&#039;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want to apply it to a single radio button in a question (to maybe have different images for each option) use selector (where SSSSS is the survey ID, GG is the group ID, QQ is the question ID, AA is the answer code)&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(&amp;quot;input#answerSSSSSXGGXQQAA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LimeSurvey 2.0 and later implementation==&lt;br /&gt;
&lt;br /&gt;
Follow the instructions above with these changes:&lt;br /&gt;
#Download [[Media:Imagetick_lime_v2.1.zip|this modified version of the plugin for 2.0 and up]] instead of the one mentioned above and add all contained files to your template directory.&lt;br /&gt;
#Add these lines to the &amp;lt;head&amp;gt; element in your startpage.pstpl instead of the one above:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}imagetick_lime_2.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;{TEMPLATEURL}imagetick_lime_2.css&amp;quot; /&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks to Jordan Boesch for the original plugin.&lt;br /&gt;
&lt;br /&gt;
=Changing the position and layout of an individual question using &amp;quot;question code&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.87+ (6536)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To use this very flexible workaround you first have to apply a minor change to the question.pstpl of the used template.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;survey-question&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div class=&amp;quot;survey-question-text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
needs to be changed to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;survey-question&amp;quot; id=&amp;quot;{QUESTION_CODE}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div class=&amp;quot;survey-question-text&amp;quot; id=&amp;quot;{QUESTION_CODE}&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
this change won&#039;t change anything in the layout and can be left in the template even if you don&#039;t need this workaround. It&#039;s just a means to have a handle to actually change individual questions.&lt;br /&gt;
&lt;br /&gt;
You can then use a code such as the following in the question text to make question specific format changes. &amp;quot;SAMPLE&amp;quot; needs to be replaced with the concerning question code and javascript has to be allowed ([[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|older versions of limesurvey]], under global settings for newer versions).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;SAMPLE&#039;).style.borderTop= &amp;quot;0px&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;SAMPLE&#039;).style.marginTop= &amp;quot;-62px&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;SAMPLE&#039;).style.marginLeft= &amp;quot;30px&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sample code will hide the border at the top of the question, will move the whole question up by 62px and to the right by 30px. Using this workaround you can change a whole a lot of things concerning format and positions of a specific question without changing all the questions. A (German) list of all the allowed options can be found [http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften here].&lt;br /&gt;
&lt;br /&gt;
=Create MaxDiff question type=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.87+ (8518), IE 6/7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses JavaScript to convert an &#039;&#039;&#039;&#039;&#039;Array (flexible labels) by column&#039;&#039;&#039;&#039;&#039; question into a [http://en.wikipedia.org/wiki/MaxDiff MaxDiff] question type.&lt;br /&gt;
&lt;br /&gt;
[[File:max_diff_596x253.gif]]&lt;br /&gt;
&lt;br /&gt;
There is a demo [http://www.partnersinc.biz/surveys//index.php?sid=29191&amp;amp;newtest=Y&amp;amp;lang=en here] and implementation is as follows.&lt;br /&gt;
#[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]].&lt;br /&gt;
#Create an &#039;&#039;&#039;&#039;&#039;Array (flexible labels) by column&#039;&#039;&#039;&#039;&#039; question with 2 &amp;quot;answers&amp;quot; - these will be the left and right columns.&lt;br /&gt;
#Assign a label set to the question - these will be the labels in the center column.&lt;br /&gt;
#Place the following script in the source of the question or in the group description.&lt;br /&gt;
#In  line 5, replace &amp;quot;QQ&amp;quot; with the ID of the question and modify the message to your needs.&lt;br /&gt;
#Adjust the styles in lines 15-18 as required.&lt;br /&gt;
&lt;br /&gt;
The script moves the question columns into the MaxDiff configuration and alerts the user if they select the same option for both max and min columns.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
       maxDiff(QQ, &#039;You cannot select this answer twice.&#039;);&lt;br /&gt;
&lt;br /&gt;
       function maxDiff(qID, msg) {&lt;br /&gt;
&lt;br /&gt;
           // Move the cells around&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question col:eq(1)&#039;).prependTo(&#039;colgroup.col-responses&#039;);&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question thead tr:eq(0) th:eq(0)&#039;).prependTo(&#039;#question&#039;+qID+&#039; table.question thead tr:eq(0)&#039;);&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody tr&#039;).each(function(i){&lt;br /&gt;
&lt;br /&gt;
               $(&#039;td:eq(0)&#039;, this).prependTo(this);&lt;br /&gt;
&lt;br /&gt;
           });&lt;br /&gt;
&lt;br /&gt;
           // Style stuff&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question col.odd&#039;).css({ &#039;background-color&#039;:&#039;transparent&#039; });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody th&#039;).css({ &#039;text-align&#039;:&#039;center&#039; });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody tr:even td, #question&#039;+qID+&#039; table.question tbody tr:even th&#039;).css({ &#039;background-color&#039;:&#039;#F1F1F1&#039; });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody tr:odd td, #question&#039;+qID+&#039; table.question tbody tr:odd th&#039;).css({ &#039;background-color&#039;:&#039;#FCFCFC&#039; });&lt;br /&gt;
&lt;br /&gt;
           // Prevent clicking twice in the same row&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; input.radio&#039;).mousedown(function () {&lt;br /&gt;
&lt;br /&gt;
               var clickRow = $(this).parents(&#039;tr:eq(0)&#039;);&lt;br /&gt;
&lt;br /&gt;
               if ($(&#039;input.radio:checked&#039;, clickRow).length &amp;gt; 0) {&lt;br /&gt;
&lt;br /&gt;
                   alert (msg);&lt;br /&gt;
&lt;br /&gt;
                   return false;&lt;br /&gt;
&lt;br /&gt;
               }&lt;br /&gt;
&lt;br /&gt;
           });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody td&#039;).mousedown(function () {&lt;br /&gt;
&lt;br /&gt;
               var clickRow = $(this).parents(&#039;tr:eq(0)&#039;);&lt;br /&gt;
&lt;br /&gt;
               if ($(&#039;input.radio:checked&#039;, clickRow).length &amp;gt; 0) {&lt;br /&gt;
&lt;br /&gt;
                   alert (msg);&lt;br /&gt;
&lt;br /&gt;
                   return false;&lt;br /&gt;
&lt;br /&gt;
               }&lt;br /&gt;
&lt;br /&gt;
           });&lt;br /&gt;
&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Load SVG Code From Drawing Tool=&lt;br /&gt;
&lt;br /&gt;
This workaround uses JavaScript/jQuery to load a drawing tool and store the results in a huge-text question. The details are outlined in the [[Workarounds: Manipulating a survey at runtime using Javascript#Load SVG Code From Drawing Tool|JavaScript section of the workarounds]].&lt;br /&gt;
&lt;br /&gt;
=Minimum or Maximum Date in Datepicker=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.90, IE 7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please note: From version 2.05 beta6, you can set the minimum and maximum date for the date picker directly in the advanced question attributes of the date/time question.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can set the minimum or maximum selectible date in a datepicker as follows&lt;br /&gt;
&lt;br /&gt;
[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]] and add the following to the source of the date question text or help. Replace &amp;quot;QQ&amp;quot; with the date question ID.&lt;br /&gt;
&lt;br /&gt;
For a minimum date of April 15, 2010:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
       var qID = QQ;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039;+qID+&#039; .popupdate&#039;).datepicker( &#039;option&#039;, &#039;minDate&#039;, new Date(2010, 4-1, 15) );&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a minimum date of the current date (today):&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
       var qID = QQ;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039;+qID+&#039; .popupdate&#039;).datepicker( &#039;option&#039;, &#039;minDate&#039;, new Date() );&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a maximum date of May 10, 2015:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
       var qID = QQ;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039;+qID+&#039; .popupdate&#039;).datepicker( &#039;option&#039;, &#039;maxDate&#039;, new Date(2015, 5-1, 10) );&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More details here - http://jqueryui.com/demos/datepicker/#option-minDate&lt;br /&gt;
&lt;br /&gt;
=Evaluative Space Grid (ESG)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.91, IE 7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The evaluative space grid (ESG) is a two-dimensional grid that provides a single-item measure of positivity and negativity (Larsen et al, 2009). See [http://leeds-faculty.colorado.edu/mcgrawp/pdf/larsen.norris.mcgraw.hawkley.cacioppo.2009.pdf page 4 of this PDF].&lt;br /&gt;
&lt;br /&gt;
This can be accomplished using a multiple-numeric question, some simple HTML and a little JavaScript.&lt;br /&gt;
&lt;br /&gt;
A table can be shown in the question. When a respondent clicks a grid cell in the table JavaScript loads the coordinates of the cell into the multiple-numeric question inputs.&lt;br /&gt;
&lt;br /&gt;
[[File:space_grid.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Create a Multiple Numeric question with two sub-questions labelled &amp;quot;X&amp;quot; and &amp;quot;Y&amp;quot;.&lt;br /&gt;
#Add the following HTML to the source of the question to create the table:&amp;lt;syntaxhighlight lang=&amp;quot;html4strict&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;spaceGrid&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td rowspan=&amp;quot;5&amp;quot; class=&amp;quot;yAxisLabel&amp;quot;&amp;gt;How NEGATIVE&amp;lt;br&amp;gt;&lt;br /&gt;
			do you feel about&amp;lt;br&amp;gt;&lt;br /&gt;
		the stimulus?&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Extremely&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Quite a bit&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Moderately&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Slightly&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Not at all&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;Not at all&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Slightly&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Moderately&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Quite a bit&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Extremely&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td colspan=&amp;quot;5&amp;quot; class=&amp;quot;xAxisLabel&amp;quot;&amp;gt;How POSITIVE do you feel about the stimulus?&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following styles to the end of your template.css file:&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.spaceGrid {&lt;br /&gt;
	border: 0 none;&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.spaceGrid td {&lt;br /&gt;
	padding: 0 3px;&lt;br /&gt;
	text-align: center !important;&lt;br /&gt;
	border: 0 none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.xAxisLabel {&lt;br /&gt;
	padding-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.yAxisLabel {&lt;br /&gt;
	padding-right: 10px;&lt;br /&gt;
	width: 125px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.xLabel {&lt;br /&gt;
	height: 20px;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.yLabel {&lt;br /&gt;
	text-align: right !important;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.gridCell {&lt;br /&gt;
	width: 70px;&lt;br /&gt;
	height: 70px;&lt;br /&gt;
	border: 1px solid #666666;&lt;br /&gt;
	background-color: #FFFFFF;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.checkedCell {&lt;br /&gt;
	background-color: #66FF00;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of your template.js file:&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;	&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
	// Listener on the grid cells&lt;br /&gt;
	$(&#039;.gridCell&#039;).click(function(){&lt;br /&gt;
&lt;br /&gt;
		// Define some vars&lt;br /&gt;
		var parentQ = $(this).parents(&#039;div[id&amp;lt;/div&amp;gt;=&amp;quot;question&amp;quot;]:eq(0)&#039;);&lt;br /&gt;
		var parentTable = $(this).parents(&#039;table.spaceGrid:eq(0)&#039;);&lt;br /&gt;
		var parentRow = $(this).parent();&lt;br /&gt;
		var numGridCell = $(&#039;.gridCell&#039;).length;&lt;br /&gt;
		var numCols = $(&#039;.gridCell&#039;, parentRow).length;&lt;br /&gt;
		var numRows = numGridCell/numCols;&lt;br /&gt;
&lt;br /&gt;
		// Add class to checked cell&lt;br /&gt;
		$(&#039;.checkedCell&#039;, parentQ).removeClass(&#039;checkedCell&#039;);&lt;br /&gt;
		$(this).addClass(&#039;checkedCell&#039;);&lt;br /&gt;
&lt;br /&gt;
		// Find the cell coordinates&lt;br /&gt;
		var reverseRowIndex = (numRows - $(&#039;tr&#039;, parentTable).index($(parentRow)));&lt;br /&gt;
		var colIndex = $(&#039;.gridCell&#039;, parentRow).index($(this)) + 1;&lt;br /&gt;
&lt;br /&gt;
		// Load coordinates into inputs&lt;br /&gt;
		$(&#039;input.text:eq(0)&#039;, parentQ).val(colIndex);&lt;br /&gt;
		$(&#039;input.text:eq(1)&#039;, parentQ).val(reverseRowIndex);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The script should automatically handle different grid sizes.&lt;br /&gt;
&lt;br /&gt;
=Slider Highlighting=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.91, IE 7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You may want to highlight a slider after it has been moved/changed to allow respondents to easily see which slider sub-questions have been answered.&lt;br /&gt;
&lt;br /&gt;
[[File:Capture.PNG]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of &#039;&#039;&#039;template.js&#039;&#039;&#039;:&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
$(&#039;html&#039;).bind(&#039;slidecreate&#039;, function(event, ui) {&lt;br /&gt;
	$(&#039;.slider_callout&#039;).each(function(i){&lt;br /&gt;
		if($(this).text().length &amp;gt; 0) {&lt;br /&gt;
			$(this).parents(&#039;li:eq(0)&#039;).addClass(&#039;changedSlider&#039;);&lt;br /&gt;
		}&lt;br /&gt;
	});&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
	$(&#039;.ui-slider-horizontal&#039;).bind(&#039;slidechange&#039;, function(event, ui) {&lt;br /&gt;
	 $(this).parents(&#039;li:eq(0)&#039;).addClass(&#039;changedSlider&#039;);&lt;br /&gt;
	});&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add something like the following to the end of &#039;&#039;&#039;template.css&#039;&#039;&#039; (these styles are for the default template and would need to be modified for other templates):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.numeric-multi .answer li {&lt;br /&gt;
	border-bottom: 5px solid #FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.numeric-multi .answer li label {&lt;br /&gt;
	background-color: #FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.numeric-multi .answer li div.multinum-slider {&lt;br /&gt;
	margin: 1.5em 0.5em 0.2em 0;&lt;br /&gt;
	padding-left: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ui-slider-1 {&lt;br /&gt;
	margin-bottom: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.changedSlider {&lt;br /&gt;
	background-color: #99FFFF;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Sliders in Array-Numbers or Array-Dual-Scale-Numbers=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.91, IE 7/8/9, Firefox 3/7, Safari 5, Chrome 15&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround will replace the dropdowns in &#039;&#039;&#039;&#039;&#039;array-numbers&#039;&#039;&#039;&#039;&#039; or &#039;&#039;&#039;&#039;&#039;array-dual-scale-numbers&#039;&#039;&#039;&#039;&#039; questions with sliders. The sliders will automatically have the same minimum, maximum and steps that you set in the advanced question settings.&lt;br /&gt;
&lt;br /&gt;
[[File:custom_sliders_1.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
There is a [http://www.partnersinc.biz/surveys//index.php?sid=66653&amp;amp;newtest=Y&amp;amp;lang=en &#039;&#039;&#039;demo here&#039;&#039;&#039;].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]].&lt;br /&gt;
#Create your array-numbers or array-dual-scale-numbers question.&lt;br /&gt;
#Add the following to the source of the question. Replace &amp;quot;QQ&amp;quot; with the array question ID. (NOTE: In 1.92 or newer, you can replace &amp;quot;QQ&amp;quot; with &amp;quot;{QID}&amp;quot;)&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
		insertSlider (QQ);&lt;br /&gt;
&lt;br /&gt;
		function insertSlider (qID) {&lt;br /&gt;
&lt;br /&gt;
			$(&#039;#question&#039;+qID+&#039; select&#039;).each(function(i, el){&lt;br /&gt;
&lt;br /&gt;
				// Hide the dropdown&lt;br /&gt;
				$(el).hide();&lt;br /&gt;
&lt;br /&gt;
				var id = $(el).attr(&#039;id&#039;).replace(/#/g,&#039;-&#039;);&lt;br /&gt;
&lt;br /&gt;
				// Some dropdown values&lt;br /&gt;
				var currentVal = Number($(&#039;option:selected&#039;, el).val());&lt;br /&gt;
				var firstVal = Number($(&#039;option[value!=&amp;quot;&amp;quot;]:first&#039;, el).val());&lt;br /&gt;
				var secondVal = Number($(&#039;option[value!=&amp;quot;&amp;quot;]:first&#039;, el).next(&#039;option&#039;).val());&lt;br /&gt;
				var lastVal = Number($(&#039;option[value!=&amp;quot;&amp;quot;]:last&#039;, el).val());&lt;br /&gt;
&lt;br /&gt;
				// Insert a container for the slider&lt;br /&gt;
				var container = $(&#039;&amp;lt;div class=&amp;quot;customSliderWrapper&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;).insertAfter(el);&lt;br /&gt;
&lt;br /&gt;
				// Insert a callout&lt;br /&gt;
				var callout = $(&#039;&amp;lt;div id=&amp;quot;callOut-&#039;+id+&#039;&amp;quot; class=&amp;quot;customCallout&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;).appendTo(container).text($(&#039;option:selected&#039;, el).val());&lt;br /&gt;
&lt;br /&gt;
				// Initiate the slider&lt;br /&gt;
				var slider = $(&#039;&amp;lt;div id=&amp;quot;slider-&#039;+id+&#039;&amp;quot; class=&amp;quot;customSlider&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;).appendTo(container).slider({&lt;br /&gt;
					min: firstVal,&lt;br /&gt;
					max: lastVal,&lt;br /&gt;
					range: &#039;min&#039;,&lt;br /&gt;
					value: currentVal,&lt;br /&gt;
					step: secondVal - firstVal,&lt;br /&gt;
					slide: function( event, ui ) {&lt;br /&gt;
						$(&#039;option[value=&amp;quot;&#039;+ui.value+&#039;&amp;quot;]&#039;, el).attr(&#039;selected&#039;, &#039;selected&#039;);&lt;br /&gt;
						function updateCustomCallout() {&lt;br /&gt;
							$(&#039;#callOut-&#039;+id).text($(&#039;option:selected&#039;, el).val()).css({ &#039;left&#039;: $(&#039;#slider-&#039;+id+&#039; .ui-slider-handle&#039;).css(&#039;left&#039;) });&lt;br /&gt;
						}&lt;br /&gt;
						// Delay updating the callout because it was picking up the last postion of the slider&lt;br /&gt;
						setTimeout(updateCustomCallout, 10);&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
&lt;br /&gt;
				// Change the slider if the dropdown is changed&lt;br /&gt;
				// (not required if dropdown is hidden)&lt;br /&gt;
				$(el).change(function() {&lt;br /&gt;
					slider.slider(&#039;value&#039;, Number($(&#039;option:selected&#039;, el).val()));&lt;br /&gt;
					$(&#039;#callOut-&#039;+id).text($(&#039;option:selected&#039;, el).val());&lt;br /&gt;
				});&lt;br /&gt;
&lt;br /&gt;
				// Set a value as soon as the slider handle is clicked&lt;br /&gt;
				$(&#039;#slider-&#039;+id+&#039; .ui-slider-handle&#039;).mousedown(function() {&lt;br /&gt;
					$(&#039;option[value=&amp;quot;&#039;+slider.slider(&#039;value&#039;)+&#039;&amp;quot;]&#039;, el).attr(&#039;selected&#039;, &#039;selected&#039;);&lt;br /&gt;
					$(&#039;#callOut-&#039;+id).text(slider.slider(&#039;value&#039;));&lt;br /&gt;
				});&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add something like the following to the end of &#039;&#039;&#039;template.css&#039;&#039;&#039; (these styles are for the default template and may need to be modified for other templates):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
table.innerframe {&lt;br /&gt;
	width:850px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.array-multi-flexi table.question {&lt;br /&gt;
	width:90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.customCallout {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	top: 0;&lt;br /&gt;
	left: 0;&lt;br /&gt;
	width: 50px;&lt;br /&gt;
	height: 1.75em;&lt;br /&gt;
	text-align: left;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	margin: 0 0 0 -0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.customSliderWrapper {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	margin: 0 10px;&lt;br /&gt;
	padding-top: 1.75em;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Vertical Sliders=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.92+, 2.00+, IE 9, Firefox 13, Chrome 19&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses a custom jQuery plugin to apply vertical sliders to multiple-numeric questions. You can download a sample template here (with the plugin in template.js) - [[Media:default_vertical_sliders.zip|vertical slider template]] - and a sample survey here - [[Media:demo_vertical_sliders.lss|vertical slider survey]].&lt;br /&gt;
&lt;br /&gt;
[[File:verticalsliders_1.jpg]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create your multi-numeric question(s). Do NOT use any of the slider advanced settings.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.js. Replace &amp;quot;QQ&amp;quot; (line 5) with the question ID and adjust the options in the function call as desired. Repeat the call as many times as you need for more questions&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
	// Call the vertical slider plugin with the question ID&lt;br /&gt;
	// Edit options here as desired&lt;br /&gt;
	$(&#039;#questionQQ&#039;).lsVerticalSlider({&lt;br /&gt;
		minValue		:0,		// Minimum value (default 0)&lt;br /&gt;
		maxValue		:200,	// Maximum value (default 100)&lt;br /&gt;
		startValue		:100,	// Start value (default null)&lt;br /&gt;
		step			:10,	// Slider increments (default 1)&lt;br /&gt;
		height			:100,	// Height of slider in pixels (default 200)&lt;br /&gt;
		recordStart		:true,	// Record the start value? (default no)&lt;br /&gt;
		showMin			:true,	// Show minimum value? (default no)&lt;br /&gt;
		showMax			:true	// Show maximum value? (default no)&lt;br /&gt;
	});&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// NO EDITING REQUIRED BELOW HERE&lt;br /&gt;
// A jQuery plugin to convert multiple-numeric questions to vertical sliders&lt;br /&gt;
(function( $ ){&lt;br /&gt;
	$.fn.lsVerticalSlider = function(options) {&lt;br /&gt;
&lt;br /&gt;
		// The defaults, extended and modified with any passed in the function call&lt;br /&gt;
		var opts = $.extend( {&lt;br /&gt;
			minValue		:0,&lt;br /&gt;
			maxValue		:100,&lt;br /&gt;
			startValue		:&#039;&#039;,&lt;br /&gt;
			step			:1,&lt;br /&gt;
			height			:150,&lt;br /&gt;
			recordStart		:false,&lt;br /&gt;
			showMin			:false,&lt;br /&gt;
			showMax			:false&lt;br /&gt;
		}, options);&lt;br /&gt;
&lt;br /&gt;
		return this.each(function() {&lt;br /&gt;
&lt;br /&gt;
			var $this = $(this);&lt;br /&gt;
&lt;br /&gt;
			// Some classes for the question and sub-questions&lt;br /&gt;
			$this.addClass(&#039;vertical-slider-question&#039;);&lt;br /&gt;
			$(&#039;li:[id&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;=&amp;quot;javatbd&amp;quot;]&#039;, $this).addClass(&#039;vertical-slider-sub-question&#039;);&lt;br /&gt;
&lt;br /&gt;
			// Loop through the sub-questions&lt;br /&gt;
			$(&#039;li:[id&amp;lt;/div&amp;gt;=&amp;quot;javatbd&amp;quot;]&#039;, $this).each(function(i){&lt;br /&gt;
				var itemID = $(this).attr(&#039;id&#039;).replace(/javatbd/, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
				// Check for pre-existing answer&lt;br /&gt;
				if($(&#039;#answer&#039;+itemID).val() != &#039;&#039;) {&lt;br /&gt;
					opts.startValue = $(&#039;#answer&#039;+itemID).val();&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				// Insert the slider elements&lt;br /&gt;
				$(&#039;#answer&#039;+itemID).after(&lt;br /&gt;
					&#039;&amp;lt;div class=&amp;quot;vertical-slider-max-min&amp;quot; style=&amp;quot;height:&#039;+(opts.height+2)+&#039;px;&amp;quot;&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;vertical-slider-max&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;vertical-slider-min&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;div id=&amp;quot;vertical-slider-&#039;+itemID+&#039;&amp;quot; class=&amp;quot;vertical-slider&amp;quot; style=&amp;quot;height:&#039;+opts.height+&#039;px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;div class=&amp;quot;vertical-slider-callout-wrapper&amp;quot; style=&amp;quot;height:&#039;+(opts.height+2)+&#039;px;&amp;quot;&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;vertical-slider-callout&amp;quot; id=&amp;quot;slider-callout-&#039;+itemID+&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
				);&lt;br /&gt;
&lt;br /&gt;
				// Show min/max if option is set&lt;br /&gt;
				if(opts.showMax) {&lt;br /&gt;
					$(&#039;.vertical-slider-max&#039;, $this).text(opts.maxValue);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				if(opts.showMin) {&lt;br /&gt;
					$(&#039;.vertical-slider-min&#039;, $this).text(opts.minValue);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				// Initiate the slider&lt;br /&gt;
				$(&#039;#vertical-slider-&#039;+itemID).slider({&lt;br /&gt;
					orientation: &#039;vertical&#039;,&lt;br /&gt;
					range: &#039;min&#039;,&lt;br /&gt;
					min: opts.minValue,&lt;br /&gt;
					max: opts.maxValue,&lt;br /&gt;
					value: opts.startValue,&lt;br /&gt;
					step: opts.step,&lt;br /&gt;
					slide: function(event, ui) {&lt;br /&gt;
						$(&#039;#answer&#039;+itemID).val(ui.value);&lt;br /&gt;
						$(&#039;#slider-callout-&#039;+itemID).text(ui.value);&lt;br /&gt;
						setTimeout(function() {&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).css({ &#039;bottom&#039;:$(&#039;#vertical-slider-&#039;+itemID+&#039; .ui-slider-handle&#039;).css(&#039;bottom&#039;) }).show();&lt;br /&gt;
						}, 10);&lt;br /&gt;
					},&lt;br /&gt;
					create: function(event, ui) {&lt;br /&gt;
						// Initial values and positions&lt;br /&gt;
						if($(&#039;#answer&#039;+itemID).val() != &#039;&#039;) { // Pre-existing answer&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).text(opts.startValue);&lt;br /&gt;
						}&lt;br /&gt;
						else if(opts.recordStart) { // Record the start value (if option is set)&lt;br /&gt;
							$(&#039;#answer&#039;+itemID).val(opts.startValue);&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).text(opts.startValue);&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).hide();&lt;br /&gt;
						}&lt;br /&gt;
						$(&#039;#slider-callout-&#039;+itemID).css({ &#039;bottom&#039;:$(&#039;#vertical-slider-&#039;+itemID+&#039; .ui-slider-handle&#039;).css(&#039;bottom&#039;) });&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	};&lt;br /&gt;
})( jQuery );&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.css (these styles are for the default template):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;/* Vertical slider styles and overrides */&lt;br /&gt;
.vertical-slider-question p.tip {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-sub-question {&lt;br /&gt;
	float: left;&lt;br /&gt;
	margin: 0 3em 0 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question label {&lt;br /&gt;
	display: block;&lt;br /&gt;
	padding: 0 0 0.75em 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question span.input {&lt;br /&gt;
	padding: 0.3em 0 0 0;&lt;br /&gt;
	display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question input.text {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider {&lt;br /&gt;
	float: left;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question .ui-slider-handle {&lt;br /&gt;
	top: auto;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max-min,&lt;br /&gt;
.vertical-slider-callout-wrapper {&lt;br /&gt;
	float: left;&lt;br /&gt;
	position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-callout-wrapper {&lt;br /&gt;
	min-width: 3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max-min {&lt;br /&gt;
	margin-right: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max,&lt;br /&gt;
.vertical-slider-min {&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	color:#666666;&lt;br /&gt;
	line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max {&lt;br /&gt;
	margin-top: -0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-min {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	right: 0;&lt;br /&gt;
	bottom: 0;&lt;br /&gt;
	margin-bottom: -0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-callout {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	top: auto;&lt;br /&gt;
	margin: 0 0 -0.6em 0.5em;&lt;br /&gt;
	padding: 0.1em;&lt;br /&gt;
	font-size: 0.9em;&lt;br /&gt;
	color:#000000;&lt;br /&gt;
	line-height: 1;&lt;br /&gt;
	background: #F8F8FF;&lt;br /&gt;
	border: 1px solid #D2E0F2;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Range Slider=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.92+, 2.00+, IE 9, Firefox 13, Chrome 19&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses a custom jQuery plugin to insert a jQuery UI range slider into a multi-numeric question and automatically populate that question&#039;s inputs with the range min and max values. You can download a sample template here - [[Media:Demo_Range_Slider.zip|range slider template]] - and a sample survey here - [[Media:Limesurvey_survey_range_slider.lss|range slider survey]].&lt;br /&gt;
&lt;br /&gt;
[[File:Range_slider.jpg]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The plugin handles:&lt;br /&gt;
*previous answers&lt;br /&gt;
*slider max/min&lt;br /&gt;
*range min start&lt;br /&gt;
*range max start&lt;br /&gt;
*range span min&lt;br /&gt;
*slider step&lt;br /&gt;
*slider width&lt;br /&gt;
*record the start values&lt;br /&gt;
*show slider max and min&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Requirements:&lt;br /&gt;
*LimeSurvey 1.92 or newer&lt;br /&gt;
*A multiple-numeric question with two sub-questions&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create your multi-numeric question. Do NOT use any of the slider advanced settings.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.js.&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;// A jQuery plugin to display a range slider in LimeSurvey&lt;br /&gt;
(function( $ ){&lt;br /&gt;
 &lt;br /&gt;
	$.fn.lsRangeSlider = function(options) {  &lt;br /&gt;
 &lt;br /&gt;
		// The defaults, extended and modified with any passed in the function call&lt;br /&gt;
		var opts = $.extend( {&lt;br /&gt;
			range			:true, &lt;br /&gt;
			sliderMin		:0, &lt;br /&gt;
			sliderMax		:100,&lt;br /&gt;
			rangeStartMin		:&#039;&#039;,&lt;br /&gt;
			rangeStartMax		:&#039;&#039;,&lt;br /&gt;
			minRangeSpan		:0,&lt;br /&gt;
			step			:1,&lt;br /&gt;
			width			:250, &lt;br /&gt;
			recordStart		:false,&lt;br /&gt;
			showMin			:false,&lt;br /&gt;
			showMax			:false&lt;br /&gt;
		}, options);&lt;br /&gt;
 &lt;br /&gt;
		return this.each(function() { &lt;br /&gt;
 &lt;br /&gt;
			if($(this).hasClass(&#039;numeric-multi&#039;) &amp;amp;&amp;amp; $(&#039;input.text&#039;, this).length == 2) {&lt;br /&gt;
 &lt;br /&gt;
				// Define some vars	&lt;br /&gt;
				var $this = $(this);&lt;br /&gt;
				var qID = $(this).attr(&#039;id&#039;).split(&#039;question&#039;)[1];&lt;br /&gt;
				var rangeMinInput = $(&#039;input.text:eq(0)&#039;, $this); &lt;br /&gt;
				var rangeMaxInput = $(&#039;input.text:eq(1)&#039;, $this); &lt;br /&gt;
 &lt;br /&gt;
				// Some classes for the question and sub-questions&lt;br /&gt;
				$this.addClass(&#039;range-slider-question&#039;);&lt;br /&gt;
 &lt;br /&gt;
				// Check for pre-existing answer&lt;br /&gt;
				if($(rangeMinInput).val() != &#039;&#039; &amp;amp;&amp;amp; $(rangeMinInput).val() != &#039;&#039;) {&lt;br /&gt;
					opts.rangeStartMin = $(rangeMinInput).val();&lt;br /&gt;
					opts.rangeStartMax = $(rangeMaxInput).val();&lt;br /&gt;
				}&lt;br /&gt;
 &lt;br /&gt;
				// Insert the slider elements&lt;br /&gt;
				$(&#039;.subquestions-list&#039;, $this).before(&lt;br /&gt;
					&#039;&amp;lt;div class=&amp;quot;range-slider-wrapper&amp;quot;&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;range-slider-min&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div id=&amp;quot;range-slider-&#039;+qID+&#039;&amp;quot; class=&amp;quot;range-slider&amp;quot; style=&amp;quot;width:&#039;+opts.width+&#039;px;&amp;quot;&amp;gt; \&lt;br /&gt;
							&amp;lt;div class=&amp;quot;range-slider-callout&amp;quot; id=&amp;quot;slider-callout-min-&#039;+qID+&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
							&amp;lt;div class=&amp;quot;range-slider-callout&amp;quot; id=&amp;quot;slider-callout-max-&#039;+qID+&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;range-slider-max&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
				);&lt;br /&gt;
 &lt;br /&gt;
				// Show min/max if option is set&lt;br /&gt;
				if(opts.showMax) {&lt;br /&gt;
					$(&#039;.range-slider-max&#039;, $this).text(opts.sliderMax);&lt;br /&gt;
				}&lt;br /&gt;
				if(opts.showMin) {&lt;br /&gt;
					$(&#039;.range-slider-min&#039;, $this).text(opts.sliderMin);&lt;br /&gt;
				}&lt;br /&gt;
 &lt;br /&gt;
				// Initiate the slider&lt;br /&gt;
				var rangeMin;&lt;br /&gt;
				var rangeMax;&lt;br /&gt;
				if(opts.rangeStartMin == &#039;&#039; || opts.rangeStartMin &amp;lt; opts.sliderMin || opts.rangeStartMin &amp;gt; opts.rangeStartMax) {&lt;br /&gt;
					rangeMin = opts.sliderMin+((opts.sliderMax-opts.sliderMin)*0.3333);&lt;br /&gt;
				}&lt;br /&gt;
				else {&lt;br /&gt;
					rangeMin = opts.rangeStartMin;&lt;br /&gt;
				}&lt;br /&gt;
				if(opts.rangeStartMax == &#039;&#039; || opts.rangeStartMax &amp;gt; opts.sliderMax || opts.rangeStartMax &amp;lt; opts.rangeStartMin) {&lt;br /&gt;
					rangeMax = opts.sliderMin+((opts.sliderMax-opts.sliderMin)*0.6667);&lt;br /&gt;
				}&lt;br /&gt;
				else {&lt;br /&gt;
					rangeMax = opts.rangeStartMax;&lt;br /&gt;
				}&lt;br /&gt;
				$(&#039;#range-slider-&#039;+qID).slider({&lt;br /&gt;
					range: true,&lt;br /&gt;
					min: opts.sliderMin,&lt;br /&gt;
					max: opts.sliderMax, &lt;br /&gt;
					values: [ rangeMin, rangeMax ],&lt;br /&gt;
					step: opts.step,&lt;br /&gt;
					slide: function(event, ui) {&lt;br /&gt;
						if((ui.values[1] - ui.values[0]) &amp;lt; opts.minRangeSpan) {&lt;br /&gt;
							return false; // Nothing happens if less than minRangeSpan&lt;br /&gt;
						}&lt;br /&gt;
						$(rangeMinInput).val(ui.values[0]);&lt;br /&gt;
						$(rangeMaxInput).val(ui.values[1]);&lt;br /&gt;
						$(&#039;#slider-callout-min-&#039;+qID).text(ui.values[0]);&lt;br /&gt;
						$(&#039;#slider-callout-max-&#039;+qID).text(ui.values[1]);&lt;br /&gt;
						setTimeout(function() { &lt;br /&gt;
							$(&#039;#slider-callout-min-&#039;+qID).css({ &#039;left&#039;:$(&#039;.ui-slider-handle:eq(0)&#039;, $this).position().left - $(&#039;#slider-callout-min-&#039;+qID).outerWidth() - ($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; }).show();&lt;br /&gt;
							$(&#039;#slider-callout-max-&#039;+qID).css({ &#039;left&#039;:($(&#039;.ui-slider-handle:eq(1)&#039;, $this).position().left)+($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; }).show();&lt;br /&gt;
						}, 10);&lt;br /&gt;
					},&lt;br /&gt;
					create: function(event, ui) {&lt;br /&gt;
						// Initial values and positions&lt;br /&gt;
						if($(rangeMinInput).val() != &#039;&#039; &amp;amp;&amp;amp; $(rangeMaxInput).val() != &#039;&#039;) { // Pre-existing answer&lt;br /&gt;
							$(&#039;#slider-callout-min-&#039;+qID).text(opts.rangeStartMin);&lt;br /&gt;
							$(&#039;#slider-callout-max-&#039;+qID).text(opts.rangeStartMax);&lt;br /&gt;
						}&lt;br /&gt;
						else if(opts.recordStart &amp;amp;&amp;amp; opts.rangeStartMin &amp;amp;&amp;amp; opts.rangeStartMin &amp;amp;&amp;amp; $(rangeMinInput).val() == &#039;&#039; &amp;amp;&amp;amp; $(rangeMaxInput).val() == &#039;&#039;) { // Record the start value (if option is set)&lt;br /&gt;
							$(rangeMinInput).val(opts.rangeStartMin);&lt;br /&gt;
							$(rangeMaxInput).val(opts.rangeStartMax);&lt;br /&gt;
							$(&#039;#slider-callout-min-&#039;+qID).text(opts.rangeStartMin);&lt;br /&gt;
							$(&#039;#slider-callout-max-&#039;+qID).text(opts.rangeStartMax);&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							$(&#039;.range-slider-callout&#039;, $this).hide();&lt;br /&gt;
						} &lt;br /&gt;
						$(&#039;#slider-callout-min-&#039;+qID).css({ &#039;left&#039;:$(&#039;.ui-slider-handle:eq(0)&#039;, $this).position().left - $(&#039;#slider-callout-min-&#039;+qID).outerWidth() - ($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; });&lt;br /&gt;
						$(&#039;#slider-callout-max-&#039;+qID).css({ &#039;left&#039;:($(&#039;.ui-slider-handle:eq(1)&#039;, $this).position().left)+($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; });&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
 &lt;br /&gt;
	};&lt;br /&gt;
})( jQuery );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.css (these styles are for the default template but easily modified for others):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.range-slider-question p.tip,&lt;br /&gt;
.range-slider-question .subquestions-list {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-wrapper {&lt;br /&gt;
	clear: both;&lt;br /&gt;
	margin: 10px 0;&lt;br /&gt;
	padding-top: 20px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider,&lt;br /&gt;
.range-slider-max,&lt;br /&gt;
.range-slider-min {&lt;br /&gt;
	float: left;&lt;br /&gt;
	position: relative;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-max,&lt;br /&gt;
.range-slider-min {&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	color:#666666;&lt;br /&gt;
	line-height: 1.20;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-min {&lt;br /&gt;
	margin-right: 5px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-max {&lt;br /&gt;
	margin-left: 5px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-question .ui-slider-handle {&lt;br /&gt;
	top: -4px;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-callout {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	top: -30px;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	min-width: 1.3em;&lt;br /&gt;
	padding: 0.1em;&lt;br /&gt;
	font-size: 0.9em;&lt;br /&gt;
	color:#000000;&lt;br /&gt;
	line-height: 1;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	background: #F8F8FF;&lt;br /&gt;
	border: 1px solid #D2E0F2;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Then, add something like this to the source of your question to apply the plugin with some custom option settings (I think the comments explain the options adequately)&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
	$(document).ready(function(){&lt;br /&gt;
 &lt;br /&gt;
		$(&#039;#question{QID}&#039;).lsRangeSlider({&lt;br /&gt;
			sliderMin	:0,	// Minimum slider value (default 0)&lt;br /&gt;
			sliderMax	:100,	// Maximum slider value (default 100) &lt;br /&gt;
			rangeStartMin	:20,	// Minimum range handle start value  &lt;br /&gt;
			rangeStartMax	:80,	// Maximum range handle start value  &lt;br /&gt;
			minRangeSpan	:5,	// Minimum allowed range span &lt;br /&gt;
			step		:1,	// Slider increments (default 1)&lt;br /&gt;
			width		:400,	// Width of slider in pixels (default 250)&lt;br /&gt;
			recordStart	:true,	// Record the start value? (default no)&lt;br /&gt;
			showMin		:true,	// Show slider minimum value? (default no)&lt;br /&gt;
			showMax		:true	// Show slider maximum value? (default no)&lt;br /&gt;
		});&lt;br /&gt;
 &lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Or, to apply the plugin with the default option settings&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
	$(document).ready(function(){&lt;br /&gt;
 &lt;br /&gt;
		$(&#039;#question{QID}&#039;).lsRangeSlider();&lt;br /&gt;
 &lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Split your sample into legs (cells) that see slightly different wording and media=&lt;br /&gt;
&lt;br /&gt;
Sometimes you may need to test candidate A vs candidate B or brand 1 vs brand 2 &amp;amp;hellip; vs brand n. Typically in such cases the phrasing of the questionnaire is identical except for the brand (candidate) and some logo/media. Rather than create several questionnaires it is best to control survey logic by assigning respondents to different groups and showing them different versions of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
The logical engine in the current version (1.91) does not support this but you can still do it using the attribute fields in the token table. The instructions below are not really a workaround, but more of a translation of conditional logic to database questionnaire logic.&lt;br /&gt;
&lt;br /&gt;
This works for closed surveys. If your survey is not closed you may want to consider ways to create automatically tokens for each respondent like: &amp;quot;Create token on the fly and Edit completed survey&amp;quot;: http://bugs.limesurvey.org/view.php?id=2982&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Case A: you need different text for each version&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Step 1: you create a tokens table adding attribute fields for each variation you need: [[Tokens#User-defined attribute fields|User defined attribute fields]]. For example you may store in attribute_1 the name of the candidate, in attribute_2 the name of the party etc.&lt;br /&gt;
&lt;br /&gt;
Step 2 You export the structure of your tokens database and populate it with the relevant values for the attribute fields. Then import it back&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
http://img502.imageshack.us/img502/7425/58d0ff2c68d74366a81e6f7.png&lt;br /&gt;
&lt;br /&gt;
Please use the instructions here: [[Tokens#Importing/exporting tokens|importing and exporting tokens]], and pay attention because this can be error-prone.&lt;br /&gt;
&lt;br /&gt;
Step 3&lt;br /&gt;
&lt;br /&gt;
When creating a question use the insert replacement field icon http://img502.imageshack.us/img502/540/81a6c17d49f04f88bd52e72.png to insert your proper keyword.&lt;br /&gt;
&lt;br /&gt;
This is it. The overall process is quite simple once you get the hang of using tokens, but the database can be space-consuming if you are running on limited resources.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Case B: you need to run different media, from public hosting websites.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The process is just like in case A, just that you will populate the attribute field with unique identifiers for the media.&lt;br /&gt;
&lt;br /&gt;
See below an example on how to embed a youtube video&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;iframe allowfullscreen=&amp;quot;&amp;quot; frameborder=&amp;quot;0&amp;quot; height=&amp;quot;349&amp;quot; src=&amp;quot;http://www.youtube.com/embed/&#039;&#039;&#039;{TOKEN:ATTRIBUTE_5}&#039;&#039;&#039;?rel=0&amp;amp;amp;modestbranding=1&amp;amp;amp;loop=0&amp;amp;amp;controls=0&amp;amp;amp;autoplay=1&amp;amp;amp;rel=0&amp;amp;amp;showinfo=0&amp;amp;amp;showsearch=0&amp;amp;amp;iv_load_policy=o&amp;quot; width=&amp;quot;560&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you embed images you will want to make sure that the hotlinks for your pictures only differ by the image ID. IF not, you may use a larger portion, or maybe even the entire URL as your unique identifier. As said before, please consider how much space you are allowed for your databases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Case C: you want to run media from your server, which is organized in relevant folders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For this scenario I will assume your media is organized as follows&lt;br /&gt;
&lt;br /&gt;
Project folder ...leg folder (for each leg) ... media (1 to n). You can use a FTP client to upload this structure to you LS installation.&lt;br /&gt;
&lt;br /&gt;
In this case you only need to store the &amp;lt;leg folder&amp;gt; into the tokens table and then use this info to build your embed tag. This may free a significant amount of space,&lt;br /&gt;
&lt;br /&gt;
For example if you have the data as below...&lt;br /&gt;
&lt;br /&gt;
http://img534.imageshack.us/img534/8967/a62e6ff48476492c8795f79.png&lt;br /&gt;
&lt;br /&gt;
&amp;amp;hellip; then your embed for the party logo will look somewhere along these lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;[path to project folder]/&#039;&#039;&#039;{TOKEN:ATTRIBUTE_3}&#039;&#039;&#039;/logo1.png&amp;quot; alt=&amp;quot;&#039;&#039;&#039;{TOKEN:ATTRIBUTE_2}&#039;&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The alt tag is, of course, optional.&lt;br /&gt;
***&lt;br /&gt;
&lt;br /&gt;
You  can match and mix all 3 cases as it suites you best. You need to be a little careful when you work with tokens and embed tags, but it will save you from using intricate and error-prone survey logic or from duplicating surveys endlessly.&lt;br /&gt;
&lt;br /&gt;
=Limit the language options dropdown on the list surveys page=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;Note: This feature is implemented in Version 2.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This solution allows you to define (in config.php) a comma-delimited list of languages you want in the dropdown.  It is not optimized (it loads all the languages and then unsets everything you don&#039;t want), but is fairly easy to implement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$supportedLanguagesKeys = &#039;en,vi&#039;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filter out everything except the your selected languages (if defined).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   // if $supportedLanguagesKeys is defined in config, filter&lt;br /&gt;
&lt;br /&gt;
   if (!empty($GLOBALS[&#039;supportedLanguagesKeys&#039;]))&lt;br /&gt;
&lt;br /&gt;
   foreach (array_keys($supportedLanguages) as $lang) {&lt;br /&gt;
&lt;br /&gt;
     if (!in_array($lang, explode(&#039;,&#039;, $GLOBALS[&#039;supportedLanguagesKeys&#039;]))) {&lt;br /&gt;
&lt;br /&gt;
       unset($supportedLanguages[$lang]);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now only my languages, plus the base language, is displayed. To get rid of the redundant base language, do the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
   } elseif (!isset($surveyid))&lt;br /&gt;
&lt;br /&gt;
   {&lt;br /&gt;
&lt;br /&gt;
       global $defaultlang, $baselang;&lt;br /&gt;
&lt;br /&gt;
       $htmlcode = &amp;quot;&amp;lt;select name=\&amp;quot;select\&amp;quot; class=&#039;languagechanger&#039; onchange=\&amp;quot;javascript:window.location=this.value\&amp;quot;&amp;gt;\n&amp;quot;;&lt;br /&gt;
#    REMOVE THE NEXT LINE OR COMMENT IT OUT)&lt;br /&gt;
&lt;br /&gt;
       $htmlcode .= &amp;quot;&amp;lt;option value=\&amp;quot;$relativeurl/index.php?lang=&amp;quot;. $defaultlang .&amp;quot;$tokenparam\&amp;quot;&amp;gt;&amp;quot;.getLanguageNameFromCode($defaultlang,false).&amp;quot;&amp;lt;/option&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   foreach(getlanguagedata() as $key=&amp;gt;$val)&lt;br /&gt;
&lt;br /&gt;
       {&lt;br /&gt;
&lt;br /&gt;
           $htmlcode .= &amp;quot;\t&amp;lt;option value=\&amp;quot;$relativeurl/index.php?lang=&amp;quot;.$key.&amp;quot;$tokenparam\&amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
           if ($key == $baselang) $htmlcode .= &amp;quot; selected=&#039;selected&#039;&amp;quot;; /* ADD THIS TO SET SELECTION */&lt;br /&gt;
&lt;br /&gt;
           $htmlcode .= &amp;quot;&amp;gt;&amp;quot;.getLanguageNameFromCode($key,false).&amp;quot;&amp;lt;/option&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       $htmlcode .= &amp;quot;&amp;lt;/select&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically it just pre-selects the base language from the list.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Date_max&amp;diff=57925</id>
		<title>QS:Date max</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Date_max&amp;diff=57925"/>
		<updated>2013-10-19T21:58:51Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: update feature: no more curly braces in date min/max fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Maximum date (date_max){{NewIn|2.05}} === &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This question attribute can be used to set the maximum value for the calendar question. It applies to both, the popup-variant of the calendar and the dropdown fields. However, for the dropdown fields, only the year is used as a maximum.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Any date value in format YYYY-MM-DD&#039;&#039;&#039; (eg., 2013-08-24)&lt;br /&gt;
#&#039;&#039;&#039;Any year value&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Reference to another date/time question&#039;&#039;&#039; (eg., dateofbirth)&lt;br /&gt;
#&#039;&#039;&#039;Expressions&#039;&#039;&#039;, work on a following page, not on the same: E.g, You can use a date from a previous answer + 365 days as a maximum for the present question by entering: date(&amp;quot;Y-m-d&amp;quot;,strtotime(departuredate)+365*60*60*24). The question with the code &#039;departuredate&#039; has to be on a previous page in the survey (either in a different group in group by group mode or use question by question mode). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Advanced Question Settings]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=QS:Date_min&amp;diff=57924</id>
		<title>QS:Date min</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=QS:Date_min&amp;diff=57924"/>
		<updated>2013-10-19T21:56:54Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: update feature: no more curly braces in date min/max fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Minimum date (date_min){{NewIn|2.05}} === &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This question attribute can be used to set the minimum value for the calendar question. It applies to both, the popup-variant of the calendar and the dropdown fields. However, for the dropdown fields, only the year is used as a minimum.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Valid values&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Any date value in format YYYY-MM-DD&#039;&#039;&#039; (eg., 2013-08-24)&lt;br /&gt;
#&#039;&#039;&#039;Any year value&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Reference to another date/time question&#039;&#039;&#039;(eg., dateofbirth)&lt;br /&gt;
#&#039;&#039;&#039;Expressions&#039;&#039;&#039;, work on a following page, not on the same: E.g, You can use a date from a previous answer + 3 days as a minimum for the present question by entering: date(&amp;quot;Y-m-d&amp;quot;,strtotime(departuredate)+3*60*60*24). The question with the code &#039;departuredate&#039; has to be on a previous page in the survey (either in a different group in group by group mode or use question by question mode). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Question Settings]][[Category:Advanced Question Settings]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=57776</id>
		<title>Exporting results</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=57776"/>
		<updated>2013-10-16T20:00:49Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: stata export: add LS version info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt; &amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Once your survey is active you can start browsing responses and export them. To get to the survey response overview click...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
=Export to application (Excel/.csv)= &amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
On top of the browse responses page several export options are listed, beginning with &#039;&#039;export to CSV/application&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
When exporting results to an application there are several filter options which are separated into:&lt;br /&gt;
*&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
** Set a range like export records X to Y&lt;br /&gt;
** Set to export all records OR completed records only OR incomplete records only&lt;br /&gt;
*&#039;&#039;&#039;Questions&#039;&#039;&#039;&lt;br /&gt;
** Set how the heading should look like: Abbreviated heading OR full headings OR question codes&lt;br /&gt;
** Convert spaces in question text to underscores&lt;br /&gt;
*&#039;&#039;&#039;Answers&#039;&#039;&#039;&lt;br /&gt;
** You can either export full answers or convert answer codes Y and N to a defined variable&lt;br /&gt;
*&#039;&#039;&#039;Format&#039;&#039;&#039;&lt;br /&gt;
** Microsoft Word (latin charset)&lt;br /&gt;
** Microsoft Excel (all charsets)&lt;br /&gt;
** CSV File (all charsets)&lt;br /&gt;
** PDF&lt;br /&gt;
*&#039;&#039;&#039;Column Control&#039;&#039;&#039;&lt;br /&gt;
** Set which answers should be exported. All answers in this list are represented by their [[SGQA identifier|SGQA identifier]]&lt;br /&gt;
** Set which &#039;&#039;&#039;&#039;&#039;token&#039;&#039;&#039;&#039;&#039; data should be exported. This option is only available if your survey is &#039;&#039;&#039;&#039;&#039;not anonymous&#039;&#039;&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
=SPSS Export= &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
To export your response data to SPSS go to Responses &amp;amp; Statistics section and click the icon to export to SPSS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
[[File:spss_toolbar.png]]&lt;br /&gt;
&lt;br /&gt;
==Export and filter data== &amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
When exporting data to SPSS there are two filter options. You can select &#039;&#039;&#039;which data&#039;&#039;&#039; should be selected (&#039;&#039;all records/completed records only/incompleted records only&#039;&#039;) and for &#039;&#039;&#039;which SPSS version&#039;&#039;&#039; the export files will be used (&#039;&#039;prior version 16/16 or up&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
SPSS export includes two files:&lt;br /&gt;
# a syntax file (&#039;&#039;survey_xxxx_SPSS_syntax_file.sps&#039;&#039;)&lt;br /&gt;
# and a data file (&#039;&#039;survey_xxxx_SPSS_data_file.dat&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
After having downloaded these files you can open them using a raw text editor like notepad to take a look how the exported data looks like. The syntax file holds the commands that should be run to import the data. It is like a programming language inside SPSS. The data file contains a comma separated file with all data. If you just import this data as csv via a wizard you loose information about questions, labelsets etc. so we don&#039;t do that.&lt;br /&gt;
&lt;br /&gt;
==Import data in SPSS== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Place the two files in the same folder on your drive (example: &#039;&#039;c:\data\survey_xxxx_SPSS_syntax_file.sps&#039;&#039; and &#039;&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
We have two options now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
1. When using Windows use the explorer to browse to the folder used above. If SPSS is connected to the .sps file extension you can just open the file by double clicking it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
[[File:spss_explorer-screenshot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Now you can just choose Run-&amp;gt;All from the opened window and after some time have your output dataset that you can save as a normal .sav file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
2. Sometimes the easy solution above does not work. Then you can proceed as follows:&lt;br /&gt;
* Open SPSS&lt;br /&gt;
* Choose File-&amp;gt;Open-&amp;gt;Syntax&lt;br /&gt;
* Choose the appropriate file: c:\data\survey_xxxx_SPSS_syntax_file.sps&lt;br /&gt;
* Now the syntax opens.&lt;br /&gt;
* Change the line that reads &#039;&#039;/FILE=&#039;survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039; to include the path where the files are: &#039;&#039;/FILE=&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039;&lt;br /&gt;
* Now mark the whole command text and choose Run-&amp;gt;All from the menu and after a while (please be patient) you have the dataset with all info like questions, labels etc.&lt;br /&gt;
&lt;br /&gt;
=R Export= &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
Feel free to add more information if you have some!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
The freeware software [http://www.r-project.org/ R] is an alternative for SPSS. It is closely linked to the SPSS export in LimeSurvey. Instructions on how to import your dataset in R:&lt;br /&gt;
#Download the syntax file and the data file.&lt;br /&gt;
#Store both files in R work listing (use &#039;&#039;getwd()&#039;&#039; and &#039;&#039;setwd()&#039;&#039; in R command window to set and indicate).&lt;br /&gt;
#Enter &#039;&#039;source(&amp;quot;Surveydata_syntax.R&amp;quot;, encoding = &amp;quot;UTF-8&amp;quot;)&#039;&#039; in R command window.&lt;br /&gt;
&lt;br /&gt;
=STATA-xml Export= &amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;This option is available from version 2.05&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
STATA is a commercial data analysis and statistical software package. &lt;br /&gt;
&lt;br /&gt;
This export routine was created to facilitate rapid analysis of data collected with LimeSurvey. It creates an XML-file in STATAs proprietary format, which can be imported independent of the platform STATA is run on. Using this format offeres several advantages over importing plain CSV files:&lt;br /&gt;
*Data sets are fully labelled including variable labels (question, subquestion) and value labels (answers, if applicable).&lt;br /&gt;
*Dates are already transformed to STATAs internal date format and thus can directly be used to calculate difference between days etc.&lt;br /&gt;
*Variable names are, if necessary, converted to a STATA compatible format.&lt;br /&gt;
*Data formats of variables (string, integer, float, etc.) are already set according to the underlying data. (No more numbers encoded as strings :) ). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Howto load the file in STATA:&lt;br /&gt;
In STATA&#039;s menu, click on File, Import, xml-data. Choose browse to navigate to your exported file and click &#039;OK&#039;. That should be it.&lt;br /&gt;
If you prefer STATA&#039;s binary .dta files, you can just save your data again in this format.&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Be aware: Due to a limitation in STATA&#039;s data format, the string length has a maximum of 244 characters. Everything &amp;gt; 244 characters is not exported.&lt;br /&gt;
&lt;br /&gt;
=VVExport ([[File:exportvv.png]]) and VVImport ([[File:importvv.png]])= &amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
Once you&#039;ve begun collecting responses, there may be occasions where you need to be able to directly edit and modify large quantities of data from your responses table, where a spreadsheet tool may be more useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
VVExport (the &amp;quot;VV&amp;quot; stands for vertical verification) allow you to export your responses table into a .csv file. So long as the general structure of the file remains intact, you can then edit values within it, and the import the file again into your responses table using the &amp;quot;VVImport&amp;quot; feature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Things you should be aware of:&lt;br /&gt;
* If you want to import responses using &amp;quot;VVImport&amp;quot; make sure to check whether the responses should be added to the existing responses or all responses should be overwritten.&lt;br /&gt;
* If you are trying to import responses from a different yet identical (e.g. identical questions/answers from another survey) make sure you are using the correct vv file and that the first two lines of the .csv-file are correct.&lt;br /&gt;
* If you import a survey to your LimeSurvey installation the SID will (if possible) not change. The group id and question id however might change. So you might have to adjust the first two heading lines to match the new group id/question id. See &#039;&#039;&#039;Adjusting vv file headings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exporting a VV survey file== &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
[[File:limesurveyExportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
When you choose to export responses using VVExport you will be given the option to choose which survey to be exported, whether you want to export all responses or complete responses only or incomplete responses only. The file extension allows you to choose which extension the exported file will have. For easy use .csv should be chosen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
A &#039;vv survey file&#039; allows you to import the responses to a survey when the question/answer combinations have changed. Effectively this allows you to add or remove questions in an active survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Clicking on &amp;quot;Export a VV survey file&amp;quot; will then produce a tab delimited file that can be opened by Excel or similar style spreadsheet program. The first two rows of the spreadsheet are the column labels. The first row is a &amp;quot;human readable&amp;quot; column heading that details the name of the question/answer field. The second row is the internal PHP/database column name for that response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
You should not modify the first two rows of this spreadsheet if you want to be able to &amp;quot;import&amp;quot; the data back into LimeSurvey at a later point.&lt;br /&gt;
&lt;br /&gt;
==Editing a VV survey file== &amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
When a vv file has been successfully exported you can use a spreadsheet tool like Microsoft Excel or alternatives to open and edit the file. If you have to choose the column seperator use &amp;quot;Tabulator&amp;quot;. If you are using mutated vowels (like ä, ö or ü in the german language) make sure you use &amp;quot;UTF-8&amp;quot; as used character set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
If you are using Microsoft Excel to edit the exported vv file, you should know that excel destroys the original data structure of the file. This causes an error when you try to re-import the edited vv file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
But there is a workaround which allows you to edit the file with excel and import it without problems, as one of our users found out (see &amp;quot;Importing a VV survey file&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
As mentioned before the first two rows of the vv file are headers so you should not change them. There are different use cases for importing a vv file so we will differentiate between adding new responses to a survey and overwriting all responses of the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
example (structure of a vv file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding new responses to the existing responses of a survey=== &amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
If you want to add new responses to the survey you can delete every row past row two (the both headers should not be deleted) and add the new responses using one response for each row. You can add the responses by entering them manually or copy/paste the reponses from e.g. another vv file (be carefull to add the responses only and not the header.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
Step 1: Open file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
Step 2: Delete old answers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
Step 3: Add new answers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
17    10.11.11 12:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
18    24.11.11 14:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
You can then import the survey, make sure not to override the existing responses (see &amp;quot;Importing a VV survey file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===Overwriting all responses of the survey=== &amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
If you want to overwrite all responses of the survey you can just add the new responses to the end of the file. As mentoined in &amp;quot;Adding new responses to the existing responses of a survey&amp;quot; you can either enter them manually or copy/paste them from another vv file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
Step 1: Open file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
Step 2: Add new answers (at the end of the document)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
17    10.11.11 12:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
18    24.11.11 14:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
You can then import the survey, make sure to override the existing responses (see &amp;quot;Importing a VV survey file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===Adjusting vv file headings=== &amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
When importing a survey it might happen that the survey id stays the same while the group and question ids change. In order to import the survey results you have to adjust the headings of the vv file. How to import a new survey and the survey results will be explained below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
Step 1: Import the new survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
Step 2: Activate the new survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
Step 3: Export the &amp;quot;empty&amp;quot; results of the new survey as vv file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Step 4: Open the &amp;quot;empty&amp;quot; vv file (new SGQA: 46492X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;45&amp;lt;/span&amp;gt;X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;3269&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X45X3269&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
Step 5: Copy the first two lines/rows from the &amp;quot;empty&amp;quot; vv file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:108--&amp;gt;&lt;br /&gt;
Step 6: Open the exported vv file from the old LimeSurvey installation (old SGQA: 46492X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;40&amp;lt;/span&amp;gt;X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;1991&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
Step 7: Paste the new headings (copied two lines/rows) into the first two lines/rows of the old vv export file (now the SGQA should be 46492X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;45&amp;lt;/span&amp;gt;X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;3269&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X45X3269&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
You can now import the vv file and the headings are correct.&lt;br /&gt;
&lt;br /&gt;
==Importing a VV survey file== &amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
[[File:LimeSurveyImportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
As long as the first two lines are intact, you can then import the data in your vv survey file back into an active LimeSurvey survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
If you used Microsoft Excel to edit the exported vv file, the data structure of this file may be corrupted, so LimeSurvey is not able to import the edited file. You can try the following workaround to get the import working without an error:&lt;br /&gt;
*Open your exported vv file in Excel and do your changes (I guess you already did that)&lt;br /&gt;
*Save it as tab-separated text file (It creates a new file with the extension .txt)&lt;br /&gt;
*Do another &amp;quot;clean&amp;quot; vv export from LimeSurvey&lt;br /&gt;
*Open this new exported vv file with a texteditor like notepad or something else (I used textwrangler on mac)&lt;br /&gt;
*Press CTRL + A to mark all of the content and delete it&lt;br /&gt;
*Open the Excel edited vv file (the tab separated .txt file) with a texteditor and press CTRL + A to mark all of the content&lt;br /&gt;
*Press CTRL + C to copy the content and paste it into the new (now empty) vv file&lt;br /&gt;
*Press CTRL + S to save the file as it is (as .csv)&lt;br /&gt;
*Now try to import this file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Then, from the browse screen, choose the &amp;quot;Import a VV Survey file&amp;quot; icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
The &amp;quot;Import a VV Survey File&amp;quot; screen needs you to choose the &amp;quot;vvexport&amp;quot; file you are importing. If you choose to &amp;quot;Exclude Record IDs&amp;quot; the records will be imported and brand new Record ID&#039;s will be generated for them (use this option for the use case &amp;quot;Adding new responses to the existing responses of a survey&amp;quot;). If you un-check this box, then the original record id&#039;s will be imported (use this option for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
There are a range of options you can choose that tell LimeSurvey how to deal with double or multiple entries.&lt;br /&gt;
*Report an error (and skip the new record).&lt;br /&gt;
*Renumber the new record&lt;br /&gt;
*Replace the existing record (uses this for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=Other export options= &amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Export a single response== &amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
If you want to export an individual response, you can do it in 3 ways:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
1. Login to limesurvey admin backend, choose your survey, goto &amp;quot;Edit survey settings&amp;quot; -&amp;gt; &amp;quot;Notification and data management&amp;quot; and make sure you receive basic email notifications.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
Every time someone has completed a survey, you will receive an email with a link: &amp;quot;Click the following link to see the individual response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
This will take you to a page with a button above the data saying &amp;quot;Export this response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
2. Login to limesurvey admin backend, choose your survey and &amp;quot;Browse responses for this survey&amp;quot;. Click on &amp;quot;Display responses&amp;quot; and the id number you want to export in the left column. Then you can click on &amp;quot;Export this survey&amp;quot; above the data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
3. Login to limesurvey admin backend, choose your survey and &amp;quot;Export results to application&amp;quot;. In the last field above &amp;quot;Export data&amp;quot; you can choose which entry you want to export.&lt;br /&gt;
&lt;br /&gt;
==Match responses from different surveys== &amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
If you want to track survey responses for particular individuals over time, LimeSurvey can help you do that. A possible use case is to track group responses before and after the group takes a particular seminar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
The steps to implementing this are as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:143--&amp;gt;&lt;br /&gt;
1. Create the survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:144--&amp;gt;&lt;br /&gt;
2. Make sure the survey is non-anonymous and uses tokens. To create a non-anonymous survey:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:145--&amp;gt;&lt;br /&gt;
a - Click on the icon General settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:147--&amp;gt;&lt;br /&gt;
b - Then under the Tokens tab select &amp;quot;No&amp;quot; for Anonymized responses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:149--&amp;gt;&lt;br /&gt;
3. Activate the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:150--&amp;gt;&lt;br /&gt;
When you activate the survey, click on the &amp;quot;switch to closed-access mode&amp;quot; button to create the token table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:151--&amp;gt;&lt;br /&gt;
[[File:switch_to_closed.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:152--&amp;gt;&lt;br /&gt;
4. Populate the tokens table with whatever method you wish (follow the instructions found at the [[Tokens]] page ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:153--&amp;gt;&lt;br /&gt;
5. Export the survey results and make sure you include the token information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:154--&amp;gt;&lt;br /&gt;
To export click &#039;&#039;browse results&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:155--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:156--&amp;gt;&lt;br /&gt;
...and then &#039;&#039;export&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:157--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:158--&amp;gt;&lt;br /&gt;
Remember to choose one or more elements from the token table to associate with the survey responses:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:159--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:160--&amp;gt;&lt;br /&gt;
6. When you run the survey again, which can easily be done by copying the survey and tokens table using export/import, just repeat the steps, and make sure the same query is used to build the csv token import file.&lt;br /&gt;
&lt;br /&gt;
=Problems &amp;amp; Solutions= &amp;lt;!--T:161--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Excel== &amp;lt;!--T:162--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Modifying responses in Excel prior to Import=== &amp;lt;!--T:163--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:164--&amp;gt;&lt;br /&gt;
In order to make multiple changes to responses, you may choose to Export and open a file in Excel. Make changes to the data (other than the top lines) and then save as a .txt file. If you save as .csv, Excel uses comma-delimits which will not import into LimeSurvey. By saving as a .txt file, Excel saves as a tab-delimited file which imports back into LimeSurvey.&lt;br /&gt;
&lt;br /&gt;
===Edit .csv with Excel=== &amp;lt;!--T:165--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:166--&amp;gt;&lt;br /&gt;
In general &#039;&#039;&#039;&#039;&#039;we do not recommend to use Excel to edit the exported .csv files&#039;&#039;&#039;&#039;&#039; because Excel does some changes to the internal data structure which results in a failing import. If you nevertheless want to use Excel you have to set the seperator for Excel to a comma in System Control (Windows Systems):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:167--&amp;gt;&lt;br /&gt;
System Control|Region- Languageoptions|Regional Settings, customize...|Tab Numbers|Digit grouping symbol| replace ; with ,&lt;br /&gt;
&lt;br /&gt;
===Workaround to edit .csv files with Excel=== &amp;lt;!--T:168--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:169--&amp;gt;&lt;br /&gt;
Using Excel for editing questions can prevent you from being able to re-import them. But editing is the way to go if you have more than 5 or so options or ranking options, want to use Excel capabilities like sorting, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:170--&amp;gt;&lt;br /&gt;
This is a partial workaround that seems to work in 1.82-essentially, only use Excel on the part of the file that is the data:&lt;br /&gt;
* Export a question similar to what you would like to reuse as .csv file&lt;br /&gt;
* Open the CSV file in a rawtext editor&lt;br /&gt;
* Copy the part that has the answers to Excel, and parse it with Text to Columns or equivalent.&lt;br /&gt;
* Use the talent of Excel to allow pasting text in columns to paste in 20, 50, 100 answers, as you wish&lt;br /&gt;
* Save the file as Excel CSV, which will likely have no quotes.&lt;br /&gt;
* Open this file in the editor, and Select All, Copy&lt;br /&gt;
* Go back to the file you opened with the rawtext editor&lt;br /&gt;
* Paste over the answers there&lt;br /&gt;
* Save AS, with a different name, maybe one that you can remember for reuse&lt;br /&gt;
* Import this file.&lt;br /&gt;
&lt;br /&gt;
===Excel - export limited to 255 columns=== &amp;lt;!--T:171--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:172--&amp;gt;&lt;br /&gt;
Due to limitations in Excel (versions lower and equal to 2003), LimeSurvey can export only 255 columns at the same time. Microsoft has proposed a [http://support.microsoft.com/kb/272729/en-us workaround as a VB macro].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:173--&amp;gt;&lt;br /&gt;
Although newer spreadsheets (Excel &amp;gt;= 2007, OpenOffice) can display more than 255 columns, the internal module used by LimeSurvey still can&#039;t export more than 255 columns.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:174--&amp;gt;&lt;br /&gt;
Two workarounds are however possible, use one of the following solutions:&lt;br /&gt;
* Either export to CSV and import in your spreadsheet&lt;br /&gt;
* Or use multiple exports (selecting at most 250 columns at a time), then merge the exported results&lt;br /&gt;
&lt;br /&gt;
===Excel/.csv - export fails=== &amp;lt;!--T:175--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:176--&amp;gt;&lt;br /&gt;
If you are unable to export your data to excel or into a .csv file please try to clear your browser cache and cookies.&lt;br /&gt;
&lt;br /&gt;
==CSV== &amp;lt;!--T:177--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSV defaults to 255 columns=== &amp;lt;!--T:178--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:179--&amp;gt;&lt;br /&gt;
When exporting large surveys the GUI by default limits the export to the first 255 columns. To work around this, simply mark all data sets for export.&lt;br /&gt;
&lt;br /&gt;
==SPSS export== &amp;lt;!--T:180--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===General steps=== &amp;lt;!--T:181--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:182--&amp;gt;&lt;br /&gt;
To import the LimeSurvey response data please use the following steps:&lt;br /&gt;
#Click on the &#039;Export to SPSS&#039; icon.&lt;br /&gt;
#From the select boxes select which responses you want to export and your SPSS version.&lt;br /&gt;
#Download both files, the .sps (SPSS syntax command file) and .dat file (data file)&lt;br /&gt;
#Open the .sps file with SPSS by opening SPSS, then select &#039;Choose another type of file&#039; and select the downloaded .sps file.&lt;br /&gt;
#Now an editor opens inside SPS where you can edit the commands in that file. Look for the line that starts with &#039;/FILE=...&#039;&lt;br /&gt;
#Edit that line and adjust the path so it points to your .dat file. Example: Your *.dat file is in c:\temp so set this line to  /FILE=&#039;c:\temp\survey_(xxxx)_SPSS_data_file.dat&#039;&lt;br /&gt;
#Now select all commands inside the editor by pressing CTRL-A.&lt;br /&gt;
#From the SPSS menu select Run/All.&lt;br /&gt;
#Be patient, it will take some time to import all data and labels. Check the status bar for the progress.&lt;br /&gt;
#Done!&lt;br /&gt;
&lt;br /&gt;
===Possible error messages in SPSS=== &amp;lt;!--T:183--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====ERROR. command name:Get Data==== &amp;lt;!--T:184--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:185--&amp;gt;&lt;br /&gt;
If you receive the error message &#039;&#039;ERROR. command name:Get Data. 2267 Unexpected Token missing.&#039;&#039; please edit the forth line of your syntax file so it points to the absolute path of the data file like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:186--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;C:\spss\Data\limesurvey\SPSS\survey_35276_SPSS_data_file.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Error: &amp;quot;Text value unmappable in the current server locale&amp;quot;==== &amp;lt;!--T:187--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:188--&amp;gt;&lt;br /&gt;
This error can happen if you try to open an exported syntax file in SPSS 16. The solution is to force SPSS to interpret the syntax file as unicode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:189--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;Open SPSS. Go to Edit &amp;gt; Options &amp;gt; Character encoding for data and syntax. Change the option to &amp;quot;unicode&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:190--&amp;gt;&lt;br /&gt;
LimeSurvey data can now be exported to SPSS 16 without any problem.&lt;br /&gt;
&lt;br /&gt;
===Define the scale to use for your variable=== &amp;lt;!--T:191--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:192--&amp;gt;&lt;br /&gt;
It is possible to override the default scale used for a variable by setting the question attribute [[Advanced question settings#scale_export|scale_export]] to the appropriate value.&lt;br /&gt;
&lt;br /&gt;
==VV Export/Import== &amp;lt;!--T:193--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VV - Problems with vv import=== &amp;lt;!--T:194--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:195--&amp;gt;&lt;br /&gt;
If you have difficulties importing a vv file, try a Tab-delimited file and it should work fine.&lt;br /&gt;
&lt;br /&gt;
==Other problems and solutions== &amp;lt;!--T:196--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copying responses into a different survey (using tokens)=== &amp;lt;!--T:197--&amp;gt;&lt;br /&gt;
# Create new survey, add a dummy response, export the response file, open in Excel. This creates the format for the new import file.&lt;br /&gt;
# Export the responses from the old survey, including tokens, open in Excel.&lt;br /&gt;
# Use this data to create an Excel worksheet for the standard token file import (eg. Firstname, Lastname, Token, Email address, Email status (OK), Language (En)). Save as .csv and import tokens to the new survey in LimeSurvey.&lt;br /&gt;
# In Excel, copy the response fields from the old survey responses that you want in the new survey (including token) into the appropriate Excel column of the new survey format.&lt;br /&gt;
# Save as .txt file.&lt;br /&gt;
# Use VVImport to import the new data into the new survey.&lt;br /&gt;
# Possible import errors include date format - some system date fields do not allow a NULL value, some do. If the date looks okay but gives an error, use the Excel cell format &amp;quot;2009-12-01&amp;quot;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=57775</id>
		<title>Exporting results</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Exporting_results&amp;diff=57775"/>
		<updated>2013-10-16T19:47:02Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Add STATA export&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages /&amp;gt; &amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Once your survey is active you can start browsing responses and export them. To get to the survey response overview click...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
=Export to application (Excel/.csv)= &amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
On top of the browse responses page several export options are listed, beginning with &#039;&#039;export to CSV/application&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
When exporting results to an application there are several filter options which are separated into:&lt;br /&gt;
*&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
** Set a range like export records X to Y&lt;br /&gt;
** Set to export all records OR completed records only OR incomplete records only&lt;br /&gt;
*&#039;&#039;&#039;Questions&#039;&#039;&#039;&lt;br /&gt;
** Set how the heading should look like: Abbreviated heading OR full headings OR question codes&lt;br /&gt;
** Convert spaces in question text to underscores&lt;br /&gt;
*&#039;&#039;&#039;Answers&#039;&#039;&#039;&lt;br /&gt;
** You can either export full answers or convert answer codes Y and N to a defined variable&lt;br /&gt;
*&#039;&#039;&#039;Format&#039;&#039;&#039;&lt;br /&gt;
** Microsoft Word (latin charset)&lt;br /&gt;
** Microsoft Excel (all charsets)&lt;br /&gt;
** CSV File (all charsets)&lt;br /&gt;
** PDF&lt;br /&gt;
*&#039;&#039;&#039;Column Control&#039;&#039;&#039;&lt;br /&gt;
** Set which answers should be exported. All answers in this list are represented by their [[SGQA identifier|SGQA identifier]]&lt;br /&gt;
** Set which &#039;&#039;&#039;&#039;&#039;token&#039;&#039;&#039;&#039;&#039; data should be exported. This option is only available if your survey is &#039;&#039;&#039;&#039;&#039;not anonymous&#039;&#039;&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
=SPSS Export= &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
To export your response data to SPSS go to Responses &amp;amp; Statistics section and click the icon to export to SPSS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
[[File:spss_toolbar.png]]&lt;br /&gt;
&lt;br /&gt;
==Export and filter data== &amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
When exporting data to SPSS there are two filter options. You can select &#039;&#039;&#039;which data&#039;&#039;&#039; should be selected (&#039;&#039;all records/completed records only/incompleted records only&#039;&#039;) and for &#039;&#039;&#039;which SPSS version&#039;&#039;&#039; the export files will be used (&#039;&#039;prior version 16/16 or up&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
SPSS export includes two files:&lt;br /&gt;
# a syntax file (&#039;&#039;survey_xxxx_SPSS_syntax_file.sps&#039;&#039;)&lt;br /&gt;
# and a data file (&#039;&#039;survey_xxxx_SPSS_data_file.dat&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
After having downloaded these files you can open them using a raw text editor like notepad to take a look how the exported data looks like. The syntax file holds the commands that should be run to import the data. It is like a programming language inside SPSS. The data file contains a comma separated file with all data. If you just import this data as csv via a wizard you loose information about questions, labelsets etc. so we don&#039;t do that.&lt;br /&gt;
&lt;br /&gt;
==Import data in SPSS== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Place the two files in the same folder on your drive (example: &#039;&#039;c:\data\survey_xxxx_SPSS_syntax_file.sps&#039;&#039; and &#039;&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
We have two options now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
1. When using Windows use the explorer to browse to the folder used above. If SPSS is connected to the .sps file extension you can just open the file by double clicking it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
[[File:spss_explorer-screenshot.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Now you can just choose Run-&amp;gt;All from the opened window and after some time have your output dataset that you can save as a normal .sav file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
2. Sometimes the easy solution above does not work. Then you can proceed as follows:&lt;br /&gt;
* Open SPSS&lt;br /&gt;
* Choose File-&amp;gt;Open-&amp;gt;Syntax&lt;br /&gt;
* Choose the appropriate file: c:\data\survey_xxxx_SPSS_syntax_file.sps&lt;br /&gt;
* Now the syntax opens.&lt;br /&gt;
* Change the line that reads &#039;&#039;/FILE=&#039;survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039; to include the path where the files are: &#039;&#039;/FILE=&#039;c:\data\survey_xxxx_SPSS_data_file.dat&#039; &#039;&#039;&lt;br /&gt;
* Now mark the whole command text and choose Run-&amp;gt;All from the menu and after a while (please be patient) you have the dataset with all info like questions, labels etc.&lt;br /&gt;
&lt;br /&gt;
=R Export= &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
Feel free to add more information if you have some!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
The freeware software [http://www.r-project.org/ R] is an alternative for SPSS. It is closely linked to the SPSS export in LimeSurvey. Instructions on how to import your dataset in R:&lt;br /&gt;
#Download the syntax file and the data file.&lt;br /&gt;
#Store both files in R work listing (use &#039;&#039;getwd()&#039;&#039; and &#039;&#039;setwd()&#039;&#039; in R command window to set and indicate).&lt;br /&gt;
#Enter &#039;&#039;source(&amp;quot;Surveydata_syntax.R&amp;quot;, encoding = &amp;quot;UTF-8&amp;quot;)&#039;&#039; in R command window.&lt;br /&gt;
&lt;br /&gt;
=STATA-xml Export= &amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
STATA is a commercial data analysis and statistical software package. &lt;br /&gt;
&lt;br /&gt;
This export routine was created to facilitate rapid analysis of data collected with LimeSurvey. It creates an XML-file in STATAs proprietary format, which can be imported independent of the platform STATA is run on. Using this format offeres several advantages over importing plain CSV files:&lt;br /&gt;
*Data sets are fully labelled including variable labels (question, subquestion) and value labels (answers, if applicable).&lt;br /&gt;
*Dates are already transformed to STATAs internal date format and thus can directly be used to calculate difference between days etc.&lt;br /&gt;
*Variable names are, if necessary, converted to a STATA compatible format.&lt;br /&gt;
*Data formats of variables (string, integer, float, etc.) are already set according to the underlying data. (No more numbers encoded as strings :) ). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Howto load the file in STATA:&lt;br /&gt;
In STATA&#039;s menu, click on File, Import, xml-data. Choose browse to navigate to your exported file and click &#039;OK&#039;. That should be it.&lt;br /&gt;
If you prefer STATA&#039;s binary .dta files, you can just save your data again in this format.&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Be aware: Due to a limitation in STATA&#039;s data format, the string length has a maximum of 244 characters. Everything &amp;gt; 244 characters is not exported.&lt;br /&gt;
&lt;br /&gt;
=VVExport ([[File:exportvv.png]]) and VVImport ([[File:importvv.png]])= &amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
Once you&#039;ve begun collecting responses, there may be occasions where you need to be able to directly edit and modify large quantities of data from your responses table, where a spreadsheet tool may be more useful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
VVExport (the &amp;quot;VV&amp;quot; stands for vertical verification) allow you to export your responses table into a .csv file. So long as the general structure of the file remains intact, you can then edit values within it, and the import the file again into your responses table using the &amp;quot;VVImport&amp;quot; feature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Things you should be aware of:&lt;br /&gt;
* If you want to import responses using &amp;quot;VVImport&amp;quot; make sure to check whether the responses should be added to the existing responses or all responses should be overwritten.&lt;br /&gt;
* If you are trying to import responses from a different yet identical (e.g. identical questions/answers from another survey) make sure you are using the correct vv file and that the first two lines of the .csv-file are correct.&lt;br /&gt;
* If you import a survey to your LimeSurvey installation the SID will (if possible) not change. The group id and question id however might change. So you might have to adjust the first two heading lines to match the new group id/question id. See &#039;&#039;&#039;Adjusting vv file headings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exporting a VV survey file== &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
[[File:limesurveyExportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
When you choose to export responses using VVExport you will be given the option to choose which survey to be exported, whether you want to export all responses or complete responses only or incomplete responses only. The file extension allows you to choose which extension the exported file will have. For easy use .csv should be chosen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
A &#039;vv survey file&#039; allows you to import the responses to a survey when the question/answer combinations have changed. Effectively this allows you to add or remove questions in an active survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Clicking on &amp;quot;Export a VV survey file&amp;quot; will then produce a tab delimited file that can be opened by Excel or similar style spreadsheet program. The first two rows of the spreadsheet are the column labels. The first row is a &amp;quot;human readable&amp;quot; column heading that details the name of the question/answer field. The second row is the internal PHP/database column name for that response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
You should not modify the first two rows of this spreadsheet if you want to be able to &amp;quot;import&amp;quot; the data back into LimeSurvey at a later point.&lt;br /&gt;
&lt;br /&gt;
==Editing a VV survey file== &amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
When a vv file has been successfully exported you can use a spreadsheet tool like Microsoft Excel or alternatives to open and edit the file. If you have to choose the column seperator use &amp;quot;Tabulator&amp;quot;. If you are using mutated vowels (like ä, ö or ü in the german language) make sure you use &amp;quot;UTF-8&amp;quot; as used character set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
If you are using Microsoft Excel to edit the exported vv file, you should know that excel destroys the original data structure of the file. This causes an error when you try to re-import the edited vv file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
But there is a workaround which allows you to edit the file with excel and import it without problems, as one of our users found out (see &amp;quot;Importing a VV survey file&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
As mentioned before the first two rows of the vv file are headers so you should not change them. There are different use cases for importing a vv file so we will differentiate between adding new responses to a survey and overwriting all responses of the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
example (structure of a vv file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding new responses to the existing responses of a survey=== &amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
If you want to add new responses to the survey you can delete every row past row two (the both headers should not be deleted) and add the new responses using one response for each row. You can add the responses by entering them manually or copy/paste the reponses from e.g. another vv file (be carefull to add the responses only and not the header.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
Step 1: Open file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
Step 2: Delete old answers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
Step 3: Add new answers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
17    10.11.11 12:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
18    24.11.11 14:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
You can then import the survey, make sure not to override the existing responses (see &amp;quot;Importing a VV survey file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===Overwriting all responses of the survey=== &amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
If you want to overwrite all responses of the survey you can just add the new responses to the end of the file. As mentoined in &amp;quot;Adding new responses to the existing responses of a survey&amp;quot; you can either enter them manually or copy/paste them from another vv file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
Step 1: Open file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
Step 2: Add new answers (at the end of the document)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
17    10.11.11 12:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
18    24.11.11 14:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
You can then import the survey, make sure to override the existing responses (see &amp;quot;Importing a VV survey file&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===Adjusting vv file headings=== &amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
When importing a survey it might happen that the survey id stays the same while the group and question ids change. In order to import the survey results you have to adjust the headings of the vv file. How to import a new survey and the survey results will be explained below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
Step 1: Import the new survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
Step 2: Activate the new survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
Step 3: Export the &amp;quot;empty&amp;quot; results of the new survey as vv file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Step 4: Open the &amp;quot;empty&amp;quot; vv file (new SGQA: 46492X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;45&amp;lt;/span&amp;gt;X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;3269&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X45X3269&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
Step 5: Copy the first two lines/rows from the &amp;quot;empty&amp;quot; vv file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:108--&amp;gt;&lt;br /&gt;
Step 6: Open the exported vv file from the old LimeSurvey installation (old SGQA: 46492X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;40&amp;lt;/span&amp;gt;X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;1991&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X40X1991&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
Step 7: Paste the new headings (copied two lines/rows) into the first two lines/rows of the old vv export file (now the SGQA should be 46492X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;45&amp;lt;/span&amp;gt;X&amp;lt;span style=&#039;color:#F00&#039;&amp;gt;3269&amp;lt;/span&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
Response ID    Date submitted    Last page    Start language    please vote from 1 to 6 (1 - super, 6 - worst)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
id    submitdate    lastpage    startlanguage    token        46492X45X3269&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
183    09.11.11 11:44    3    de        4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
184    09.11.11 11:53    3    de        2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
190    09.11.11 11:44    3    de        1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
You can now import the vv file and the headings are correct.&lt;br /&gt;
&lt;br /&gt;
==Importing a VV survey file== &amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
[[File:LimeSurveyImportVVen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
As long as the first two lines are intact, you can then import the data in your vv survey file back into an active LimeSurvey survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
If you used Microsoft Excel to edit the exported vv file, the data structure of this file may be corrupted, so LimeSurvey is not able to import the edited file. You can try the following workaround to get the import working without an error:&lt;br /&gt;
*Open your exported vv file in Excel and do your changes (I guess you already did that)&lt;br /&gt;
*Save it as tab-separated text file (It creates a new file with the extension .txt)&lt;br /&gt;
*Do another &amp;quot;clean&amp;quot; vv export from LimeSurvey&lt;br /&gt;
*Open this new exported vv file with a texteditor like notepad or something else (I used textwrangler on mac)&lt;br /&gt;
*Press CTRL + A to mark all of the content and delete it&lt;br /&gt;
*Open the Excel edited vv file (the tab separated .txt file) with a texteditor and press CTRL + A to mark all of the content&lt;br /&gt;
*Press CTRL + C to copy the content and paste it into the new (now empty) vv file&lt;br /&gt;
*Press CTRL + S to save the file as it is (as .csv)&lt;br /&gt;
*Now try to import this file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
Then, from the browse screen, choose the &amp;quot;Import a VV Survey file&amp;quot; icon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
The &amp;quot;Import a VV Survey File&amp;quot; screen needs you to choose the &amp;quot;vvexport&amp;quot; file you are importing. If you choose to &amp;quot;Exclude Record IDs&amp;quot; the records will be imported and brand new Record ID&#039;s will be generated for them (use this option for the use case &amp;quot;Adding new responses to the existing responses of a survey&amp;quot;). If you un-check this box, then the original record id&#039;s will be imported (use this option for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
There are a range of options you can choose that tell LimeSurvey how to deal with double or multiple entries.&lt;br /&gt;
*Report an error (and skip the new record).&lt;br /&gt;
*Renumber the new record&lt;br /&gt;
*Replace the existing record (uses this for the use case &amp;quot;Overwriting all responses of the survey&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=Other export options= &amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Export a single response== &amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
If you want to export an individual response, you can do it in 3 ways:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
1. Login to limesurvey admin backend, choose your survey, goto &amp;quot;Edit survey settings&amp;quot; -&amp;gt; &amp;quot;Notification and data management&amp;quot; and make sure you receive basic email notifications.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:136--&amp;gt;&lt;br /&gt;
Every time someone has completed a survey, you will receive an email with a link: &amp;quot;Click the following link to see the individual response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:137--&amp;gt;&lt;br /&gt;
This will take you to a page with a button above the data saying &amp;quot;Export this response&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:138--&amp;gt;&lt;br /&gt;
2. Login to limesurvey admin backend, choose your survey and &amp;quot;Browse responses for this survey&amp;quot;. Click on &amp;quot;Display responses&amp;quot; and the id number you want to export in the left column. Then you can click on &amp;quot;Export this survey&amp;quot; above the data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:139--&amp;gt;&lt;br /&gt;
3. Login to limesurvey admin backend, choose your survey and &amp;quot;Export results to application&amp;quot;. In the last field above &amp;quot;Export data&amp;quot; you can choose which entry you want to export.&lt;br /&gt;
&lt;br /&gt;
==Match responses from different surveys== &amp;lt;!--T:140--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
If you want to track survey responses for particular individuals over time, LimeSurvey can help you do that. A possible use case is to track group responses before and after the group takes a particular seminar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
The steps to implementing this are as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:143--&amp;gt;&lt;br /&gt;
1. Create the survey&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:144--&amp;gt;&lt;br /&gt;
2. Make sure the survey is non-anonymous and uses tokens. To create a non-anonymous survey:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:145--&amp;gt;&lt;br /&gt;
a - Click on the icon General settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:147--&amp;gt;&lt;br /&gt;
b - Then under the Tokens tab select &amp;quot;No&amp;quot; for Anonymized responses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:149--&amp;gt;&lt;br /&gt;
3. Activate the survey.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:150--&amp;gt;&lt;br /&gt;
When you activate the survey, click on the &amp;quot;switch to closed-access mode&amp;quot; button to create the token table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:151--&amp;gt;&lt;br /&gt;
[[File:switch_to_closed.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:152--&amp;gt;&lt;br /&gt;
4. Populate the tokens table with whatever method you wish (follow the instructions found at the [[Tokens]] page ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:153--&amp;gt;&lt;br /&gt;
5. Export the survey results and make sure you include the token information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:154--&amp;gt;&lt;br /&gt;
To export click &#039;&#039;browse results&#039;&#039;...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:155--&amp;gt;&lt;br /&gt;
[[File:browse_results.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:156--&amp;gt;&lt;br /&gt;
...and then &#039;&#039;export&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:157--&amp;gt;&lt;br /&gt;
[[File:export2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:158--&amp;gt;&lt;br /&gt;
Remember to choose one or more elements from the token table to associate with the survey responses:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:159--&amp;gt;&lt;br /&gt;
[[File:export_tokens.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:160--&amp;gt;&lt;br /&gt;
6. When you run the survey again, which can easily be done by copying the survey and tokens table using export/import, just repeat the steps, and make sure the same query is used to build the csv token import file.&lt;br /&gt;
&lt;br /&gt;
=Problems &amp;amp; Solutions= &amp;lt;!--T:161--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Excel== &amp;lt;!--T:162--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Modifying responses in Excel prior to Import=== &amp;lt;!--T:163--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:164--&amp;gt;&lt;br /&gt;
In order to make multiple changes to responses, you may choose to Export and open a file in Excel. Make changes to the data (other than the top lines) and then save as a .txt file. If you save as .csv, Excel uses comma-delimits which will not import into LimeSurvey. By saving as a .txt file, Excel saves as a tab-delimited file which imports back into LimeSurvey.&lt;br /&gt;
&lt;br /&gt;
===Edit .csv with Excel=== &amp;lt;!--T:165--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:166--&amp;gt;&lt;br /&gt;
In general &#039;&#039;&#039;&#039;&#039;we do not recommend to use Excel to edit the exported .csv files&#039;&#039;&#039;&#039;&#039; because Excel does some changes to the internal data structure which results in a failing import. If you nevertheless want to use Excel you have to set the seperator for Excel to a comma in System Control (Windows Systems):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:167--&amp;gt;&lt;br /&gt;
System Control|Region- Languageoptions|Regional Settings, customize...|Tab Numbers|Digit grouping symbol| replace ; with ,&lt;br /&gt;
&lt;br /&gt;
===Workaround to edit .csv files with Excel=== &amp;lt;!--T:168--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:169--&amp;gt;&lt;br /&gt;
Using Excel for editing questions can prevent you from being able to re-import them. But editing is the way to go if you have more than 5 or so options or ranking options, want to use Excel capabilities like sorting, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:170--&amp;gt;&lt;br /&gt;
This is a partial workaround that seems to work in 1.82-essentially, only use Excel on the part of the file that is the data:&lt;br /&gt;
* Export a question similar to what you would like to reuse as .csv file&lt;br /&gt;
* Open the CSV file in a rawtext editor&lt;br /&gt;
* Copy the part that has the answers to Excel, and parse it with Text to Columns or equivalent.&lt;br /&gt;
* Use the talent of Excel to allow pasting text in columns to paste in 20, 50, 100 answers, as you wish&lt;br /&gt;
* Save the file as Excel CSV, which will likely have no quotes.&lt;br /&gt;
* Open this file in the editor, and Select All, Copy&lt;br /&gt;
* Go back to the file you opened with the rawtext editor&lt;br /&gt;
* Paste over the answers there&lt;br /&gt;
* Save AS, with a different name, maybe one that you can remember for reuse&lt;br /&gt;
* Import this file.&lt;br /&gt;
&lt;br /&gt;
===Excel - export limited to 255 columns=== &amp;lt;!--T:171--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:172--&amp;gt;&lt;br /&gt;
Due to limitations in Excel (versions lower and equal to 2003), LimeSurvey can export only 255 columns at the same time. Microsoft has proposed a [http://support.microsoft.com/kb/272729/en-us workaround as a VB macro].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:173--&amp;gt;&lt;br /&gt;
Although newer spreadsheets (Excel &amp;gt;= 2007, OpenOffice) can display more than 255 columns, the internal module used by LimeSurvey still can&#039;t export more than 255 columns.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:174--&amp;gt;&lt;br /&gt;
Two workarounds are however possible, use one of the following solutions:&lt;br /&gt;
* Either export to CSV and import in your spreadsheet&lt;br /&gt;
* Or use multiple exports (selecting at most 250 columns at a time), then merge the exported results&lt;br /&gt;
&lt;br /&gt;
===Excel/.csv - export fails=== &amp;lt;!--T:175--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:176--&amp;gt;&lt;br /&gt;
If you are unable to export your data to excel or into a .csv file please try to clear your browser cache and cookies.&lt;br /&gt;
&lt;br /&gt;
==CSV== &amp;lt;!--T:177--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CSV defaults to 255 columns=== &amp;lt;!--T:178--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:179--&amp;gt;&lt;br /&gt;
When exporting large surveys the GUI by default limits the export to the first 255 columns. To work around this, simply mark all data sets for export.&lt;br /&gt;
&lt;br /&gt;
==SPSS export== &amp;lt;!--T:180--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===General steps=== &amp;lt;!--T:181--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:182--&amp;gt;&lt;br /&gt;
To import the LimeSurvey response data please use the following steps:&lt;br /&gt;
#Click on the &#039;Export to SPSS&#039; icon.&lt;br /&gt;
#From the select boxes select which responses you want to export and your SPSS version.&lt;br /&gt;
#Download both files, the .sps (SPSS syntax command file) and .dat file (data file)&lt;br /&gt;
#Open the .sps file with SPSS by opening SPSS, then select &#039;Choose another type of file&#039; and select the downloaded .sps file.&lt;br /&gt;
#Now an editor opens inside SPS where you can edit the commands in that file. Look for the line that starts with &#039;/FILE=...&#039;&lt;br /&gt;
#Edit that line and adjust the path so it points to your .dat file. Example: Your *.dat file is in c:\temp so set this line to  /FILE=&#039;c:\temp\survey_(xxxx)_SPSS_data_file.dat&#039;&lt;br /&gt;
#Now select all commands inside the editor by pressing CTRL-A.&lt;br /&gt;
#From the SPSS menu select Run/All.&lt;br /&gt;
#Be patient, it will take some time to import all data and labels. Check the status bar for the progress.&lt;br /&gt;
#Done!&lt;br /&gt;
&lt;br /&gt;
===Possible error messages in SPSS=== &amp;lt;!--T:183--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====ERROR. command name:Get Data==== &amp;lt;!--T:184--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:185--&amp;gt;&lt;br /&gt;
If you receive the error message &#039;&#039;ERROR. command name:Get Data. 2267 Unexpected Token missing.&#039;&#039; please edit the forth line of your syntax file so it points to the absolute path of the data file like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:186--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;C:\spss\Data\limesurvey\SPSS\survey_35276_SPSS_data_file.dat&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Error: &amp;quot;Text value unmappable in the current server locale&amp;quot;==== &amp;lt;!--T:187--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:188--&amp;gt;&lt;br /&gt;
This error can happen if you try to open an exported syntax file in SPSS 16. The solution is to force SPSS to interpret the syntax file as unicode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:189--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;Open SPSS. Go to Edit &amp;gt; Options &amp;gt; Character encoding for data and syntax. Change the option to &amp;quot;unicode&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:190--&amp;gt;&lt;br /&gt;
LimeSurvey data can now be exported to SPSS 16 without any problem.&lt;br /&gt;
&lt;br /&gt;
===Define the scale to use for your variable=== &amp;lt;!--T:191--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:192--&amp;gt;&lt;br /&gt;
It is possible to override the default scale used for a variable by setting the question attribute [[Advanced question settings#scale_export|scale_export]] to the appropriate value.&lt;br /&gt;
&lt;br /&gt;
==VV Export/Import== &amp;lt;!--T:193--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VV - Problems with vv import=== &amp;lt;!--T:194--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:195--&amp;gt;&lt;br /&gt;
If you have difficulties importing a vv file, try a Tab-delimited file and it should work fine.&lt;br /&gt;
&lt;br /&gt;
==Other problems and solutions== &amp;lt;!--T:196--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Copying responses into a different survey (using tokens)=== &amp;lt;!--T:197--&amp;gt;&lt;br /&gt;
# Create new survey, add a dummy response, export the response file, open in Excel. This creates the format for the new import file.&lt;br /&gt;
# Export the responses from the old survey, including tokens, open in Excel.&lt;br /&gt;
# Use this data to create an Excel worksheet for the standard token file import (eg. Firstname, Lastname, Token, Email address, Email status (OK), Language (En)). Save as .csv and import tokens to the new survey in LimeSurvey.&lt;br /&gt;
# In Excel, copy the response fields from the old survey responses that you want in the new survey (including token) into the appropriate Excel column of the new survey format.&lt;br /&gt;
# Save as .txt file.&lt;br /&gt;
# Use VVImport to import the new data into the new survey.&lt;br /&gt;
# Possible import errors include date format - some system date fields do not allow a NULL value, some do. If the date looks okay but gives an error, use the Excel cell format &amp;quot;2009-12-01&amp;quot;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Workarounds:_Question_design,_layout_and_templating&amp;diff=50008</id>
		<title>Workarounds: Question design, layout and templating</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Workarounds:_Question_design,_layout_and_templating&amp;diff=50008"/>
		<updated>2013-08-17T20:08:31Z</updated>

		<summary type="html">&lt;p&gt;Mfaber: Workaround not needed for setting min/max date from 2.05 beta6 (new feature)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This section more or less deals with styling your survey, adjusting the layout and setting up special question types. You can find &#039;&#039;&#039;similar information&#039;&#039;&#039; at these pages:&lt;br /&gt;
* [[The template editor]]&lt;br /&gt;
* [[Workarounds: Manipulating a survey at runtime using Javascript]]&lt;br /&gt;
* [[Workarounds: Survey behaviour]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;&amp;lt;center&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Please keep in mind that these workarounds are not official LimeSurvey extensions - they are solutions that users have created for themselves.&amp;lt;br /&amp;gt;&amp;lt;span style=&#039;color:#EE0000,#FFFFFF&#039;&amp;gt;Therefore LimeSurvey can&#039;t offer guarantees or support for these solutions.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;If you have questions, please contact the users that, thankfully, shared their solutions with the community.&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Getting rid of the question mark symbol (help.gif)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.80+ (6536)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To get rid of the question mark symbol that LimeSurvey displays at the end of a question, you can either upload an empty help.gif into the template folder (as discussed in the forum) or you can use the Template editor: Open the &#039;&#039;template.css&#039;&#039; of your template and search for &#039;&#039;div.questionhelp img&#039;&#039;, then add a &#039;&#039;visibility:hidden;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It will look something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
div.questionhelp img&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  margin:5px;&lt;br /&gt;
&lt;br /&gt;
  visibility:hidden;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also &#039;&#039;&#039;replace the image&#039;&#039;&#039; by following [[The template editor#Replacing the help icon|these instructions]].&lt;br /&gt;
&lt;br /&gt;
=Require users to check a box agreeing to privacy statement before registering for a survey=&lt;br /&gt;
&lt;br /&gt;
If you need to have users positively acknowledge a privacy statement before submitting a registration form, the following will help you do this.&lt;br /&gt;
&lt;br /&gt;
It involves a minor modification to common.php in versions up to 1.85. Later versions may not require this.&lt;br /&gt;
&lt;br /&gt;
Edit common.php and look for the line (at approximately line 3014)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$registerform .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input class=&#039;submit&#039; type=&#039;submit&#039; value=&#039;&amp;quot;.$clang-&amp;gt;gT(&amp;quot;Continue&amp;quot;).&amp;quot;&#039; /&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and change it to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$registerform .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input id=&#039;registercontinue&#039; class=&#039;submit&#039; type=&#039;submit&#039; value=&#039;&amp;quot;.$clang-&amp;gt;gT(&amp;quot;Continue&amp;quot;).&amp;quot;&#039; /&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then save common.php. This gives you DOM access to the &amp;quot;continue&amp;quot; button on the register form, but will have no other practical effect or change to LimeSurvey&#039;s operations.&lt;br /&gt;
&lt;br /&gt;
Next, you need to edit the template you are using (see the documentation on the Template editor if you don&#039;t know how to do this).&lt;br /&gt;
&lt;br /&gt;
In the template editor, open the screen &amp;quot;Register page&amp;quot; and select the file &amp;quot;register.pstpl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
There are two modifications you need to make to this file. The first is to add the following code after the line that says &#039;&#039;{REGISTERFORM}&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&#039;text/javascript&#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code disables the &amp;quot;Continue&amp;quot; button so that nobody can process the registration form until they&#039;ve clicked the checkbox.&lt;br /&gt;
&lt;br /&gt;
The second modification to make is to be done between the lines {REGISTERMESSAGE2} and {REGISTERFORM}. Add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;label&amp;gt; Accept&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&#039;radio&#039;&lt;br /&gt;
&lt;br /&gt;
          name=&amp;quot;privacy&amp;quot;&lt;br /&gt;
&lt;br /&gt;
          value=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
          onChange=&amp;quot;if(this.checked) {&lt;br /&gt;
&lt;br /&gt;
                      document.getElementById(&#039;registercontinue&#039;).disabled=false;&lt;br /&gt;
&lt;br /&gt;
                    }&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;label&amp;gt;I don&#039;t accept&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&#039;radio&#039;&lt;br /&gt;
&lt;br /&gt;
          name=&amp;quot;privacy&amp;quot;&lt;br /&gt;
&lt;br /&gt;
          value=&amp;quot;NO&amp;quot;&lt;br /&gt;
&lt;br /&gt;
          CHECKED&lt;br /&gt;
&lt;br /&gt;
          onChange=&amp;quot;if(this.checked) {&lt;br /&gt;
&lt;br /&gt;
                      document.getElementById(&#039;registercontinue&#039;).disabled=true;&lt;br /&gt;
&lt;br /&gt;
                    }&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/center&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the users will have to agree to whatever text you replace &amp;quot;Do you agree to privacy stuff?&amp;quot; before they continue on and register.&lt;br /&gt;
&lt;br /&gt;
(Thanks to &#039;&#039;Pippo_Jedi&#039;&#039; for helping work this out)&lt;br /&gt;
&lt;br /&gt;
=Different progress indicator=&lt;br /&gt;
&lt;br /&gt;
==Version 1.87 and later:==&lt;br /&gt;
&lt;br /&gt;
Add the following to the end of template.js. It will find the progress value and insert it into the element following the progress bar.&lt;br /&gt;
&lt;br /&gt;
It should be pointed out that I had to introduce a delay in firing the function because the progress value is not calculated until after template.js is called. The delay is set at 1/10 of a second but you may be able to reduce that.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   // Display progress value&lt;br /&gt;
&lt;br /&gt;
   function setProgValue() {&lt;br /&gt;
&lt;br /&gt;
       var progress = $(&#039;#progressbar&#039;).attr(&#039;aria-valuenow&#039;);&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#progress-post&#039;).text(progress+&#039;%&#039;).show();&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#progress-post&#039;).hide();&lt;br /&gt;
&lt;br /&gt;
       setTimeout(&#039;setProgValue()&#039;,100);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to hide the &amp;quot;0%&amp;quot; before the progress bar, add the following to the end of template.css:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#progress-pre {&lt;br /&gt;
&lt;br /&gt;
   display: none;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Delete unwanted gaps in question title=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When copying data (questions, answers, ...) from MS Word or other applications into the editor there might occur some gaps in the question title.&lt;br /&gt;
&lt;br /&gt;
There are two solutions to this:&lt;br /&gt;
# Use popup mode and manually delete unwanting extra html tags (requires html knowledge).&lt;br /&gt;
# Disable paste word feature: Tweak your limesurvey-config.js file in limesurvey/admin/scripts/fckeditor.26 and set the following option to true:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;FCKConfig.ForcePasteAsPlainText = true ;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that clear you browser cache and try again.&lt;br /&gt;
&lt;br /&gt;
=How to change the &amp;lt;font-size&amp;gt; tags using CSS=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workaround was deleted because it is outdated. Such changes can be done by [[The template editor#Styling questions with CSS|adjusting template.css]] of your template.&lt;br /&gt;
&lt;br /&gt;
=Question type variation: Scale with bars (one and two sided)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some methodogical issues to think about: Very often a common scale as 1 to 5 or -2 to +2 fits all needs, as the shown subject is clearly defined as positive or negative. As soon as you would reduce the influence from the question and scale on the respondent, you will need something neutral to determine tendences, emphases and so on.&lt;br /&gt;
&lt;br /&gt;
So I put up a new variation of the one and two sided array question:&lt;br /&gt;
&lt;br /&gt;
ttp://www.limesurvey.org/images/fbfiles/images/example_bar_scale.jpg&lt;br /&gt;
&lt;br /&gt;
In my example the left side reads &amp;quot;strategical planning&amp;quot; and the right side &amp;quot;operative business&amp;quot;. None of these are purely negative or positive, so the bars only show in which direction the balancing point moves.&lt;br /&gt;
&lt;br /&gt;
To realize a question as shown above just do as follows:&lt;br /&gt;
&lt;br /&gt;
Set up as many bars as you will need (in my example there are four different bars in total) with a graphic program like PAINT .NET, GIMP or similar ones (yes, you may also use commercial software like Photoshop). To prevent the bars from looking twitchy, designate the size in advance. I did one bar 60x15 px, one 45x15px, one 30x15px and at last 15x15px. Save them as PNG, JPG or GIF.&lt;br /&gt;
# Create a new label set within Lime. Call it whatever you like.&lt;br /&gt;
# Enter a code number at first, then press the pencil symbol to enter the editor.&lt;br /&gt;
#Press the &amp;quot;Insert / edit image&amp;quot; button and upload the bar you want to insert with the FCK upload tool. Then choose the uploaded picture, save and leave the FCK editor.&lt;br /&gt;
#The row in the lable editor now shows an &amp;lt;img&amp;gt;-tag which refers to your bar picture.&lt;br /&gt;
#Repeat the above described steps as often as needed to build up your bar scale.&lt;br /&gt;
&lt;br /&gt;
=Doing a Likert Scale=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A Likert Scale is a special type of the Semantic Differential question where several item shall be rated on different scales, each marked at the beginning and at the end with opposite statements. See example:&lt;br /&gt;
&lt;br /&gt;
http://www.limesurvey.org/images/fbfiles/images/lickert.jpg&lt;br /&gt;
&lt;br /&gt;
To do this in LimeSurvey just follow these steps:&lt;br /&gt;
#Create a label set with values from 0 to 7 (for the classic Likert Scale - feel free to choose other ranges).&lt;br /&gt;
#Create a new question and choose Array (Flexible Labels) as question type.&lt;br /&gt;
#Assign the Likert Scale label set to this question.&lt;br /&gt;
#Enter your answers as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;DIV style=&amp;quot;white-space: nowrap;&amp;quot;&amp;gt;ITEM statement1|statement2&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The white-space style is to avoid line breaks which would ruin the whole scale. feel free to insert non-breakable spaces between the ITEM and statement1 to define the margin between these to strings.&lt;br /&gt;
&lt;br /&gt;
=Alternate background colour of questions=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7191)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To alternate the background colour of questions, open the &#039;&#039;template.css&#039;&#039; of your template with the Template Editor or a text editor and modify the &#039;&#039;Question styles&#039;&#039; section to include the following style.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
div#question2 td.questiontext,&lt;br /&gt;
&lt;br /&gt;
div#question4 td.questiontext,&lt;br /&gt;
&lt;br /&gt;
div#question6 td.questiontext {&lt;br /&gt;
&lt;br /&gt;
   background-color: #E0EBF8;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to apply the style to all of the questions you would like modified using their question IDs (&#039;&#039;question2, question4, question6&#039;&#039; in this case). Question IDs are displayed when creating or editing questions - see below:&lt;br /&gt;
&lt;br /&gt;
[[File:qid_1_493x173.gif]]&lt;br /&gt;
&lt;br /&gt;
Here the question ID is #question80 .&lt;br /&gt;
&lt;br /&gt;
=Embedding audio in questions=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7191), IE 7, FireFox 3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Audio clips can be embedded in most question text or answer text. In this example, using the default template, I&#039;ve embedded clips into the answers of an &#039;&#039;&#039;&#039;&#039;Array (Yes/No/Uncertain)&#039;&#039;&#039;&#039;&#039; question to ask respondents how they feel about some sounds. The resulting question will look like this.&lt;br /&gt;
&lt;br /&gt;
[[File:audioTest_595x202.gif]]&lt;br /&gt;
&lt;br /&gt;
It&#039;s accomplished by placing the following code in each of the answers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embed height=&amp;quot;20&amp;quot; width=&amp;quot;128&amp;quot; autostart=&amp;quot;false&amp;quot; controls=&amp;quot;console&amp;quot;&lt;br /&gt;
&lt;br /&gt;
loop=&amp;quot;true&amp;quot; volume=&amp;quot;50&amp;quot; src=&amp;quot;{TEMPLATEURL}audio_1.mp3&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some notes about the code:&lt;br /&gt;
*The &#039;&#039;audio_1.mp3&#039;&#039; part will be different for each answer (it&#039;s the audio file name).&lt;br /&gt;
*In this case the audio files are residing in the template folder being used for this survey (that&#039;s where &#039;&#039;{TEMPLATEURL}&#039;&#039; points to) but they can be placed anywhere if you use an absolute URL in the &#039;&#039;src&#039;&#039; parameter - something like &#039;&#039;src=&amp;quot;http://mysite.com/audio/audio_1.mp3&amp;quot;&#039;&#039;&lt;br /&gt;
*If the audio file doesn&#039;t exist where the &#039;&#039;src&#039;&#039; parameter indicates, the player will not appear.&lt;br /&gt;
*You&#039;ll need to insert the code into the answers using the source screen - click on &amp;quot;Edit answers&amp;quot;, click the pencil beside the text box, click &amp;quot;Source&amp;quot; in the pop-up, enter the code and save it with the little diskette icon.&lt;br /&gt;
*You may need to turn off the XSS filter - see the documentation for [http://docs.limesurvey.org/tiki-index.php?page=Global+settings&amp;amp;structure;=English+Instructions+for+LimeSurvey#Security Global settings].&lt;br /&gt;
&lt;br /&gt;
Although the above example places the audio in the answer text of the question, the same principles can be used to place it in the question text itself. Something like this perhaps.&lt;br /&gt;
&lt;br /&gt;
[[File:audioTest_595x154.gif]]&lt;br /&gt;
&lt;br /&gt;
=Hiding inputs of a &amp;quot;Multiple options with comments&amp;quot; question=&lt;br /&gt;
&lt;br /&gt;
Tested with: 1.85+ (7253), IE 6/7, FireFox 3.0, Safari 3.2, Chrome 2.0&lt;br /&gt;
&lt;br /&gt;
There may be times when you want to hide some of the input boxes of a &#039;&#039;&#039;&#039;&#039;Multiple options with comments&#039;&#039;&#039;&#039;&#039; question as in the image below.&lt;br /&gt;
&lt;br /&gt;
[[File:hidden_inputs_541x168.gif]]&lt;br /&gt;
&lt;br /&gt;
This can be accomplished with CSS (see [[The template editor#Styling questions with CSS|Styling questions in LimeSurvey 1.8]]). For each input that you want to hide, add the following style to your template.css file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#answer11111X22X33Acomment {&lt;br /&gt;
   display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Where 11111 is your survey ID, 22 is your group ID, 33 is your question ID and A is the answer code.&lt;br /&gt;
&lt;br /&gt;
Note that you will still see columns for the hidden inputs in your data but they will be empty.&lt;br /&gt;
&lt;br /&gt;
=Multiple question types in array=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.90 - 1.92+, IE 7/8/9, Firefox 13, Safari 5, Chrome 10&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: sample survey works in 2.00+ but code is different from example below. Make sure to use the right code. Copy paste the script from the sample survey adn adapt.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Media:limesurvey_survey_62584.lss|Download the sample survey]]&lt;br /&gt;
&lt;br /&gt;
This workaround allows you to present multiple question types in what appears to be an array - as depicted in the image below and [http://www.partnersinc.biz/surveys//index.php?sid=62584&amp;amp;newtest=Y&amp;amp;lang=en demonstrated here] (download the sample survey - [[Media:limesurvey_survey_62584.lss|limesurvey_survey_62584.lss]]). This example uses the default template but should be adaptable to any template using divisions for question containers.&lt;br /&gt;
&lt;br /&gt;
[[File:inline_questions_700x228.png]]&lt;br /&gt;
&lt;br /&gt;
Basically what we do is take groups of questions (5 in this case), wrap them in a division and make them line up nicely horizontally and vertically. The width of the survey is also fixed to prevent wrapping issues. We do this with a JavaScript/jQuery function that inserts the necessary wrappers and then modifies styles so everything behaves properly. The top row is 5 boilerplate questions with the &amp;quot;column headers&amp;quot; as question text (the first just has a blank space). The following rows are a boilerplate with the &amp;quot;row headers&amp;quot; followed by 4 assorted questions.&lt;br /&gt;
&lt;br /&gt;
It should be noted that using conditions on these questions may result in unexpected behavior. If a question is hidden by conditions, the question(s) to the right of it will move over to take its place.&lt;br /&gt;
&lt;br /&gt;
Implementation is as follows:&lt;br /&gt;
#Create your questions keeping in mind how they will lay out when grouped into rows (in this example - boilerplate, yes/no, short text, numeric, dropdown, and repeat).&lt;br /&gt;
#In the source of the first boilerplate question add the function below (see [http://manual.limesurvey.org/wiki/Workarounds:_Manipulating_a_survey_at_runtime_using_Javascript#How_to_use_Script_.28eg._JavaScript_etc..29_in_LimeSurvey.3F How to use script]).&lt;br /&gt;
#Modify the number of rows, number of columns and the start placement in the function call (line 6) as required (the example uses 4 rows and 5 columns and the &amp;quot;array&amp;quot; starts with the third question on the page).&lt;br /&gt;
&lt;br /&gt;
The code may look intimidating at first but it&#039;s actually fairly simple. I&#039;ve laid it out as sequentially as possible and purposely used few shortcuts and many comments to make it easier to follow.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
*If you use question types other than boilerplate, short text, list dropdown, numeric or yes-no, you&#039;ll need to add to the last section of code, where it hides the question text and formats the inputs for display this way.&lt;br /&gt;
*Any extra questions on the page should follow this grid of questions, not precede them.&lt;br /&gt;
&lt;br /&gt;
Javascript code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
	$(document).ready(function() {&lt;br /&gt;
		// Call the &amp;quot;sideBySide&amp;quot; function with number of rows, columns and start position&lt;br /&gt;
		sideBySide(4, 5, 3);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	function sideBySide(rows, columns, startQuestion) {&lt;br /&gt;
&lt;br /&gt;
		/*********** Display multiple questions side by side ***********/&lt;br /&gt;
&lt;br /&gt;
		if ($(&#039;div.qRow1&#039;).length == 0) {&lt;br /&gt;
			var rowNum = 0;&lt;br /&gt;
			var colNum = 1;&lt;br /&gt;
			var rowList = new Array();&lt;br /&gt;
&lt;br /&gt;
			//////// Add question classes for later use ////////&lt;br /&gt;
			&lt;br /&gt;
			// Loop through all questions and add row and column specific classes&lt;br /&gt;
			$(&#039;div[id&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;=&amp;quot;question&amp;quot;]&#039;).each(function(i) {&lt;br /&gt;
				if(i &amp;gt;= (startQuestion-1) &amp;amp;&amp;amp; rowNum &amp;lt; rows) { // This IF condition only needed if there are questions before or following the &amp;quot;inline&amp;quot; questions&lt;br /&gt;
					$(this).addClass(&#039;qRow&#039;+rowNum+&#039;&#039;).addClass(&#039;qCol&#039;+colNum+&#039;&#039;).addClass(&#039;inlineQuestion&#039;);&lt;br /&gt;
					if(rowNum == 0 &amp;amp;&amp;amp; colNum &amp;gt; 1) {&lt;br /&gt;
						$(this).addClass(&#039;columnLabel&#039;);&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if(rowNum &amp;gt; 0 &amp;amp;&amp;amp; colNum == 1) {&lt;br /&gt;
						$(this).addClass(&#039;rowLabel&#039;);&lt;br /&gt;
					}&lt;br /&gt;
					else if(rowNum &amp;gt; 0 &amp;amp;&amp;amp; colNum &amp;gt; 1) {&lt;br /&gt;
						$(this).addClass(&#039;questionCell&#039;);&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					if(colNum == columns) {&lt;br /&gt;
						rowList.push(&#039;qRow&#039;+rowNum+&#039;&#039;);&lt;br /&gt;
						rowNum++;&lt;br /&gt;
						colNum = 1;&lt;br /&gt;
					}&lt;br /&gt;
					else {&lt;br /&gt;
						colNum++;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				else {&lt;br /&gt;
					$(this).addClass(&#039;normalQuestion&#039;);&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			//////// Survey layout manipulation ////////&lt;br /&gt;
&lt;br /&gt;
			// Fix the width of the survey&lt;br /&gt;
			$(&#039;table.outerframe&#039;).css({&lt;br /&gt;
				&#039;width&#039;: &#039;900px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Wrap each &amp;quot;row&amp;quot; in a wrapper div&lt;br /&gt;
			$(rowList).each(function(i) {&lt;br /&gt;
				$(&#039;.&#039;+this+&#039;&#039;).wrapAll(&#039;&amp;lt;div id=&amp;quot;inlineWrapper&#039;+i+&#039;&amp;quot; class=&amp;quot;inlineRow&amp;quot; /&amp;gt;&#039;);&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Style the wrapper divs&lt;br /&gt;
			$(&#039;.inlineRow&#039;).css({&lt;br /&gt;
				&#039;width&#039;: &#039;850px&#039;,&lt;br /&gt;
				&#039;margin&#039;: &#039;0 auto 0 auto&#039;,&lt;br /&gt;
				&#039;clear&#039;: &#039;both&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			$( &#039;.inlineRow:first&#039; ).css({&lt;br /&gt;
				&#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Get all the questions to sit politely side by side&lt;br /&gt;
			$( &#039;.inlineQuestion&#039; ).css({&lt;br /&gt;
				&#039;float&#039;: &#039;left&#039;,&lt;br /&gt;
				&#039;height&#039;:&#039;41px&#039;,&lt;br /&gt;
				&#039;overflow&#039;:&#039;hidden&#039;,&lt;br /&gt;
				&#039;margin-bottom&#039;: &#039;-8px&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;.inlineQuestion .questionhelp&#039; ).hide();&lt;br /&gt;
			$( &#039;.inlineQuestion .survey-question-help&#039; ).parent().hide();&lt;br /&gt;
			&lt;br /&gt;
			// A little space under the last row&lt;br /&gt;
			$( &#039;.inlineRow:last .inlineQuestion&#039; ).css({&lt;br /&gt;
				&#039;margin-bottom&#039;: &#039;10px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Any questions not displayed inline (this is only needed if there are questions following the &amp;quot;inline&amp;quot; questions)&lt;br /&gt;
			$( &#039;.normalQuestion&#039; ).css({&lt;br /&gt;
				&#039;clear&#039;: &#039;both&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			//////// Column manipulation ////////&lt;br /&gt;
&lt;br /&gt;
			// Set the column widths - can be set individually if necessary&lt;br /&gt;
			// Must add up to less than 100%&lt;br /&gt;
			$( &#039;.qCol1&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;12%&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			$( &#039;.qCol2, .qCol3, .qCol4, .qCol5&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;22%&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			//////// Question manipulation ////////&lt;br /&gt;
&lt;br /&gt;
			// Hide the answer element in boilerplate questions&lt;br /&gt;
			$( &#039;div.boilerplate td.answer&#039; ).parent().hide();&lt;br /&gt;
&lt;br /&gt;
			// Hide the question text elements in non-boilerplate questions&lt;br /&gt;
			$(&#039;div.questionCell td.questiontext&#039;).parent().hide();&lt;br /&gt;
&lt;br /&gt;
			// Push the question tables to 100%&lt;br /&gt;
			$( &#039;div.inlineRow table&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Get everything to line up nicely vertically&lt;br /&gt;
			$( &#039;.inlineQuestion td.questiontext, .inlineQuestion td.answer p&#039; ).css({&lt;br /&gt;
				&#039;text-align&#039;: &#039;center&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Adjust cell heights so everything lines up nicely horizontally&lt;br /&gt;
			$( &#039;.inlineQuestion td.answer, .inlineQuestion td.questiontext&#039; ).css({&lt;br /&gt;
				&#039;height&#039;:&#039;35px&#039;,&lt;br /&gt;
				&#039;overflow&#039;:&#039;hidden&#039;,&lt;br /&gt;
				&#039;padding&#039;:&#039;0.5em&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;#inlineWrapper0 .inlineQuestion&#039; ).css({ &#039;height&#039;:&#039;50px&#039; });&lt;br /&gt;
			$( &#039;#inlineWrapper0 td.questiontext&#039; ).css({&lt;br /&gt;
				&#039;height&#039;:&#039;50px&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Yes-no question styles&lt;br /&gt;
			$( &#039;div.yes-no ul&#039; ).css({&lt;br /&gt;
				&#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
				&#039;font-size&#039;: &#039;90%&#039;,&lt;br /&gt;
				&#039;margin&#039;: &#039;0&#039;,&lt;br /&gt;
				&#039;padding-bottom&#039;: &#039;5px&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;div.yes-no li&#039; ).css({&lt;br /&gt;
				&#039;padding-right&#039;: &#039;1.5em&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;div.yes-no td.answer&#039; ).css({&lt;br /&gt;
				&#039;padding-bottom&#039;: &#039;0&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Short-text question styles&lt;br /&gt;
			$( &#039;div.text-short input&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;125px&#039;,&lt;br /&gt;
				&#039;margin-left&#039;: &#039;0&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Numeric question styles&lt;br /&gt;
			$( &#039;div.numeric input&#039; ).css({&lt;br /&gt;
				&#039;width&#039;: &#039;125px&#039;,&lt;br /&gt;
				&#039;margin-left&#039;: &#039;0&#039;&lt;br /&gt;
			});&lt;br /&gt;
			$( &#039;div.numeric p.tip&#039; ).css({&lt;br /&gt;
				&#039;display&#039;: &#039;none&#039;&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			// Get rid of the margins around select boxes&lt;br /&gt;
			$( &#039;p.question&#039; ).css({ &#039;margin&#039;:&#039;0&#039; });&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Star Rating System=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7557), IE 6/7, FireFox 3.0, Safari 3.2,&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses the [http://www.fyneworks.com/jquery/star-rating/ jQuery Star Rating Plugin] to display a series of stars that are used to generate a rating value. This value is then passed to either a hidden numeric input question or a hidden list radio question. Both methods are outlined below - use one or both depending on whether you want to use [Assessments|assessments].&lt;br /&gt;
&lt;br /&gt;
The plugin uses a series of radio inputs to generate the stars (more about these below). It allows the use of whole or partial stars as shown in [http://www.partnersinc.biz/surveys//index.php?sid=47586&amp;amp;newtest=Y&amp;amp;lang=en this demo] and the image below.&lt;br /&gt;
&lt;br /&gt;
[[File:star_rating_700x324.png]]&lt;br /&gt;
&lt;br /&gt;
==Star Rating System Using Numeric Input Question==&lt;br /&gt;
&lt;br /&gt;
Use this method if you would like your rating data to be collected as a numeric value and don&#039;t want to use [[Assessments|LimeSurvey assessments]] - it&#039;s a little easier to implement. There is a demo [http://www.partnersinc.biz/surveys//index.php?sid=47586&amp;amp;newtest=Y&amp;amp;lang=en here] (first question).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Implementation is as follows:&#039;&#039;&#039;&lt;br /&gt;
#Turn off &#039;&#039;$filterxsshtml&#039;&#039; to allow insertion of JavaScript in the questions. (See [[Optional settings#Security|documentation here]])&lt;br /&gt;
#[http://www.fyneworks.com/jquery/star-rating/ Download the plugin] and place the following included files in your template folder:&lt;br /&gt;
##jquery.MetaData.js&lt;br /&gt;
##jquery.rating.css&lt;br /&gt;
##jquery.rating.js&lt;br /&gt;
##delete.gif&lt;br /&gt;
##star.gif&lt;br /&gt;
#In the &amp;lt;head&amp;gt; section of your startpage.pstpl, add the following code to link to the files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.rating.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.MetaData.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;{TEMPLATEURL}jquery.rating.css&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Create a numeric input question and then in the source of the question add as many radio inputs as star segments. For example, if you would like 5 stars, each with half-segments (as in the demo Q1), you would need 10 radio inputs and that would give rating values from 1-10.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t confuse these inputs with the actual question, they are just for the plugin&#039;s use.&lt;br /&gt;
&lt;br /&gt;
At this point your question source code should look something like below. Make sure that all inputs have the same name. Each input must have the same title as value and these must be sequential. Don&#039;t worry about how all of this looks in the WSYSWYG editor - the plugin is going to hide these inputs and replace them with stars.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q1 - Some question text here.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;starContainer&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;2&amp;quot; value=&amp;quot;2&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;3&amp;quot; value=&amp;quot;3&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;4&amp;quot; value=&amp;quot;4&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;5&amp;quot; value=&amp;quot;5&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;6&amp;quot; value=&amp;quot;6&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;7&amp;quot; value=&amp;quot;7&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;8&amp;quot; value=&amp;quot;8&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;9&amp;quot; value=&amp;quot;9&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;10&amp;quot; value=&amp;quot;10&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. A note on split stars. The stars in the above example are split in half by the &#039;&#039;{ split:2 }&#039;&#039; metadata. So if you don&#039;t want split stars, your inputs would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And stars split into third-segments would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:3 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
7. Finally, in the source of the question add the following function after your inputs. (See [[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|How to use script here]])&lt;br /&gt;
&lt;br /&gt;
Some notes on the code:&lt;br /&gt;
*Replace &amp;quot;SSSSS&amp;quot;, &amp;quot;GG&amp;quot;, &amp;quot;QQ&amp;quot; in the function call at the end with the survey ID, group ID and question ID respectively.&lt;br /&gt;
*The code will hide the numeric input and pass the rating values into it as they are changed. If the rating is canceled the numeric input is nullified. If a respondent navigates away from the page then returns the code &amp;quot;remembers&amp;quot; the previous rating and displays the stars accordingly.&lt;br /&gt;
*If you want to apply it to more numeric questions on the same page simply add more calls with the appropriate IDs. (eg. handleRatingNumeric(11111, 22, 1); handleRatingNumeric(11111, 22, 2); ...) .&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
function handleRatingNumeric (sID, gID, qID) {&lt;br /&gt;
&lt;br /&gt;
   // Hide the numeric input&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; td.answer&#039;).parent().hide();&lt;br /&gt;
&lt;br /&gt;
   // Get a previous rating (if any) and use it to initialize the star display&lt;br /&gt;
&lt;br /&gt;
   var rating = $(&#039;#answer&#039; + sID + &#039;X&#039; + gID + &#039;X&#039; + qID + &#039;&#039;).val();&lt;br /&gt;
&lt;br /&gt;
   if ( rating != &#039;&#039; ) {&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.star&#039;).rating(&#039;select&#039;, rating);&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating cancel element&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.rating-cancel&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Nullify the rating if the Cancel element is clicked&lt;br /&gt;
&lt;br /&gt;
       rating = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#answer&#039; + sID + &#039;X&#039; + gID + &#039;X&#039; + qID + &#039;&#039;).val(rating);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating elements&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.star-rating&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Find the value of the highest clicked star and pass it into the text input&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; div.star-rating-on&#039;).each(function(i) {&lt;br /&gt;
&lt;br /&gt;
           rating = $(this).children(&#039;a&#039;).html( );&lt;br /&gt;
&lt;br /&gt;
       });&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#answer&#039; + sID + &#039;X&#039; + gID + &#039;X&#039; + qID + &#039;&#039;).val(rating);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Call the function for the numeric question&lt;br /&gt;
&lt;br /&gt;
handleRatingNumeric (SSSSS, GG, QQ);&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Star Rating System Using List (Radio) Question==&lt;br /&gt;
&lt;br /&gt;
Use this method if you would like to use [[Assessments|assessments]]. There is a demo [http://www.partnersinc.biz/surveys//index.php?sid=47586&amp;amp;newtest=Y&amp;amp;lang=en here] (second question).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Implementation is as follows:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Turn off &#039;&#039;$filterxsshtml&#039;&#039; to allow insertion of JavaScript in the questions. (See [[Optional settings#Security|documentation here]])&lt;br /&gt;
&lt;br /&gt;
2. Set up the template to use custom onload functions. (See the [[Workarounds: Manipulating a survey at runtime using Javascript#Custom onload function|workaround here]])&lt;br /&gt;
&lt;br /&gt;
3. [http://www.fyneworks.com/jquery/star-rating/ Download the plugin] and place the following included files in your template folder:&lt;br /&gt;
*jquery.MetaData.js&lt;br /&gt;
*jquery.rating.css&lt;br /&gt;
*jquery.rating.js&lt;br /&gt;
*delete.gif&lt;br /&gt;
*star.gif&lt;br /&gt;
&lt;br /&gt;
4. In the &amp;lt;head&amp;gt; section of your startpage.pstpl, add the following code to link to the files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.rating.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}jquery.MetaData.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;{TEMPLATEURL}jquery.rating.css&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Create a list (radio) question with the same amount of sequentially numbered answers as star ratings. For example, if you want 5 whole-stars, you would create 5 answers, as in the image below, and this would give you ratings from 1-5. Note that the &amp;quot;Codes&amp;quot; and &amp;quot;Answers&amp;quot; must be sequential numbers.&lt;br /&gt;
&lt;br /&gt;
[[File:star_rating_700x156_v2.png]]&lt;br /&gt;
&lt;br /&gt;
6. In the list (radio) question, set the [[Advanced question settings|hide_tip]] question attribute to 1&lt;br /&gt;
&lt;br /&gt;
7. In the source of the question add as many radio inputs as star segments. So 5 whole-stars (as in the demo Q2), would need 5 radio inputs.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t confuse these inputs with the actual question, they are just for the plugin&#039;s use.&lt;br /&gt;
&lt;br /&gt;
At this point your question source code should look something like below. Make sure that all inputs have the same name. Each input must have the same title as value and these must be sequential. Don&#039;t worry about how all of this looks in the WSYSWYG editor - the plugin is going to hide these inputs and replace them with stars.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q2 - Some question text here.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;starContainer&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;2&amp;quot; value=&amp;quot;2&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;3&amp;quot; value=&amp;quot;3&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;4&amp;quot; value=&amp;quot;4&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star&amp;quot; title=&amp;quot;5&amp;quot; value=&amp;quot;5&amp;quot; name=&amp;quot;q2Rate&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. A note on split stars. The stars in the above example are whole-stars. If you want them split you need to add metadata to the class - something like &#039;&#039;{ split:2 }&#039;&#039;. So if you want half-stars your inputs would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:2 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And stars split into third-segments would look like:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;input type=&amp;quot;radio&amp;quot; class=&amp;quot;star { split:3 }&amp;quot; title=&amp;quot;1&amp;quot; value=&amp;quot;1&amp;quot; name=&amp;quot;q1Rate&amp;quot; /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
9. Finally, in the source of the question add the following function after your inputs. (See [http://docs.limesurvey.org/tiki-index.php?page=Workarounds&amp;amp;structure;=English+Instructions+for+LimeSurvey#How_to_use_Script_eg._JavaScript_etc._ How to use script here])&lt;br /&gt;
&lt;br /&gt;
Some notes on the code:&lt;br /&gt;
*Replace &amp;quot;SSSSS&amp;quot;, &amp;quot;GG&amp;quot;, &amp;quot;QQ&amp;quot; in the function call at the end with the survey ID, group ID and question ID respectively.&lt;br /&gt;
*The code will hide the question radio buttons and toggle them as the rating values are changed. If the rating is canceled all question inputs are unchecked. If a respondent navigates away from the page then returns the code &amp;quot;remembers&amp;quot; the previous rating and displays the stars accordingly.&lt;br /&gt;
*If you want to apply it to more numeric questions on the same page simply add more calls with the appropriate IDs. (eg. handleRatingRadio(11111, 22, 1); handleRatingRadio(11111, 22, 2); ...) .&lt;br /&gt;
&lt;br /&gt;
Onload code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
function handleRatingRadio (sID, gID, qID) {&lt;br /&gt;
&lt;br /&gt;
   // Hide the radio input&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; td.answer&#039;).parent().hide();&lt;br /&gt;
&lt;br /&gt;
   // Get a previous rating (if any) and use it to initialize the star display&lt;br /&gt;
&lt;br /&gt;
   var rating = $(&#039;#question&#039; + qID + &#039; input.radio[checked=true]&#039;).attr(&#039;value&#039;);&lt;br /&gt;
&lt;br /&gt;
   //if ( rating != &#039;&#039; ) {&lt;br /&gt;
&lt;br /&gt;
   if ( rating ) {&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.star&#039;).rating(&#039;select&#039;, rating);&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating cancel element&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.rating-cancel&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Nullify the rating if the Cancel element is clicked&lt;br /&gt;
&lt;br /&gt;
       rating = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.radio&#039;).attr(&#039;checked&#039;, false);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
   // Listener on the star rating elements&lt;br /&gt;
&lt;br /&gt;
   $(&#039;#question&#039; + qID + &#039; div.star-rating&#039;).click(function(event) {&lt;br /&gt;
&lt;br /&gt;
       // Find the value of the highest clicked star and pass it into the text input&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; div.star-rating-on&#039;).each(function(i) {&lt;br /&gt;
&lt;br /&gt;
           rating = $(this).children(&#039;a&#039;).html( );&lt;br /&gt;
&lt;br /&gt;
       });&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039; + qID + &#039; input.radio[value=&#039; + rating + &#039;]&#039;).attr(&#039;checked&#039;, true);&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Call the function for the radio question&lt;br /&gt;
&lt;br /&gt;
handleRatingRadio (SSSSS, GG, QQ);&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Variable column widths in array=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.85+ (7557), IE 6/7, Firefox 3.0, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround allows you to define all column widths of an array question - as shown in the image below and [http://www.partnersinc.biz/surveys//index.php?sid=26842&amp;amp;newtest=Y&amp;amp;lang=en demonstrated here]. This example uses the default template shipped with 7557 but should be adaptable to any template.&lt;br /&gt;
&lt;br /&gt;
[[File:array_widths_701x226.gif]]&lt;br /&gt;
&lt;br /&gt;
We use a function to remove all of the widths imposed by the core code and then insert our own.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Implementation is as follows:&#039;&#039;&#039;&lt;br /&gt;
#Turn off &#039;&#039;$filterxsshtml&#039;&#039; to allow insertion of JavaScript in the questions (see [http://docs.limesurvey.org/tiki-index.php?page=Optional+settings&amp;amp;structure;=English+Instructions+for+LimeSurvey#Filtering_dangerous_HTML_tags_in_survey_objects documentation here]).&lt;br /&gt;
#Create the array question.&lt;br /&gt;
#In the source of the array question add the following script (see [[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|How to use script here]]).&lt;br /&gt;
#Replace all instances of QQ with the question ID.&lt;br /&gt;
#In the third section of code, adjust the widths and add/remove columns as necessary. This example is for an array with a question text column followed by 3 answer columns as shown above.&lt;br /&gt;
#In the final section adjust the question text alignment to your liking&lt;br /&gt;
&lt;br /&gt;
Onload code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
   // Get rid of all the widths that the API imposes&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question col&#039; ).attr(&#039;width&#039;, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question thead td&#039; ).attr(&#039;width&#039;, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
   // Define a width for the question table so we can do so for its children&lt;br /&gt;
&lt;br /&gt;
   // NOTE: Keep this to 95% or less so IE will behave&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question&#039; ).attr(&#039;width&#039;, &#039;95%&#039;);&lt;br /&gt;
&lt;br /&gt;
   // Define the column widths&lt;br /&gt;
&lt;br /&gt;
   // Add or remove columns and adjust widths as necessary but widths should add up to 100%&lt;br /&gt;
&lt;br /&gt;
   // NOTE: Columns must be sequentially numbered starting at 0 - eg, td:eq(0), td:eq(1), td:eq(2).....&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody th:eq(0)&#039; ).css({ &#039;width&#039;:&#039;10%&#039; }); // Answer text column&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody td:eq(0)&#039; ).css({ &#039;width&#039;:&#039;50%&#039; }); // First answer column&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody td:eq(1)&#039; ).css({ &#039;width&#039;:&#039;20%&#039; }); // Second answer column&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody td:eq(2)&#039; ).css({ &#039;width&#039;:&#039;20%&#039; }); // Third answer column&lt;br /&gt;
&lt;br /&gt;
   // Push the text input widths to 95% of their parent containers&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question input[type=&amp;quot;text&amp;quot;]&#039; ).css({ &#039;width&#039;:&#039;95%&#039; });&lt;br /&gt;
&lt;br /&gt;
   // Align the answer text - feel free to experiment&lt;br /&gt;
&lt;br /&gt;
   $( &#039;div#questionQQ table.question tbody th&#039; ).css({&#039;text-align&#039;:&#039;center&#039;});&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Use images for radio buttons and checkboxes=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: LimeSurvey 1.92/2.0, using IE 9, FireFox 13, Chrome 16, Safari 5&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses an adaptation of the jQuery imagetick.js plugin to replace the default radio buttons and checkboxes with images as pictured below:&lt;br /&gt;
&lt;br /&gt;
[[File:images.png]]&lt;br /&gt;
&lt;br /&gt;
This adaptation will work in the following question types:&lt;br /&gt;
*Array&lt;br /&gt;
*Array by column&lt;br /&gt;
*Array dual scale&lt;br /&gt;
*Array (5 point choice)&lt;br /&gt;
*Array (10 point choice)&lt;br /&gt;
*Array (Increase-Same-Decrease)&lt;br /&gt;
*Array (Yes-No-Uncertain)&lt;br /&gt;
*Gender&lt;br /&gt;
*Yes-No&lt;br /&gt;
*Multiple choice&lt;br /&gt;
*Multiple choice with comments&lt;br /&gt;
*5 point choice&lt;br /&gt;
*List (Radio)&lt;br /&gt;
*List with comment&lt;br /&gt;
&lt;br /&gt;
==LimeSurvey 1.92 and earlier implementation==&lt;br /&gt;
#[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]].&lt;br /&gt;
#Download [[Media:imagetick_lime_v1.3.zip|this modified version of the plugin]].&lt;br /&gt;
#Extract all files and place them in your template directory.&lt;br /&gt;
#Add the following line to the &amp;lt;head&amp;gt; element in your startpage.pstpl &#039;&#039;&#039;BEFORE&#039;&#039;&#039; the call for template.js:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}imagetick_lime.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#Add the following to the source of a question or the group description&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
       var templatePath = $(&#039;head link[href*=&amp;quot;template.css&amp;quot;]&#039;).attr(&#039;href&#039;).replace(/template.css/, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
       // Apply images to radios&lt;br /&gt;
&lt;br /&gt;
       $(&#039;input[type=&amp;quot;radio&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
           // Image to use as a selected state of the radio&lt;br /&gt;
&lt;br /&gt;
           tick_image_path:  templatePath+&amp;quot;radio.gif&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
           // Image to use as a non-selected state&lt;br /&gt;
&lt;br /&gt;
           no_tick_image_path:  templatePath+&amp;quot;no_radio.gif&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
           // Class to apply to all radio images that are dynamically created&lt;br /&gt;
&lt;br /&gt;
           image_tick_class: &amp;quot;radios&amp;quot;&lt;br /&gt;
&lt;br /&gt;
       });&lt;br /&gt;
&lt;br /&gt;
       // Apply images to checkboxes&lt;br /&gt;
&lt;br /&gt;
       $(&#039;input[type=&amp;quot;checkbox&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
           // Image to use as a selected state of the checkbox&lt;br /&gt;
&lt;br /&gt;
           tick_image_path: templatePath+&amp;quot;check.gif&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
           // Image to use as a non-selected state&lt;br /&gt;
&lt;br /&gt;
           no_tick_image_path: templatePath+&amp;quot;no_check.gif&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
           // Class to apply to all checkbox images that are dynamically created&lt;br /&gt;
&lt;br /&gt;
           image_tick_class: &amp;quot;checkboxes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
       });&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also call the imagetick function from template.js. Skip the last step above and add the following to the end of template.js. Replace &amp;quot;yourTemplateName&amp;quot; with your template directory name.&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
   var templatePath = $(&#039;head link[href*=&amp;quot;template.css&amp;quot;]&#039;).attr(&#039;href&#039;).replace(/template.css/, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
   // Apply images to radios&lt;br /&gt;
&lt;br /&gt;
   $(&#039;input[type=&amp;quot;radio&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
       // Image to use as a selected state of the radio&lt;br /&gt;
&lt;br /&gt;
       tick_image_path: templatePath+&amp;quot;radio.gif&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
       // Image to use as a non-selected state&lt;br /&gt;
&lt;br /&gt;
       no_tick_image_path: templatePath+&amp;quot;no_radio.gif&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
       // Class to apply to all radio images that are dynamically created&lt;br /&gt;
&lt;br /&gt;
       image_tick_class: &amp;quot;radios&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
   // Apply images to checkboxes&lt;br /&gt;
&lt;br /&gt;
   $(&#039;input[type=&amp;quot;checkbox&amp;quot;]&#039;).imageTick({&lt;br /&gt;
&lt;br /&gt;
       // Image to use as a selected state of the checkbox&lt;br /&gt;
&lt;br /&gt;
       tick_image_path: templatePath+&amp;quot;check.gif&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
       // Image to use as a non-selected state&lt;br /&gt;
&lt;br /&gt;
       no_tick_image_path: templatePath+&amp;quot;no_check.gif&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
       // Class to apply to all checkbox images that are dynamically created&lt;br /&gt;
&lt;br /&gt;
       image_tick_class: &amp;quot;checkboxes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
});    &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to apply it to only one question on a page use selector (where QQ is the question ID)&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(&#039;#questionQQ input[type=&amp;quot;radio&amp;quot;]&#039;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to apply it to a single radio button in a question (to maybe have different images for each option) use selector (where SSSSS is the survey ID, GG is the group ID, QQ is the question ID, AA is the answer code)&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(&amp;quot;input#answerSSSSSXGGXQQAA&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LimeSurvey 2.0 and later implementation==&lt;br /&gt;
&lt;br /&gt;
Follow the instructions above with these changes:&lt;br /&gt;
#Download [[Media:imagetick_lime_v2.zip|this modified version of the plugin for 2.0 and up]] instead of the one mentioned above and add all contained files to your template directory.&lt;br /&gt;
#Add these lines to the &amp;lt;head&amp;gt; element in your startpage.pstpl instead of the one above:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{TEMPLATEURL}imagetick_lime_2.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;{TEMPLATEURL}imagetick_lime_2.css&amp;quot; /&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thanks to Jordan Boesch for the original plugin.&lt;br /&gt;
&lt;br /&gt;
=Changing the position an layout of an individual question using &amp;quot;question code&amp;quot;=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.87+ (6536)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To use this very flexible workaround you first have to apply a minor change to the question.pstpl of the used template.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;survey-question&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div class=&amp;quot;survey-question-text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
needs to be changed to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;survey-question&amp;quot; id=&amp;quot;{QUESTION_CODE}&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div class=&amp;quot;survey-question-text&amp;quot; id=&amp;quot;{QUESTION_CODE}&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
this change won&#039;t change anything in the layout and can be left in the template even if you don&#039;t need this workaround. It&#039;s just a means to have a handle to actually change individual questions.&lt;br /&gt;
&lt;br /&gt;
You can then use a code such as the following in the question text to make question specific format changes. &amp;quot;SAMPLE&amp;quot; needs to be replaced with the concerning question code and javascript has to be allowed ([[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|older versions of limesurvey]], under global settings for newer versions).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;SAMPLE&#039;).style.borderTop= &amp;quot;0px&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;SAMPLE&#039;).style.marginTop= &amp;quot;-62px&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&#039;SAMPLE&#039;).style.marginLeft= &amp;quot;30px&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sample code will hide the border at the top of the question, will move the whole question up by 62px and to the right by 30px. Using this workaround you can change a whole a lot of things concerning format and positions of a specific question without changing all the questions. A (German) list of all the allowed options can be found [http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften here].&lt;br /&gt;
&lt;br /&gt;
=Create MaxDiff question type=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.87+ (8518), IE 6/7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses JavaScript to convert an &#039;&#039;&#039;&#039;&#039;Array (flexible labels) by column&#039;&#039;&#039;&#039;&#039; question into a [http://en.wikipedia.org/wiki/MaxDiff MaxDiff] question type.&lt;br /&gt;
&lt;br /&gt;
[[File:max_diff_596x253.gif]]&lt;br /&gt;
&lt;br /&gt;
There is a demo [http://www.partnersinc.biz/surveys//index.php?sid=29191&amp;amp;newtest=Y&amp;amp;lang=en here] and implementation is as follows.&lt;br /&gt;
#[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]].&lt;br /&gt;
#Create an &#039;&#039;&#039;&#039;&#039;Array (flexible labels) by column&#039;&#039;&#039;&#039;&#039; question with 2 &amp;quot;answers&amp;quot; - these will be the left and right columns.&lt;br /&gt;
#Assign a label set to the question - these will be the labels in the center column.&lt;br /&gt;
#Place the following script in the source of the question or in the group description.&lt;br /&gt;
#In  line 5, replace &amp;quot;QQ&amp;quot; with the ID of the question and modify the message to your needs.&lt;br /&gt;
#Adjust the styles in lines 15-18 as required.&lt;br /&gt;
&lt;br /&gt;
The script moves the question columns into the MaxDiff configuration and alerts the user if they select the same option for both max and min columns.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
       maxDiff(QQ, &#039;You cannot select this answer twice.&#039;);&lt;br /&gt;
&lt;br /&gt;
       function maxDiff(qID, msg) {&lt;br /&gt;
&lt;br /&gt;
           // Move the cells around&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question col:eq(1)&#039;).prependTo(&#039;colgroup.col-responses&#039;);&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question thead tr:eq(0) th:eq(0)&#039;).prependTo(&#039;#question&#039;+qID+&#039; table.question thead tr:eq(0)&#039;);&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody tr&#039;).each(function(i){&lt;br /&gt;
&lt;br /&gt;
               $(&#039;td:eq(0)&#039;, this).prependTo(this);&lt;br /&gt;
&lt;br /&gt;
           });&lt;br /&gt;
&lt;br /&gt;
           // Style stuff&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question col.odd&#039;).css({ &#039;background-color&#039;:&#039;transparent&#039; });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody th&#039;).css({ &#039;text-align&#039;:&#039;center&#039; });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody tr:even td, #question&#039;+qID+&#039; table.question tbody tr:even th&#039;).css({ &#039;background-color&#039;:&#039;#F1F1F1&#039; });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody tr:odd td, #question&#039;+qID+&#039; table.question tbody tr:odd th&#039;).css({ &#039;background-color&#039;:&#039;#FCFCFC&#039; });&lt;br /&gt;
&lt;br /&gt;
           // Prevent clicking twice in the same row&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; input.radio&#039;).mousedown(function () {&lt;br /&gt;
&lt;br /&gt;
               var clickRow = $(this).parents(&#039;tr:eq(0)&#039;);&lt;br /&gt;
&lt;br /&gt;
               if ($(&#039;input.radio:checked&#039;, clickRow).length &amp;gt; 0) {&lt;br /&gt;
&lt;br /&gt;
                   alert (msg);&lt;br /&gt;
&lt;br /&gt;
                   return false;&lt;br /&gt;
&lt;br /&gt;
               }&lt;br /&gt;
&lt;br /&gt;
           });&lt;br /&gt;
&lt;br /&gt;
           $(&#039;#question&#039;+qID+&#039; table.question tbody td&#039;).mousedown(function () {&lt;br /&gt;
&lt;br /&gt;
               var clickRow = $(this).parents(&#039;tr:eq(0)&#039;);&lt;br /&gt;
&lt;br /&gt;
               if ($(&#039;input.radio:checked&#039;, clickRow).length &amp;gt; 0) {&lt;br /&gt;
&lt;br /&gt;
                   alert (msg);&lt;br /&gt;
&lt;br /&gt;
                   return false;&lt;br /&gt;
&lt;br /&gt;
               }&lt;br /&gt;
&lt;br /&gt;
           });&lt;br /&gt;
&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Load SVG Code From Drawing Tool=&lt;br /&gt;
&lt;br /&gt;
This workaround uses JavaScript/jQuery to load a drawing tool and store the results in a huge-text question. The details are outlined in the [[Workarounds: Manipulating a survey at runtime using Javascript#Load SVG Code From Drawing Tool|JavaScript section of the workarounds]].&lt;br /&gt;
&lt;br /&gt;
=Minimum or Maximum Date in Datepicker=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.90, IE 7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please note: From version 2.05 beta6, you can set the minimum and maximum date for the date picker directly in the advanced question attributes of the date/time question.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can set the minimum or maximum selectible date in a datepicker as follows&lt;br /&gt;
&lt;br /&gt;
[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]] and add the following to the source of the date question text or help. Replace &amp;quot;QQ&amp;quot; with the date question ID.&lt;br /&gt;
&lt;br /&gt;
For a minimum date of April 15, 2010:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
       var qID = QQ;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039;+qID+&#039; .popupdate&#039;).datepicker( &#039;option&#039;, &#039;minDate&#039;, new Date(2010, 4-1, 15) );&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a minimum date of the current date (today):&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
       var qID = QQ;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039;+qID+&#039; .popupdate&#039;).datepicker( &#039;option&#039;, &#039;minDate&#039;, new Date() );&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a maximum date of May 10, 2015:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
       var qID = QQ;&lt;br /&gt;
&lt;br /&gt;
       $(&#039;#question&#039;+qID+&#039; .popupdate&#039;).datepicker( &#039;option&#039;, &#039;maxDate&#039;, new Date(2015, 5-1, 10) );&lt;br /&gt;
&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More details here - http://jqueryui.com/demos/datepicker/#option-minDate&lt;br /&gt;
&lt;br /&gt;
=Evaluative Space Grid (ESG)=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.91, IE 7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The evaluative space grid (ESG) is a two-dimensional grid that provides a single-item measure of positivity and negativity (Larsen et al, 2009). See [http://leeds-faculty.colorado.edu/mcgrawp/pdf/larsen.norris.mcgraw.hawkley.cacioppo.2009.pdf page 4 of this PDF].&lt;br /&gt;
&lt;br /&gt;
This can be accomplished using a multiple-numeric question, some simple HTML and a little JavaScript.&lt;br /&gt;
&lt;br /&gt;
A table can be shown in the question. When a respondent clicks a grid cell in the table JavaScript loads the coordinates of the cell into the multiple-numeric question inputs.&lt;br /&gt;
&lt;br /&gt;
[[File:space_grid.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Create a Multiple Numeric question with two sub-questions labelled &amp;quot;X&amp;quot; and &amp;quot;Y&amp;quot;.&lt;br /&gt;
#Add the following HTML to the source of the question to create the table:&amp;lt;syntaxhighlight lang=&amp;quot;html4strict&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;spaceGrid&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td rowspan=&amp;quot;5&amp;quot; class=&amp;quot;yAxisLabel&amp;quot;&amp;gt;How NEGATIVE&amp;lt;br&amp;gt;&lt;br /&gt;
			do you feel about&amp;lt;br&amp;gt;&lt;br /&gt;
		the stimulus?&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Extremely&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Quite a bit&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Moderately&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Slightly&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;yLabel&amp;quot;&amp;gt;Not at all&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;gridCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;Not at all&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Slightly&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Moderately&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Quite a bit&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;xLabel&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;yLabel&amp;quot;&amp;gt;Extremely&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td class=&amp;quot;blankCell&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td colspan=&amp;quot;5&amp;quot; class=&amp;quot;xAxisLabel&amp;quot;&amp;gt;How POSITIVE do you feel about the stimulus?&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following styles to the end of your template.css file:&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.spaceGrid {&lt;br /&gt;
	border: 0 none;&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.spaceGrid td {&lt;br /&gt;
	padding: 0 3px;&lt;br /&gt;
	text-align: center !important;&lt;br /&gt;
	border: 0 none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.xAxisLabel {&lt;br /&gt;
	padding-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.yAxisLabel {&lt;br /&gt;
	padding-right: 10px;&lt;br /&gt;
	width: 125px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.xLabel {&lt;br /&gt;
	height: 20px;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.yLabel {&lt;br /&gt;
	text-align: right !important;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.gridCell {&lt;br /&gt;
	width: 70px;&lt;br /&gt;
	height: 70px;&lt;br /&gt;
	border: 1px solid #666666;&lt;br /&gt;
	background-color: #FFFFFF;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.checkedCell {&lt;br /&gt;
	background-color: #66FF00;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of your template.js file:&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;	&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
	// Listener on the grid cells&lt;br /&gt;
	$(&#039;.gridCell&#039;).click(function(){&lt;br /&gt;
&lt;br /&gt;
		// Define some vars&lt;br /&gt;
		var parentQ = $(this).parents(&#039;div[id&amp;lt;/div&amp;gt;=&amp;quot;question&amp;quot;]:eq(0)&#039;);&lt;br /&gt;
		var parentTable = $(this).parents(&#039;table.spaceGrid:eq(0)&#039;);&lt;br /&gt;
		var parentRow = $(this).parent();&lt;br /&gt;
		var numGridCell = $(&#039;.gridCell&#039;).length;&lt;br /&gt;
		var numCols = $(&#039;.gridCell&#039;, parentRow).length;&lt;br /&gt;
		var numRows = numGridCell/numCols;&lt;br /&gt;
&lt;br /&gt;
		// Add class to checked cell&lt;br /&gt;
		$(&#039;.checkedCell&#039;, parentQ).removeClass(&#039;checkedCell&#039;);&lt;br /&gt;
		$(this).addClass(&#039;checkedCell&#039;);&lt;br /&gt;
&lt;br /&gt;
		// Find the cell coordinates&lt;br /&gt;
		var reverseRowIndex = (numRows - $(&#039;tr&#039;, parentTable).index($(parentRow)));&lt;br /&gt;
		var colIndex = $(&#039;.gridCell&#039;, parentRow).index($(this)) + 1;&lt;br /&gt;
&lt;br /&gt;
		// Load coordinates into inputs&lt;br /&gt;
		$(&#039;input.text:eq(0)&#039;, parentQ).val(colIndex);&lt;br /&gt;
		$(&#039;input.text:eq(1)&#039;, parentQ).val(reverseRowIndex);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The script should automatically handle different grid sizes.&lt;br /&gt;
&lt;br /&gt;
=Slider Highlighting=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.91, IE 7/8, Firefox 3.6, Safari 3.2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You may want to highlight a slider after it has been moved/changed to allow respondents to easily see which slider sub-questions have been answered.&lt;br /&gt;
&lt;br /&gt;
[[File:Capture.PNG]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of &#039;&#039;&#039;template.js&#039;&#039;&#039;:&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
$(&#039;html&#039;).bind(&#039;slidecreate&#039;, function(event, ui) {&lt;br /&gt;
	$(&#039;.slider_callout&#039;).each(function(i){&lt;br /&gt;
		if($(this).text().length &amp;gt; 0) {&lt;br /&gt;
			$(this).parents(&#039;li:eq(0)&#039;).addClass(&#039;changedSlider&#039;);&lt;br /&gt;
		}&lt;br /&gt;
	});&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
	$(&#039;.ui-slider-horizontal&#039;).bind(&#039;slidechange&#039;, function(event, ui) {&lt;br /&gt;
	 $(this).parents(&#039;li:eq(0)&#039;).addClass(&#039;changedSlider&#039;);&lt;br /&gt;
	});&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add something like the following to the end of &#039;&#039;&#039;template.css&#039;&#039;&#039; (these styles are for the default template and would need to be modified for other templates):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.numeric-multi .answer li {&lt;br /&gt;
	border-bottom: 5px solid #FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.numeric-multi .answer li label {&lt;br /&gt;
	background-color: #FFFFFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.numeric-multi .answer li div.multinum-slider {&lt;br /&gt;
	margin: 1.5em 0.5em 0.2em 0;&lt;br /&gt;
	padding-left: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ui-slider-1 {&lt;br /&gt;
	margin-bottom: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.changedSlider {&lt;br /&gt;
	background-color: #99FFFF;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Sliders in Array-Numbers or Array-Dual-Scale-Numbers=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.91, IE 7/8/9, Firefox 3/7, Safari 5, Chrome 15&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround will replace the dropdowns in &#039;&#039;&#039;&#039;&#039;array-numbers&#039;&#039;&#039;&#039;&#039; or &#039;&#039;&#039;&#039;&#039;array-dual-scale-numbers&#039;&#039;&#039;&#039;&#039; questions with sliders. The sliders will automatically have the same minimum, maximum and steps that you set in the advanced question settings.&lt;br /&gt;
&lt;br /&gt;
[[File:custom_sliders_1.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
There is a [http://www.partnersinc.biz/surveys//index.php?sid=66653&amp;amp;newtest=Y&amp;amp;lang=en &#039;&#039;&#039;demo here&#039;&#039;&#039;].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#[[Workarounds: Manipulating a survey at runtime using Javascript#How to use Script (eg. JavaScript etc.) in LimeSurvey?|Set up your survey to use JavaScript]].&lt;br /&gt;
#Create your array-numbers or array-dual-scale-numbers question.&lt;br /&gt;
#Add the following to the source of the question. Replace &amp;quot;QQ&amp;quot; with the array question ID. (NOTE: In 1.92 or newer, you can replace &amp;quot;QQ&amp;quot; with &amp;quot;{QID}&amp;quot;)&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
&lt;br /&gt;
		insertSlider (QQ);&lt;br /&gt;
&lt;br /&gt;
		function insertSlider (qID) {&lt;br /&gt;
&lt;br /&gt;
			$(&#039;#question&#039;+qID+&#039; select&#039;).each(function(i, el){&lt;br /&gt;
&lt;br /&gt;
				// Hide the dropdown&lt;br /&gt;
				$(el).hide();&lt;br /&gt;
&lt;br /&gt;
				var id = $(el).attr(&#039;id&#039;).replace(/#/g,&#039;-&#039;);&lt;br /&gt;
&lt;br /&gt;
				// Some dropdown values&lt;br /&gt;
				var currentVal = Number($(&#039;option:selected&#039;, el).val());&lt;br /&gt;
				var firstVal = Number($(&#039;option[value!=&amp;quot;&amp;quot;]:first&#039;, el).val());&lt;br /&gt;
				var secondVal = Number($(&#039;option[value!=&amp;quot;&amp;quot;]:first&#039;, el).next(&#039;option&#039;).val());&lt;br /&gt;
				var lastVal = Number($(&#039;option[value!=&amp;quot;&amp;quot;]:last&#039;, el).val());&lt;br /&gt;
&lt;br /&gt;
				// Insert a container for the slider&lt;br /&gt;
				var container = $(&#039;&amp;lt;div class=&amp;quot;customSliderWrapper&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;).insertAfter(el);&lt;br /&gt;
&lt;br /&gt;
				// Insert a callout&lt;br /&gt;
				var callout = $(&#039;&amp;lt;div id=&amp;quot;callOut-&#039;+id+&#039;&amp;quot; class=&amp;quot;customCallout&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;).appendTo(container).text($(&#039;option:selected&#039;, el).val());&lt;br /&gt;
&lt;br /&gt;
				// Initiate the slider&lt;br /&gt;
				var slider = $(&#039;&amp;lt;div id=&amp;quot;slider-&#039;+id+&#039;&amp;quot; class=&amp;quot;customSlider&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;).appendTo(container).slider({&lt;br /&gt;
					min: firstVal,&lt;br /&gt;
					max: lastVal,&lt;br /&gt;
					range: &#039;min&#039;,&lt;br /&gt;
					value: currentVal,&lt;br /&gt;
					step: secondVal - firstVal,&lt;br /&gt;
					slide: function( event, ui ) {&lt;br /&gt;
						$(&#039;option[value=&amp;quot;&#039;+ui.value+&#039;&amp;quot;]&#039;, el).attr(&#039;selected&#039;, &#039;selected&#039;);&lt;br /&gt;
						function updateCustomCallout() {&lt;br /&gt;
							$(&#039;#callOut-&#039;+id).text($(&#039;option:selected&#039;, el).val()).css({ &#039;left&#039;: $(&#039;#slider-&#039;+id+&#039; .ui-slider-handle&#039;).css(&#039;left&#039;) });&lt;br /&gt;
						}&lt;br /&gt;
						// Delay updating the callout because it was picking up the last postion of the slider&lt;br /&gt;
						setTimeout(updateCustomCallout, 10);&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
&lt;br /&gt;
				// Change the slider if the dropdown is changed&lt;br /&gt;
				// (not required if dropdown is hidden)&lt;br /&gt;
				$(el).change(function() {&lt;br /&gt;
					slider.slider(&#039;value&#039;, Number($(&#039;option:selected&#039;, el).val()));&lt;br /&gt;
					$(&#039;#callOut-&#039;+id).text($(&#039;option:selected&#039;, el).val());&lt;br /&gt;
				});&lt;br /&gt;
&lt;br /&gt;
				// Set a value as soon as the slider handle is clicked&lt;br /&gt;
				$(&#039;#slider-&#039;+id+&#039; .ui-slider-handle&#039;).mousedown(function() {&lt;br /&gt;
					$(&#039;option[value=&amp;quot;&#039;+slider.slider(&#039;value&#039;)+&#039;&amp;quot;]&#039;, el).attr(&#039;selected&#039;, &#039;selected&#039;);&lt;br /&gt;
					$(&#039;#callOut-&#039;+id).text(slider.slider(&#039;value&#039;));&lt;br /&gt;
				});&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add something like the following to the end of &#039;&#039;&#039;template.css&#039;&#039;&#039; (these styles are for the default template and may need to be modified for other templates):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
table.innerframe {&lt;br /&gt;
	width:850px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.array-multi-flexi table.question {&lt;br /&gt;
	width:90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.customCallout {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	top: 0;&lt;br /&gt;
	left: 0;&lt;br /&gt;
	width: 50px;&lt;br /&gt;
	height: 1.75em;&lt;br /&gt;
	text-align: left;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	margin: 0 0 0 -0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.customSliderWrapper {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	margin: 0 10px;&lt;br /&gt;
	padding-top: 1.75em;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Vertical Sliders=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.92+, 2.00+, IE 9, Firefox 13, Chrome 19&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses a custom jQuery plugin to apply vertical sliders to multiple-numeric questions. You can download a sample template here (with the plugin in template.js) - [[Media:default_vertical_sliders.zip|vertical slider template]] - and a sample survey here - [[Media:demo_vertical_sliders.lss|vertical slider survey]].&lt;br /&gt;
&lt;br /&gt;
[[File:verticalsliders_1.jpg]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create your multi-numeric question(s). Do NOT use any of the slider advanced settings.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.js. Replace &amp;quot;QQ&amp;quot; (line 5) with the question ID and adjust the options in the function call as desired. Repeat the call as many times as you need for more questions&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;$(document).ready(function(){&lt;br /&gt;
&lt;br /&gt;
	// Call the vertical slider plugin with the question ID&lt;br /&gt;
	// Edit options here as desired&lt;br /&gt;
	$(&#039;#questionQQ&#039;).lsVerticalSlider({&lt;br /&gt;
		minValue		:0,		// Minimum value (default 0)&lt;br /&gt;
		maxValue		:200,	// Maximum value (default 100)&lt;br /&gt;
		startValue		:100,	// Start value (default null)&lt;br /&gt;
		step			:10,	// Slider increments (default 1)&lt;br /&gt;
		height			:100,	// Height of slider in pixels (default 200)&lt;br /&gt;
		recordStart		:true,	// Record the start value? (default no)&lt;br /&gt;
		showMin			:true,	// Show minimum value? (default no)&lt;br /&gt;
		showMax			:true	// Show maximum value? (default no)&lt;br /&gt;
	});&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// NO EDITING REQUIRED BELOW HERE&lt;br /&gt;
// A jQuery plugin to convert multiple-numeric questions to vertical sliders&lt;br /&gt;
(function( $ ){&lt;br /&gt;
	$.fn.lsVerticalSlider = function(options) {&lt;br /&gt;
&lt;br /&gt;
		// The defaults, extended and modified with any passed in the function call&lt;br /&gt;
		var opts = $.extend( {&lt;br /&gt;
			minValue		:0,&lt;br /&gt;
			maxValue		:100,&lt;br /&gt;
			startValue		:&#039;&#039;,&lt;br /&gt;
			step			:1,&lt;br /&gt;
			height			:150,&lt;br /&gt;
			recordStart		:false,&lt;br /&gt;
			showMin			:false,&lt;br /&gt;
			showMax			:false&lt;br /&gt;
		}, options);&lt;br /&gt;
&lt;br /&gt;
		return this.each(function() {&lt;br /&gt;
&lt;br /&gt;
			var $this = $(this);&lt;br /&gt;
&lt;br /&gt;
			// Some classes for the question and sub-questions&lt;br /&gt;
			$this.addClass(&#039;vertical-slider-question&#039;);&lt;br /&gt;
			$(&#039;li:[id&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;=&amp;quot;javatbd&amp;quot;]&#039;, $this).addClass(&#039;vertical-slider-sub-question&#039;);&lt;br /&gt;
&lt;br /&gt;
			// Loop through the sub-questions&lt;br /&gt;
			$(&#039;li:[id&amp;lt;/div&amp;gt;=&amp;quot;javatbd&amp;quot;]&#039;, $this).each(function(i){&lt;br /&gt;
				var itemID = $(this).attr(&#039;id&#039;).replace(/javatbd/, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
				// Check for pre-existing answer&lt;br /&gt;
				if($(&#039;#answer&#039;+itemID).val() != &#039;&#039;) {&lt;br /&gt;
					opts.startValue = $(&#039;#answer&#039;+itemID).val();&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				// Insert the slider elements&lt;br /&gt;
				$(&#039;#answer&#039;+itemID).after(&lt;br /&gt;
					&#039;&amp;lt;div class=&amp;quot;vertical-slider-max-min&amp;quot; style=&amp;quot;height:&#039;+(opts.height+2)+&#039;px;&amp;quot;&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;vertical-slider-max&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;vertical-slider-min&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;div id=&amp;quot;vertical-slider-&#039;+itemID+&#039;&amp;quot; class=&amp;quot;vertical-slider&amp;quot; style=&amp;quot;height:&#039;+opts.height+&#039;px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;div class=&amp;quot;vertical-slider-callout-wrapper&amp;quot; style=&amp;quot;height:&#039;+(opts.height+2)+&#039;px;&amp;quot;&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;vertical-slider-callout&amp;quot; id=&amp;quot;slider-callout-&#039;+itemID+&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
				);&lt;br /&gt;
&lt;br /&gt;
				// Show min/max if option is set&lt;br /&gt;
				if(opts.showMax) {&lt;br /&gt;
					$(&#039;.vertical-slider-max&#039;, $this).text(opts.maxValue);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				if(opts.showMin) {&lt;br /&gt;
					$(&#039;.vertical-slider-min&#039;, $this).text(opts.minValue);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				// Initiate the slider&lt;br /&gt;
				$(&#039;#vertical-slider-&#039;+itemID).slider({&lt;br /&gt;
					orientation: &#039;vertical&#039;,&lt;br /&gt;
					range: &#039;min&#039;,&lt;br /&gt;
					min: opts.minValue,&lt;br /&gt;
					max: opts.maxValue,&lt;br /&gt;
					value: opts.startValue,&lt;br /&gt;
					step: opts.step,&lt;br /&gt;
					slide: function(event, ui) {&lt;br /&gt;
						$(&#039;#answer&#039;+itemID).val(ui.value);&lt;br /&gt;
						$(&#039;#slider-callout-&#039;+itemID).text(ui.value);&lt;br /&gt;
						setTimeout(function() {&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).css({ &#039;bottom&#039;:$(&#039;#vertical-slider-&#039;+itemID+&#039; .ui-slider-handle&#039;).css(&#039;bottom&#039;) }).show();&lt;br /&gt;
						}, 10);&lt;br /&gt;
					},&lt;br /&gt;
					create: function(event, ui) {&lt;br /&gt;
						// Initial values and positions&lt;br /&gt;
						if($(&#039;#answer&#039;+itemID).val() != &#039;&#039;) { // Pre-existing answer&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).text(opts.startValue);&lt;br /&gt;
						}&lt;br /&gt;
						else if(opts.recordStart) { // Record the start value (if option is set)&lt;br /&gt;
							$(&#039;#answer&#039;+itemID).val(opts.startValue);&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).text(opts.startValue);&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							$(&#039;#slider-callout-&#039;+itemID).hide();&lt;br /&gt;
						}&lt;br /&gt;
						$(&#039;#slider-callout-&#039;+itemID).css({ &#039;bottom&#039;:$(&#039;#vertical-slider-&#039;+itemID+&#039; .ui-slider-handle&#039;).css(&#039;bottom&#039;) });&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	};&lt;br /&gt;
})( jQuery );&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.css (these styles are for the default template):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;/* Vertical slider styles and overrides */&lt;br /&gt;
.vertical-slider-question p.tip {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-sub-question {&lt;br /&gt;
	float: left;&lt;br /&gt;
	margin: 0 3em 0 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question label {&lt;br /&gt;
	display: block;&lt;br /&gt;
	padding: 0 0 0.75em 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question span.input {&lt;br /&gt;
	padding: 0.3em 0 0 0;&lt;br /&gt;
	display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question input.text {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider {&lt;br /&gt;
	float: left;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-question .ui-slider-handle {&lt;br /&gt;
	top: auto;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max-min,&lt;br /&gt;
.vertical-slider-callout-wrapper {&lt;br /&gt;
	float: left;&lt;br /&gt;
	position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-callout-wrapper {&lt;br /&gt;
	min-width: 3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max-min {&lt;br /&gt;
	margin-right: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max,&lt;br /&gt;
.vertical-slider-min {&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	color:#666666;&lt;br /&gt;
	line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-max {&lt;br /&gt;
	margin-top: -0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-min {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	right: 0;&lt;br /&gt;
	bottom: 0;&lt;br /&gt;
	margin-bottom: -0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vertical-slider-callout {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	top: auto;&lt;br /&gt;
	margin: 0 0 -0.6em 0.5em;&lt;br /&gt;
	padding: 0.1em;&lt;br /&gt;
	font-size: 0.9em;&lt;br /&gt;
	color:#000000;&lt;br /&gt;
	line-height: 1;&lt;br /&gt;
	background: #F8F8FF;&lt;br /&gt;
	border: 1px solid #D2E0F2;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Range Slider=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tested with: 1.92+, 2.00+, IE 9, Firefox 13, Chrome 19&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This workaround uses a custom jQuery plugin to insert a jQuery UI range slider into a multi-numeric question and automatically populate that question&#039;s inputs with the range min and max values. You can download a sample template here - [[Media:Demo_Range_Slider.zip|range slider template]] - and a sample survey here - [[Media:Limesurvey_survey_range_slider.lss|range slider survey]].&lt;br /&gt;
&lt;br /&gt;
[[File:Range_slider.jpg]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The plugin handles:&lt;br /&gt;
*previous answers&lt;br /&gt;
*slider max/min&lt;br /&gt;
*range min start&lt;br /&gt;
*range max start&lt;br /&gt;
*range span min&lt;br /&gt;
*slider step&lt;br /&gt;
*slider width&lt;br /&gt;
*record the start values&lt;br /&gt;
*show slider max and min&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Requirements:&lt;br /&gt;
*LimeSurvey 1.92 or newer&lt;br /&gt;
*A multiple-numeric question with two sub-questions&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create your multi-numeric question. Do NOT use any of the slider advanced settings.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.js.&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;// A jQuery plugin to display a range slider in LimeSurvey&lt;br /&gt;
(function( $ ){&lt;br /&gt;
 &lt;br /&gt;
	$.fn.lsRangeSlider = function(options) {  &lt;br /&gt;
 &lt;br /&gt;
		// The defaults, extended and modified with any passed in the function call&lt;br /&gt;
		var opts = $.extend( {&lt;br /&gt;
			range			:true, &lt;br /&gt;
			sliderMin		:0, &lt;br /&gt;
			sliderMax		:100,&lt;br /&gt;
			rangeStartMin		:&#039;&#039;,&lt;br /&gt;
			rangeStartMax		:&#039;&#039;,&lt;br /&gt;
			minRangeSpan		:0,&lt;br /&gt;
			step			:1,&lt;br /&gt;
			width			:250, &lt;br /&gt;
			recordStart		:false,&lt;br /&gt;
			showMin			:false,&lt;br /&gt;
			showMax			:false&lt;br /&gt;
		}, options);&lt;br /&gt;
 &lt;br /&gt;
		return this.each(function() { &lt;br /&gt;
 &lt;br /&gt;
			if($(this).hasClass(&#039;numeric-multi&#039;) &amp;amp;&amp;amp; $(&#039;input.text&#039;, this).length == 2) {&lt;br /&gt;
 &lt;br /&gt;
				// Define some vars	&lt;br /&gt;
				var $this = $(this);&lt;br /&gt;
				var qID = $(this).attr(&#039;id&#039;).split(&#039;question&#039;)[1];&lt;br /&gt;
				var rangeMinInput = $(&#039;input.text:eq(0)&#039;, $this); &lt;br /&gt;
				var rangeMaxInput = $(&#039;input.text:eq(1)&#039;, $this); &lt;br /&gt;
 &lt;br /&gt;
				// Some classes for the question and sub-questions&lt;br /&gt;
				$this.addClass(&#039;range-slider-question&#039;);&lt;br /&gt;
 &lt;br /&gt;
				// Check for pre-existing answer&lt;br /&gt;
				if($(rangeMinInput).val() != &#039;&#039; &amp;amp;&amp;amp; $(rangeMinInput).val() != &#039;&#039;) {&lt;br /&gt;
					opts.rangeStartMin = $(rangeMinInput).val();&lt;br /&gt;
					opts.rangeStartMax = $(rangeMaxInput).val();&lt;br /&gt;
				}&lt;br /&gt;
 &lt;br /&gt;
				// Insert the slider elements&lt;br /&gt;
				$(&#039;.subquestions-list&#039;, $this).before(&lt;br /&gt;
					&#039;&amp;lt;div class=&amp;quot;range-slider-wrapper&amp;quot;&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;range-slider-min&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div id=&amp;quot;range-slider-&#039;+qID+&#039;&amp;quot; class=&amp;quot;range-slider&amp;quot; style=&amp;quot;width:&#039;+opts.width+&#039;px;&amp;quot;&amp;gt; \&lt;br /&gt;
							&amp;lt;div class=&amp;quot;range-slider-callout&amp;quot; id=&amp;quot;slider-callout-min-&#039;+qID+&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
							&amp;lt;div class=&amp;quot;range-slider-callout&amp;quot; id=&amp;quot;slider-callout-max-&#039;+qID+&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div class=&amp;quot;range-slider-max&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
						&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; \&lt;br /&gt;
					&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
				);&lt;br /&gt;
 &lt;br /&gt;
				// Show min/max if option is set&lt;br /&gt;
				if(opts.showMax) {&lt;br /&gt;
					$(&#039;.range-slider-max&#039;, $this).text(opts.sliderMax);&lt;br /&gt;
				}&lt;br /&gt;
				if(opts.showMin) {&lt;br /&gt;
					$(&#039;.range-slider-min&#039;, $this).text(opts.sliderMin);&lt;br /&gt;
				}&lt;br /&gt;
 &lt;br /&gt;
				// Initiate the slider&lt;br /&gt;
				var rangeMin;&lt;br /&gt;
				var rangeMax;&lt;br /&gt;
				if(opts.rangeStartMin == &#039;&#039; || opts.rangeStartMin &amp;lt; opts.sliderMin || opts.rangeStartMin &amp;gt; opts.rangeStartMax) {&lt;br /&gt;
					rangeMin = opts.sliderMin+((opts.sliderMax-opts.sliderMin)*0.3333);&lt;br /&gt;
				}&lt;br /&gt;
				else {&lt;br /&gt;
					rangeMin = opts.rangeStartMin;&lt;br /&gt;
				}&lt;br /&gt;
				if(opts.rangeStartMax == &#039;&#039; || opts.rangeStartMax &amp;gt; opts.sliderMax || opts.rangeStartMax &amp;lt; opts.rangeStartMin) {&lt;br /&gt;
					rangeMax = opts.sliderMin+((opts.sliderMax-opts.sliderMin)*0.6667);&lt;br /&gt;
				}&lt;br /&gt;
				else {&lt;br /&gt;
					rangeMax = opts.rangeStartMax;&lt;br /&gt;
				}&lt;br /&gt;
				$(&#039;#range-slider-&#039;+qID).slider({&lt;br /&gt;
					range: true,&lt;br /&gt;
					min: opts.sliderMin,&lt;br /&gt;
					max: opts.sliderMax, &lt;br /&gt;
					values: [ rangeMin, rangeMax ],&lt;br /&gt;
					step: opts.step,&lt;br /&gt;
					slide: function(event, ui) {&lt;br /&gt;
						if((ui.values[1] - ui.values[0]) &amp;lt; opts.minRangeSpan) {&lt;br /&gt;
							return false; // Nothing happens if less than minRangeSpan&lt;br /&gt;
						}&lt;br /&gt;
						$(rangeMinInput).val(ui.values[0]);&lt;br /&gt;
						$(rangeMaxInput).val(ui.values[1]);&lt;br /&gt;
						$(&#039;#slider-callout-min-&#039;+qID).text(ui.values[0]);&lt;br /&gt;
						$(&#039;#slider-callout-max-&#039;+qID).text(ui.values[1]);&lt;br /&gt;
						setTimeout(function() { &lt;br /&gt;
							$(&#039;#slider-callout-min-&#039;+qID).css({ &#039;left&#039;:$(&#039;.ui-slider-handle:eq(0)&#039;, $this).position().left - $(&#039;#slider-callout-min-&#039;+qID).outerWidth() - ($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; }).show();&lt;br /&gt;
							$(&#039;#slider-callout-max-&#039;+qID).css({ &#039;left&#039;:($(&#039;.ui-slider-handle:eq(1)&#039;, $this).position().left)+($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; }).show();&lt;br /&gt;
						}, 10);&lt;br /&gt;
					},&lt;br /&gt;
					create: function(event, ui) {&lt;br /&gt;
						// Initial values and positions&lt;br /&gt;
						if($(rangeMinInput).val() != &#039;&#039; &amp;amp;&amp;amp; $(rangeMaxInput).val() != &#039;&#039;) { // Pre-existing answer&lt;br /&gt;
							$(&#039;#slider-callout-min-&#039;+qID).text(opts.rangeStartMin);&lt;br /&gt;
							$(&#039;#slider-callout-max-&#039;+qID).text(opts.rangeStartMax);&lt;br /&gt;
						}&lt;br /&gt;
						else if(opts.recordStart &amp;amp;&amp;amp; opts.rangeStartMin &amp;amp;&amp;amp; opts.rangeStartMin &amp;amp;&amp;amp; $(rangeMinInput).val() == &#039;&#039; &amp;amp;&amp;amp; $(rangeMaxInput).val() == &#039;&#039;) { // Record the start value (if option is set)&lt;br /&gt;
							$(rangeMinInput).val(opts.rangeStartMin);&lt;br /&gt;
							$(rangeMaxInput).val(opts.rangeStartMax);&lt;br /&gt;
							$(&#039;#slider-callout-min-&#039;+qID).text(opts.rangeStartMin);&lt;br /&gt;
							$(&#039;#slider-callout-max-&#039;+qID).text(opts.rangeStartMax);&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							$(&#039;.range-slider-callout&#039;, $this).hide();&lt;br /&gt;
						} &lt;br /&gt;
						$(&#039;#slider-callout-min-&#039;+qID).css({ &#039;left&#039;:$(&#039;.ui-slider-handle:eq(0)&#039;, $this).position().left - $(&#039;#slider-callout-min-&#039;+qID).outerWidth() - ($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; });&lt;br /&gt;
						$(&#039;#slider-callout-max-&#039;+qID).css({ &#039;left&#039;:($(&#039;.ui-slider-handle:eq(1)&#039;, $this).position().left)+($(&#039;.ui-slider-handle:eq(1)&#039;, $this).outerWidth()/2)+&#039;px&#039; });&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
 &lt;br /&gt;
	};&lt;br /&gt;
})( jQuery );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Add the following to the end of template.css (these styles are for the default template but easily modified for others):&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.range-slider-question p.tip,&lt;br /&gt;
.range-slider-question .subquestions-list {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-wrapper {&lt;br /&gt;
	clear: both;&lt;br /&gt;
	margin: 10px 0;&lt;br /&gt;
	padding-top: 20px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider,&lt;br /&gt;
.range-slider-max,&lt;br /&gt;
.range-slider-min {&lt;br /&gt;
	float: left;&lt;br /&gt;
	position: relative;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-max,&lt;br /&gt;
.range-slider-min {&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	color:#666666;&lt;br /&gt;
	line-height: 1.20;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-min {&lt;br /&gt;
	margin-right: 5px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-max {&lt;br /&gt;
	margin-left: 5px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-question .ui-slider-handle {&lt;br /&gt;
	top: -4px;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
.range-slider-callout {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	top: -30px;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	min-width: 1.3em;&lt;br /&gt;
	padding: 0.1em;&lt;br /&gt;
	font-size: 0.9em;&lt;br /&gt;
	color:#000000;&lt;br /&gt;
	line-height: 1;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	background: #F8F8FF;&lt;br /&gt;
	border: 1px solid #D2E0F2;&lt;br /&gt;
	border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Then, add something like this to the source of your question to apply the plugin with some custom option settings (I think the comments explain the options adequately)&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
	$(document).ready(function(){&lt;br /&gt;
 &lt;br /&gt;
		$(&#039;#question{QID}&#039;).lsRangeSlider({&lt;br /&gt;
			sliderMin	:0,	// Minimum slider value (default 0)&lt;br /&gt;
			sliderMax	:100,	// Maximum slider value (default 100) &lt;br /&gt;
			rangeStartMin	:20,	// Minimum range handle start value  &lt;br /&gt;
			rangeStartMax	:80,	// Maximum range handle start value  &lt;br /&gt;
			minRangeSpan	:5,	// Minimum allowed range span &lt;br /&gt;
			step		:1,	// Slider increments (default 1)&lt;br /&gt;
			width		:400,	// Width of slider in pixels (default 250)&lt;br /&gt;
			recordStart	:true,	// Record the start value? (default no)&lt;br /&gt;
			showMin		:true,	// Show slider minimum value? (default no)&lt;br /&gt;
			showMax		:true	// Show slider maximum value? (default no)&lt;br /&gt;
		});&lt;br /&gt;
 &lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#Or, to apply the plugin with the default option settings&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
	$(document).ready(function(){&lt;br /&gt;
 &lt;br /&gt;
		$(&#039;#question{QID}&#039;).lsRangeSlider();&lt;br /&gt;
 &lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Split your sample into legs (cells) that see slightly different wording and media=&lt;br /&gt;
&lt;br /&gt;
Sometimes you may need to test candidate A vs candidate B or brand 1 vs brand 2 &amp;amp;hellip; vs brand n. Typically in such cases the phrasing of the questionnaire is identical except for the brand (candidate) and some logo/media. Rather than create several questionnaires it is best to control survey logic by assigning respondents to different groups and showing them different versions of the questionnaire.&lt;br /&gt;
&lt;br /&gt;
The logical engine in the current version (1.91) does not support this but you can still do it using the attribute fields in the token table. The instructions below are not really a workaround, but more of a translation of conditional logic to database questionnaire logic.&lt;br /&gt;
&lt;br /&gt;
This works for closed surveys. If your survey is not closed you may want to consider ways to create automatically tokens for each respondent like: &amp;quot;Create token on the fly and Edit completed survey&amp;quot;: http://bugs.limesurvey.org/view.php?id=2982&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Case A: you need different text for each version&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Step 1: you create a tokens table adding attribute fields for each variation you need: [[Tokens#User-defined attribute fields|User defined attribute fields]]. For example you may store in attribute_1 the name of the candidate, in attribute_2 the name of the party etc.&lt;br /&gt;
&lt;br /&gt;
Step 2 You export the structure of your tokens database and populate it with the relevant values for the attribute fields. Then import it back&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
http://img502.imageshack.us/img502/7425/58d0ff2c68d74366a81e6f7.png&lt;br /&gt;
&lt;br /&gt;
Please use the instructions here: [[Tokens#Importing/exporting tokens|importing and exporting tokens]], and pay attention because this can be error-prone.&lt;br /&gt;
&lt;br /&gt;
Step 3&lt;br /&gt;
&lt;br /&gt;
When creating a question use the insert replacement field icon http://img502.imageshack.us/img502/540/81a6c17d49f04f88bd52e72.png to insert your proper keyword.&lt;br /&gt;
&lt;br /&gt;
This is it. The overall process is quite simple once you get the hang of using tokens, but the database can be space-consuming if you are running on limited resources.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Case B: you need to run different media, from public hosting websites.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The process is just like in case A, just that you will populate the attribute field with unique identifiers for the media.&lt;br /&gt;
&lt;br /&gt;
See below an example on how to embed a youtube video&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;iframe allowfullscreen=&amp;quot;&amp;quot; frameborder=&amp;quot;0&amp;quot; height=&amp;quot;349&amp;quot; src=&amp;quot;http://www.youtube.com/embed/&#039;&#039;&#039;{TOKEN:ATTRIBUTE_5}&#039;&#039;&#039;?rel=0&amp;amp;amp;modestbranding=1&amp;amp;amp;loop=0&amp;amp;amp;controls=0&amp;amp;amp;autoplay=1&amp;amp;amp;rel=0&amp;amp;amp;showinfo=0&amp;amp;amp;showsearch=0&amp;amp;amp;iv_load_policy=o&amp;quot; width=&amp;quot;560&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you embed images you will want to make sure that the hotlinks for your pictures only differ by the image ID. IF not, you may use a larger portion, or maybe even the entire URL as your unique identifier. As said before, please consider how much space you are allowed for your databases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Case C: you want to run media from your server, which is organized in relevant folders&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For this scenario I will assume your media is organized as follows&lt;br /&gt;
&lt;br /&gt;
Project folder ...leg folder (for each leg) ... media (1 to n). You can use a FTP client to upload this structure to you LS installation.&lt;br /&gt;
&lt;br /&gt;
In this case you only need to store the &amp;lt;leg folder&amp;gt; into the tokens table and then use this info to build your embed tag. This may free a significant amount of space,&lt;br /&gt;
&lt;br /&gt;
For example if you have the data as below...&lt;br /&gt;
&lt;br /&gt;
http://img534.imageshack.us/img534/8967/a62e6ff48476492c8795f79.png&lt;br /&gt;
&lt;br /&gt;
&amp;amp;hellip; then your embed for the party logo will look somewhere along these lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;[path to project folder]/&#039;&#039;&#039;{TOKEN:ATTRIBUTE_3}&#039;&#039;&#039;/logo1.png&amp;quot; alt=&amp;quot;&#039;&#039;&#039;{TOKEN:ATTRIBUTE_2}&#039;&#039;&#039;&amp;quot;&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The alt tag is, of course, optional.&lt;br /&gt;
***&lt;br /&gt;
&lt;br /&gt;
You  can match and mix all 3 cases as it suites you best. You need to be a little careful when you work with tokens and embed tags, but it will save you from using intricate and error-prone survey logic or from duplicating surveys endlessly.&lt;br /&gt;
&lt;br /&gt;
=Limit the language options dropdown on the list surveys page=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;simplebox&amp;quot;&amp;gt;Note: This feature is implemented in Version 2.0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This solution allows you to define (in config.php) a comma-delimited list of languages you want in the dropdown.  It is not optimized (it loads all the languages and then unsets everything you don&#039;t want), but is fairly easy to implement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$supportedLanguagesKeys = &#039;en,vi&#039;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filter out everything except the your selected languages (if defined).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   // if $supportedLanguagesKeys is defined in config, filter&lt;br /&gt;
&lt;br /&gt;
   if (!empty($GLOBALS[&#039;supportedLanguagesKeys&#039;]))&lt;br /&gt;
&lt;br /&gt;
   foreach (array_keys($supportedLanguages) as $lang) {&lt;br /&gt;
&lt;br /&gt;
     if (!in_array($lang, explode(&#039;,&#039;, $GLOBALS[&#039;supportedLanguagesKeys&#039;]))) {&lt;br /&gt;
&lt;br /&gt;
       unset($supportedLanguages[$lang]);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now only my languages, plus the base language, is displayed. To get rid of the redundant base language, do the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
   } elseif (!isset($surveyid))&lt;br /&gt;
&lt;br /&gt;
   {&lt;br /&gt;
&lt;br /&gt;
       global $defaultlang, $baselang;&lt;br /&gt;
&lt;br /&gt;
       $htmlcode = &amp;quot;&amp;lt;select name=\&amp;quot;select\&amp;quot; class=&#039;languagechanger&#039; onchange=\&amp;quot;javascript:window.location=this.value\&amp;quot;&amp;gt;\n&amp;quot;;&lt;br /&gt;
#    REMOVE THE NEXT LINE OR COMMENT IT OUT)&lt;br /&gt;
&lt;br /&gt;
       $htmlcode .= &amp;quot;&amp;lt;option value=\&amp;quot;$relativeurl/index.php?lang=&amp;quot;. $defaultlang .&amp;quot;$tokenparam\&amp;quot;&amp;gt;&amp;quot;.getLanguageNameFromCode($defaultlang,false).&amp;quot;&amp;lt;/option&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   foreach(getlanguagedata() as $key=&amp;gt;$val)&lt;br /&gt;
&lt;br /&gt;
       {&lt;br /&gt;
&lt;br /&gt;
           $htmlcode .= &amp;quot;\t&amp;lt;option value=\&amp;quot;$relativeurl/index.php?lang=&amp;quot;.$key.&amp;quot;$tokenparam\&amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
           if ($key == $baselang) $htmlcode .= &amp;quot; selected=&#039;selected&#039;&amp;quot;; /* ADD THIS TO SET SELECTION */&lt;br /&gt;
&lt;br /&gt;
           $htmlcode .= &amp;quot;&amp;gt;&amp;quot;.getLanguageNameFromCode($key,false).&amp;quot;&amp;lt;/option&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       $htmlcode .= &amp;quot;&amp;lt;/select&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically it just pre-selects the base language from the list.&lt;/div&gt;</summary>
		<author><name>Mfaber</name></author>
	</entry>
</feed>