The LimeSurvey team is pleased to announce the availability of release candidate 1 (RC1) for version 1.92 of LimeSurvey. ...
The LimeSurvey team is pleased to announce the availability of release candidate 1 (RC1) for version 1.92 of LimeSurvey. You can download it here. This version is based on the 1.91+ code base, but completely replaces the survey-taking logic with Expression Manager (EM). Although this is a complete re-write of the survey-taking portion of the code, it has been thoroughly tested and we expect a rapid migration from Release Candidate to true release status.
In addition to being fully backwards compatible with 1.91+ (see the one caveat below), EM provides the following new features, several of which have been on the wish list for some time:
Use complex equations to decide if a question is visible/relevant or not (a successor to conditions, supporting much more complex logic).
Use Group-level relevance to show/hide entire groups without needing to set conditions on each question
Use advanced piping, micro-tailoring, and conditional logic to tailor questions that are visible.
Generate complex reports (like showing users a table of questions and answers) mid-survey.
Save any computations or generated reports to the database (via the Equation question type).
Write expressions using the Question Code as an alternative to using {INSERT:SGQA} syntax.
Write complex expressions using 70+ mathematical/date/string functions, parentheses, and any math/logic operators.
Use cascading conditional logic, like cascading array_filter / array_filter_exclude.
Eliminate the need for most custom JavaScript - computations, scoring and tailoring are done by EM.
Run surveys with complex conditions and piping in All-in-one mode, even if highly dynamic.
Run large, complex surveys faster, even if they contain many conditions.
Use the Question/Group Navigation Index even with complex conditions.
Jump forward in Navigation Index, re-validating all intervening steps and stopping if any are invalid.
Auto-convert Conditions to Relevance - so you can still use the Conditions editor if you like it.
Re-order and/or delete any questions or groups, even if they contain complex conditions.
Use EM syntax-highlighting to quickly validate and debug your work. All variables are color coded to indicate whether they are set on the current, prior, or later pages (or not at all). Tool-tips show the question code, SGQA, question text, and enumerated answer choices. Clicking on the variable opens a new tab that lets you edit that question (also letting you quickly navigate cascading relevance logic).
Use the new Survey Logic File view to show all of the key content and logic in the survey. This includes all group, question, sub-question, and answer codes, values (if assessment mode), and text; all defaults; all question attributes; and all relevance and validation logic. This file uses the click-able syntax highlighting and shows which questions have errors (e.g. bad syntax, undeclared variables, or re-used question codes).
Use most EM-related functions and attributes in your own custom JavaScript, you don't need to re-invent EM functionality
One Caveat. LimeSurvey 1.92 is fully backwards-compatible with 1.91+ except for less-than / greater-than comparisons against empty values. One of the LimeSurvey demo surveys uses a set of conditions that translates to this relevance equation: {(age < 16) or (age == 20) or ... or (age == 80)}. In LimeSurvey 1.91+, (age < 16) is FALSE when there is no answer (the value is blank). However, in LimeSurey 1.92, (age < 16) is TRUE when there is no answer, since both PHP and JavaScript treat blank as 0 in mathematical comparisons. Thus, 1.91+ would hide that question when age was unanswered, but 1.92 would show it. We went to great pains to prevent this, but since we needed to have the Expressions generate identical results in PHP and JavaScript, there was no way to make 1.92 treat "" < 16 as FALSE. Fortunately, there is an easy work-around for this. If you want (age < 16) to be FALSE, then use this expression instead: {(!is_empty(age) and age < 16)}. You can use the new Survey Logic File view to quickly identify and fix any such comparisons in your survey. The best way to get started is to download and install 1.92, and play with the included survey, /docs/demosurveys/limesurvey2_sample_survey_english.lss, which demonstrates the majority of EM's functionality. Read more about EM here:
Main EM Documentation: http://docs.limesurvey.org/Expression+Manager
HowTos: http://docs.limesurvey.org/Expression+Manager+HowTos
Information for Developers: http://docs.limesurvey.org/Expression+Manager+for+Developers
Please contact us via the Forum or IRC with any questions/comments.If you find any bugs, please report them on the Bug Tracker.
Also note, for those of you watching the development of 2.0, EM will be included in it too. At present, the version of EM in 1.92 is considerably more robust and feature complete than the version in 2.0a. However, as the Yii port progresses over the next several months, these new EM features will be ported to Yii and the 2.x branch.