https://manual.limesurvey.org/api.php?action=feedcontributions&user=Admin&feedformat=atomLimeSurvey Manual - User contributions [en]2024-03-28T23:58:39ZUser contributionsMediaWiki 1.35.10https://manual.limesurvey.org/index.php?title=QS:Relevance&diff=57535QS:Relevance2013-10-10T08:04:57Z<p>Admin: AL-HARBI:HACKER</p>
<hr />
<div><translate><br />
<!--T:1--><br />
<languages /><br />
<onlyinclude><br />
<br />
===Relevance equation=== <!--T:2--><br />
<br />
<!--T:3--><br />
{{FeatureStarting|v=1.92}} <br />
<br />
<!--T:4--><br />
'''Description'''<br />
<br />
<!--T:5--><br />
All questions let you specify a relevance equation. This is the successor to conditions and support much more complex conditional logic.<br />
<br />
<!--T:6--><br />
'''Syntax Highlighting'''<br />
<br />
<!--T:7--><br />
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.<br />
<br />
<!--T:8--><br />
'''Valid values'''<br />
<br />
<!--T:11--><br />
Any equation, using [[Expression Manager|Expression Manager]] syntax, without surrounding curly braces.<br />
<br />
<!--T:9--><br />
'''Examples'''<br />
<br />
<!--T:12--><br />
Here are good examples of [[Expression Manager HowTos#Syntax Highlighting|syntax highlighting]]<br />
<br />
<!--T:10--><br />
</onlyinclude><br />
[[Category:Question Settings]][[Category:Core Question Settings]]<br />
</translate><br />
xv1@Outlook.sa</div>Adminhttps://manual.limesurvey.org/index.php?title=Project_Ideas_for_GSoC_2013&diff=2532Project Ideas for GSoC 20132013-03-11T21:19:49Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Welcome=<br />
<br />
Welcome Google Summer of Code Student aspirants (:razz:)<br />
<br />
This page lists project ideas developed by the LimeSurvey Community. These tend to be areas that will get the most support as projects since they have been developed by people who know the project and what it needs the most. '''However''', if you have your own idea for a project discuss your awesome idea with us in our [http://www.limesurvey.org/en/forum forums], [https://lists.sourceforge.net/lists/listinfo/limesurvey-developers mailing list] or at [http://www.limesurvey.org/en/support/live-chat #limesurvey on irc.freenode.net]. Then submit your proposal. Good Luck (:biggrin:)<br />
<br />
----<br />
<br />
=Project ideas=<br />
<br />
----<br />
<br />
==Refactor all question types to a modular OOP format==<br />
<br />
If you look at the LimeSurvey source code (yii branch) you will notice that the code for the question types is strewn across the application.<br />
<br />
The goal of this task is to rewrite all question types to be objects, primarily inherited from one or more base question objects. A question type should have methods for display (several types of display like front ent/printable survey), response saving, configuration, statistics, etc.<br />
<br />
'''Skills'''<br />
*Extensive knowledge of PHP & Yii framework<br />
*Very good kownledge of LimeSurvey inner workings<br />
*Very good OOP knowledge<br />
<br />
'''Difficulty'''<br />
*Hard<br />
<br />
'''Probable Mentors'''<br />
<br />
Carsten Schmitz (c_schmitz)<br />
<br />
----<br />
<br />
==Implement a fully featured XML-RPC API + API tests + unit test==<br />
<br />
LimeSurvey urgently needs an API so all administration functions (and later even survey-taking functions) can be accessed without using the GUI. In addition you will be implementing an according unit test framework and implement unit & API tests across the whole application so we can make sure at any point in the development process that the application is functioning as it should.<br />
<br />
'''Skills'''<br />
*Good PHP, SQL, Yii knowledge<br />
*Good knowledge of the LimeSurvey administration and code<br />
<br />
'''Difficulty'''<br />
*Hard<br />
<br />
'''Probable Mentors'''<br />
<br />
c_schmitz<br />
<br />
----<br />
<br />
==User Interface Improvements and Backend Tidy Ups==<br />
<br />
Help improve LimeSurvey's usability and flexibility through a range of small tasks such as:<br />
* develop improved 'bulk' question handling UI<br />
* Tidy up input values on public surveys by moving required values from html inputs to javascript variables<br />
<br />
The idea is to provide ways of updating and modifying multiple questions, or multiple groups in one go. Often in a survey a user will need to make parallel changes to 5 or 6 questions all at once across a range of different groups. Being able to select various elements of questions, and then select a range of questions to edit would dramatically improve LimeSurvey's usability from the administrators perspective.<br />
<br />
'''Skills'''<br />
<br />
PHP, SQL, Yii, Authentication protocols (openID, CAS, LDAP-bind, ...)<br />
<br />
'''Difficulty'''<br />
<br />
Medium<br />
<br />
'''Probable Mentors'''<br />
<br />
Jason Cleeland (jcleeland)<br />
<br />
----<br />
<br />
==Implement a plugin framework for authentication/languages/ import/export modules==<br />
<br />
The idea is to design and implement a modular "framework" for LimeSurvey as well as convert the existing functionality to according modules. The framework will define the API each plugin type must (or may) implement and propose basic methods that can be used by plugins (for instance how to store the plugins parameters in DB, etc.).<br />
<br />
The plugin framework should be in parts similar to the framework used by Joomla (XML description files in the plugin packages)<br />
<br />
Example description for authentication moduls:<br />
<br />
Currently authentication is only used for the survey-administration GUI and not the participants interface (tokens are used for this). With the new authentication framework it should be possible to define several authentication backends for frontend (survey participation) and backend (administration)<br />
<br />
A generic authentication framework must define the following services:<br />
* User authentication: this interface must return the identity of the authenticated user if authentication is successful.<br />
** Authentication may not always be based on a simple user/password form, so the proposed framework must be generic enough to enable authentication based on other schemes (using any numbers or interaction-pages between the server and the end-user or any other contextual parameter such as Referrer, session variable...<br />
* User provisioning:<br />
** when activated on the survey administration interface, an authentication module might be able to create a newly authenticated user into the LimeSurvey internal DB (which is required for setting the user rights on the platform). The newly created user can be assigned a default profile or a per-user profile (queried from an external database).<br />
** when activated on the participants interface, the authentication module will provision the token table of the corresponding survey // alternatively the general-purpose cross-survey participants-database as described in the above GSoC idea.<br />
<br />
'''Skills'''<br />
<br />
PHP, SQL, Yii<br />
<br />
'''Difficulty'''<br />
<br />
Hard<br />
<br />
'''Probable Mentors'''<br />
<br />
c_schmitz<br />
<br />
Diogo Gon&ccedil;alves (dionet)<br />
<br />
'''Want to know more'''<br />
<br />
Please read the [http://docs.limesurvey.org/tiki-index.php?page=GSOC+2010++Authentication+framework#FAQ FAQ about this project]<br />
<br />
----<br />
<br />
==Custom Report Generation==<br />
<br />
The task is to make a module which will generate custom reports. Module should be able to do these things(at least) :-<br />
*Creating various types of reports i.e. using tables, pie charts, graphs and bar-charts to name few.<br />
*The resulting charts and other illustrations should be easy to read and understand, and should include the ability to export into standard office suites.<br />
*Reports can be general or survey specific.<br />
**General in the sense that it should show basic findings of a general survey graphically like number of users completing the survey, average time taken to complete the survey, average number of correct responses etc.<br />
**Survey specific results should also be addressed properly e.g. how many users choose first option as there answer of a particular question, how many users didn't answer a specific question etc.<br />
<br />
'''Skills'''<br />
<br />
OOP experience in PHP and experience with a PHP framework like CakePHP or CodeIgniter, jQuery. Strong mathematical background will help!<br />
<br />
'''Difficulty'''<br />
<br />
Moderate<br />
<br />
'''Probable mentors'''<br />
<br />
Carsten Schmitz (c_schmitz)<br />
<br />
Jason Cleeland (jcleeland)<br />
<br />
Diogo Gon&ccedil;alves (dionet)<br />
<br />
----<br />
<br />
==Adding new questions/subquestions and groups dynamically==<br />
<br />
Currently in LimeSurvey once a survey is activate we can not<br />
*Add or delete groups<br />
*Add or delete questions<br />
*Add or delete subquestions or change their codes<br />
<br />
The idea is to cover these shortcomings. And in addition, all those participants who have already taken that survey must also be notified about the changes. You should also work out in detail what happens to existing results when a survey is changed that way.<br />
<br />
'''Skills'''<br />
<br />
Experience with the PHP framework Yii and knowledge of inner working of LimeSurvey is must!<br />
<br />
'''Difficulty'''<br />
<br />
Moderate<br />
<br />
'''Probable mentors'''<br />
<br />
Jason Cleeland (jcleeland)<br />
<br />
Diogo Gon&ccedil;alves (dionet)<br />
<br />
----<br />
<br />
==Enhance Expression Manager==<br />
<br />
Starting with LimeSurvey 1.92, all of the front-end (survey-taking) processing is now managed using Expression Manager (EM). EM implements a safe subset of PHP syntax so that authors can write complex equations. It is integrated into LimeSuvey to control navigation (branching via relevance), validation, and tailoring/piping of content. Although it is quite powerful, users are already asking for enhancements.<br />
#Add a GUI for Expression Manager<br />
**Background: LimeSurvey has a nice GUI for building conditions, but it does not support complex equations such as those available within EM. EM does have robust syntax highlighting after an equation is saved, which makes it easy to fix any syntax errors. Hoever, users would like a GUI to ease authoring of equations.<br />
**Strategy - use CodeMirror - see [http://bugs.limesurvey.org/view.php?id=5279 here]<br />
***Create CodeMirror syntax file to do appropriate syntax highlighting (use C as base language), ensuring that CodeMirror knows the set of valid operators<br />
***Use CodeMirror API to let it know the names of registered function and variable names<br />
***Utilize auto-complete, ideally letting users see and choose among the availalbe function syntaxes (e.g. when a function can take several paameters).<br />
***Auto-completion of variable names should show the question and question type to make it easier for users to pick the correct variable.<br />
#Support sub-question-level Relevance<br />
**Background: EM already supports user-entered relevance equations at the group and question levels. It also generates sub-question-level relevance for features like array_filter. Users would like to be able ot add additional relevance criteria at the sub-question level.<br />
**Strategy:<br />
***Add a relevance column to the display of sub-questions, and ensure entered relevance is saved the to database (the data model is already OK)<br />
***Refactor createFieldMap() (or its successor) to read sub-question-level relevance into the run-time data structures so that passed to EM<br />
***Enhance EM's sub-question-level data structures to hold sub-question-level releavance<br />
***Update EM's _ValidateQuestion() and JavaScript generation functions to AND any manually-entered sub-question-level relevance equations with that auto-generated for array_filter and array_filter_exclude<br />
***Update ShowSurveyLogicFile() to show sub-question-level relevance equations ***Rigorously unit and regresssion test these changes.<br />
#Add Sub-question-level Validation<br />
**Background: The question-level validation supports regular-expression-based validation of each sub-question. Users would like to have sub-question-level validation to implement things like a question for collecting user contact information, where there are different validation criteria for address parts (e.g. city, state, postal code) and phone numbers.<br />
**Strategy: Similar to sub-question-level relevance<br />
***Add data entry fields for regular expression validation at the sub-question level, and ensure saved to database (which already has a preg field at the sub-question level)<br />
***Ensure EM gets access to the new preg values (via upgrade to createFieldMap)<br />
***Upgrade EM _ValidateQuesation() and function for generation of validation equations to include these new critiera. EM already supports validation at the sub-question level (and changes the CSS style to show fields that fail this validation)<br />
***Upgrade ShowSurveyLogicFile() to show sub-question-level validation rules<br />
***Rigorously unit and regresssion test these changes.<br />
#Add Sub-question-level mandatory criteria<br />
**Background: Many users have asked, via the forums, for ways to make parts of a multi-part questions mandatory, but make other parts optional. LimeSurvey already provides many options, such as minimum and maxium numbers of answers; but users have asked for more fine-grained control, and currently can only achieve that via custom JavaScript.<br />
**Strategy: Similar to sub-question-level relevance<br />
***Add checkbox to indicate mandatory status at the sub-question level<br />
#Add native support for input-masks at the question and sub-question level<br />
**Background: One of the commonly used work-arounds deals with input masks, such as the jQuery meimomask plugin.<br />
**Strategy:<br />
***Add mask attribute at question and sub-question level<br />
***Have EM generate needed JavaScript code to create and manage those masks<br />
#Add EM reporting functions (tables)<br />
**Background: There is commonly request for enhancemnt of the print answers table at the end of the survey. Some users want to generate custom reports mid-survey.<br />
**Strategy:<br />
***Implement showAllResponsesExcept(attributeList,attributeTitleList,questionList) function. questionList = list of question identifiers; attributeList = pipe-delimited list of attributes (like question#, title, text, type - so you can decide what to show); attributeTitleList = pipe-delimited list of table headers, so can internationalize the report.<br />
***Implement showTheseResponses(attributeList,attributeTitleList,questionList) function. questionList = list of question identifiers; attributeList = pipe-delimited list of attributes (like question#, title, text, type - so you can decide what to show); attributeTitleList = pipe-delimited list of table headers, so can internationalize the report.<br />
#Add better EM support for operations on array type questions<br />
**Background: Many of the EM validation rules are effectively statements like count the number of empty sub-questions, or sum the values of the sub-questions. EM generates these functions itself, so there is no burden on the user, even if there ar dozens of sub-quetions. However, manual editing of these questions is cumbersom. Users could benefit from special variables to access all of the elements of a question so that they could write functions like (sum(this) == 10)) and have it be expanded to (sum(q1_1, q1_2, ..., q1_N) == 10). Note, there is already a "this" variable, but it does not apply to sub-questions.<br />
**Strategy:<br />
***Extend EM so that "this" variable gets expanded into a comma separate list of sub-question references if there are sub-questions. Have this expansion carry the suffix, so this.valueNAOK would become q_1.valueNAOK, q_2.valueNAOK, ..., q_N.valueNAOK.<br />
***This macro expansion should occur in group.php (e.g. in the process of generating JavaScript), rather than having this variable be resolved at run-time within JavaScript.<br />
***Provide similar array-expansion macros for all variables (not just "this") - such as qcode_vars.*. This would also functions like sum(qcode_vars.NAOK), count(qcode_vars.NAOK), implode(' ', qcode_vars.valueNAOK)<br />
***For questions with comments, create macros like qcode_vars_nc and qcode_vars_oc for no-comments and only-comments<br />
***For arrays that might need row or column-level processing, create aliases like qcode_rowname_vars and qcode_colname_vars so can expand each. This would let us replace the current system for generating row and column sums with equations like sum(qcode_rowname_vars.NAOK) and be sure that the sums will honor array_filter and array_filter_exclude.<br />
#Add EM functions to validate data entry against value sets managed by Enterprise Vocabulary Systems<br />
**Background: Healthcare and biological sciences increasing use large controlled vocabularies, terminologies, or ontologies. Data entry systems for such domains require validation against those vocabularies. Large open-source projects, like [https://cabig.nci.nih.gov/community/tools/LexEVS_Server LexEVS] and [http://apelon.com/Products/DTS/tabid/97/Default.aspx Apelon DTS] provide open APIs to access that content. Such tools let one validate diagnostic codes, and even do incremental search into those vocabularies as one types. The main open projects are standardizing on the [http://hssp.wikispaces.com/cts2 CTS-2] (Clinical Terminology Services-2) specification.<br />
**Strategy:<br />
***Create EM-compatible PHP and JavaScript functions to access CTS-2 compliant EVS systems<br />
***Should include question and sub-question-level validation rules to validate the final entry. Currently, thre are em_validation_q and em_validation_sq advanced quation attributes for validating questions and sub-questions based upon calls to external functions. It may be desirable to support custom sub-question-level validation to validate each sub-question against different value sets. If so, can follow the model of adding sub-question-level validation and relevance. Alternatively, may be desirable to add sub-question-level advanced question options (if LimeSurvey community feels that there may be enough such extensions that such customization should be stored in a general attribute table rather than making the questions table wider).<br />
***Should also include ability to do incremetal searches into the value sets<br />
<br />
'''Skills'''<br />
<br />
PHP, SQL, PHP Debugging (e.g. xdebug), Yii, LimeSurvey's Expression Manager and code-base in general<br />
<br />
'''Difficulty'''<br />
<br />
Medium to Hard<br />
<br />
'''Probable Mentors'''<br />
<br />
Thomas White (TMSWhite)<br />
<br />
----<br />
<br />
==Optimize LimeSurvey for Long Surveys (and better performance and maintenance in general)==<br />
<br />
Although LimeSurvey is excellent for short and mid-length surveys, it is not optimized for surveys with hundreds or thousands of questions - such as those used by epidemiologists or in clinical trials. This project would tackle each of those main limitations. Those sub-tasks, and the development strategy include:<br />
#Support for more than 1000 database columns<br />
**Background: LS creates a horizontal table for survey data collection, and such tables often are limited to at most 1000 columns<br />
**Strategies:<br />
***Remove unneeded columns from horizontal table (e.g. type 'X')<br />
***Conditionally remove unneeded equation columns (e.g. let users specify a prefix for variable names that should not be stored)<br />
***Add option for Entity Attribute Value data model for data collection (which can support unlimited number of columns. See details [http://bugs.limesurvey.org/view.php?id=5289 here].<br />
#Memory and Code Optimization<br />
**Background: LS loads the survey definition data model into several different data structures, such that it uses at least twice as much storage as it really needs. Expression Manager now holds all of the instrument definition data, so the other data stores are no longer needed.<br />
**Strategy<br />
***Remove need for buildsurveysession() - gap analysis to add in any missing content to EM<br />
***Remove need for createFieldMap() - similar gap analysis<br />
***Normalize EM data structures to avoid internal duplication (and refactor code to use normalized structures) (and document new data structures so that future developers know which to use, and how to use them)<br />
****gInfo - renaming of groupSeqInfo, plus add missing group-level attributes (relevance, description)<br />
****qInfo - renaming of questionSeq2relevance, plus add any missing attributes from $fieldarray; remove aid, sqid; move grelevance to gInfo<br />
****aInfo - for storing answer arrays?<br />
****sqInfo - renaming of q2subqInfo, indexed on sgqa(?); remove content gleaned from gInfo and qInfo<br />
****gStatus - renaming of indexGseq - make hold only dynamic values; so move gtext and gname to gInfo; also remove gRelInfo, keeping any unique variables it contains<br />
****qStatus - renaming of indexQseq - make hold only dynamic values; so move qtext, qhelp, gtext, gname to qInfo<br />
****sqStatus - renaming of subQrelInfo - make hold only dynamic values<br />
****groupRelevanceInfo - consolidate into indexGseq?<br />
****knownVars - instead of copying content, use reference to gInfo and qInfo (e.g. remove question, relevance, grelevance, qcode, ansList, ansArray, onlynum).<br />
****varNameAttr - remove; generate on the fly from gInfo, qInfo, and knownVars<br />
****alias2varName - remove; generate on the fly from knownVars<br />
***Refactor EM so that stores normalized copies of secondary language text<br />
***Optionally load only current group for each page transition rather than holding entire survey definition in memory<br />
***Refactor EM for consistent variable naming<br />
****e.g. questionId => qid; groupNum => gid; groupSeq => gseq; questionSeq => qseq<br />
#Run-Time Performance Optimization<br />
**Background: qanda.php loads the content to create the questions and answers. It used to do this by separate database queries per question.<br />
**Strategy<br />
***Refactor qanda.php to remove queries (like for "other", or sub-question text) - have it get that information from EM<br />
***Refactor LS so that language switching does not require a re-load of the core logic, but just the new language content (and that it gets this from EM)<br />
***Refactor replacements.php and EM<br />
****Should only need to call replacements.php once per page, so set those valeus as locally static in EM per page.<br />
****Refactor group.php to pass {QUESTION_*} via replacements array, rather than as globals passed to templatereplace<br />
#Design-Time Performance Optimization<br />
**Background: LS used to only load the information from the data model that was needed for the given question or group. EM had to load the entire data model to properly syntax highlight everything. This can lead to some performance degradation in very long surveys<br />
**Strategy:<br />
***Add methods to EM to just load changes to model as questions or groups are added, removed, or updated<br />
***Pass those updates into EM internals so that syntax highlighting continues to be correct<br />
***Ensure that admin pages only call the subset of EM functions needed to do accurate syntax highlighting.<br />
#Optimizations for Rapid Development<br />
**Background: LS has a nice GUI for editing single questions at a time. However, it is not optimized to make changes to multiple questions at a time. Some competitor systems let authors design surveys using an Excel template (e.g. so that they can do bulk find and replace, or easily copy similar portions or answer lists). Short of a full-blown AJAX-enabled admin system, this has the highest throughput potential<br />
**Strategy:<br />
***Create an Excel data model that would work for importing surveys<br />
***Create import and validation routines from that model<br />
***A similar model, which could be extended for LS, is noted [http://bugs.limesurvey.org/view.php?id=5105 here].<br />
#Performance Validation<br />
**Load test surveys of varying lenghts<br />
**Identify performance and memory bottlenecks<br />
**Idenfity minimum memory requirements for certain survey lengths and concurrent user volumes<br />
**Propose strategy to overcome those performance issues<br />
<br />
'''Skills'''<br />
<br />
PHP, SQL, PHP Debugging (e.g. xdebug), Yii, LimeSurvey's Expression Manager and code-base in general, Load testing tool (e.g. webload), PHP Profiler<br />
<br />
'''Difficulty'''<br />
<br />
Medium to Hard<br />
<br />
'''Probable Mentors'''<br />
<br />
Thomas White (TMSWhite)<br />
<br />
----<br />
<br />
==Idea template==<br />
<br />
Describe the idea here in general terms<br />
<br />
'''Skills'''<br />
<br />
Explain what sort of coding skills would be needed for a student to implement this project<br />
<br />
'''Difficulty'''<br />
<br />
Explain the level of difficulty involved<br />
<br />
'''Probable Mentors'''<br />
<br />
Put your name (and tag) here if you are willing to mentor a student for this idea<br />
<br />
----<br />
<br />
=More information=<br />
<br />
==Getting started==<br />
<br />
[[GSoC getting started|Check out our 'Get started' page]] for setting up the development environment, coding standards, and all the other important stuff that you need to know before the real fun begins!<br />
<br />
==Frequently Asked Questions==<br />
<br />
Check out [[GSoC FAQ|our GSoC FAQ page.]]</div>Adminhttps://manual.limesurvey.org/index.php?title=Survey_settings&diff=4106Survey settings2013-03-08T21:04:41Z<p>Admin: </p>
<hr />
<div><br />
<div style="float:right;"><div class="simplebox">Additional pages:{toc}</div></div><br />
<br />
__TOC__<br />
<br />
=Overview=<br />
<br />
To create a new survey, click on the Add button [[File:add.png]] on the right side of the administration button bar and a "Create New Survey" screen will appear. You can edit most of these settings later again by click the 'Edit survey settings' icon [[File:token_manage_30.png]] in the 'Survey properties' dropdown menu of the survey toolbar.<br />
<br />
=Settings=<br />
<br />
All survey settings and functions are organized in tabs. The following is a description of each tab and field.<br />
<br />
==General==<br />
#'''Base language''': This sets the base language for the survey. Once saved, you cannot change it later. The language-set is the base language for possible translations of the survey. That way you can have multilingual surveys. During survey creation you cannot add additional languages. You will be able do that if you edit the survey properties again, later.<br />
#'''Title''': This is the brief descriptive name of the survey (ie: "Enterprise Bargaining Survey 2003", or "Views on Ice Cream"). This title will be displayed on every page of the public survey.<br />
#'''Description''': This allows you to enter a description of the survey. (ie: "A survey to collect your ideas on the next round of enterprise bargaining" or "A survey to find out the popularity of chocolate ice cream"). You can incorporate HTML elements such as images or videos in this section using the WYSIWYG editor. By default, description is used on invitation email.<br />
#'''Welcome message''': This allows you to enter a message that will display when a participant first logs into your survey. (ie: "Thank you for taking the time to participate in this survey..") You can incorporate HTML elements such as images or videos in this section using the WYSIWYG editor.<br />
#'''End message''': This allows you to enter a message that will display when a participant completes your survey. (ie: "Thank you for completing our survey. We will publish results soon."). You can incorporate HTML elements such as images or videos in this section using the WYSIWYG editor.<br />
#'''End URL''': This URL will be presented as a link at the end of the survey, and allows you to direct your participants back to your home page (or, in fact, anywhere). The End URL has to be entered with "http://" at the beginning, eg. http://www.limesurvey.org. <br/>You can use they placeholder {SAVEDID}, {TOKEN}, {SID} and {LANG} in this URL.<br/>SAVEDID is the id assigned to this particular submission, TOKEN is the token used to participate in the survey, SID is the survey ID and LANG is the language code<br/>eg. http://www.limesurvey.org/test.php?var1={SAVEDID}&var2;={TOKEN}&var3;={SID}&lang;={LANG} <br/>From version 1.82+ you can use [[URL fields]] with this field to pass parameters from the start URL to then end URL. <br/>You can also use {INSERTANS:SGQA} in this URL (since 1.82+). This allows adding the response to a specific question in the survey to the final url. This can be useful for sending a response to an external script (ie an email address collected during the survey). eg: "http://www.limesurvey.org/test.php?email={INSERTANS:1234X56X7}"<br />
#'''URL description''': The description for the link using the End URL.<br />
#'''Administrator''': This is the name of the contact person who administers the survey. It will be included in emails sent out inviting participants to respond.<br />
#'''Admin email''': This is the email address of the administrator (as above) and is used as the 'reply to:' address on any emails sent. You can also enter several email addresses separated with a semicolon - that way survey administrator notifications are sent to more than one person. (Example: "firstaddress@test.com;secondaddress@test.com")<br />
#'''Bounce email''': This is the email address where a delivery error notification email should be sent. By default, this is the same as the administrator's email address. If you want to use a custom script to parse delivery error emails, then use a special Bounce Email address here and automatically process emails reaching this address with your script. This script could then update the Email Status field of the token line corresponding to this email address (see tokens).<br />
#'''Fax to''': This field is used to give a fax number on the "printable survey" - ie: when you want to send someone a hard copy because they cannot use the online survey.<br />
<br />
<div class="simplebox">'''Caution''': the HTML WYSIWYG editor doesn't allow you to upload files during the survey creation process. Trying to do so will end up with an error message like: "''This file uploader is disabled''". If you need to upload pictures or any other ressources, please do so after survey creation, by editing the newly created survey.</div><br />
<br />
==Presentation & navigation==<br />
#'''Format''': Choose from "Question by question", "Group by group" or "All in one".<br />
**'''Question by Question''': Public survey will display one question per page.<br />
**'''Group by Group''': Public survey will display all questions in a group per page. Group at a time surveys still have a separate "welcome" page and "submit" page, like "One at a time" surveys.<br />
**'''All in one''': Public survey will display all questions in one single page. Activated All in one surveys do not have a "welcome" page or "submit" page - the welcome message and submit button all appear on the same page.<br />
#'''Template''': Choose from the installed templates in your system. The default template is rather dull, but functional. More information on creating your own templates is available in the LimeSurvey [[Templates / The Template Editor]] Guide.<br />
#'''Show welcome screen''': Yes/No. If Yes, then the welcome message defined in Text Elements section will be displayed. Default is Yes.<br />
#'''Navigation delay''': Number of seconds before Previous and Next buttons are enabled. Default 0 seconds<br />
#'''Show <nowiki>[</nowiki><< Prev] button''': This option defaults to yes, however if you set it to "No" then users will not have the option of moving to a previous page while completing the survey.<br />
#'''Show question index / allow jumping''': Yes/No. Default No. When Yes, an index will be displayed on the right side. Users can jump to any section in the survey.<br />
#'''Keyboard-less operation''': By activating this setting there will be a virtual keyboard available for certain question types.<br />
#'''Show progress bar''': Yes/No. Default Yes. Allow the administrator to turn off the Progress bar<br />
#'''Participants may print answers?''': This option defaults to no. When it is set to yes, a participant can print a summary of responses at submit time.<br />
#'''Public statistics''': Yes/No. Default No. If set to "Yes" users who have submitted the survey will be presented a link to statistics of the current survey. The admin can set which questions should be included at these statistics by [[Advanced question settings|#public_statistics|applying the according question attribute]].<br />
#'''Show graphs in public statistics''': (''since 1.80'') Determines if public statistics for this survey include graphs or only show a tabular overview. Creating graphs for huge surveys with lots of answers takes some time and server resources so this is the switch to turn them on/off (default setting: ''off'').<br />
#'''Automatically load URL when survey complete''': Yes/No. Default No. If yes, when the survey is submitted, it will automatically redirect to the End URL. The end URL can be defined in the Text Elements Section. Please note that this only works on an active survey.<br />
#'''Show "There are X questions in this survey"''': Yes/No. Default Yes. If Yes, the message will be displayed on the Welcome Screen. This option will not affect the print version.<br />
#'''Show group name and/or group description''': Will control the display of Group Names and Descriptions. This option will not affect the print version. Four Options:<br />
**'''Show Both''' - Default<br />
**'''Show Group Names Only'''<br />
**'''Show group description Only'''<br />
**'''Hide Both'''<br />
#'''Show question number and/or code''':<br />
**'''Show Both''' - Default<br />
**'''Show Question Number Only'''<br />
**'''Show Question Code Only'''<br />
**'''Hide Both'''<br />
#'''Show "No answer"''': Yes/No. Default Yes. When Yes, the No Answer will be displayed as the default option for non-mandatory single-select questions. Be aware that if you switch this off, the partticipant won't be able to unselect a chosen answer option in a non-mandatory question.<br />
<br />
==Publication & access control==<br />
#'''List survey publicly''': Yes/No. Default No. When it is set to yes, your survey will be listed in the 'available surveys' portal<br />
# '''Start date/time''': Set this to some date if you want your survey to start on a certain date. The survey will start on midnight of that day and only then will people be able to answer to it. To disable this just clear the date from the input field.<br />
#'''Expiry date/time''': Set this to some date if you want your survey to expire on a special date. This is the last date on which the public survey script will let people participate. (Example: If you set it for the 31st of December, then people will no longer be able to use the survey script on the 1st of January). To disable this just clear the date from the input field.<br />
#'''Set cookie to prevent repeated participation?''': If you set this to 'Yes', and your survey does not use a tokens table to control participant access, then a cookie will be saved to the client computer of each survey participant once they have submitted a survey. This cookie will stop the same user on that computer from accessing the survey more than once. There are inherent limitations in the 'security' strength of such a system, but, in general, it allows you to retain some control over multiple entries on public surveys.<br />
#'''Use CAPTCHA for''': With this option you can decide when you want a CAPTCHA to be used. Default is to enable CAPTCHA only for the public Registration page, but you can also enable it before accessing the survey, and before Load/Saving partial answers.<br />
<br />
==Notification & data management==<br />
#'''Send basic admin notification email to:''' and '''Send detailed admin notification email to:''' These fields allow you to send notifications or survey responses to additional email addresses once the survey is submitted. You can edit the templates for these emails under 'Email templates'. Multiple recipients can be set by seperating the entries with a semicolon (;) - eg "yourname@test.com; myname@test.com;hisname@test.com" OR when using placeholders "yourname@test.com;{INSERTANS:82733X12X73};{TOKEN:EMAIL}". Make sure that at least your administrator email is set properly in the survey settings - otherwise no email will be sent or there will be an 'Invalid address:' message when a participant finishes a survey. Please note that there are three different ways for entering an address:<br />
##Enter a specific ''email address'' (ie: yourname@test.com)<br />
##Enter a ''SGQA code'' and the response will be sent to an email address entered as an answer to that particular question (use the format {INSERTANS:9999X88X12}, in the same way you would [http://docs.limesurvey.org/tiki-index.php?page=Adding+a+question&structure;=English+Instructions+for+LimeSurvey#Information_from_previous_answers Re-use information from previous answers]<br />
##Enter a ''Token code'' (only possible if your survey is ''not'' anonymous) and the response will be sent to an email address retrieved from a token field (use the format {TOKEN:EMAIL} or {TOKEN:ATTRIBUTE_1} in the same way you would [http://docs.limesurvey.org/tiki-index.php?page=Adding+a+question&structure;=English+Instructions+for+LimeSurvey#Information_from_tokens_table Re-use Information from the Tokens Table]<br />
##''As of Version 1.92:'' Enter a valid expression conforming to [[Expression Manager|Expression Manager]] syntax. This lets you use question code instead of SGQA syntax (for easier readability), plus conditional logic (e.g. route the notifications to different people depending upon the data entered into the survey).<br />
#'''Date stamp?''': This field allows you to determine whether the survey will datestamp all responses. If you choose "Yes", then when a response is submitted, a field will be included in that response indicating the time and date that the response was made. (See configuration settings for $timeadjust setting.)<br />
#'''Save IP address?''': This field allows you to determine whether the survey will save an IP-address for all responses. If you choose "Yes", then when a response is submitted, a field will be included in that response indicating the ip-address of the participant.<br />
#'''Save referrer URL?''': This field allows you to determine whether the survey will save the referrer URL for all responses. If you choose "Yes", then when a response is submitted, a field will be included in that response where this URL is saved. A referrer URL is the URL from which the user was led to your survey URL.<br />
#'''Enable assessment mode?''': With this setting you can enable/disable [[Assessments|assessments]] for this survey.<br />
#'''Save timings''': If activate then on survey activation a separate table will be created where timings for your questions will be saved, e.g. how long a user stays on one page during taking the survey.<br />
#'''Participant may save and resume later?''': This setting allows a participant to save his responses and resume to answer the survey at a later time. Please note that this makes most sense with open surveys or surveys with anonymized answer. If you are using tokens and the survey is not anonymous in most cases it is better to activate 'Token-based response persistence' in the token tab.<br />
#'''Google Analytics API Key for this survey''': Allows for integration with Google Analytics. The API key can be inserted into templates using {GOOGLE_ANALYTICS_API_KEY}. The full JavaScript that Google Analytics expects (including the key) can be included in templates via {GOOGLE_ANALYTICS_JAVASCRIPT}<br />
#'''Google Analytics Style for this Survey''': Choices are:<br />
##'''Do not use Google Analytics''' - so {GOOGLE_ANALYTICS_JAVASCRIPT} is an empty string<br />
##'''Default Google Analytics''' - {GOOGLE_ANALYTICS_JAVASCRIPT} uses the standard Google Analytics code, inserting the proper Google Analytics Key<br />
##'''SurveyName-<nowiki>[</nowiki>SID]/GroupName''' - {GOOGLE_ANALYTICS_JAVASCRIPT} contains customized Google Analytics code to log the URL as {SURVEYNAME}-<nowiki>[</nowiki>{SID}]/{GROUPNAME}. This can be helpful if you want to analyze navigation paths through your survey, time spent per page, and drop-off rates per page.<br />
<br />
'''Google API howto''':<br />
# Register/login on Google Analytics (GA): [http://www.google.com/analytics/ www.google.com/analytics/]<br />
# Create a key (the site should not point to the survey, but to the part before 'index.php?') The key should be UA-xxxxx.<br />
# Go to your survey's global settings in Limesurvey.<br />
# Put the key in appropriate field (Google Analytics API Key). It's probably the best to set GA Style to track all pages as you can have more info.<br />
# You don't need to do anything in shipped templates, as the {GOOGLE_ANALYTICS_JAVASCRIPT} part is already there.<br />
# Activate the survey.<br />
# Do the survey.<br />
# 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.<br />
<br />
==Tokens==<br />
#'''Anonymized responses?''': This allows you to determine whether responses to your survey are matched up with information from your surveys tokens table, or kept 'anonymous'. The default is 'No'. If you choose 'Yes' then your survey is set to radically anonymize responses - there is really no way to connect answers and participants. Even the admin can'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. '''''Attention:''''': 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't align the order of submitted responses to the order of the token date/time.<br />
#'''Allow editing of answers after completion?''': 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. This only works with non-anonymized surveys.<br />
#'''Enable token-based response persistence''': 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 'Resume later' 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.<br />
#'''Allow public registration''': 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 "Yes". The "Yes" 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.<br />
#'''Use HTML format for token emails?''': When set to yes, all emails sent by the token management interface (invite, reminder, confirmation) will be formatted as HTML. You'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'll have to double check that your email templates are still displayed as you want.<br />
#'''Set token length to''': Usually you don'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 <5 it will be converted to the default value of 15). When generating tokens all tokens will use a length of X digits.<br />
<br />
==Import==<br />
<br />
Alternatively you can [[Importing a survey structure|import a survey structure]] from this tab on survey creation. You have the option to let LimeSurvey automatically convert relative URLs to local images/media files and INSERTANS tags (recommended).<br />
<br />
==Copy==<br />
<br />
Alternatively you can copy an existing survey from this tab on survey creation. You have the option to let LimeSurvey automatically convert relative URLs to local images/media files and INSERTANS tags (recommended). The other options are pretty self-explaining. Please note that when copying a survey the start date and the end date of a survey cleared.<br />
<br />
==Panel integration (URL parameters)==<br />
<br />
<div class="simplebox"> Please note that this tab is currently not visible on survey creation but only when you edit the survey settings after saving them for the first time.</div><br />
<br />
On this tab you can set which additional URL parameters will be accepted by your survey. If you like you can also save the value as a response of a "Short text question" or "Multiple short text question" type (you will be able to select any short text question to save it to). Even if you do NOT save the value of the URL parameter you will be able to use this parameter in the end URL. Please have a look at the documentation of the End-URL for further information.<br />
<br />
==Resources==<br />
<br />
This tab lets you manage files (pictures, media files) that were uploaded in the HTML Editor and it is only visible if you edit a survey - not during survey creation.<br />
<br />
You can:<br />
* Browse available files<br />
* Export files as a ZIP archive<br />
* Import a ZIP archive of files<br />
<br />
Important hints:<br />
* Authorized files extensions are defined in config-defaults.php.<br />
* Files for the survey are in the upload/surveys/<sid> subdirectory.<br />
* Uploaded files will only been seen while browsing resources on this survey (groups, questions, answers) not in other surveys or objects (labels).<br />
* Do not expect this limited visibility to ensure confidentiality of the resources as they are reachable with a simple browser to anyone who know the URL to the file.<br />
* You can't import a ZIP file containing subdirectories.<br />
<br />
=2nd Step - Additional languages=<br />
<br />
To add more language to a survey you have to create and save it - then edit it again. Now you can add and remove additional languages to the survey. If you remove a language from a survey the complete contents of that language in that survey is deleted permanently so be careful what you are doing.<br />
<br />
By clicking on the button 'Save and continue' 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 ''Survey name'', ''Welcome Text'', etc. You can also edit the date format which should be used for a certain language.<br />
<br />
Previous [[Creating surveys - Introduction]]<br />
<br />
Next [[Importing a survey structure]]</div>Adminhttps://manual.limesurvey.org/index.php?title=Alternatives_to_the_LimeSurvey_import_function&diff=1539Alternatives to the LimeSurvey import function2013-03-08T21:03:05Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Import using the administration interface=<br />
<br />
If you have previously exported a survey structure, you can import it from the "New Survey" screen. Click on the browse button to choose the SQL/CSV file, and then click on the button. The import process reads the following formats:<br />
*v1.50 or later .CSV files created by LimeSurvey<br />
*v1.90 or later .LSS files created by LimeSurvey<br />
<br />
That way you can import old surveys from previous version. The import 'intelligently' re-numbers the survey, group, question, answer and condition IDs so that they all match each other - '''no existing surveys will be overwritten'''. See section on [[Exporting a survey structure]] for more information.<br />
<br />
=Import using the commandline utility=<br />
<br />
Since version 1.50 it is possible to import surveys from the command line (or shell). To use this functionality you have to have access to the shell and the PHP interpreter has to be configured to allow shell execution of scripts.<br />
<br />
This functionality is useful when you have timeout problems with the web version that could happen when you have very long surveys to import.<br />
<br />
To use it, in the shell go to the limesurvey/admin folder and execute:<br />
<br />
php cmdline_importsurvey <File to import> <nowiki>[</nowiki><user> <password>]<br />
*<File to import> has to be one of the described above<br />
*<user> has to be a user with the right to create surveys<br />
*<password> the password for the user <br/>*<user> and <password> are only required if the control access is active<br />
<br />
If you need to see the parameters you can execute:<br />
<br />
php cmdline_importsurvey -h<br />
<br />
=Importing surveys from other applications=<br />
<br />
We are often getting requests to import a survey from other applications or survey providers. The problem is that providers like SurveyMonkey lock you in - it is not possible to export the survey structure from SurveyMonkey, only the response data. So you can see that using non-open propietary software or providers can be a bad idea in the first place.</div>Adminhttps://manual.limesurvey.org/index.php?title=LimeSurvey_roadmap&diff=2081LimeSurvey roadmap2013-03-04T19:03:22Z<p>Admin: </p>
<hr />
<div><br />
Contents:__TOC__<br />
<br />
=General=<br />
<br />
This page lists future development and release goals. We will update this regularly with more details as they become available. Goals cannot be fulfill by itself so if you want to give a helping hand please get in touch! Following you will find our first public project status and any future project status will replace this one. All project statuses can/will be found on the[[Past project statuses]] page.<br />
<br />
=LimeSurvey project status January 4th, 2013=<br />
<br />
LimeSurvey 2.0+ is currently considered to be stable - due to the recent switch to the Yii framework there are certain issues coming up regarding cross-DB compatibilities which are addressed by regular releases of new builds. LimeSurvey 2.1 is currenty in development and will show the start of a plugin-architecture.<br />
<br />
=Timeline=<br />
<br />
{|<br />
|Est. date||Goal||Remarks/features<br />
|-<br />
|15 April 2013||Release 2.1 alpha version||-Improved plug-in system<br/>-Question types are now plugins<br />
|-<br />
|Unknown||Release 2.2||- New question designer<br/><br />
|-<br />
|Unknown||Release 2.3||- Locking<br/>- Trans-process caching<br />
|-<br />
|<br />
|}</div>Adminhttps://manual.limesurvey.org/index.php?title=Installation_of_the_LimeSurvey_XAMPP_package&diff=1680Installation of the LimeSurvey XAMPP package2013-03-03T15:50:46Z<p>Admin: </p>
<hr />
<div><br />
=General=<br />
<br />
These instruction will show you how to install and run the LimeSurvey XAMPP package on your local Windows PC. Please note that the XAMPP package should not be used for a production server as it is optimized for a single-user environment.<br />
<br />
=Requirements=<br />
<br />
Your Windows system has to meet the following requirement<br />
*64 MB RAM<br />
*350 MB free fixed disk<br />
*Windows NT, 2000, 2003, XP, VISTA or Windows 7<br />
<br />
=Steps=<br />
#First download the latest LimeSurvey XAMPP package file from the [LimeSurvey download repository|http://www.limesurvey.org/en/stable-release]. If you are not sure which one to pick: It is the executable file having the word 'xampp' in the file name.<br />
#Execute the file. Just follow the installation steps - usually you don't need to change anything.<br />
#After the setup has finished a browser window should open pointing to http://localhost/admin.<br />
#Login using the username 'admin' and password 'password'. Start creating your surveys.<br />
<br />
=Additional hints=<br />
*LimeSurvey needs a running web server software (Apache) and a database (MySQL), which are both installed by the XAMPP package. Also both applications are started automatically by the setup. After you restart your PC you will need to start these again by using the XAMPP Control panel. If you want these to start automatically on startup you can use the XAMPP control panel to install the applications as services - just check the related boxes in the XAMPP control panel.<br />
*The XAMPP packages is only meant to be able to install LimeSurvey on your local PC in an easy way. It won't/shouldn't be possible for anyone on the Internet to access your surveys.<br />
*The XAMPP package is meant as a single user solution and not should be installed a real web server.</div>Adminhttps://manual.limesurvey.org/index.php?title=Installation_of_the_LimeSurvey_XAMPP_package&diff=1681Installation of the LimeSurvey XAMPP package2013-03-03T15:48:01Z<p>Admin: </p>
<hr />
<div><br />
=General=<br />
<br />
These instruction will show you how to install and run the LimeSurvey XAMPP package on your local Windows PC. Please note that the XAMPP package should not be used for a production server as it is optimized for a single-user environment.<br />
<br />
=Requirements=<br />
<br />
Your Windows system has to meet the following requirement<br />
*64 MB RAM<br />
*350 MB free fixed disk<br />
*Windows NT, 2000, 2003, XP, VISTA or Windows 7<br />
<br />
=Steps=<br />
#First download the latest LimeSurvey XAMPP package file from the [LimeSurvey download repository|http://www.limesurvey.org/en/stable-release]. If you are not sure which one to pick: It is the executable file having the word 'xampp' in the file name.<br />
#Execute the file. Just follow the installation steps - usually you don't need to change anything.<br />
#After the setup has finished a browser window should open pointing to http://localhost/admin.<br />
#Login using the username 'admin' and password 'password'. Start creating your surveys.<br />
<br />
=Additional hints=<br />
*LimeSurvey needs a running web server software (Apache) and a database (MySQL), which are both installed by the XAMPP package. Also both applications are started automatically by the setup. After you restart your PC you will need to start these again by using the XAMPP Control panel. If you want these to start automatically on startup you can use the XAMPP control panel to install the applications as services - just check the related boxes in the XAMPP control panel.<br />
*The XAMPP packages is only meant to be able to install LimeSurvey on your local PC in an easy way. If you have installed LimeSurvey on your local PC it won't/shouldn't be possible for anyone on the Internet to access your surveys.<br />
*The XAMPP package is meant as a single user solution and not should be installed a real web server.</div>Adminhttps://manual.limesurvey.org/index.php?title=Installation_-_LimeSurvey_CE&diff=1574Installation - LimeSurvey CE2013-03-03T15:31:41Z<p>Admin: </p>
<hr />
<div><br />
<div style="float:right;"><div class="simplebox">Additional pages:{toc}</div></div> {maketoc title="On this page:"}<br />
<br />
<div class="simplebox"> Note: These installation instructions are for version 2.0 or later. Older instructions for 1.92 can be found here [[Installation Version 1.92 or older|here]] </div><br />
<br />
=General=<br />
<br />
The LimeSurvey project offers two ways of installating LimeSurvey:<br />
*On your webserver:<br />
<br />
+In that case just follow the instructions on this page starting with step 1.<br />
*On your local Windows PC:<br />
<br />
+You usually only want to install LimeSurvey on your local PC if you want to create surveys locally (mainly for speed or test reasons) and upload them later to your live LimeSurvey installation on a web server. For this we have prepared a special package for LimeSurvey which includes the web server, the database and the LimeSurvey application and [[Installation of the LimeSurvey XAMPP package|instructions how to install it]].<br />
<br />
=1. Make sure you can use LimeSurvey on your website=<br />
<br />
Make sure your server meets the following additional requirements. Most of these requirements will also be checked during the installation.<br />
<br />
Required:<br />
* Minimum 80 MB disk space<br />
* MySQL 4.1.0 or later '''OR''' Microsoft SQL Server 2005 or later '''OR''' Postgres 8.1 or later<br />
* PHP 5.1.6 or later with the following modules/libraries enabled:<br />
** mbstring (Multibyte String Functions) extension library (see also [http://docs.limesurvey.org/tiki-index.php?page=Installation+FAQ#What_is_this_mbstring_Multibyte_String_Functions_library_ Installation FAQ])<br />
** PDO database driver for MySQL (pdo_mysql or pdo_mysqli) or Postgres (pdo_pgsql) or MSSQL (pdo_sqlsrv)<br />
** For PHP versions <5.2 you will need to have the PECL JSON library( see [http://pecl.php.net/package/json]) installed<br />
** Also we assume in general that all PHP default libraries are enabled (like hash, session, etc.).<br />
<br />
<div class="simplebox"> Please note that LimeSurvey 2.x uses different database drivers than 1.x . If you get a message not No DBO driver was found during the installation you will have to contact your webspace provider and ask them to activate one of the aforementioned database driver libraries. </div><br />
<br />
Optional PHP Extensions:<br />
* '''GD-Library''' '''with FreeType support''' installed is needed for captchas or nice charts in statistics - see [http://de3.php.net/manual/en/image.setup.php PHP GD-Library Extension documentation]<br />
* '''IMAP''' (pretty standard) is needed for the [[Email bounce tracking system]] - see [http://www.php.net/manual/en/imap.setup.php PHP IMAP Extension documentation]<br />
* '''LDAP''' installed is needed to import tokens using LDAP - see [http://de.php.net/manual/en/ldap.installation.php PHP LDAP Documentation]<br />
* '''Zip''' (pretty standard) for template upload and import resources Zip archives - see [http://www.php.net/manual/en/zip.setup.php PHP Zip Extension documentation]<br />
* '''Zlib''' (pretty standard) is needed for the [[ComfortUpdate]] - see [http://www.php.net/manual/en/zlib.setup.php PHP Zlib Extension documentation]<br />
<br />
In most cases your webspace provider or system administrator will be able to help you out on these optional components.<br />
<br />
If you want to try LimeSurvey on your local machine we recommend [http://www.apachefriends.org/en/xampp.html XAMPP] which is an easy to install software package containing a complete web server with Apache, MySQL, PHP and Perl. LimeSurvey will run on XAMPP with no configuration needed.<br />
<br />
If you want to run Microsoft's IIS server take a look at "[[Installation of LimeSurvey on a Windows XP machine]]" and "[[Installation on XP with IIS]]".<br />
<br />
==1.1 Hosting for LimeSurvey==<br />
<br />
LimeSurvey should work with most hosting companies which provide PHP and MYSQL. If you want a ready-installed version of LimeSurvey consider using LimeService, else check out our [[LimeSurvey-compatible hosting companies|list of LimeSurvey-compatible hosting companies]].<br />
<br />
=2. Download the LimeSurvey package=<br />
<br />
[http://www.limesurvey.org/en/download Download] the latest stable LimeSurvey zip package (there are also gzip, bz2 and 7zip packages available for your convenience) and save it to your local disk.<br />
<br />
=3. Unpack the LimeSurvey package=<br />
<br />
Uncompress the zip file into a dedicated directory/folder using your preferred compression software. When you uncompress the file make sure that you uncompress the directory structure with the files (this is default behavior for most compression programs). The path name for the installation directory should not include '''(''' or ''')''' characters, but may include the '''space''' character<br />
<br />
=4. Collect information about your server=<br />
<br />
You will need to know the following things to install LimeSurvey on your web server correctly:<br />
*Your intended website URL where your scripts will reside (e.g: ''http://my.domain.com/limesurvey'')<br />
*The physical disk location on your server where your scripts will reside (ie: ''/home/usr/htdocs/limesurvey'')<br />
*The IP/net location of your database server (ie: ''localhost'')<br />
*If your database server uses a non-standard port find out which port it is.<br />
*Your username and password for your database server<br />
*With most providers you can't let the script create the database but have to do it yourself. If you are using such a provider please create a database (for example ''limesurvey'') yourself.<br />
<br />
=5. Upload the files to your web server=<br />
<br />
Using your FTP program, connect to your web server and create a directory to store your scripts. Then upload the files using the directory structure they are in. Make sure you '''upload the files in binary mode''' (check the settings of your FTP program). Please note that uploading in ASCII mode can lead to uncommon errors (e.g. 'class not found' error during installation), also images may not be uploaded correctly.<br />
<br />
=7.1 Set Directory permissions=<br />
<br />
For the script to work properly it needs certain access to some directories - this applies especially to Linux/*nix systems.<br />
*The '''"/limesurvey/tmp"''' directory and all its subdirectories and files are used for imports & uploads and should be set to ''Read & Write'' for your webserver.<br />
*The '''"/limesurvey/upload/"''' directory and all its subdirectories and files must also have ''Read & Write'' for your webserver in order to enable picture and media files upload.<br />
*The '''"/limesurvey/application/config/"''' directory also needs ''Read & Write'' permissions for your webserver.<br />
*The other directories can be set to ''Read Only'' or in Linux/Unix. You may wish to set the permissions on each file within the /limesurvey/admin directory to ''Read Only''.<br />
<br />
<div class="simplebox">[[File:help.png]] '''Hint:''' If you are using Linux then depending on your webserver configuration you will have to chmod the rights on the writable folders to 755 or 777. Try 755 first - if it does not work 'upgrade' to 777.</div><br />
<br />
=7.2 Create a database user=<br />
<br />
LimeSurvey will create a database and the tables inside it. To be able to do this it will need the username and password of a database user. In general we recommend to create a database user with the following permissions:<br />
<br />
- MySQL: SELECT, CREATE, INSERT, UPDATE, DELETE, ALTER, DROP, INDEX<br />
<br />
- PostgreSQL: SELECT, INSERT, UPDATE, DELETE, TRUNCATE, TRIGGER<br />
<br />
- Microsoft SQL Server:<br />
<br />
=8. Run the installation script=<br />
<br />
'''Go to "http://your.domain.com/limesurvey/admin"'''. If you configured everything correctly the LimeSurvey installer should be starting - just follow the instructions. You will be asked if to create the database and/or create the tables inside the database. Limesurvey then creates the needed tables in the database.<br />
<br />
=9. Connect to the administration script for the first time=<br />
<br />
After the installer has finished you are done! Open your browser and enter the URL of your admin.php script. Assuming you used LimeSurvey as the directory name to store the files in, this will be something like "http://your.domain.com/limesurvey/admin/admin.php".<br />
<br />
You should get a login screen. The default login credentials (if not changed during in the installation) are<br />
<br />
<div class="simplebox"> User: admin<br />
<br />
Password: password<br />
<br />
</div><br />
<br />
You will be prompted to change the default password after you logged in. Have fun!<br />
<br />
=10. What if I have problems...=<br />
<br />
Like all computer programs, most of the time things will work just like the instructions say, but sometimes they just won't. There are too many possible reasons for things not going according to plan to describe here. If you have trouble, first check out the [[Installation FAQ]]. If you don't find your answer there please post your problem and any error messages in the [http://www.limesurvey.org/en/forum LimeSurvey forums] on limesurvey.org or join the [irc://irc.freenode.net/limesurvey|LimeSurvey IRC channel]:<br />
<br />
<div class="simplebox"><center>'''[http://www.limesurvey.org/en/community-services/live-chat Direct link to the official LimeSurvey IRC Channel]'''</center></div></div>Adminhttps://manual.limesurvey.org/index.php?title=Upgrading_from_a_previous_version&diff=3561Upgrading from a previous version2012-11-16T16:21:26Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Before you start...=<br />
<br />
<span style='color:#FF0000'>... read this because it is very important: '''Always backup the files and the database of your current installation!!'''</span><br />
<br />
You can do this using a database adminstration tool like [http://www.phpmyadmin.net phpMyAdmin] etc. and a file manager! If you don't know how to do this you should better not proceed but ask someone who knows or use the [[ComfortUpdate]] instead.<br />
<br />
=The quick way (for minor version changes)=<br />
<br />
You can use these instructions if you are doing a minor upgrade (for example from 2.00 to 2.01)<br />
*Backup your files and database (did we already mention that?)<br />
*Delete all the old files/directory except for<br />
**/application/config/config.php<br />
**/upload directory<br />
*Copy the new files from the new LimeSurvey package to the existing location.<br />
*'''After the upgrade: Clear your browser cache and cookies!'''<br />
<br />
=The thorough way (for big version jumps)=<br />
<br />
Unfortunately there are a couple of things to consider, so please scan the following instruction closely.<br />
<br />
==Upgrading from version 1.50 or later to any later 2.xx version==<br />
#[http://www.limesurvey.org/download Download] the latest version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. For example in Linux tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory.<br />
### Using phpMyAdmin or similar to export all tables; or use the according '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file, modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
## Open http://<yourdomain>/<yourlimesurveydir>/admin in your browser and follow the instructions (you can use the old config.php as reference). The existing database will be automatically detected and , if necessary, upgraded after confirmation.<br />
# Check if any special manual checks apply as listed below<br />
# '''Now clear your browser cache and cookies!'''<br />
# You are done (:biggrin:).<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 2.xx''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed). The upgrade process tries to replace the template.js inclusion by the placeholder {TEMPLATEJS}. If you have javascript issue with your custom template, verify if your template have the placeholder {TEMPLATEJS} in startpage.pstpl.<br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from version 1.50 or later to any later 1.xx version==<br />
#[http://www.limesurvey.org/download Download] the desired version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. e.g. tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory<br />
### Using phpMyAdmin or similar to export all tables; or using the '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file ,modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Edit or replace the '''config.php''' file:<br />
### If your previous version was < 1.70: Edit the new '''config.php''' to reflect changed settings in the backup '''config.php''' file. '''Do not just overwrite the new '''config.php''' with your old one!'''<br />
### If your previous version was >= 1.70: Simply replace the new '''config.php''' with your backup '''config.php''' (as the file format has not changed).<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Finishing the installation<br />
## Once you open the URL to your LimeSurvey administration the database tables will be updated after confirmation<br />
## Remove or rename the '''/admin/install''' directory as/if instructed by the installation script<br />
## Check if any special, manual checks apply as listed below<br />
# You are done (:biggrin:). If you notice any problems after the upgrade: Clear your browser cache and cookies!<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 1.92''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from a version earlier than v1.50 (v1.0 through v1.44)==<br />
<br />
Since the data structure and a lot of other things were changed, '''upgrading from any version previous to v1.50 is NOT possible'''. If you have old survey structure files with a *.sql extension the only way to get these into a newer version is to install [http://www.limesurvey.org/en/archived-releases/finish/24-archived-releases/289-limesurvey150zip version 1.50], import the .sql file(s) there, then upgrade that version to the most recent LimeSurvey version. See the also then page [[Transferring an installation]] for more details.<br />
<br />
=Upgrade FAQ=<br />
<br />
==What is the most actual LimeSurvey version that still supports PHP4?==<br />
<br />
The last release offering PHP4 support was version 1.82+.<br />
<br />
==Can I upgrade even if I have active surveys?==<br />
<br />
Yes, you can. Exceptions may be mentioned in the thorough instructions above. We strongly advise to test your surveys after upgrade to check if your design templates still work alright.<br />
<br />
==What is best way to port LimeSurvey *.sql survey structure files to the latest version?==<br />
<br />
Install version 1.50, import the file and export the survey structure to the newer .csv format. The latest version still can read the .csv survey structure format.</div>Adminhttps://manual.limesurvey.org/index.php?title=Upgrading_from_a_previous_version&diff=3562Upgrading from a previous version2012-11-16T16:19:56Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Before you start...=<br />
<br />
<span style='color:#FF0000'>... read this because it is very important: '''Always backup the files and the database of your current installation!!'''</span><br />
<br />
You can do this using a database adminstration tool like [http://www.phpmyadmin.net phpMyAdmin] etc. and a file manager! If you don't know how to do this you should better not proceed but ask someone who knows or use the [[ComfortUpdate]] instead.<br />
<br />
=The quick way (for minor version changes)=<br />
<br />
You can use this instruction if you are doing a minor upgrade (for example from 2.00 to 2.01)<br />
*Backup your files and database (did we already mention that?)<br />
*Delete all the old files/directory except for<br />
**/application/config/config.php<br />
**/upload directory<br />
*Copy the new files from the new LimeSurvey package to the existing location.<br />
*'''After the upgrade: Clear your browser cache and cookies!'''<br />
<br />
=The thorough way (for big version jumps)=<br />
<br />
Unfortunately there are a couple of things to consider, so please scan the following instruction closely.<br />
<br />
==Upgrading from version 1.50 or later to any later 2.xx version==<br />
#[http://www.limesurvey.org/download Download] the latest version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. For example in Linux tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory.<br />
### Using phpMyAdmin or similar to export all tables; or use the according '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file, modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
## Open http://<yourdomain>/<yourlimesurveydir>/admin in your browser and follow the instructions (you can use the old config.php as reference). The existing database will be automatically detected and , if necessary, upgraded after confirmation.<br />
# Check if any special manual checks apply as listed below<br />
# '''Now clear your browser cache and cookies!'''<br />
# You are done (:biggrin:).<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 2.xx''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed). The upgrade process tries to replace the template.js inclusion by the placeholder {TEMPLATEJS}. If you have javascript issue with your custom template, verify if your template have the placeholder {TEMPLATEJS} in startpage.pstpl.<br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from version 1.50 or later to any later 1.xx version==<br />
#[http://www.limesurvey.org/download Download] the desired version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. e.g. tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory<br />
### Using phpMyAdmin or similar to export all tables; or using the '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file ,modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Edit or replace the '''config.php''' file:<br />
### If your previous version was < 1.70: Edit the new '''config.php''' to reflect changed settings in the backup '''config.php''' file. '''Do not just overwrite the new '''config.php''' with your old one!'''<br />
### If your previous version was >= 1.70: Simply replace the new '''config.php''' with your backup '''config.php''' (as the file format has not changed).<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Finishing the installation<br />
## Once you open the URL to your LimeSurvey administration the database tables will be updated after confirmation<br />
## Remove or rename the '''/admin/install''' directory as/if instructed by the installation script<br />
## Check if any special, manual checks apply as listed below<br />
# You are done (:biggrin:). If you notice any problems after the upgrade: Clear your browser cache and cookies!<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 1.92''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from a version earlier than v1.50 (v1.0 through v1.44)==<br />
<br />
Since the data structure and a lot of other things were changed, '''upgrading from any version previous to v1.50 is NOT possible'''. If you have old survey structure files with a *.sql extension the only way to get these into a newer version is to install [http://www.limesurvey.org/en/archived-releases/finish/24-archived-releases/289-limesurvey150zip version 1.50], import the .sql file(s) there, then upgrade that version to the most recent LimeSurvey version. See the also then page [[Transferring an installation]] for more details.<br />
<br />
=Upgrade FAQ=<br />
<br />
==What is the most actual LimeSurvey version that still supports PHP4?==<br />
<br />
The last release offering PHP4 support was version 1.82+.<br />
<br />
==Can I upgrade even if I have active surveys?==<br />
<br />
Yes, you can. Exceptions may be mentioned in the thorough instructions above. We strongly advise to test your surveys after upgrade to check if your design templates still work alright.<br />
<br />
==What is best way to port LimeSurvey *.sql survey structure files to the latest version?==<br />
<br />
Install version 1.50, import the file and export the survey structure to the newer .csv format. The latest version still can read the .csv survey structure format.</div>Adminhttps://manual.limesurvey.org/index.php?title=Upgrading_from_a_previous_version&diff=3563Upgrading from a previous version2012-11-16T16:19:41Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Before you start...=<br />
<br />
<span style='color:#FF0000'>... read this because it is very important: '''Always backup the files and the database of your current installation!!'''</span><br />
<br />
You can do this using a database adminstration tool like [http://www.phpmyadmin.net phpMyAdmin] etc. and a file manager! If you don't know how to do this you should better not proceed but ask someone who knows or use the [[ComfortUpdate]] instead.<br />
<br />
=The quick way (for minor version changes)=<br />
<br />
You can use this instruction if you are doing a minor upgrade (for example from 2.00 to 2.01)<br />
*Backup your files and database (did we already mention that?)<br />
*Delete all the old files/directory except for<br />
**/application/config/config.php<br />
**/upload directory<br />
*Copy the new files from the new LimeSurvey package to the existing location.<br />
*'''After the upgrade: Clear your browser cache and cookies!'''<br />
<br />
=The thorough way (for big version jumps)=<br />
<br />
Unfortunately there are a couple of things to consider, so please scan the following instruction closely.<br />
<br />
==Upgrading from version 1.50 or later to any later 2.xx version==<br />
#[http://www.limesurvey.org/download Download] the latest version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. For example in Linux tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory.<br />
### Using phpMyAdmin or similar to export all tables; or use the according '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file, modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
## Open http://<yourdomain>/<yourlimesurveydir>/admin in your browser and follow the instructions (you can use the old config.php as reference). The existing database will be automatically detected and , if necessary, upgraded after confirmation.<br />
# Check if any special manual checks apply as listed below<br />
# '''Now clear your browser cache and cookies!'''<br />
# You are done (:biggrin:).<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 2.xx''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed). The upgrade process tries to replace the template.js inclusion by the placeholder {TEMPLATEJS}. If you have javascript issue with your custom template, verify if your template have the placeholder {TEMPLATEJS} in startpage.pstpl.<br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from version 1.50 or later to any later 1.xx version==<br />
#[http://www.limesurvey.org/download Download] the desired version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. e.g. tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory<br />
### Using phpMyAdmin or similar to export all tables; or using the '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file ,modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Edit or replace the '''config.php''' file:<br />
### If your previous version was < 1.70: Edit the new '''config.php''' to reflect changed settings in the backup '''config.php''' file. '''Do not just overwrite the new '''config.php''' with your old one!'''<br />
### If your previous version was >= 1.70: Simply replace the new '''config.php''' with your backup '''config.php''' (as the file format has not changed).<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Finishing the installation<br />
## Once you open the URL to your LimeSurvey administration the database tables will be updated after confirmation<br />
## Remove or rename the '''/admin/install''' directory as/if instructed by the installation script<br />
## Check if any special, manual checks apply as listed below<br />
# You are done (:biggrin:). If you notice any problems after the upgrade: Clear your browser cache and cookies!<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 1.92''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from a version earlier than v1.50 (v1.0 through v1.44)==<br />
<br />
Since the data structure and a lot of other things were changed, '''upgrading from any version previous to v1.50 is NOT possible'''. If you have old survey structure files with a *.sql extension the only way to get these into a newer version is to install [http://www.limesurvey.org/en/archived-releases/finish/24-archived-releases/289-limesurvey150zip version 1.50], import the .sql file(s) there, then upgrade that version to the most recent LimeSurvey version. See the also then page [[Transferring an installation]] for more details.<br />
<br />
=Upgrade FAQ=<br />
<br />
==What is the most actual LimeSurvey version that still supports PHP4?==<br />
<br />
The last release offering PHP4 support was version 1.82+.<br />
<br />
==Can I upgrade even if I have active surveys?==<br />
<br />
Yes, you can. Exceptions may be mentioned in the thorough instructions above. We strongly advise to test your surveys after upgrade to check if your design templates still work alright.<br />
<br />
==What is best way to port LimeSurvey *.sql survey structure files to the latest version?==<br />
<br />
Install version 1.50, import the file and export the survey structure to the newer .csv format. The latest version still can read the .csv survey structure format.</div>Adminhttps://manual.limesurvey.org/index.php?title=Upgrading_from_a_previous_version&diff=3564Upgrading from a previous version2012-11-16T16:18:31Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Before you start...=<br />
<br />
<span style='color:#FF0000'>... read this because it is very important: '''Always backup the files and the database of your current installation!!'''</span><br />
<br />
You can do this using a database adminstration tool like [http://www.phpmyadmin.net phpMyAdmin] etc. and a file manager! If you don't know how to do this you should better not proceed but ask someone who knows or use the [[ComfortUpdate]] instead.<br />
<br />
=The quick way (for minor version changes)=<br />
<br />
You can use this instruction if you are doing a minor upgrade (for example from 2.00 to 2.01)<br />
*Backup your files and database (did we already mention that?)<br />
*Delete all the old files/directory except for<br />
**/application/config/config.php<br />
**/upload directory<br />
*Copy the new files from the new LimeSurvey package to the existing location.<br />
*'''After the upgrade: Clear your browser cache and cookies!'''<br />
<br />
=The thorough way (for big version jumps)=<br />
<br />
Unfortunately there are a couple of things to consider, so please scan the following instruction closely.<br />
<br />
==Upgrading from version 1.50 or later to any later 2.xx version==<br />
#[http://www.limesurvey.org/download Download] the latest version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. For example in Linux tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory.<br />
### Using phpMyAdmin or similar to export all tables; or use the according '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file, modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
## Open http://<yourdomain>/<yourlimesurveydir>/admin in your browser and follow the instructions (you can use the old config.php as reference). The existing database will be automatically detected and , if necessary, upgraded after confirmation.<br />
# Check if any special manual checks apply as listed below<br />
# '''Now clear your browser cache and cookies!'''<br />
# You are done (:biggrin:).<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 2.xx''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed). The upgrade process tries to replace the template.js inclusion by the placeholder {TEMPLATEJS}. If you have javascript issue with your custom template, verify if your template have the placeholder {TEMPLATEJS} in startpage.pstpl.<br />
<br />
<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from version 1.50 or later to any later 1.xx version==<br />
#[http://www.limesurvey.org/download Download] the desired version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. e.g. tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory<br />
### Using phpMyAdmin or similar to export all tables; or using the '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file ,modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Edit or replace the '''config.php''' file:<br />
### If your previous version was < 1.70: Edit the new '''config.php''' to reflect changed settings in the backup '''config.php''' file. '''Do not just overwrite the new '''config.php''' with your old one!'''<br />
### If your previous version was >= 1.70: Simply replace the new '''config.php''' with your backup '''config.php''' (as the file format has not changed).<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Finishing the installation<br />
## Once you open the URL to your LimeSurvey administration the database tables will be updated after confirmation<br />
## Remove or rename the '''/admin/install''' directory as/if instructed by the installation script<br />
## Check if any special, manual checks apply as listed below<br />
# You are done (:biggrin:). If you notice any problems after the upgrade: Clear your browser cache and cookies!<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 1.92''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from a version earlier than v1.50 (v1.0 through v1.44)==<br />
<br />
Since the data structure and a lot of other things were changed, '''upgrading from any version previous to v1.50 is NOT possible'''. If you have old survey structure files with a *.sql extension the only way to get these into a newer version is to install [http://www.limesurvey.org/en/archived-releases/finish/24-archived-releases/289-limesurvey150zip version 1.50], import the .sql file(s) there, then upgrade that version to the most recent LimeSurvey version. See the also then page [[Transferring an installation]] for more details.<br />
<br />
=Upgrade FAQ=<br />
<br />
==What is the most actual LimeSurvey version that still supports PHP4?==<br />
<br />
The last release offering PHP4 support was version 1.82+.<br />
<br />
==Can I upgrade even if I have active surveys?==<br />
<br />
Yes, you can. Exceptions may be mentioned in the thorough instructions above. We strongly advise to test your surveys after upgrade to check if your design templates still work alright.<br />
<br />
==What is best way to port LimeSurvey *.sql survey structure files to the latest version?==<br />
<br />
Install version 1.50, import the file and export the survey structure to the newer .csv format. The latest version still can read the .csv survey structure format.</div>Adminhttps://manual.limesurvey.org/index.php?title=Coding_guidelines&diff=3130Coding guidelines2012-11-16T14:51:02Z<p>Admin: </p>
<hr />
<div><br />
Contents:__TOC__<br />
<br />
=General=<br />
<br />
'''This is a free development, everything you do can be useful for others. If the feature is very personal there is a way to turn it into a universal solution. This is the challenge!'''<br />
<br />
<div class="simplebox">"The difficulty within a solution is to solve it in a simple way"<br />
<br />
(Lance Burton, magician)</div><br />
<br />
Some general rules:<br />
*Be efficient and save resources (memory and runtime). Things might work for a small survey but also try out your new feature with a survey that has 400 question, 5 languages and 20,000 responses (Yes, there are surveys like this out there).<br />
*Keep a fluid dialog with the others coders, they have their own thoughts about what you are doing.<br />
*Ask if you are in doubt.<br />
<br />
=Naming convention=<br />
*Use the Hungarian Rule for variables:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
[t]NameOfVariable<br />
<br />
| <strike>-</strike><strike>+</strike>----<br />
<br />
| +--> Descriptive name<br />
<br />
+--> Datatype stored (for example start with "a" if it is an array)<br />
<br />
</syntaxhighlight><br />
<br />
Examples:<br />
<br />
aQuestionAttributes: Array to store the questions attributes, Mixed values<br />
<br />
dSurveyEnds: Date when the survey ends<br />
<br />
sContditionsOutput: String used to create the JS for conditions<br />
*In case a function is declared '''do not''' use the Hungarian rule for the function name, instead use "Lower CamelCase":<br />
<br />
function questionsRetrieve( $iQID, $iSurvey)<br />
*What about files? Unless Yii requires it in some way always name your files in lowercase - this prevents problems on systems using case-aware filesystems<br />
<br />
=Documentation=<br />
<br />
Please refer to this introduction: [[How to document your source code]].<br />
<br />
=Structures=<br />
*Indent using spaces instead of TAB, or be gentle to announce how many spaces are your TABs long. There is wide ranging debate about tabs vs. spaces, many people prefer using tabs, others prefer spaces, others are happy with a mix of tabs and spaces. Because LimeSurvey is developed collaboratively, we ask that you leave your preference and follow this standard.<br />
*The opening curly brace must be below the structure opening:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
if (condition)<br />
<br />
{<br />
<br />
...<br />
<br />
}<br />
<br />
</syntaxhighlight><br />
*Using one line for a simple condition is very "fashionable", a taste of "hacker", but it is not clear at all:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
WRONG: if (condition) {do true} else {do false}<br />
<br />
WRONG: if (condition) {do true}<br />
<br />
else {do false}<br />
<br />
RIGHT: if (condition)<br />
<br />
{<br />
<br />
do true<br />
<br />
} else<br />
<br />
{<br />
<br />
do false<br />
<br />
}<br />
<br />
RIGHT: swith $sSelector<br />
<br />
{<br />
<br />
case X:<br />
<br />
...<br />
<br />
break;<br />
<br />
case Y:<br />
<br />
...<br />
<br />
default:<br />
<br />
}<br />
<br />
</syntaxhighlight><br />
<br />
NOTE: It&acute;s true that sometimes the "WRONG" way can be useful, but if it makes the straight reading difficult, please use the "RIGHT" way instead. Be gentle with your fellow developers.<br />
*SQL sentences must respect the same rule:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
$sSQL = "SELECT field1, field2, field3 "<br />
<br />
."WHERE condition "<br />
<br />
."AND condition "<br />
<br />
."OR condition "<br />
<br />
."ORDER BY field1, field2";<br />
<br />
</syntaxhighlight><br />
*The same for HTML in views tags:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
<table><br />
<br />
<tr><br />
<br />
<td colspan='2'<br />
<br />
height='4'><br />
<br />
<strong><br />
<br />
Some Text<br />
<br />
</strong><br />
<br />
</td><br />
<br />
</tr><br />
<br />
</table><br />
<br />
</syntaxhighlight><br />
<br />
=HTML=<br />
*As you will notice, a very customized HTML element can take a lot of lines (very expensive if you paid each one (:wink:) ) to avoid that, use 'CSS classes'. In general, use classes to aesthetic related stuff: color, borders, backgrounds, font faces, sizes, etc.<br />
*Respect W3C standards, and try to use the HTML understandable for all browsers. If one of them has a special feature, think if this feature is so special to break down the HTML in other browsers.<br />
*Do not use PHP short tags <? ?>. Always use full PHP tags <?php ?><br />
*Any rules of the mentioned before: about CSS, well closed HTML tags and JS respect XHTML standards. Give it a try!.<br />
<br />
=Localization=<br />
<br />
Currently we are using the gT(),eT(),ngT() and neT() functions of the limesurvey_lang object for translations.<br />
<br />
Since LimeSurvey is available in 60 languages it is very important that your original English string (which will be picked up automatically for translation by our translators) is done right from the start. Imagine if we have to correct only one string at a later time - then 60 strings become invalid across the project and need to be re-translated by the poor translator souls.<br />
* gT() is the original translation function. It will return a translated version of the string in the currently selected language. ie: echo ''$clang->gT("Hello");''<br />
* ngT() returns multiple translations of a sentence or phrase for which alternate plural forms may apply. ie: ''echo sprintf($clang->ngT('Please select at least %s answer','Please select at least %s answers',iMinimumAnswers),$iMinimumAnswers)'';<br />
* eT() echos the translation directly. (ie: instead of ''echo $clang->gT("Hello");'' you can use ''$clang->eT("Hello");''<br />
* neT() echos the multiple translations of the sentence or phrase for which alternate plural forms may apply directly.<br />
<br />
Please follow these important rules:<br />
*'''Do not embed margin spaces''' in your translation. Instead use proper CSS formatting<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Visible? ');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Visible?');<br />
*'''Do not capitalize words''' except where grammatically correct (like at the beginning of a sentence or for a brand name). LimeSurvey is not a newspaper.<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Create A New Label Set');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Create a new label set');<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Google Maps API Key');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Google Maps API key');<br />
*'''Do not concatenate''' several translations to form a sentence or concatenate to an additional information (like a number or string). Instead use the sprint() or sprintf() function with placeholders.<br />
<br />
<span style='color:#F00'>Wrong</span>: echo $clang->gT('The sum must not be bigger than').$iMaxSum;<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->gT('The sum must not be bigger than %s'),$iMaxSum);<br />
<br />
This comes from the problem that in other languages the setting of a sentence can be much different and the information $iMaxSum from the example above might be needed in the middle of the sentence.<br />
<br />
<span style='color:#F00'>Wrong</span>: echo $clang->gT('The user').$sUsername.$clang->gT('was deleted.');<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->gT('The user %s was deleted.'),$sUsername);<br />
*'''Use the n*T functions where applicable'''. These functions show a different translation depending the number of items. Currently LimeSurvey only supports the numbers/situations 1 and >1.<br />
<br />
+Example:<br />
<br />
<span style='color:#F00'>Wrong</span>: echo sprintf($clang->gT('Please select at least %s answer(s).'),$iMinimumAnswers);<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->ngT('Please select at least %s answer','Please select at least %s answers',iMinimumAnswers),$iMinimumAnswers);<br />
<br />
=Bug tracker=<br />
#First consider if the reported issue is really a bug. If it is a feature request please point the reporter to http://ideas.limesurvey.org and set the issue status to 'Closed'.<br />
#If you would like to work on a bug assign it to yourself.<br />
#Try to reproduce the issue.<br />
##If you cannot reproduce ask the user to provide a small example survey to demonstrate the issue. Then set the issue to 'Feedback'. After the user added the necessary information it will automatically be set to 'Assigned' again.<br />
##If the user does not responds for more than a week ask once again for feedback by adding a comment. After a further week without feedback close the issue.<br />
#After you resolved the issue set the status to resolved AND provide the 'Fixed in version' information.<br />
#After you committed your fix add a comment to the resolved issue 'Fixed in rev. <Subversion revision number>'<br />
#After a release the release technician will set all issues to 'Closed' that were fixed for this release. That signals to the reporter that a fix is available in the version and it was just released.<br />
<br />
=Cross-DB compatibility=<br />
<br />
LimeSurvey targets several database types it can run on: MySQL, Postgres and Microsoft SQL Server. This demands certain precautions when coding<br />
<br />
==Parameter binding==<br />
<br />
Yii/PDO supports parameter binding - use it. Don't inject variables directly into the query or into conditions because this might create a security issue.<br />
<br />
Example:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><?php<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('somefield')<br />
<br />
->where("sid = :sid")<br />
<br />
->from('{{sometable}}')<br />
<br />
->bindParam(":sid", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
If you bind the same value several times do NOT use the same parameter name, instead use a different named parameter for each bind:<br />
<br />
WRONG:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><?php<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('somefield')<br />
<br />
->where("sid = :sid and parent_sid= :sid ")<br />
<br />
->from('{{sometable}}')<br />
<br />
->bindParam(":sid", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
RIGHT:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><?php<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('somefield')<br />
<br />
->where("sid = :sid1 and parent_sid= :sid2 ")<br />
<br />
->from('{{sometable}}')<br />
<br />
->bindParam(":sid1", $surveyid, PDO::PARAM_INT)<br />
<br />
->bindParam(":sid2", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
=Miscellaneous=<br />
*Do not use "global" to access to a declared variable in another process. Pass variables or arrays by reference, use the session or the configuration object.<br />
*If using an auxiliary variable makes clear the code or process, just do it. If you are coding a very complex expression, calling to functions with parameters that are other functions:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
WRONG:<br />
<br />
iAResult= fa(fb(p1,p2),fc(fd(p3),p4),p5)<br />
<br />
It will be more readable:<br />
<br />
iAuxB = fb(p1,p2)<br />
<br />
iAuxD = fd(p3)<br />
<br />
iAuxC = fc(iAuxD,p4)<br />
<br />
iAResult = fa(iAuxB, iAuxC, p5)<br />
<br />
</syntaxhighlight><br />
<br />
Anyway, if you are in doubt about someone missing the point or you are afraid that your expression is obscure, take the chance of writing it in a more simple way, even if that involves the use of one or more auxiliary variables.</div>Adminhttps://manual.limesurvey.org/index.php?title=Coding_guidelines&diff=3131Coding guidelines2012-11-16T13:25:10Z<p>Admin: </p>
<hr />
<div><br />
Contents:__TOC__<br />
<br />
=General=<br />
<br />
'''This is a free development, everything you do can be useful for others. If the feature is very personal there is a way to turn it into a universal solution. This is the challenge!'''<br />
<br />
<div class="simplebox">"The difficulty within a solution is to solve it in a simple way"<br />
<br />
(Lance Burton, magician)</div><br />
<br />
Some general rules:<br />
*Be efficient and save resources (memory and runtime). Things might work for a small survey but also try out your new feature with a survey that has 400 question, 5 languages and 20,000 responses (Yes, there are surveys like this out there).<br />
*Keep a fluid dialog with the others coders, they have their own thoughts about what you are doing.<br />
*Ask if you are in doubt.<br />
<br />
=Naming convention=<br />
*Use the Hungarian Rule for variables:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
[t]NameOfVariable<br />
<br />
| <strike>-</strike><strike>+</strike>----<br />
<br />
| +--> Descriptive name<br />
<br />
+--> Datatype stored (for example start with "a" if it is an array)<br />
<br />
</syntaxhighlight><br />
<br />
Examples:<br />
<br />
aQuestionAttributes: Array to store the questions attributes, Mixed values<br />
<br />
dSurveyEnds: Date when the survey ends<br />
<br />
sContditionsOutput: String used to create the JS for conditions<br />
*In case a function is declared '''do not''' use the Hungarian rule for the function name, instead use "Lower CamelCase":<br />
<br />
function questionsRetrieve( $iQID, $iSurvey)<br />
*What about files? Unless Yii requires it in some way always name your files in lowercase - this prevents problems on systems using case-aware filesystems<br />
<br />
=Documentation=<br />
<br />
Please refer to this introduction: [[How to document your source code]].<br />
<br />
=Structures=<br />
*Indent using spaces instead of TAB, or be gentle to announce how many spaces are your TABs long. There is wide ranging debate about tabs vs. spaces, many people prefer using tabs, others prefer spaces, others are happy with a mix of tabs and spaces. Because LimeSurvey is developed collaboratively, we ask that you leave your preference and follow this standard.<br />
*The opening curly brace must be below the structure opening:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
if (condition)<br />
<br />
{<br />
<br />
...<br />
<br />
}<br />
<br />
</syntaxhighlight><br />
*Using one line for a simple condition is very "fashionable", a taste of "hacker", but it is not clear at all:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
WRONG: if (condition) {do true} else {do false}<br />
<br />
WRONG: if (condition) {do true}<br />
<br />
else {do false}<br />
<br />
RIGHT: if (condition)<br />
<br />
{<br />
<br />
do true<br />
<br />
} else<br />
<br />
{<br />
<br />
do false<br />
<br />
}<br />
<br />
RIGHT: swith $sSelector<br />
<br />
{<br />
<br />
case X:<br />
<br />
...<br />
<br />
break;<br />
<br />
case Y:<br />
<br />
...<br />
<br />
default:<br />
<br />
}<br />
<br />
</syntaxhighlight><br />
<br />
NOTE: It&acute;s true that sometimes the "WRONG" way can be useful, but if it makes the straight reading difficult, please use the "RIGHT" way instead. Be gentle with your fellow developers.<br />
*SQL sentences must respect the same rule:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
$sSQL = "SELECT field1, field2, field3 "<br />
<br />
."WHERE condition "<br />
<br />
."AND condition "<br />
<br />
."OR condition "<br />
<br />
."ORDER BY field1, field2";<br />
<br />
</syntaxhighlight><br />
*The same for HTML in views tags:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
<table><br />
<br />
<tr><br />
<br />
<td colspan='2'<br />
<br />
height='4'><br />
<br />
<strong><br />
<br />
Some Text<br />
<br />
</strong><br />
<br />
</td><br />
<br />
</tr><br />
<br />
</table><br />
<br />
</syntaxhighlight><br />
<br />
=HTML=<br />
*As you will notice, a very customized HTML element can take a lot of lines (very expensive if you paid each one (:wink:) ) to avoid that, use 'CSS classes'. In general, use classes to aesthetic related stuff: color, borders, backgrounds, font faces, sizes, etc.<br />
*Respect W3C standards, and try to use the HTML understandable for all browsers. If one of them has a special feature, think if this feature is so special to break down the HTML in other browsers.<br />
*Do not use PHP short tags <? ?>. Always use full PHP tags <?php ?><br />
*Any rules of the mentioned before: about CSS, well closed HTML tags and JS respect XHTML standards. Give it a try!.<br />
<br />
=Localization=<br />
<br />
Currently we are using the gT(),eT(),ngT() and neT() functions of the limesurvey_lang object for translations.<br />
<br />
Since LimeSurvey is available in 60 languages it is very important that your original English string (which will be picked up automatically for translation by our translators) is done right from the start. Imagine if we have to correct only one string at a later time - then 60 strings become invalid across the project and need to be re-translated by the poor translator souls.<br />
* gT() is the original translation function. It will return a translated version of the string in the currently selected language. ie: echo ''$clang->gT("Hello");''<br />
* ngT() returns multiple translations of a sentence or phrase for which alternate plural forms may apply. ie: ''echo sprintf($clang->ngT('Please select at least %s answer','Please select at least %s answers',iMinimumAnswers),$iMinimumAnswers)'';<br />
* eT() echos the translation directly. (ie: instead of ''echo $clang->gT("Hello");'' you can use ''$clang->eT("Hello");''<br />
* neT() echos the multiple translations of the sentence or phrase for which alternate plural forms may apply directly.<br />
<br />
Please follow these important rules:<br />
*'''Do not embed margin spaces''' in your translation. Instead use proper CSS formatting<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Visible? ');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Visible?');<br />
*'''Do not capitalize words''' except where grammatically correct (like at the beginning of a sentence or for a brand name). LimeSurvey is not a newspaper.<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Create A New Label Set');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Create a new label set');<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Google Maps API Key');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Google Maps API key');<br />
*'''Do not concatenate''' several translations to form a sentence or concatenate to an additional information (like a number or string). Instead use the sprint() or sprintf() function with placeholders.<br />
<br />
<span style='color:#F00'>Wrong</span>: echo $clang->gT('The sum must not be bigger than').$iMaxSum;<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->gT('The sum must not be bigger than %s'),$iMaxSum);<br />
<br />
This comes from the problem that in other languages the setting of a sentence can be much different and the information $iMaxSum from the example above might be needed in the middle of the sentence.<br />
<br />
<span style='color:#F00'>Wrong</span>: echo $clang->gT('The user').$sUsername.$clang->gT('was deleted.');<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->gT('The user %s was deleted.'),$sUsername);<br />
*'''Use the n*T functions where applicable'''. These functions show a different translation depending the number of items. Currently LimeSurvey only supports the numbers/situations 1 and >1.<br />
<br />
+Example:<br />
<br />
<span style='color:#F00'>Wrong</span>: echo sprintf($clang->gT('Please select at least %s answer(s).'),$iMinimumAnswers);<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->ngT('Please select at least %s answer','Please select at least %s answers',iMinimumAnswers),$iMinimumAnswers);<br />
<br />
=Bug tracker=<br />
#First consider if the reported issue is really a bug. If it is a feature request please point the reporter to http://ideas.limesurvey.org and set the issue status to 'Closed'.<br />
#If you would like to work on a bug assign it to yourself.<br />
#Try to reproduce the issue.<br />
##If you cannot reproduce ask the user to provide a small example survey to demonstrate the issue. Then set the issue to 'Feedback'. After the user added the necessary information it will automatically be set to 'Assigned' again.<br />
##If the user does not responds for more than a week ask once again for feedback by adding a comment. After a further week without feedback close the issue.<br />
#After you resolved the issue set the status to resolved AND provide the 'Fixed in version' information.<br />
#After you committed your fix add a comment to the resolved issue 'Fixed in rev. <Subversion revision number>'<br />
#After a release the release technician will set all issues to 'Closed' that were fixed for this release. That signals to the reporter that a fix is available in the version and it was just released.<br />
<br />
=Cross-DB compatibility=<br />
<br />
LimeSurvey targets several database types it can run on: MySQL, Postgres and Microsoft SQL Server. This demands certain precautions when coding<br />
<br />
==Parameter binding==<br />
<br />
Yii/PDO supports parameter binding - use it. Don't inject variables directly into the query or into conditions.<br />
<br />
Example:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><?php<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('somefield')<br />
<br />
->where("sid = :sid")<br />
<br />
->from('{{sometable}}')<br />
<br />
->bindParam(":sid", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
If you bind the same value several times do NOT use the same parameter name, instead use a different named parameter for each bind:<br />
<br />
WRONG:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><?php<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('somefield')<br />
<br />
->where("sid = :sid and parent_sid= :sid ")<br />
<br />
->from('{{sometable}}')<br />
<br />
->bindParam(":sid", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
RIGHT:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><?php<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('somefield')<br />
<br />
->where("sid = :sid1 and parent_sid= :sid2 ")<br />
<br />
->from('{{sometable}}')<br />
<br />
->bindParam(":sid1", $surveyid, PDO::PARAM_INT)<br />
<br />
->bindParam(":sid2", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
=Miscellaneous=<br />
*Do not use "global" to access to a declared variable in another process. Pass variables or arrays by reference, use the session or the configuration object.<br />
*If using an auxiliary variable makes clear the code or process, just do it. If you are coding a very complex expression, calling to functions with parameters that are other functions:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
WRONG:<br />
<br />
iAResult= fa(fb(p1,p2),fc(fd(p3),p4),p5)<br />
<br />
It will be more readable:<br />
<br />
iAuxB = fb(p1,p2)<br />
<br />
iAuxD = fd(p3)<br />
<br />
iAuxC = fc(iAuxD,p4)<br />
<br />
iAResult = fa(iAuxB, iAuxC, p5)<br />
<br />
</syntaxhighlight><br />
<br />
Anyway, if you are in doubt about someone missing the point or you are afraid that your expression is obscure, take the chance of writing it in a more simple way, even if that involves the use of one or more auxiliary variables.</div>Adminhttps://manual.limesurvey.org/index.php?title=Coding_guidelines&diff=3132Coding guidelines2012-11-16T13:24:25Z<p>Admin: </p>
<hr />
<div><br />
Contents:__TOC__<br />
<br />
=General=<br />
<br />
'''This is a free development, everything you do can be useful for others. If the feature is very personal there is a way to turn it into a universal solution. This is the challenge!'''<br />
<br />
<div class="simplebox">"The difficulty within a solution is to solve it in a simple way"<br />
<br />
(Lance Burton, magician)</div><br />
<br />
Some general rules:<br />
*Be efficient and save resources (memory and runtime). Things might work for a small survey but also try out your new feature with a survey that has 400 question, 5 languages and 20,000 responses (Yes, there are surveys like this out there).<br />
*Keep a fluid dialog with the others coders, they have their own thoughts about what you are doing.<br />
*Ask if you are in doubt.<br />
<br />
=Naming convention=<br />
*Use the Hungarian Rule for variables:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
[t]NameOfVariable<br />
<br />
| <strike>-</strike><strike>+</strike>----<br />
<br />
| +--> Descriptive name<br />
<br />
+--> Datatype stored (for example start with "a" if it is an array)<br />
<br />
</syntaxhighlight><br />
<br />
Examples:<br />
<br />
aQuestionAttributes: Array to store the questions attributes, Mixed values<br />
<br />
dSurveyEnds: Date when the survey ends<br />
<br />
sContditionsOutput: String used to create the JS for conditions<br />
*In case a function is declared '''do not''' use the Hungarian rule for the function name, instead use "Lower CamelCase":<br />
<br />
function questionsRetrieve( $iQID, $iSurvey)<br />
*What about files? Unless Yii requires it in some way always name your files in lowercase - this prevents problems on systems using case-aware filesystems<br />
<br />
=Documentation=<br />
<br />
Please refer to this introduction: [[How to document your source code]].<br />
<br />
=Structures=<br />
*Indent using spaces instead of TAB, or be gentle to announce how many spaces are your TABs long. There is wide ranging debate about tabs vs. spaces, many people prefer using tabs, others prefer spaces, others are happy with a mix of tabs and spaces. Because LimeSurvey is developed collaboratively, we ask that you leave your preference and follow this standard.<br />
*The opening curly brace must be below the structure opening:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
if (condition)<br />
<br />
{<br />
<br />
...<br />
<br />
}<br />
<br />
</syntaxhighlight><br />
*Using one line for a simple condition is very "fashionable", a taste of "hacker", but it is not clear at all:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
WRONG: if (condition) {do true} else {do false}<br />
<br />
WRONG: if (condition) {do true}<br />
<br />
else {do false}<br />
<br />
RIGHT: if (condition)<br />
<br />
{<br />
<br />
do true<br />
<br />
} else<br />
<br />
{<br />
<br />
do false<br />
<br />
}<br />
<br />
RIGHT: swith $sSelector<br />
<br />
{<br />
<br />
case X:<br />
<br />
...<br />
<br />
break;<br />
<br />
case Y:<br />
<br />
...<br />
<br />
default:<br />
<br />
}<br />
<br />
</syntaxhighlight><br />
<br />
NOTE: It&acute;s true that sometimes the "WRONG" way can be useful, but if it makes the straight reading difficult, please use the "RIGHT" way instead. Be gentle with your fellow developers.<br />
*SQL sentences must respect the same rule:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
$sSQL = "SELECT field1, field2, field3 "<br />
<br />
."WHERE condition "<br />
<br />
."AND condition "<br />
<br />
."OR condition "<br />
<br />
."ORDER BY field1, field2";<br />
<br />
</syntaxhighlight><br />
*The same for HTML in views tags:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
<table><br />
<br />
<tr><br />
<br />
<td colspan='2'<br />
<br />
height='4'><br />
<br />
<strong><br />
<br />
Some Text<br />
<br />
</strong><br />
<br />
</td><br />
<br />
</tr><br />
<br />
</table><br />
<br />
</syntaxhighlight><br />
<br />
=HTML=<br />
*As you will notice, a very customized HTML element can take a lot of lines (very expensive if you paid each one (:wink:) ) to avoid that, use 'CSS classes'. In general, use classes to aesthetic related stuff: color, borders, backgrounds, font faces, sizes, etc.<br />
*Respect W3C standards, and try to use the HTML understandable for all browsers. If one of them has a special feature, think if this feature is so special to break down the HTML in other browsers.<br />
*Do not use PHP short tags <? ?>. Always use full PHP tags <?php ?><br />
*Any rules of the mentioned before: about CSS, well closed HTML tags and JS respect XHTML standards. Give it a try!.<br />
<br />
=Localization=<br />
<br />
Currently we are using the gT(),eT(),ngT() and neT() functions of the limesurvey_lang object for translations.<br />
<br />
Since LimeSurvey is available in 60 languages it is very important that your original English string (which will be picked up automatically for translation by our translators) is done right from the start. Imagine if we have to correct only one string at a later time - then 60 strings become invalid across the project and need to be re-translated by the poor translator souls.<br />
* gT() is the original translation function. It will return a translated version of the string in the currently selected language. ie: echo ''$clang->gT("Hello");''<br />
* ngT() returns multiple translations of a sentence or phrase for which alternate plural forms may apply. ie: ''echo sprintf($clang->ngT('Please select at least %s answer','Please select at least %s answers',iMinimumAnswers),$iMinimumAnswers)'';<br />
* eT() echos the translation directly. (ie: instead of ''echo $clang->gT("Hello");'' you can use ''$clang->eT("Hello");''<br />
* neT() echos the multiple translations of the sentence or phrase for which alternate plural forms may apply directly.<br />
<br />
Please follow these important rules:<br />
*'''Do not embed margin spaces''' in your translation. Instead use proper CSS formatting<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Visible? ');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Visible?');<br />
*'''Do not capitalize words''' except where grammatically correct (like at the beginning of a sentence or for a brand name). LimeSurvey is not a newspaper.<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Create A New Label Set');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Create a new label set');<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Google Maps API Key');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Google Maps API key');<br />
*'''Do not concatenate''' several translations to form a sentence or concatenate to an additional information (like a number or string). Instead use the sprint() or sprintf() function with placeholders.<br />
<br />
<span style='color:#F00'>Wrong</span>: echo $clang->gT('The sum must not be bigger than').$iMaxSum;<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->gT('The sum must not be bigger than %s'),$iMaxSum);<br />
<br />
This comes from the problem that in other languages the setting of a sentence can be much different and the information $iMaxSum from the example above might be needed in the middle of the sentence.<br />
<br />
<span style='color:#F00'>Wrong</span>: echo $clang->gT('The user').$sUsername.$clang->gT('was deleted.');<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->gT('The user %s was deleted.'),$sUsername);<br />
*'''Use the n*T functions where applicable'''. These functions show a different translation depending the number of items. Currently LimeSurvey only supports the numbers/situations 1 and >1.<br />
<br />
+Example:<br />
<br />
<span style='color:#F00'>Wrong</span>: echo sprintf($clang->gT('Please select at least %s answer(s).'),$iMinimumAnswers);<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->ngT('Please select at least %s answer','Please select at least %s answers',iMinimumAnswers),$iMinimumAnswers);<br />
<br />
=Bug tracker=<br />
#First consider if the reported issue is really a bug. If it is a feature request please point the reporter to http://ideas.limesurvey.org and set the issue status to 'Closed'.<br />
#If you would like to work on a bug assign it to yourself.<br />
#Try to reproduce the issue.<br />
##If you cannot reproduce ask the user to provide a small example survey to demonstrate the issue. Then set the issue to 'Feedback'. After the user added the necessary information it will automatically be set to 'Assigned' again.<br />
##If the user does not responds for more than a week ask once again for feedback by adding a comment. After a further week without feedback close the issue.<br />
#After you resolved the issue set the status to resolved AND provide the 'Fixed in version' information.<br />
#After you committed your fix add a comment to the resolved issue 'Fixed in rev. <Subversion revision number>'<br />
#After a release the release technician will set all issues to 'Closed' that were fixed for this release. That signals to the reporter that a fix is available in the version and it was just released.<br />
<br />
=Cross-DB compatibility=<br />
<br />
LimeSurvey targets several database types it can run on: MySQL, Postgres and Microsoft SQL Server. This demands certain precautions when coding<br />
<br />
==Parameter binding==<br />
<br />
Yii/PDO supports parameter binding - use it. Don't inject variables directly into the query or into conditions.<br />
<br />
Example:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><?php<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('attributedescriptions')<br />
<br />
->where("sid = :sid")<br />
<br />
->from('{{surveys}}')<br />
<br />
->bindParam(":sid", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
If you bind the same value several times do NOT use the same parameter name, instead use a different named parameter for each bind:<br />
<br />
WRONG:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><?php<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('sometable')<br />
<br />
->where("sid = :sid and parent_sid= :sid ")<br />
<br />
->from('{{surveys}}')<br />
<br />
->bindParam(":sid", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
RIGHT:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><?php<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('sometable')<br />
<br />
->where("sid = :sid1 and parent_sid= :sid2 ")<br />
<br />
->from('{{surveys}}')<br />
<br />
->bindParam(":sid1", $surveyid, PDO::PARAM_INT)<br />
<br />
->bindParam(":sid2", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
=Miscellaneous=<br />
*Do not use "global" to access to a declared variable in another process. Pass variables or arrays by reference, use the session or the configuration object.<br />
*If using an auxiliary variable makes clear the code or process, just do it. If you are coding a very complex expression, calling to functions with parameters that are other functions:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
WRONG:<br />
<br />
iAResult= fa(fb(p1,p2),fc(fd(p3),p4),p5)<br />
<br />
It will be more readable:<br />
<br />
iAuxB = fb(p1,p2)<br />
<br />
iAuxD = fd(p3)<br />
<br />
iAuxC = fc(iAuxD,p4)<br />
<br />
iAResult = fa(iAuxB, iAuxC, p5)<br />
<br />
</syntaxhighlight><br />
<br />
Anyway, if you are in doubt about someone missing the point or you are afraid that your expression is obscure, take the chance of writing it in a more simple way, even if that involves the use of one or more auxiliary variables.</div>Adminhttps://manual.limesurvey.org/index.php?title=Coding_guidelines&diff=3133Coding guidelines2012-11-16T13:17:39Z<p>Admin: </p>
<hr />
<div><br />
Contents:__TOC__<br />
<br />
=General=<br />
<br />
'''This is a free development, everything you do can be useful for others. If the feature is very personal there is a way to turn it into a universal solution. This is the challenge!'''<br />
<br />
<div class="simplebox">"The difficulty within a solution is to solve it in a simple way"<br />
<br />
(Lance Burton, magician)</div><br />
<br />
Some general rules:<br />
*Be efficient and save resources (memory and runtime). Things might work for a small survey but also try out your new feature with a survey that has 400 question, 5 languages and 20,000 responses (Yes, there are surveys like this out there).<br />
*Keep a fluid dialog with the others coders, they have their own thoughts about what you are doing.<br />
*Ask if you are in doubt.<br />
<br />
=Naming convention=<br />
*Use the Hungarian Rule for variables:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
[t]NameOfVariable<br />
<br />
| <strike>-</strike><strike>+</strike>----<br />
<br />
| +--> Descriptive name<br />
<br />
+--> Datatype stored (for example start with "a" if it is an array)<br />
<br />
</syntaxhighlight><br />
<br />
Examples:<br />
<br />
aQuestionAttributes: Array to store the questions attributes, Mixed values<br />
<br />
dSurveyEnds: Date when the survey ends<br />
<br />
sContditionsOutput: String used to create the JS for conditions<br />
*In case a function is declared '''do not''' use the Hungarian rule for the function name, instead use "Lower CamelCase":<br />
<br />
function questionsRetrieve( $iQID, $iSurvey)<br />
*What about files? Unless Yii requires it in some way always name your files in lowercase - this prevents problems on systems using case-aware filesystems<br />
<br />
=Documentation=<br />
<br />
Please refer to this introduction: [[How to document your source code]].<br />
<br />
=Structures=<br />
*Indent using spaces instead of TAB, or be gentle to announce how many spaces are your TABs long. There is wide ranging debate about tabs vs. spaces, many people prefer using tabs, others prefer spaces, others are happy with a mix of tabs and spaces. Because LimeSurvey is developed collaboratively, we ask that you leave your preference and follow this standard.<br />
*The opening curly brace must be below the structure opening:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
if (condition)<br />
<br />
{<br />
<br />
...<br />
<br />
}<br />
<br />
</syntaxhighlight><br />
*Using one line for a simple condition is very "fashionable", a taste of "hacker", but it is not clear at all:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
WRONG: if (condition) {do true} else {do false}<br />
<br />
WRONG: if (condition) {do true}<br />
<br />
else {do false}<br />
<br />
RIGHT: if (condition)<br />
<br />
{<br />
<br />
do true<br />
<br />
} else<br />
<br />
{<br />
<br />
do false<br />
<br />
}<br />
<br />
RIGHT: swith $sSelector<br />
<br />
{<br />
<br />
case X:<br />
<br />
...<br />
<br />
break;<br />
<br />
case Y:<br />
<br />
...<br />
<br />
default:<br />
<br />
}<br />
<br />
</syntaxhighlight><br />
<br />
NOTE: It&acute;s true that sometimes the "WRONG" way can be useful, but if it makes the straight reading difficult, please use the "RIGHT" way instead. Be gentle with your fellow developers.<br />
*SQL sentences must respect the same rule:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
$sSQL = "SELECT field1, field2, field3 "<br />
<br />
."WHERE condition "<br />
<br />
."AND condition "<br />
<br />
."OR condition "<br />
<br />
."ORDER BY field1, field2";<br />
<br />
</syntaxhighlight><br />
*The same for HTML in views tags:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
<table><br />
<br />
<tr><br />
<br />
<td colspan='2'<br />
<br />
height='4'><br />
<br />
<strong><br />
<br />
Some Text<br />
<br />
</strong><br />
<br />
</td><br />
<br />
</tr><br />
<br />
</table><br />
<br />
</syntaxhighlight><br />
<br />
=HTML=<br />
*As you will notice, a very customized HTML element can take a lot of lines (very expensive if you paid each one (:wink:) ) to avoid that, use 'CSS classes'. In general, use classes to aesthetic related stuff: color, borders, backgrounds, font faces, sizes, etc.<br />
*Respect W3C standards, and try to use the HTML understandable for all browsers. If one of them has a special feature, think if this feature is so special to break down the HTML in other browsers.<br />
*Do not use PHP short tags <? ?>. Always use full PHP tags <?php ?><br />
*Any rules of the mentioned before: about CSS, well closed HTML tags and JS respect XHTML standards. Give it a try!.<br />
<br />
=Localization=<br />
<br />
Currently we are using the gT(),eT(),ngT() and neT() functions of the limesurvey_lang object for translations.<br />
<br />
Since LimeSurvey is available in 60 languages it is very important that your original English string (which will be picked up automatically for translation by our translators) is done right from the start. Imagine if we have to correct only one string at a later time - then 60 strings become invalid across the project and need to be re-translated by the poor translator souls.<br />
* gT() is the original translation function. It will return a translated version of the string in the currently selected language. ie: echo ''$clang->gT("Hello");''<br />
* ngT() returns multiple translations of a sentence or phrase for which alternate plural forms may apply. ie: ''echo sprintf($clang->ngT('Please select at least %s answer','Please select at least %s answers',iMinimumAnswers),$iMinimumAnswers)'';<br />
* eT() echos the translation directly. (ie: instead of ''echo $clang->gT("Hello");'' you can use ''$clang->eT("Hello");''<br />
* neT() echos the multiple translations of the sentence or phrase for which alternate plural forms may apply directly.<br />
<br />
Please follow these important rules:<br />
*'''Do not embed margin spaces''' in your translation. Instead use proper CSS formatting<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Visible? ');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Visible?');<br />
*'''Do not capitalize words''' except where grammatically correct (like at the beginning of a sentence or for a brand name). LimeSurvey is not a newspaper.<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Create A New Label Set');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Create a new label set');<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Google Maps API Key');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Google Maps API key');<br />
*'''Do not concatenate''' several translations to form a sentence or concatenate to an additional information (like a number or string). Instead use the sprint() or sprintf() function with placeholders.<br />
<br />
<span style='color:#F00'>Wrong</span>: echo $clang->gT('The sum must not be bigger than').$iMaxSum;<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->gT('The sum must not be bigger than %s'),$iMaxSum);<br />
<br />
This comes from the problem that in other languages the setting of a sentence can be much different and the information $iMaxSum from the example above might be needed in the middle of the sentence.<br />
<br />
<span style='color:#F00'>Wrong</span>: echo $clang->gT('The user').$sUsername.$clang->gT('was deleted.');<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->gT('The user %s was deleted.'),$sUsername);<br />
*'''Use the n*T functions where applicable'''. These functions show a different translation depending the number of items. Currently LimeSurvey only supports the numbers/situations 1 and >1.<br />
<br />
+Example:<br />
<br />
<span style='color:#F00'>Wrong</span>: echo sprintf($clang->gT('Please select at least %s answer(s).'),$iMinimumAnswers);<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->ngT('Please select at least %s answer','Please select at least %s answers',iMinimumAnswers),$iMinimumAnswers);<br />
<br />
=Bug tracker=<br />
#First consider if the reported issue is really a bug. If it is a feature request please point the reporter to http://ideas.limesurvey.org and set the issue status to 'Closed'.<br />
#If you would like to work on a bug assign it to yourself.<br />
#Try to reproduce the issue.<br />
##If you cannot reproduce ask the user to provide a small example survey to demonstrate the issue. Then set the issue to 'Feedback'. After the user added the necessary information it will automatically be set to 'Assigned' again.<br />
##If the user does not responds for more than a week ask once again for feedback by adding a comment. After a further week without feedback close the issue.<br />
#After you resolved the issue set the status to resolved AND provide the 'Fixed in version' information.<br />
#After you committed your fix add a comment to the resolved issue 'Fixed in rev. <Subversion revision number>'<br />
#After a release the release technician will set all issues to 'Closed' that were fixed for this release. That signals to the reporter that a fix is available in the version and it was just released.<br />
<br />
=Cross-DB compatibility=<br />
<br />
LimeSurvey targets several database types it can run on: MySQL, Postgres and Microsoft SQL Server. This demands certain precautions when coding<br />
<br />
==Parameter binding==<br />
<br />
Yii/PDO supports parameter binding - use it. Don't inject variables directly into the query or into conditions.<br />
<br />
Example:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><?php<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('attributedescriptions')<br />
<br />
->where("sid = :sid")<br />
<br />
->from('{{surveys}}')<br />
<br />
->bindParam(":sid", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
If you bind the same value several times do NOT use the same parameter name, instead use a different named parameter for each bind:<br />
<br />
WRONG:<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('sometable')<br />
<br />
->where("sid = :sid and parent_sid= :sid ")<br />
<br />
->from('{{surveys}}')<br />
<br />
->bindParam(":sid", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
RIGHT:<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('sometable')<br />
<br />
->where("sid = :sid1 and parent_sid= :sid2 ")<br />
<br />
->from('{{surveys}}')<br />
<br />
->bindParam(":sid1", $surveyid, PDO::PARAM_INT)<br />
<br />
->bindParam(":sid2", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
=Miscellaneous=<br />
*Do not use "global" to access to a declared variable in another process. Pass variables or arrays by reference, use the session or the configuration object.<br />
*If using an auxiliary variable makes clear the code or process, just do it. If you are coding a very complex expression, calling to functions with parameters that are other functions:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
WRONG:<br />
<br />
iAResult= fa(fb(p1,p2),fc(fd(p3),p4),p5)<br />
<br />
It will be more readable:<br />
<br />
iAuxB = fb(p1,p2)<br />
<br />
iAuxD = fd(p3)<br />
<br />
iAuxC = fc(iAuxD,p4)<br />
<br />
iAResult = fa(iAuxB, iAuxC, p5)<br />
<br />
</syntaxhighlight><br />
<br />
Anyway, if you are in doubt about someone missing the point or you are afraid that your expression is obscure, take the chance of writing it in a more simple way, even if that involves the use of one or more auxiliary variables.</div>Adminhttps://manual.limesurvey.org/index.php?title=Coding_guidelines&diff=3134Coding guidelines2012-11-16T13:16:50Z<p>Admin: </p>
<hr />
<div><br />
Contents:__TOC__<br />
<br />
=General=<br />
<br />
'''This is a free development, everything you do can be useful for others. If the feature is very personal there is a way to turn it into a universal solution. This is the challenge!'''<br />
<br />
<div class="simplebox">"The difficulty within a solution is to solve it in a simple way"<br />
<br />
(Lance Burton, magician)</div><br />
<br />
Some general rules:<br />
*Be efficient and save resources (memory and runtime). Things might work for a small survey but also try out your new feature with a survey that has 400 question, 5 languages and 20,000 responses (Yes, there are surveys like this out there).<br />
*Keep a fluid dialog with the others coders, they have their own thoughts about what you are doing.<br />
*Ask if you are in doubt.<br />
<br />
=Naming convention=<br />
*Use the Hungarian Rule for variables:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
[t]NameOfVariable<br />
<br />
| <strike>-</strike><strike>+</strike>----<br />
<br />
| +--> Descriptive name<br />
<br />
+--> Datatype stored (for example start with "a" if it is an array)<br />
<br />
</syntaxhighlight><br />
<br />
Examples:<br />
<br />
aQuestionAttributes: Array to store the questions attributes, Mixed values<br />
<br />
dSurveyEnds: Date when the survey ends<br />
<br />
sContditionsOutput: String used to create the JS for conditions<br />
*In case a function is declared '''do not''' use the Hungarian rule for the function name, instead use "Lower CamelCase":<br />
<br />
function questionsRetrieve( $iQID, $iSurvey)<br />
*What about files? Unless Yii requires it in some way always name your files in lowercase - this prevents problems on systems using case-aware filesystems<br />
<br />
=Documentation=<br />
<br />
Please refer to this introduction: [[How to document your source code]].<br />
<br />
=Structures=<br />
*Indent using spaces instead of TAB, or be gentle to announce how many spaces are your TABs long. There is wide ranging debate about tabs vs. spaces, many people prefer using tabs, others prefer spaces, others are happy with a mix of tabs and spaces. Because LimeSurvey is developed collaboratively, we ask that you leave your preference and follow this standard.<br />
*The opening curly brace must be below the structure opening:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
if (condition)<br />
<br />
{<br />
<br />
...<br />
<br />
}<br />
<br />
</syntaxhighlight><br />
*Using one line for a simple condition is very "fashionable", a taste of "hacker", but it is not clear at all:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
WRONG: if (condition) {do true} else {do false}<br />
<br />
WRONG: if (condition) {do true}<br />
<br />
else {do false}<br />
<br />
RIGHT: if (condition)<br />
<br />
{<br />
<br />
do true<br />
<br />
} else<br />
<br />
{<br />
<br />
do false<br />
<br />
}<br />
<br />
RIGHT: swith $sSelector<br />
<br />
{<br />
<br />
case X:<br />
<br />
...<br />
<br />
break;<br />
<br />
case Y:<br />
<br />
...<br />
<br />
default:<br />
<br />
}<br />
<br />
</syntaxhighlight><br />
<br />
NOTE: It&acute;s true that sometimes the "WRONG" way can be useful, but if it makes the straight reading difficult, please use the "RIGHT" way instead. Be gentle with your fellow developers.<br />
*SQL sentences must respect the same rule:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
$sSQL = "SELECT field1, field2, field3 "<br />
<br />
."WHERE condition "<br />
<br />
."AND condition "<br />
<br />
."OR condition "<br />
<br />
."ORDER BY field1, field2";<br />
<br />
</syntaxhighlight><br />
*The same for HTML in views tags:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
<table><br />
<br />
<tr><br />
<br />
<td colspan='2'<br />
<br />
height='4'><br />
<br />
<strong><br />
<br />
Some Text<br />
<br />
</strong><br />
<br />
</td><br />
<br />
</tr><br />
<br />
</table><br />
<br />
</syntaxhighlight><br />
<br />
=HTML=<br />
*As you will notice, a very customized HTML element can take a lot of lines (very expensive if you paid each one (:wink:) ) to avoid that, use 'CSS classes'. In general, use classes to aesthetic related stuff: color, borders, backgrounds, font faces, sizes, etc.<br />
*Respect W3C standards, and try to use the HTML understandable for all browsers. If one of them has a special feature, think if this feature is so special to break down the HTML in other browsers.<br />
*Do not use PHP short tags <? ?>. Always use full PHP tags <?php ?><br />
*Any rules of the mentioned before: about CSS, well closed HTML tags and JS respect XHTML standards. Give it a try!.<br />
<br />
=Localization=<br />
<br />
Currently we are using the gT(),eT(),ngT() and neT() functions of the limesurvey_lang object for translations.<br />
<br />
Since LimeSurvey is available in 60 languages it is very important that your original English string (which will be picked up automatically for translation by our translators) is done right from the start. Imagine if we have to correct only one string at a later time - then 60 strings become invalid across the project and need to be re-translated by the poor translator souls.<br />
* gT() is the original translation function. It will return a translated version of the string in the currently selected language. ie: echo ''$clang->gT("Hello");''<br />
* ngT() returns multiple translations of a sentence or phrase for which alternate plural forms may apply. ie: ''echo sprintf($clang->ngT('Please select at least %s answer','Please select at least %s answers',iMinimumAnswers),$iMinimumAnswers)'';<br />
* eT() echos the translation directly. (ie: instead of ''echo $clang->gT("Hello");'' you can use ''$clang->eT("Hello");''<br />
* neT() echos the multiple translations of the sentence or phrase for which alternate plural forms may apply directly.<br />
<br />
Please follow these important rules:<br />
*'''Do not embed margin spaces''' in your translation. Instead use proper CSS formatting<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Visible? ');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Visible?');<br />
*'''Do not capitalize words''' except where grammatically correct (like at the beginning of a sentence or for a brand name). LimeSurvey is not a newspaper.<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Create A New Label Set');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Create a new label set');<br />
<br />
<span style='color:#F00'>Wrong</span>: $clang->eT('Google Maps API Key');<br />
<br />
<span style='color:#060'>Right</span>: $clang->eT('Google Maps API key');<br />
*'''Do not concatenate''' several translations to form a sentence or concatenate to an additional information (like a number or string). Instead use the sprint() or sprintf() function with placeholders.<br />
<br />
<span style='color:#F00'>Wrong</span>: echo $clang->gT('The sum must not be bigger than').$iMaxSum;<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->gT('The sum must not be bigger than %s'),$iMaxSum);<br />
<br />
This comes from the problem that in other languages the setting of a sentence can be much different and the information $iMaxSum from the example above might be needed in the middle of the sentence.<br />
<br />
<span style='color:#F00'>Wrong</span>: echo $clang->gT('The user').$sUsername.$clang->gT('was deleted.');<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->gT('The user %s was deleted.'),$sUsername);<br />
*'''Use the n*T functions where applicable'''. These functions show a different translation depending the number of items. Currently LimeSurvey only supports the numbers/situations 1 and >1.<br />
<br />
+Example:<br />
<br />
<span style='color:#F00'>Wrong</span>: echo sprintf($clang->gT('Please select at least %s answer(s).'),$iMinimumAnswers);<br />
<br />
<span style='color:#060'>Right</span>: echo sprintf($clang->ngT('Please select at least %s answer','Please select at least %s answers',iMinimumAnswers),$iMinimumAnswers);<br />
<br />
=Bug tracker=<br />
#First consider if the reported issue is really a bug. If it is a feature request please point the reporter to http://ideas.limesurvey.org and set the issue status to 'Closed'.<br />
#If you would like to work on a bug assign it to yourself.<br />
#Try to reproduce the issue.<br />
##If you cannot reproduce ask the user to provide a small example survey to demonstrate the issue. Then set the issue to 'Feedback'. After the user added the necessary information it will automatically be set to 'Assigned' again.<br />
##If the user does not responds for more than a week ask once again for feedback by adding a comment. After a further week without feedback close the issue.<br />
#After you resolved the issue set the status to resolved AND provide the 'Fixed in version' information.<br />
#After you committed your fix add a comment to the resolved issue 'Fixed in rev. <Subversion revision number>'<br />
#After a release the release technician will set all issues to 'Closed' that were fixed for this release. That signals to the reporter that a fix is available in the version and it was just released.<br />
<br />
=Cross-DB compatibility=<br />
<br />
LimeSurvey targets several database types it can run on: MySQL, Postgres and Microsoft SQL Server. This demands certain precautions when coding<br />
<br />
==Parameter binding==<br />
<br />
Yii/PDO supports parameter binding. Example:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><?php<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('attributedescriptions')<br />
<br />
->where("sid = :sid")<br />
<br />
->from('{{surveys}}')<br />
<br />
->bindParam(":sid", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
If you bind the same value several times do NOT use the same parameter name, instead use a different named parameter for each bind:<br />
<br />
WRONG:<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('sometable')<br />
<br />
->where("sid = :sid and parent_sid= :sid ")<br />
<br />
->from('{{surveys}}')<br />
<br />
->bindParam(":sid", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
RIGHT:<br />
<br />
$oResult = Yii::app()->db<br />
<br />
->createCommand()<br />
<br />
->select('sometable')<br />
<br />
->where("sid = :sid1 and parent_sid= :sid2 ")<br />
<br />
->from('{{surveys}}')<br />
<br />
->bindParam(":sid1", $surveyid, PDO::PARAM_INT)<br />
<br />
->bindParam(":sid2", $surveyid, PDO::PARAM_INT);<br />
<br />
?></syntaxhighlight><br />
<br />
=Miscellaneous=<br />
*Do not use "global" to access to a declared variable in another process. Pass variables or arrays by reference, use the session or the configuration object.<br />
*If using an auxiliary variable makes clear the code or process, just do it. If you are coding a very complex expression, calling to functions with parameters that are other functions:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
WRONG:<br />
<br />
iAResult= fa(fb(p1,p2),fc(fd(p3),p4),p5)<br />
<br />
It will be more readable:<br />
<br />
iAuxB = fb(p1,p2)<br />
<br />
iAuxD = fd(p3)<br />
<br />
iAuxC = fc(iAuxD,p4)<br />
<br />
iAResult = fa(iAuxB, iAuxC, p5)<br />
<br />
</syntaxhighlight><br />
<br />
Anyway, if you are in doubt about someone missing the point or you are afraid that your expression is obscure, take the chance of writing it in a more simple way, even if that involves the use of one or more auxiliary variables.</div>Adminhttps://manual.limesurvey.org/index.php?title=Manage_users&diff=2164Manage users2012-11-15T19:03:01Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
= User management=<br />
<br />
==Create users==<br />
<br />
To create a new user open the user management ('''main menu''' -> '''Create/Edit users ''' [[File:LimeSurveyBenuzerVerwaltung.jpg]]).<br />
<br />
[[File:LimeSurveyAddUser.jpg]]<br />
* Enter the desired username into the textfield '''Username'''.<br />
* Enter the email address into the textfield '''Email'''. Please note<br />
** If you don't want the user to recieve the confirmation email with a link to the LimeSurvey installation, username and password you can use your own email address to send the confirmation email to you. After that you can change the email address to the address of the user.<br />
** LimeSurvey sends out a confirmation email to the address enterd into '''Email'''. This email address will be used as standard contact email address for surveys created by this user.<br />
* Enter the users full name into the textfield '''Full name''' . Please note<br />
** The full name entered here will be used as standard contact person name for surveys created by this user.<br />
* Click '''Add user'''<br />
<br />
So you created a new user. You will find out more about setting user permissions if you continue reading further.<br />
<br />
==Edit users==<br />
<br />
You can use the pen symbol [[File:LimeSurveyBleistiftSymbol.jpg]] to edit a user.<br />
<br />
You can set a new email address, full name and even change the password. If you have finished what you want to do click '''Save'''.<br />
<br />
==Delete users==<br />
<br />
To delete a user account simply click the delete button [[File:LimeSurveyBenutzerLoeschen.jpg]] in the line with the user account that should be deleted and hit '''OK'''.<br />
<br />
=Global permissions=<br />
<br />
Global permissions apply to the whole LimeSurvey installation. If you want to set permissions only for a specific survey you can use the Survey permissions settings.<br />
<br />
==Setting global permissions for a user==<br />
<br />
To set global permissions for a user just click the key symbol [[File:LimeSurveySchluesselSymbol.jpg]].<br />
<br />
[[File:LimeSurveySetGlobalPermissions.jpg]]<br />
<br />
You can now add or remove the following rights.<br />
* '''SuperAdministrator''': This right can only be added or removed by the user called '''admin''' and grants full rights to the whole LimeSurvey installation. '''Please note:''' This right is very powerful and you should be very carfefully with granting this right.<br />
* '''Create survey''': This right lets the user create a survey as well as start, stop and it . This is the standard permission for people creating their own surveys.<br />
* '''Configurator''': With this right a user can check data integrity, save the SQL database to an sql file and view the php info in the global settings.<br />
* '''Create user''': Having this right a user can create new users and delete users created with this account. The newly created users cannot have higher permissions than the parent. If this has to be done a '''SuperAdministrator''' has to grant the rights.<br />
* '''Use all/manage templates''': It allows the user to use all design templates and edit all non standard templates. A person with this right should have sufficient knowledge in terms of HTML/php, Javascript and CSS. If a user not familar with this things should use a specific design template it would be better to use the template permissions.<br />
* '''Manage labels''': This right grants all rights regarding label sets (create, edit and delete).<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
==Setting template permissions for a user==<br />
<br />
With template permissions you can set which design templates a user can select when creating or editing a survey. It might be a good idea to restrict the design templates a user can select in order to prevent unwanted use of design templates not suitable for a user/survey.<br />
<br />
'''Please note:''' If you have a specific design template for a group of users or customers you might want to restrict the access for them to use only the template created for their purpose.<br />
<br />
To set/edit the template permissions for a user simply click the key symbol for design templates [[File:LimeSurveySchluesselSymbolTemplates.jpg]].<br />
<br />
[[File:LimeSurveySetDesignTemplatesLS.jpg]]<br />
<br />
You can now select the design templates this user can select. After you finished your selection/deselection just hit '''Save settings''' .<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
=Setting permissions for a single survey=<br />
<br />
These permissions only apply for a single survey. If you want to set permissions for the whole system you can use the global permissions.<br />
<br />
'''Please note:''' An existing user account is required to set permissions for a single survey. If the account doesn't exist you have to create it first and then change the survey permissions. You don't have to apply any global rights to the user, it is just necessary that the user account itself exists.<br />
<br />
==Setting user permissions for a single survey==<br />
<br />
To change the survey permissions you have to select '''Survey permissions''' from the '''Survey properties''' menu.<br />
<br />
[[File:LimeSurveySurveyPermissions.jpg]]<br />
<br />
In the next step you select the user you want to change the survey rights and click '''Add user'''.<br />
<br />
[[File:LimeSurveyAddSurveyPermission.jpg]]<br />
<br />
After you click '''Set survey permissions''' the survey permissions matrix for the survey and user will be shown.<br />
<br />
[[File:LimeSurveyUserPermissionMatrix.jpg]]<br />
<br />
In this matrix you can set the rights for the different features and parts. You simply click a checkbox if you want to add or remove this right. If you click a checkbox in the first column all rights for this line will be selected/removed.<br />
<br />
In the other columns you can choose whether a user can do a single actions from this feature/part.<br />
<br />
After you finished editing the survey permissions click '''Save now'''.<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
=Use cases=<br />
<br />
In this part of the article we'll provide a few ideas which use cases may exist and how and which rights would be a good choice.<br />
<br />
==A new person in charge for administrating LimeSurvey will be added==<br />
* login as '''admin'''<br />
* Create a new user account<br />
* Set global permissions for user to '''SuperAdministrator'''<br />
* not necessary: Setting the template permissions ('''SuperAdministrator''' has all permissions for all templates)<br />
* not necessary: Setting the survey permissions ('''SuperAdministrator''' has all permissions for all surveys)<br />
<br />
==A new user wants to create own surveys==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set global permissions for user to '''Create survey'''<br />
* Set template permissions for user to the template/s that should be used by the user/user-group<br />
* not necessary: Setting the survey permissions (The creator of a survey has all permissions for his/her surveys)<br />
<br />
==The creator of a survey needs another person to edit his/her survey==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set '''no global permissions''' for user<br />
* Set '''no template permissions''' for user<br />
* Set the survey permissions the way you want. It depends on what the new user should do and how much permissions he/she needs. If he/she should have all permissions for the survey you can select the first checkboxes in the first column with checkboxes (the one with the '''<<''' or '''>>''' button as header).<br />
<br />
==A person responsible for the survey wants to see the results of the survey and export them==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set '''no global permissions''' for user<br />
* Set '''no template permissions''' for user<br />
* Set survey permissions to: '''Responses''': '''View/read''' and '''export''' , '''Statistics''': '''View/read'''<br />
<br />
[[File:LimeSurveyCusomerOwnStatistics.jpg]]<br />
<br />
----<br />
<br />
To be moved somewhere else once better defined:<br />
<br />
There are several classes of possible people who access a LimeSurvey installation. But only one set of people is actually termed a '''user''' in the code and documentation. So lets understand what these classes of people are so we can better understand the terminology of the program.<br />
<br />
{|<br />
|Class||Description<br />
|-<br />
|Installation Administrator || Those people who create login user accounts to allow others to create, edit, activate and/or view surveys and their results. Often can be given access to edit the templates, labelsets and other key features independent of any particular survey stored.<br />
|-<br />
|Survey Administrator || A person with a login account that is given some management access to a particular survey. Each survey can have its own set of users with specific rights to manipulate the survey. These rights can be as broad as to activate a survey and possibly edit its question base. They can be as minimum as simply able to review the results to date.<br />
|-<br />
|Participant || Those people who simply respond or participate in taking a survey. They may or may not have token access. They do not need a login account to the administrative interface and thus are not termed users.<br />
|-<br />
|Installer || A special class of person who has access to the MySQL (or similar) database server and possibly the command line interface of the computers operating system in order to install and configure the survey software. This person is asked to setup the initial SuperAdmin user account from which other user login accounts can be created.<br />
|-<br />
|Developer || An very special class of person who has access to the source code and can manipulate it to change the programs behavior. Generally only done with versions of the survey that are not available for live, active surveys. <br />
|}<br />
<br />
=Use one-time passwords=<br />
<br />
Since version 1.81 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.<br />
<br />
To enable this login method [http://docs.limesurvey.org/tiki-index.php?page=Optional+settings#Use_one_time_passwords a setting has to be turned on] ($use_one_time_passwords = true;) in config.php.<br />
<br />
The URL has to contain the following variables:<br />
* '''user:''' The username normally used to login into Limesurvey. This username has to exist in the 'users' table of the database.<br />
* '''onepass:''' The plain text password which is then compared to the password in the 'users' table<br />
<br />
A valid URL to login using a one-time password will look like this...<br />
<br />
... for 1.81 to 1.92:<br />
<br />
<div class="simplebox">http://www.yourdomain.org/limesurvey/admin/admin.php?user=myusername&onepass;=secretpassword</div><br />
<br />
...for 2.0 or later:<br />
<br />
<div class="simplebox">http://www.yourdomain.org/limesurvey/index.php/admin/authentication/login?user=myusername&onepass;=secretpassword</div><br />
<br />
'''Things to watch out for:'''<br />
* One time passwords have to be enabled by setting use_one_time_passwords = true; in config.php<br />
* The passed username has to exist in Limesurvey's ''users'' table<br />
* The one time password, which can be set by an external application, has to be stored as [http://de.php.net/md5 MD5 hash] in column ''one_time_pw'' of table ''users''<br />
* The passed plain text password will be hashed using md5() function and will then be compared to the stored hash in column ''one_time_pw'' of table ''users''. Both passwords have to match.<br />
* After the first login with the one time password this password is deleted from the database. The user won't be able to login with this password anymore.</div>Adminhttps://manual.limesurvey.org/index.php?title=Manage_users&diff=2165Manage users2012-11-15T19:02:27Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
= User management=<br />
<br />
==Create users==<br />
<br />
To create a new user open the user management ('''main menu''' -> '''Create/Edit users ''' [[File:LimeSurveyBenuzerVerwaltung.jpg]]).<br />
<br />
[[File:LimeSurveyAddUser.jpg]]<br />
* Enter the desired username into the textfield '''Username'''.<br />
* Enter the email address into the textfield '''Email'''. Please note<br />
** If you don't want the user to recieve the confirmation email with a link to the LimeSurvey installation, username and password you can use your own email address to send the confirmation email to you. After that you can change the email address to the address of the user.<br />
** LimeSurvey sends out a confirmation email to the address enterd into '''Email'''. This email address will be used as standard contact email address for surveys created by this user.<br />
* Enter the users full name into the textfield '''Full name''' . Please note<br />
** The full name entered here will be used as standard contact person name for surveys created by this user.<br />
* Click '''Add user'''<br />
<br />
So you created a new user. You will find out more about setting user permissions if you continue reading further.<br />
<br />
==Edit users==<br />
<br />
You can use the pen symbol [[File:LimeSurveyBleistiftSymbol.jpg]] to edit a user.<br />
<br />
You can set a new email address, full name and even change the password. If you have finished what you want to do click '''Save'''.<br />
<br />
==Delete users==<br />
<br />
To delete a user account simply click the delete button [[File:LimeSurveyBenutzerLoeschen.jpg]] in the line with the user account that should be deleted and hit '''OK'''.<br />
<br />
=Global permissions=<br />
<br />
Global permissions apply to the whole LimeSurvey installation. If you want to set permissions only for a specific survey you can use the Survey permissions settings.<br />
<br />
==Setting global permissions for a user==<br />
<br />
To set global permissions for a user just click the key symbol [[File:LimeSurveySchluesselSymbol.jpg]].<br />
<br />
[[File:LimeSurveySetGlobalPermissions.jpg]]<br />
<br />
You can now add or remove the following rights.<br />
* '''SuperAdministrator''': This right can only be added or removed by the user called '''admin''' and grants full rights to the whole LimeSurvey installation. '''Please note:''' This right is very powerful and you should be very carfefully with granting this right.<br />
* '''Create survey''': This right lets the user create a survey as well as start, stop and it . This is the standard permission for people creating their own surveys.<br />
* '''Configurator''': With this right a user can check data integrity, save the SQL database to an sql file and view the php info in the global settings.<br />
* '''Create user''': Having this right a user can create new users and delete users created with this account. The newly created users cannot have higher permissions than the parent. If this has to be done a '''SuperAdministrator''' has to grant the rights.<br />
* '''Use all/manage templates''': It allows the user to use all design templates and edit all non standard templates. A person with this right should have sufficient knowledge in terms of HTML/php, Javascript and CSS. If a user not familar with this things should use a specific design template it would be better to use the template permissions.<br />
* '''Manage labels''': This right grants all rights regarding label sets (create, edit and delete).<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
==Setting template permissions for a user==<br />
<br />
With template permissions you can set which design templates a user can select when creating or editing a survey. It might be a good idea to restrict the design templates a user can select in order to prevent unwanted use of design templates not suitable for a user/survey.<br />
<br />
'''Please note:''' If you have a specific design template for a group of users or customers you might want to restrict the access for them to use only the template created for their purpose.<br />
<br />
To set/edit the template permissions for a user simply click the key symbol for design templates [[File:LimeSurveySchluesselSymbolTemplates.jpg]].<br />
<br />
[[File:LimeSurveySetDesignTemplatesLS.jpg]]<br />
<br />
You can now select the design templates this user can select. After you finished your selection/deselection just hit '''Save settings''' .<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
=Setting permissions for a single survey=<br />
<br />
These permissions only apply for a single survey. If you want to set permissions for the whole system you can use the global permissions.<br />
<br />
'''Please note:''' An existing user account is required to set permissions for a single survey. If the account doesn't exist you have to create it first and then change the survey permissions. You don't have to apply any global rights to the user, it is just necessary that the user account itself exists.<br />
<br />
==Setting user permissions for a single survey==<br />
<br />
To change the survey permissions you have to select '''Survey permissions''' from the '''Survey properties''' menu.<br />
<br />
[[File:LimeSurveySurveyPermissions.jpg]]<br />
<br />
In the next step you select the user you want to change the survey rights and click '''Add user'''.<br />
<br />
[[File:LimeSurveyAddSurveyPermission.jpg]]<br />
<br />
After you click '''Set survey permissions''' the survey permissions matrix for the survey and user will be shown.<br />
<br />
[[File:LimeSurveyUserPermissionMatrix.jpg]]<br />
<br />
In this matrix you can set the rights for the different features and parts. You simply click a checkbox if you want to add or remove this right. If you click a checkbox in the first column all rights for this line will be selected/removed.<br />
<br />
In the other columns you can choose whether a user can do a single actions from this feature/part.<br />
<br />
After you finished editing the survey permissions click '''Save now'''.<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
=Use cases=<br />
<br />
In this part of the article we'll provide a few ideas which use cases may exist and how and which rights would be a good choice.<br />
<br />
==A new person in charge for administrating LimeSurvey will be added==<br />
* login as '''admin'''<br />
* Create a new user account<br />
* Set global permissions for user to '''SuperAdministrator'''<br />
* not necessary: Setting the template permissions ('''SuperAdministrator''' has all permissions for all templates)<br />
* not necessary: Setting the survey permissions ('''SuperAdministrator''' has all permissions for all surveys)<br />
<br />
==A new user wants to create own surveys==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set global permissions for user to '''Create survey'''<br />
* Set template permissions for user to the template/s that should be used by the user/user-group<br />
* not necessary: Setting the survey permissions (The creator of a survey has all permissions for his/her surveys)<br />
<br />
==The creator of a survey needs another person to edit his/her survey==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set '''no global permissions''' for user<br />
* Set '''no template permissions''' for user<br />
* Set the survey permissions the way you want. It depends on what the new user should do and how much permissions he/she needs. If he/she should have all permissions for the survey you can select the first checkboxes in the first column with checkboxes (the one with the '''<<''' or '''>>''' button as header).<br />
<br />
==A person responsible for the survey wants to see the results of the survey and export them==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set '''no global permissions''' for user<br />
* Set '''no template permissions''' for user<br />
* Set survey permissions to: '''Responses''': '''View/read''' and '''export''' , '''Statistics''': '''View/read'''<br />
<br />
[[File:LimeSurveyCusomerOwnStatistics.jpg]]<br />
<br />
----<br />
<br />
To be moved somewhere else once better defined:<br />
<br />
There are several classes of possible people who access a LimeSurvey installation. But only one set of people is actually termed a '''user''' in the code and documentation. So lets understand what these classes of people are so we can better understand the terminology of the program.<br />
<br />
{|<br />
|Class||Description<br />
|-<br />
|Installation Administrator || Those people who create login user accounts to allow others to create, edit, activate and/or view surveys and their results. Often can be given access to edit the templates, labelsets and other key features independent of any particular survey stored.<br />
|-<br />
|Survey Administrator || A person with a login account that is given some management access to a particular survey. Each survey can have its own set of users with specific rights to manipulate the survey. These rights can be as broad as to activate a survey and possibly edit its question base. They can be as minimum as simply able to review the results to date.<br />
|-<br />
|Participant || Those people who simply respond or participate in taking a survey. They may or may not have token access. They do not need a login account to the administrative interface and thus are not termed users.<br />
|-<br />
|Installer || A special class of person who has access to the MySQL (or similar) database server and possibly the command line interface of the computers operating system in order to install and configure the survey software. This person is asked to setup the initial SuperAdmin user account from which other user login accounts can be created.<br />
|-<br />
|Developer || An very special class of person who has access to the source code and can manipulate it to change the programs behavior. Generally only done with versions of the survey that are not available for live, active surveys. <br />
|}<br />
<br />
=Use one time passwords=<br />
<br />
Since version 1.81 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.<br />
<br />
To enable this login method [http://docs.limesurvey.org/tiki-index.php?page=Optional+settings#Use_one_time_passwords a setting has to be turned on] ($use_one_time_passwords = true;) in config.php.<br />
<br />
The URL has to contain the following variables:<br />
* '''user:''' The username normally used to login into Limesurvey. This username has to exist in the 'users' table of the database.<br />
* '''onepass:''' The plain text password which is then compared to the password in the 'users' table<br />
<br />
A valid URL to login using a one-time password will look like this...<br />
<br />
... for 1.81 to 1.92:<br />
<br />
<div class="simplebox">http://www.yourdomain.org/limesurvey/admin/admin.php?user=myusername&onepass;=secretpassword</div><br />
<br />
...for 2.0 or later:<br />
<br />
<div class="simplebox">http://www.yourdomain.org/limesurvey/index.php/admin/authentication/login?user=myusername&onepass;=secretpassword</div><br />
<br />
'''Things to watch out for:'''<br />
* One time passwords have to be enabled by setting use_one_time_passwords = true; in config.php<br />
* The passed username has to exist in Limesurvey's ''users'' table<br />
* The one time password, which can be set by an external application, has to be stored as [http://de.php.net/md5 MD5 hash] in column ''one_time_pw'' of table ''users''<br />
* The passed plain text password will be hashed using md5() function and will then be compared to the stored hash in column ''one_time_pw'' of table ''users''. Both passwords have to match.<br />
* After the first login with the one time password this password is deleted from the database. The user won't be able to login with this password anymore.</div>Adminhttps://manual.limesurvey.org/index.php?title=Manage_users&diff=2166Manage users2012-11-15T18:59:18Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
= User management=<br />
<br />
==Create users==<br />
<br />
To create a new user open the user management ('''main menu''' -> '''Create/Edit users ''' [[File:LimeSurveyBenuzerVerwaltung.jpg]]).<br />
<br />
[[File:LimeSurveyAddUser.jpg]]<br />
* Enter the desired username into the textfield '''Username'''.<br />
* Enter the email address into the textfield '''Email'''. Please note<br />
** If you don't want the user to recieve the confirmation email with a link to the LimeSurvey installation, username and password you can use your own email address to send the confirmation email to you. After that you can change the email address to the address of the user.<br />
** LimeSurvey sends out a confirmation email to the address enterd into '''Email'''. This email address will be used as standard contact email address for surveys created by this user.<br />
* Enter the users full name into the textfield '''Full name''' . Please note<br />
** The full name entered here will be used as standard contact person name for surveys created by this user.<br />
* Click '''Add user'''<br />
<br />
So you created a new user. You will find out more about setting user permissions if you continue reading further.<br />
<br />
==Edit users==<br />
<br />
You can use the pen symbol [[File:LimeSurveyBleistiftSymbol.jpg]] to edit a user.<br />
<br />
You can set a new email address, full name and even change the password. If you have finished what you want to do click '''Save'''.<br />
<br />
==Delete users==<br />
<br />
To delete a user account simply click the delete button [[File:LimeSurveyBenutzerLoeschen.jpg]] in the line with the user account that should be deleted and hit '''OK'''.<br />
<br />
=Global permissions=<br />
<br />
Global permissions apply to the whole LimeSurvey installation. If you want to set permissions only for a specific survey you can use the Survey permissions settings.<br />
<br />
==Setting global permissions for a user==<br />
<br />
To set global permissions for a user just click the key symbol [[File:LimeSurveySchluesselSymbol.jpg]].<br />
<br />
[[File:LimeSurveySetGlobalPermissions.jpg]]<br />
<br />
You can now add or remove the following rights.<br />
* '''SuperAdministrator''': This right can only be added or removed by the user called '''admin''' and grants full rights to the whole LimeSurvey installation. '''Please note:''' This right is very powerful and you should be very carfefully with granting this right.<br />
* '''Create survey''': This right lets the user create a survey as well as start, stop and it . This is the standard permission for people creating their own surveys.<br />
* '''Configurator''': With this right a user can check data integrity, save the SQL database to an sql file and view the php info in the global settings.<br />
* '''Create user''': Having this right a user can create new users and delete users created with this account. The newly created users cannot have higher permissions than the parent. If this has to be done a '''SuperAdministrator''' has to grant the rights.<br />
* '''Use all/manage templates''': It allows the user to use all design templates and edit all non standard templates. A person with this right should have sufficient knowledge in terms of HTML/php, Javascript and CSS. If a user not familar with this things should use a specific design template it would be better to use the template permissions.<br />
* '''Manage labels''': This right grants all rights regarding label sets (create, edit and delete).<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
==Setting template permissions for a user==<br />
<br />
With template permissions you can set which design templates a user can select when creating or editing a survey. It might be a good idea to restrict the design templates a user can select in order to prevent unwanted use of design templates not suitable for a user/survey.<br />
<br />
'''Please note:''' If you have a specific design template for a group of users or customers you might want to restrict the access for them to use only the template created for their purpose.<br />
<br />
To set/edit the template permissions for a user simply click the key symbol for design templates [[File:LimeSurveySchluesselSymbolTemplates.jpg]].<br />
<br />
[[File:LimeSurveySetDesignTemplatesLS.jpg]]<br />
<br />
You can now select the design templates this user can select. After you finished your selection/deselection just hit '''Save settings''' .<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
=Setting permissions for a single survey=<br />
<br />
These permissions only apply for a single survey. If you want to set permissions for the whole system you can use the global permissions.<br />
<br />
'''Please note:''' An existing user account is required to set permissions for a single survey. If the account doesn't exist you have to create it first and then change the survey permissions. You don't have to apply any global rights to the user, it is just necessary that the user account itself exists.<br />
<br />
==Setting user permissions for a single survey==<br />
<br />
To change the survey permissions you have to select '''Survey permissions''' from the '''Survey properties''' menu.<br />
<br />
[[File:LimeSurveySurveyPermissions.jpg]]<br />
<br />
In the next step you select the user you want to change the survey rights and click '''Add user'''.<br />
<br />
[[File:LimeSurveyAddSurveyPermission.jpg]]<br />
<br />
After you click '''Set survey permissions''' the survey permissions matrix for the survey and user will be shown.<br />
<br />
[[File:LimeSurveyUserPermissionMatrix.jpg]]<br />
<br />
In this matrix you can set the rights for the different features and parts. You simply click a checkbox if you want to add or remove this right. If you click a checkbox in the first column all rights for this line will be selected/removed.<br />
<br />
In the other columns you can choose whether a user can do a single actions from this feature/part.<br />
<br />
After you finished editing the survey permissions click '''Save now'''.<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
=Use cases=<br />
<br />
In this part of the article we'll provide a few ideas which use cases may exist and how and which rights would be a good choice.<br />
<br />
==A new person in charge for administrating LimeSurvey will be added==<br />
* login as '''admin'''<br />
* Create a new user account<br />
* Set global permissions for user to '''SuperAdministrator'''<br />
* not necessary: Setting the template permissions ('''SuperAdministrator''' has all permissions for all templates)<br />
* not necessary: Setting the survey permissions ('''SuperAdministrator''' has all permissions for all surveys)<br />
<br />
==A new user wants to create own surveys==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set global permissions for user to '''Create survey'''<br />
* Set template permissions for user to the template/s that should be used by the user/user-group<br />
* not necessary: Setting the survey permissions (The creator of a survey has all permissions for his/her surveys)<br />
<br />
==The creator of a survey needs another person to edit his/her survey==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set '''no global permissions''' for user<br />
* Set '''no template permissions''' for user<br />
* Set the survey permissions the way you want. It depends on what the new user should do and how much permissions he/she needs. If he/she should have all permissions for the survey you can select the first checkboxes in the first column with checkboxes (the one with the '''<<''' or '''>>''' button as header).<br />
<br />
==A person responsible for the survey wants to see the results of the survey and export them==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set '''no global permissions''' for user<br />
* Set '''no template permissions''' for user<br />
* Set survey permissions to: '''Responses''': '''View/read''' and '''export''' , '''Statistics''': '''View/read'''<br />
<br />
[[File:LimeSurveyCusomerOwnStatistics.jpg]]<br />
<br />
----<br />
<br />
To be moved somewhere else once better defined:<br />
<br />
There are several classes of possible people who access a LimeSurvey installation. But only one set of people is actually termed a '''user''' in the code and documentation. So lets understand what these classes of people are so we can better understand the terminology of the program.<br />
<br />
{|<br />
|Class||Description<br />
|-<br />
|Installation Administrator || Those people who create login user accounts to allow others to create, edit, activate and/or view surveys and their results. Often can be given access to edit the templates, labelsets and other key features independent of any particular survey stored.<br />
|-<br />
|Survey Administrator || A person with a login account that is given some management access to a particular survey. Each survey can have its own set of users with specific rights to manipulate the survey. These rights can be as broad as to activate a survey and possibly edit its question base. They can be as minimum as simply able to review the results to date.<br />
|-<br />
|Participant || Those people who simply respond or participate in taking a survey. They may or may not have token access. They do not need a login account to the administrative interface and thus are not termed users.<br />
|-<br />
|Installer || A special class of person who has access to the MySQL (or similar) database server and possibly the command line interface of the computers operating system in order to install and configure the survey software. This person is asked to setup the initial SuperAdmin user account from which other user login accounts can be created.<br />
|-<br />
|Developer || An very special class of person who has access to the source code and can manipulate it to change the programs behavior. Generally only done with versions of the survey that are not available for live, active surveys. <br />
|}<br />
<br />
=Use one time passwords=<br />
<br />
Since version 1.81 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.<br />
<br />
To enable this login method [http://docs.limesurvey.org/tiki-index.php?page=Optional+settings#Use_one_time_passwords a setting has to be turned on] ($use_one_time_passwords = true;) in config.php.<br />
<br />
The URL has to contain the following variables:<br />
* '''user:''' The username normally used to login into Limesurvey. This username has to exist in the 'users' table of the database.<br />
* '''onepass:''' The plain text password which is then compared to the password in the 'users' table<br />
<br />
A valid URL to login using a one-time password will look like this...<br />
<br />
... for 1.81 to 1.92:<br />
<br />
<div class="simplebox">http://www.yourdomain.org/limesurvey/admin/admin.php?user=myusername&onepass;=secretpassword</div><br />
<br />
...for 2.0 or later:<br />
<br />
<div class="simplebox">http://www.yourdomain.org/limesurvey/index.php/admin/authentication/login?user=myusername&onepass;=secretpassword</div><br />
<br />
'''Things to watch out for:'''<br />
* One time passwords have to be enabled by setting $use_one_time_passwords = true; in config.php<br />
* The passed username has to exist in Limesurvey's ''users'' table<br />
* The one time password, which can be set by an external application, has to be stored as [http://de.php.net/md5 MD5 hash] in column ''one_time_pw'' of table ''users''<br />
* The passed plain text password will be hashed using md5() function and will then be compared to the stored hash in column ''one_time_pw'' of table ''users''. Both passwords have to match.<br />
* After the first login with the one time password this password is deleted from the database. The user won't be able to login with this password anymore. If you are confronted with session timeout problems [http://docs.limesurvey.org/tiki-index.php?page=Optional+settings#Survey_Behavior raise the setting for $sessionlifetime] (default is 3600 seconds).</div>Adminhttps://manual.limesurvey.org/index.php?title=Manage_users&diff=2167Manage users2012-11-15T18:58:05Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
= User management=<br />
<br />
==Create users==<br />
<br />
To create a new user open the user management ('''main menu''' -> '''Create/Edit users ''' [[File:LimeSurveyBenuzerVerwaltung.jpg]]).<br />
<br />
[[File:LimeSurveyAddUser.jpg]]<br />
* Enter the desired username into the textfield '''Username'''.<br />
* Enter the email address into the textfield '''Email'''. Please note<br />
** If you don't want the user to recieve the confirmation email with a link to the LimeSurvey installation, username and password you can use your own email address to send the confirmation email to you. After that you can change the email address to the address of the user.<br />
** LimeSurvey sends out a confirmation email to the address enterd into '''Email'''. This email address will be used as standard contact email address for surveys created by this user.<br />
* Enter the users full name into the textfield '''Full name''' . Please note<br />
** The full name entered here will be used as standard contact person name for surveys created by this user.<br />
* Click '''Add user'''<br />
<br />
So you created a new user. You will find out more about setting user permissions if you continue reading further.<br />
<br />
==Edit users==<br />
<br />
You can use the pen symbol [[File:LimeSurveyBleistiftSymbol.jpg]] to edit a user.<br />
<br />
You can set a new email address, full name and even change the password. If you have finished what you want to do click '''Save'''.<br />
<br />
==Delete users==<br />
<br />
To delete a user account simply click the delete button [[File:LimeSurveyBenutzerLoeschen.jpg]] in the line with the user account that should be deleted and hit '''OK'''.<br />
<br />
=Global permissions=<br />
<br />
Global permissions apply to the whole LimeSurvey installation. If you want to set permissions only for a specific survey you can use the Survey permissions settings.<br />
<br />
==Setting global permissions for a user==<br />
<br />
To set global permissions for a user just click the key symbol [[File:LimeSurveySchluesselSymbol.jpg]].<br />
<br />
[[File:LimeSurveySetGlobalPermissions.jpg]]<br />
<br />
You can now add or remove the following rights.<br />
* '''SuperAdministrator''': This right can only be added or removed by the user called '''admin''' and grants full rights to the whole LimeSurvey installation. '''Please note:''' This right is very powerful and you should be very carfefully with granting this right.<br />
* '''Create survey''': This right lets the user create a survey as well as start, stop and it . This is the standard permission for people creating their own surveys.<br />
* '''Configurator''': With this right a user can check data integrity, save the SQL database to an sql file and view the php info in the global settings.<br />
* '''Create user''': Having this right a user can create new users and delete users created with this account. The newly created users cannot have higher permissions than the parent. If this has to be done a '''SuperAdministrator''' has to grant the rights.<br />
* '''Use all/manage templates''': It allows the user to use all design templates and edit all non standard templates. A person with this right should have sufficient knowledge in terms of HTML/php, Javascript and CSS. If a user not familar with this things should use a specific design template it would be better to use the template permissions.<br />
* '''Manage labels''': This right grants all rights regarding label sets (create, edit and delete).<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
==Setting template permissions for a user==<br />
<br />
With template permissions you can set which design templates a user can select when creating or editing a survey. It might be a good idea to restrict the design templates a user can select in order to prevent unwanted use of design templates not suitable for a user/survey.<br />
<br />
'''Please note:''' If you have a specific design template for a group of users or customers you might want to restrict the access for them to use only the template created for their purpose.<br />
<br />
To set/edit the template permissions for a user simply click the key symbol for design templates [[File:LimeSurveySchluesselSymbolTemplates.jpg]].<br />
<br />
[[File:LimeSurveySetDesignTemplatesLS.jpg]]<br />
<br />
You can now select the design templates this user can select. After you finished your selection/deselection just hit '''Save settings''' .<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
=Setting permissions for a single survey=<br />
<br />
These permissions only apply for a single survey. If you want to set permissions for the whole system you can use the global permissions.<br />
<br />
'''Please note:''' An existing user account is required to set permissions for a single survey. If the account doesn't exist you have to create it first and then change the survey permissions. You don't have to apply any global rights to the user, it is just necessary that the user account itself exists.<br />
<br />
==Setting user permissions for a single survey==<br />
<br />
To change the survey permissions you have to select '''Survey permissions''' from the '''Survey properties''' menu.<br />
<br />
[[File:LimeSurveySurveyPermissions.jpg]]<br />
<br />
In the next step you select the user you want to change the survey rights and click '''Add user'''.<br />
<br />
[[File:LimeSurveyAddSurveyPermission.jpg]]<br />
<br />
After you click '''Set survey permissions''' the survey permissions matrix for the survey and user will be shown.<br />
<br />
[[File:LimeSurveyUserPermissionMatrix.jpg]]<br />
<br />
In this matrix you can set the rights for the different features and parts. You simply click a checkbox if you want to add or remove this right. If you click a checkbox in the first column all rights for this line will be selected/removed.<br />
<br />
In the other columns you can choose whether a user can do a single actions from this feature/part.<br />
<br />
After you finished editing the survey permissions click '''Save now'''.<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
=Use cases=<br />
<br />
In this part of the article we'll provide a few ideas which use cases may exist and how and which rights would be a good choice.<br />
<br />
==A new person in charge for administrating LimeSurvey will be added==<br />
* login as '''admin'''<br />
* Create a new user account<br />
* Set global permissions for user to '''SuperAdministrator'''<br />
* not necessary: Setting the template permissions ('''SuperAdministrator''' has all permissions for all templates)<br />
* not necessary: Setting the survey permissions ('''SuperAdministrator''' has all permissions for all surveys)<br />
<br />
==A new user wants to create own surveys==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set global permissions for user to '''Create survey'''<br />
* Set template permissions for user to the template/s that should be used by the user/user-group<br />
* not necessary: Setting the survey permissions (The creator of a survey has all permissions for his/her surveys)<br />
<br />
==The creator of a survey needs another person to edit his/her survey==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set '''no global permissions''' for user<br />
* Set '''no template permissions''' for user<br />
* Set the survey permissions the way you want. It depends on what the new user should do and how much permissions he/she needs. If he/she should have all permissions for the survey you can select the first checkboxes in the first column with checkboxes (the one with the '''<<''' or '''>>''' button as header).<br />
<br />
==A person responisble for the survey wants to see the results of the survey and export them==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set '''no global permissions''' for user<br />
* Set '''no template permissions''' for user<br />
* Set survey permissions to: '''Responses''': '''View/read''' and '''export''' , '''Statistics''': '''View/read'''<br />
<br />
[[File:LimeSurveyCusomerOwnStatistics.jpg]]<br />
<br />
----<br />
<br />
Article was translated and used with approval from '''vierundzwanzig''' (24/7 IT-SERVICES GmbH).<br />
<br />
----<br />
<br />
----<br />
<br />
To be moved somewhere else once better defined:<br />
<br />
There are several classes of possible people who access a LimeSurvey installation. But only one set of people is actually termed a '''user''' in the code and documentation. So lets understand what these classes of people are so we can better understand the terminology of the program.<br />
<br />
{|<br />
|Class||Description<br />
|-<br />
|Installation Administrator || Those people who create login user accounts to allow others to create, edit, activate and/or view surveys and their results. Often can be given access to edit the templates, labelsets and other key features independent of any particular survey stored.<br />
|-<br />
|Survey Administrator || A person with a login account that is given some management access to a particular survey. Each survey can have its own set of users with specific rights to manipulate the survey. These rights can be as broad as to activate a survey and possibly edit its question base. They can be as minimum as simply able to review the results to date.<br />
|-<br />
|Participant || Those people who simply respond or participate in taking a survey. They may or may not have token access. They do not need a login account to the administrative interface and thus are not termed users.<br />
|-<br />
|Installer || A special class of person who has access to the MySQL (or similar) database server and possibly the command line interface of the computers operating system in order to install and configure the survey software. This person is asked to setup the initial SuperAdmin user account from which other user login accounts can be created.<br />
|-<br />
|Developer || An very special class of person who has access to the source code and can manipulate it to change the programs behavior. Generally only done with versions of the survey that are not available for live, active surveys. <br />
|}<br />
<br />
=Use one time passwords=<br />
<br />
Since version 1.81 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.<br />
<br />
To enable this login method [http://docs.limesurvey.org/tiki-index.php?page=Optional+settings#Use_one_time_passwords a setting has to be turned on] ($use_one_time_passwords = true;) in config.php.<br />
<br />
The URL has to contain the following variables:<br />
* '''user:''' The username normally used to login into Limesurvey. This username has to exist in the 'users' table of the database.<br />
* '''onepass:''' The plain text password which is then compared to the password in the 'users' table<br />
<br />
A valid URL to login using a one-time password will look like this...<br />
<br />
... for 1.81 to 1.92:<br />
<br />
<div class="simplebox">http://www.yourdomain.org/limesurvey/admin/admin.php?user=myusername&onepass;=secretpassword</div><br />
<br />
...for 2.0 or later:<br />
<br />
<div class="simplebox">http://www.yourdomain.org/limesurvey/index.php/admin/authentication/login?user=myusername&onepass;=secretpassword</div><br />
<br />
'''Things to watch out for:'''<br />
* One time passwords have to be enabled by setting $use_one_time_passwords = true; in config.php<br />
* The passed username has to exist in Limesurvey's ''users'' table<br />
* The one time password, which can be set by an external application, has to be stored as [http://de.php.net/md5 MD5 hash] in column ''one_time_pw'' of table ''users''<br />
* The passed plain text password will be hashed using md5() function and will then be compared to the stored hash in column ''one_time_pw'' of table ''users''. Both passwords have to match.<br />
* After the first login with the one time password this password is deleted from the database. The user won't be able to login with this password anymore. If you are confronted with session timeout problems [http://docs.limesurvey.org/tiki-index.php?page=Optional+settings#Survey_Behavior raise the setting for $sessionlifetime] (default is 3600 seconds).</div>Adminhttps://manual.limesurvey.org/index.php?title=Manage_users&diff=2168Manage users2012-11-15T18:57:42Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
= User management=<br />
<br />
==Create users==<br />
<br />
To create a new user open the user management ('''main menu''' -> '''Create/Edit users ''' [[File:LimeSurveyBenuzerVerwaltung.jpg]]).<br />
<br />
[[File:LimeSurveyAddUser.jpg]]<br />
* Enter the desired username into the textfield '''Username'''.<br />
* Enter the email address into the textfield '''Email'''. Please note<br />
** If you don't want the user to recieve the confirmation email with a link to the LimeSurvey installation, username and password you can use your own email address to send the confirmation email to you. After that you can change the email address to the address of the user.<br />
** LimeSurvey sends out a confirmation email to the address enterd into '''Email'''. This email address will be used as standard contact email address for surveys created by this user.<br />
* Enter the users full name into the textfield '''Full name''' . Please note<br />
** The full name entered here will be used as standard contact person name for surveys created by this user.<br />
* Click '''Add user'''<br />
<br />
So you created a new user. You will find out more about setting user permissions if you continue reading further.<br />
<br />
==Edit users==<br />
<br />
You can use the pen symbol [[File:LimeSurveyBleistiftSymbol.jpg]] to edit a user.<br />
<br />
You can set a new email address, full name and even change the password. If you have finished what you want to do click '''Save'''.<br />
<br />
==Delete users==<br />
<br />
To delete a user account simply click the delete button [[File:LimeSurveyBenutzerLoeschen.jpg]] in the line with the user account that should be deleted and hit '''OK'''.<br />
<br />
=Global permissions=<br />
<br />
Global permissions apply to the whole LimeSurvey installation. If you want to set permissions only for a specific survey you can use the Survey permissions settings.<br />
<br />
==Setting global permissions for a user==<br />
<br />
To set global permissions for a user just click the key symbol [[File:LimeSurveySchluesselSymbol.jpg]].<br />
<br />
[[File:LimeSurveySetGlobalPermissions.jpg]]<br />
<br />
You can now add or remove the following rights.<br />
* '''SuperAdministrator''': This right can only be added or removed by the user called '''admin''' and grants full rights to the whole LimeSurvey installation. '''Please note:''' This right is very powerful and you should be very carfefully with granting this right.<br />
* '''Create survey''': This right lets the user create a survey as well as start, stop and it . This is the standard permission for people creating their own surveys.<br />
* '''Configurator''': With this right a user can check data integrity, save the SQL database to an sql file and view the php info in the global settings.<br />
* '''Create user''': Having this right a user can create new users and delete users created with this account. The newly created users cannot have higher permissions than the parent. If this has to be done a '''SuperAdministrator''' has to grant the rights.<br />
* '''Use all/manage templates''': It allows the user to use all design templates and edit all non standard templates. A person with this right should have sufficient knowledge in terms of HTML/php, Javascript and CSS. If a user not familar with this things should use a specific design template it would be better to use the template permissions.<br />
* '''Manage labels''': This right grants all rights regarding label sets (create, edit and delete).<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
==Setting template permissions for a user==<br />
<br />
With template permissions you can set which design templates a user can select when creating or editing a survey. It might be a good idea to restrict the design templates a user can select in order to prevent unwanted use of design templates not suitable for a user/survey.<br />
<br />
'''Please note:''' If you have a specific design template for a group of users or customers you might want to restrict the access for them to use only the template created for their purpose.<br />
<br />
To set/edit the template permissions for a user simply click the key symbol for design templates [[File:LimeSurveySchluesselSymbolTemplates.jpg]].<br />
<br />
[[File:LimeSurveySetDesignTemplatesLS.jpg]]<br />
<br />
You can now select the design templates this user can select. After you finished your selection/deselection just hit '''Save settings''' .<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
=Setting permissions for a single survey=<br />
<br />
These permissions only apply for a single survey. If you want to set permissions for the whole system you can use the global permissions.<br />
<br />
'''Please note:''' An existing user account is required to set permissions for a single survey. If the account doesn't exist you have to create it first and then change the survey permissions. You don't have to apply any global rights to the user, it is just necessary that the user account itself exists.<br />
<br />
==Setting user permissions for a single survey==<br />
<br />
To change the survey permissions you have to select '''Survey permissions''' from the '''Survey properties''' menu.<br />
<br />
[[File:LimeSurveySurveyPermissions.jpg]]<br />
<br />
In the next step you select the user you want to change the survey rights and click '''Add user'''.<br />
<br />
[[File:LimeSurveyAddSurveyPermission.jpg]]<br />
<br />
After you click '''Set survey permissions''' the survey permissions matrix for the survey and user will be shown.<br />
<br />
[[File:LimeSurveyUserPermissionMatrix.jpg]]<br />
<br />
In this matrix you can set the rights for the different features and parts. You simply click a checkbox if you want to add or remove this right. If you click a checkbox in the first column all rights for this line will be selected/removed.<br />
<br />
In the other columns you can choose whether a user can do a single actions from this feature/part.<br />
<br />
After you finished editing the survey permissions click '''Save now'''.<br />
<br />
The most important use cases for granting user rights are collected at the '''use cases''' part of this article.<br />
<br />
=use cases=<br />
<br />
In this part of the article we'll provide a few ideas which use cases may exist and how and which rights would be a good choice.<br />
<br />
==A new person in charge for administrating LimeSurvey will be added==<br />
* login as '''admin'''<br />
* Create a new user account<br />
* Set global permissions for user to '''SuperAdministrator'''<br />
* not necessary: Setting the template permissions ('''SuperAdministrator''' has all permissions for all templates)<br />
* not necessary: Setting the survey permissions ('''SuperAdministrator''' has all permissions for all surveys)<br />
<br />
==A new user wants to create own surveys==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set global permissions for user to '''Create survey'''<br />
* Set template permissions for user to the template/s that should be used by the user/user-group<br />
* not necessary: Setting the survey permissions (The creator of a survey has all permissions for his/her surveys)<br />
<br />
==The creator of a survey needs another person to edit his/her survey==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set '''no global permissions''' for user<br />
* Set '''no template permissions''' for user<br />
* Set the survey permissions the way you want. It depends on what the new user should do and how much permissions he/she needs. If he/she should have all permissions for the survey you can select the first checkboxes in the first column with checkboxes (the one with the '''<<''' or '''>>''' button as header).<br />
<br />
==A person responisble for the survey wants to see the results of the survey and export them==<br />
* login as '''admin''' or user with '''SuperAdministrator''' permission.<br />
* Create a new user account<br />
* Set '''no global permissions''' for user<br />
* Set '''no template permissions''' for user<br />
* Set survey permissions to: '''Responses''': '''View/read''' and '''export''' , '''Statistics''': '''View/read'''<br />
<br />
[[File:LimeSurveyCusomerOwnStatistics.jpg]]<br />
<br />
----<br />
<br />
Article was translated and used with approval from '''vierundzwanzig''' (24/7 IT-SERVICES GmbH).<br />
<br />
----<br />
<br />
----<br />
<br />
To be moved somewhere else once better defined:<br />
<br />
There are several classes of possible people who access a LimeSurvey installation. But only one set of people is actually termed a '''user''' in the code and documentation. So lets understand what these classes of people are so we can better understand the terminology of the program.<br />
<br />
{|<br />
|Class||Description<br />
|-<br />
|Installation Administrator || Those people who create login user accounts to allow others to create, edit, activate and/or view surveys and their results. Often can be given access to edit the templates, labelsets and other key features independent of any particular survey stored.<br />
|-<br />
|Survey Administrator || A person with a login account that is given some management access to a particular survey. Each survey can have its own set of users with specific rights to manipulate the survey. These rights can be as broad as to activate a survey and possibly edit its question base. They can be as minimum as simply able to review the results to date.<br />
|-<br />
|Participant || Those people who simply respond or participate in taking a survey. They may or may not have token access. They do not need a login account to the administrative interface and thus are not termed users.<br />
|-<br />
|Installer || A special class of person who has access to the MySQL (or similar) database server and possibly the command line interface of the computers operating system in order to install and configure the survey software. This person is asked to setup the initial SuperAdmin user account from which other user login accounts can be created.<br />
|-<br />
|Developer || An very special class of person who has access to the source code and can manipulate it to change the programs behavior. Generally only done with versions of the survey that are not available for live, active surveys. <br />
|}<br />
<br />
=Use one time passwords=<br />
<br />
Since version 1.81 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.<br />
<br />
To enable this login method [http://docs.limesurvey.org/tiki-index.php?page=Optional+settings#Use_one_time_passwords a setting has to be turned on] ($use_one_time_passwords = true;) in config.php.<br />
<br />
The URL has to contain the following variables:<br />
* '''user:''' The username normally used to login into Limesurvey. This username has to exist in the 'users' table of the database.<br />
* '''onepass:''' The plain text password which is then compared to the password in the 'users' table<br />
<br />
A valid URL to login using a one-time password will look like this...<br />
<br />
... for 1.81 to 1.92:<br />
<br />
<div class="simplebox">http://www.yourdomain.org/limesurvey/admin/admin.php?user=myusername&onepass;=secretpassword</div><br />
<br />
...for 2.0 or later:<br />
<br />
<div class="simplebox">http://www.yourdomain.org/limesurvey/index.php/admin/authentication/login?user=myusername&onepass;=secretpassword</div><br />
<br />
'''Things to watch out for:'''<br />
* One time passwords have to be enabled by setting $use_one_time_passwords = true; in config.php<br />
* The passed username has to exist in Limesurvey's ''users'' table<br />
* The one time password, which can be set by an external application, has to be stored as [http://de.php.net/md5 MD5 hash] in column ''one_time_pw'' of table ''users''<br />
* The passed plain text password will be hashed using md5() function and will then be compared to the stored hash in column ''one_time_pw'' of table ''users''. Both passwords have to match.<br />
* After the first login with the one time password this password is deleted from the database. The user won't be able to login with this password anymore. If you are confronted with session timeout problems [http://docs.limesurvey.org/tiki-index.php?page=Optional+settings#Survey_Behavior raise the setting for $sessionlifetime] (default is 3600 seconds).</div>Adminhttps://manual.limesurvey.org/index.php?title=RemoteControl_2_API&diff=2938RemoteControl 2 API2012-11-15T14:58:32Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Introduction=<br />
<br />
LimeSurvey RemoteControl 2 is a XML-RPC/JSON-RPC based web service available in LimeSurvey 2.0 or later. The old [RemoteControl] will not be available any longer in version 2.<br />
<br />
LSRC2 makes it possible for developers to control specific functionality of Limesurvey from any other application, without being restricted to PHP as a programming language.<br />
<br />
The following features are planned:<br />
* start a predefined survey (change titles and things)<br />
* add predefined groups or questions<br />
* activate the survey, restrict it to start and endtime<br />
* make it closed,<br />
* add participant data/tokens when you need them<br />
* return the unused tokens to the main application<br />
* get a fieldmap for a survey,<br />
* invite or remind the participants of your survey<br />
<br />
...and much more<br />
<br />
==Requirements==<br />
* libXML installed<br />
<br />
=Setup=<br />
<br />
== How to configure LSRC2==<br />
<br />
In a default LimeSurvey installation LSRC2 is disabled. In order to use LSRC2 you must first enable the service, and then adjust the settings to suit your needs. To enable LSRC2 login to the LimeSurvey administration, go to [[Global settings]], choose the tab 'Services' and select one of the two RPC services (XML-RPC or JSON-RPC) service.<br />
<br />
== Security==<br />
<br />
LSRC2 uses the same security measures as the normal administration login. That means that the permission set of the used username and password is the same as if you would login in the administration with that user/password. Also LSRC2 is protected against brute-force password cracking - like the normal administration login.<br />
<br />
=How to use LSRC2=<br />
<br />
The basic LSRC2 URL is: http://<your_domain>/<your_limesurvey_dir>/index.php/admin/remotecontrol<br />
<br />
LSRC2 fully complies to the [http://www.xmlrpc.com/ XML-RPC specification] and JSON-RPC specifications. We recommend in general to use JSON-RPC because it is well tested and has a much smaller footprint than XML-RPC.<br />
<br />
LSRC2 offers the following functions:<br />
<br />
==get_session_key==<br />
<br />
Using this function you can create a new XML-RPC session key. This is mandatory for all following LSRC2 function calls.<br />
<br />
Parameters: username (string), password (string)<br />
<br />
Returns:<br />
*On success: A session key (string)<br />
*On failure: Error Code 1<br />
<br />
==release_session_key==<br />
<br />
Using this function you can close a previously opened XML-RPC/JSON-RPC session.<br />
<br />
Parameters: session key (string)<br />
<br />
Returns:<br />
*Always: 'OK' (string)<br />
<br />
==get_site_settings==<br />
<br />
Function to provide with site settings only to administrators<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) The session key<br />
<br />
sSetttingName (string) - Name of the setting to get<br />
<br />
Returns:<br />
*On success: (string) Setting<br />
*On failure: (string) Error message<br />
<br />
==add_survey==<br />
<br />
RPC Routine to add an empty survey with minimum details<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
iSurveyID (int), The wish id of the Survey to add<br />
<br />
sSurveyTitle (string), Title of the new Survey<br />
<br />
sSurveyLanguage (string), Default language of the Survey<br />
<br />
sformat (string), Question appearance format (S|G|A)<br />
<br />
Returns:<br />
*On success: (int) $iNewSurveyID<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Faulty parameters<br />
**Creation Failed<br />
<br />
==delete_survey==<br />
<br />
RPC Routine to Delete a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string), Auth credentials<br />
<br />
iSurveyID (int), The Survey to delete<br />
<br />
Returns:<br />
*On success: Status =>OK (array)<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
<br />
==import_survey==<br />
<br />
RPC Routine to import a survey from lss,csv,xls or survey zip archive.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
sImportData (string) String containing the BASE 64 encoded data of a lss,csv,xls or survey zip archive<br />
<br />
sImportDataType (string), The format of the import file (lss,csv,xls or zip)<br />
<br />
sNewSurveyName (string), The optional new name of the survey (base language)<br />
<br />
DestSurveyID (int), This is the new ID of the survey - if already used a random one will be taken instead<br />
<br />
Returns:<br />
*On success: (int) $iNewSurveyID<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Import error<br />
<br />
==get_survey_properties==<br />
<br />
RPC Routine to get properties of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey<br />
<br />
aSurveySettings (array), An array with the properties to return<br />
<br />
Returns:<br />
*On success: (string) the requested value<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Invalid session key<br />
**No permission<br />
**No valid Data<br />
<br />
Available properties:<br />
<br />
{|<br />
| || || || || ||<br />
|-<br />
| sid|| savetimings|| allowprev|| tokenanswerspersistence|| showgroupinfo|| showwelcome<br />
|-<br />
| owner_id|| template|| printanswers|| assessments|| shownoanswer || showprogress<br />
|-<br />
| admin|| language|| ipaddr|| usecaptcha|| showqnumcode|| allowjumps<br />
|-<br />
| active|| additional_languages || refurl|| usetokens|| bouncetime|| navigationdelay<br />
|-<br />
| expires|| datestamp|| datecreated|| bounce_email|| bounceprocessing|| nokeyboard<br />
|-<br />
| startdate|| usecookie|| publicstatistics|| attributedescriptions|| bounceaccounttype|| alloweditaftercompletion<br />
|-<br />
| adminemail|| allowregister|| publicgraphs|| emailresponseto|| bounceaccounthost|| googleanalyticsstyle<br />
|-<br />
| anonymized|| allowsave|| listpublic|| emailnotificationto|| bounceaccountpass|| googleanalyticsapikey<br />
|-<br />
| faxto|| autonumber_start|| htmlemail|| tokenlength|| bounceaccountencryption||<br />
|-<br />
|format|| autoredirect|| sendconfirmation|| showxquestions|| bounceaccountuser|| <br />
|}<br />
<br />
==set_survey_properties==<br />
<br />
RPC Routine to set properties of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey<br />
<br />
aSurveySettings (array), An assosiative array with the name-value pair of the properties to set<br />
<br />
Returns:<br />
*On success: (array) The result of the change for each property<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Invalid session key<br />
**No permission<br />
**No valid Data<br />
<br />
Available properties:<br />
<br />
Properties available for changing are all those defined in get_survey_properties with the following exceptions<br />
<br />
{|<br />
|properties not allowed to be modified|| Properties not allowed to be modified when survey active<br />
|-<br />
|sid||anonymized<br />
|-<br />
|language||datestamp<br />
|-<br />
|additional_languages||savetimings<br />
|-<br />
|active||ipaddr<br />
|-<br />
|||refurl<br />
|-<br />
|<br />
|}<br />
<br />
==list_surveys==<br />
<br />
RPC Routine to list the ids and info of surveys belonging to a user.<br />
<br />
* If user is admin he can get surveys of every user (parameter sUser) or all surveys (sUser=null)<br />
<br />
* Else only the syrveys belonging to the user requesting will be shown.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
sUser (string) - The users surveys to list<br />
<br />
Returns:<br />
*On success: (array) Survey's properties<br />
*On failure: (array) Failure status<br />
**Invalid user<br />
**Invalid session key<br />
**No permission<br />
**No surveys found<br />
<br />
Survey's properties:<br />
<br />
{|<br />
|property||type<br />
|-<br />
|sid||integer<br />
|-<br />
|surveyls_title||string<br />
|-<br />
|startdate||date<br />
|-<br />
|expires||date<br />
|-<br />
|active||y/n<br />
|-<br />
|<br />
|}<br />
<br />
==activate_survey==<br />
<br />
RPC Routine that launches a newly created survey (sets active -available for users)<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
SurveyID (integer) - ID of the survey<br />
<br />
Returns<br />
*On success: (array) The result of the activation<br />
*On failure: (array) Failure status<br />
**Invalid Survey ID<br />
**Activation Error<br />
**Invalid session key<br />
**No permission<br />
<br />
==export_statistics==<br />
<br />
RPC routine to export statistics of a survey to a user.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
SurveyID (integer) - ID of the survey<br />
<br />
docType (string) - Type of document to generate<br />
<br />
sLanguage (string) Optional language of the survey to use (if not set, default language is selected)<br />
<br />
graph (string) - Optional parameter to enable graphs (0|1)<br />
<br />
Returns<br />
*On success: (string) Base64 encoded string with the statistics file<br />
*On failure: (array) Failure status<br />
**Invalid Survey ID<br />
**Invalid session key<br />
**No permission<br />
<br />
==get_summary==<br />
<br />
RPC routine to get survey summary, regarding token usage and survey participation.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey<br />
<br />
sStatname (string) - The statistic to return<br />
<br />
Returns<br />
*On success: (string) Base64 encoded string with the statistics file<br />
*On failure: (array) Failure status<br />
**No available data<br />
**No such property<br />
**Invalid session key<br />
**No permission<br />
<br />
Available statistics:<br />
<br />
{|<br />
|Survey stats||Token stats<br />
|-<br />
|completed_responses||token_count<br />
|-<br />
|incomplete_responses||token_invalid<br />
|-<br />
|full_responses||tokens_sent<br />
|-<br />
|||token_opted_out<br />
|-<br />
|||token_completed<br />
|-<br />
|<br />
|}<br />
<br />
==add_language==<br />
<br />
RPC Routine to add a language to an existing survey<br />
<br />
Parameters:<br />
<br />
session key (string) - The session key<br />
<br />
SurveyID (integer) - ID of the survey<br />
<br />
aLanguage (string) - The language shortcut for the new language to be added. Note: If the language is already in that survey no error will be thrown.<br />
<br />
Return values:<br />
*On success: (array) status=>OK<br />
*On failure: (array) Any other status<br />
**Invalid survey ID<br />
**Invalid language<br />
**Error<br />
**Invalid session key<br />
**No permission<br />
<br />
==delete_survey_language==<br />
<br />
RPC Routine to delete a language of an existing survey<br />
<br />
Parameters:<br />
<br />
session key (string) The session key<br />
<br />
SurveyID (integer) - ID of the survey<br />
<br />
aLanguage (string) - The language shortcut for the language to be removed. Note: If the language is not part of that survey no error will be thrown.<br />
<br />
Return values:<br />
*On success: (array) status=>OK<br />
*On failure: (array) Any other status<br />
**Invalid survey ID<br />
**Invalid language<br />
**Cannot remove base language<br />
**Error<br />
**No permission<br />
**Invalid session key<br />
<br />
==get_language_properties==<br />
<br />
RPC Routine to get survey language properties<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey<br />
<br />
aSurveyLocaleSettings (array) - An array with the properties to return<br />
<br />
slang (string) - The language to use<br />
<br />
Returns:<br />
*On success: (string) the requested value<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Invalid session key<br />
**No permission<br />
**No valid Data<br />
<br />
Available parameters:<br />
<br />
{|<br />
| || || ||<br />
|-<br />
| surveyls_survey_id || surveyls_url || surveyls_email_register_subj || email_admin_notification_subj<br />
|-<br />
| surveyls_language || surveyls_urldescription || surveyls_email_register || email_admin_notification<br />
|-<br />
| surveyls_title || surveyls_email_invite_subj || surveyls_email_confirm_subj || email_admin_responses_subj<br />
|-<br />
| surveyls_description || surveyls_email_invite || surveyls_email_confirm || email_admin_responses<br />
|-<br />
| surveyls_welcometext || surveyls_email_remind_subj || surveyls_dateformat || surveyls_numberformat<br />
|-<br />
|surveyls_endtext || surveyls_email_remind || surveyls_attributecaptions || <br />
|}<br />
<br />
==set_language_properties==<br />
<br />
RPC Routine to set survey language properties<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey<br />
<br />
aSurveyLocaleData (array) - An assosiative array with the key-value pairs of properties to set. Invalid fieldnames or fields that may not be modified are ignored.<br />
<br />
sLanguage (string) - The language to use<br />
<br />
Returns:<br />
*On success: (string) Result for each parameter set<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Invalid language<br />
**Invalid session key<br />
**No permission<br />
**No valid Data<br />
<br />
Allowed Parameters:<br />
<br />
All those defined in get-language_properties except:<br />
*surveyls_language<br />
*surveyls_survey_id<br />
<br />
==add_group==<br />
<br />
RPC Routine to add an empty group with minimum details.<br />
<br />
* Used as a placeholder for importing questions.<br />
<br />
* Returns the groupid of the created group.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - ID of the surveythat the group will be added<br />
<br />
sGroupTitle (string) - Name of the new group<br />
<br />
sGroupDescription (string) - Optional description of the group<br />
<br />
Returns:<br />
*On success: (int) The ID of the new group<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Error:Survey is active and not editable<br />
**Invalid session key<br />
**No permission<br />
**Creation Failed<br />
<br />
==delete_group==<br />
<br />
RPC Routine to delete a group of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey that the group belongs<br />
<br />
sGroupID (int) - Id of the group to delete<br />
<br />
Returns:<br />
*On success: (int) The ID of the deleted group<br />
*On failure: (array) Failure status<br />
**Invalid Survey ID<br />
**Invalid Group ID<br />
**Error:Survey is active and not editable<br />
**Invalid session key<br />
**No permission<br />
**Group deletion failed<br />
<br />
==import_group==<br />
<br />
RPC Routine to import a group - imports lsg,csv<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - The id of the survey that the group will belong<br />
<br />
sImportData (string) - String containing the BASE 64 encoded data of a lsg,csv<br />
<br />
sGroupDescription (string) -The format of the importfile in the stream (lsg|csv)<br />
<br />
sNewGroupName (string) - Optional new name for the group<br />
<br />
sNewGroupDescription (string) - Optional new description for the group<br />
<br />
Returns:<br />
*On success: (int) The ID of the new group<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Error:Survey is active and not editable<br />
**Invalid extension<br />
**Error: Invalid LimeSurvey group structure XML<br />
**Invalid session key<br />
**No permission<br />
**Import Error<br />
<br />
==get_group_properties==<br />
<br />
RPC Routine to return properties of a group of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iGroupID (integer) - The id of the group to get properties of<br />
<br />
aGroupSettings (array) - Array containing the properties to request.<br />
<br />
Returns:<br />
*On success: (array) The requested properties<br />
*On failure: (array) Failure status<br />
**Error: Invalid group ID<br />
**No valid Data<br />
**Invalid session key<br />
**No permission<br />
<br />
Available properties:<br />
<br />
{|<br />
| ||<br />
|-<br />
|gid||description<br />
|-<br />
|sid||language<br />
|-<br />
|group_name||randomization_group<br />
|-<br />
|group_order||grelevance<br />
|-<br />
|<br />
|}<br />
<br />
==set_group_properties==<br />
<br />
RPC Routine to set properties of a group of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iGroupID (integer) - The id of the group to set properties to<br />
<br />
aGroupData (array) - Assosiative Array containing key-value pairs of the properties to set.<br />
<br />
Returns:<br />
*On success: (array) The result of each set action<br />
*On failure: (array) Failure status<br />
**Error: Invalid group ID<br />
**No valid Data<br />
**Group with dependencies - Order cannot be changed<br />
**Invalid session key<br />
**No permission<br />
<br />
Available properties:<br />
<br />
{|<br />
| ||<br />
|-<br />
|||description<br />
|-<br />
|||language<br />
|-<br />
|group_name||randomization_group<br />
|-<br />
|group_order||grelevance<br />
|-<br />
|<br />
|}<br />
<br />
==list_groups==<br />
<br />
RPC Routine to return the ids and info of groups belonging to survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - The id of the survey to get groups of<br />
<br />
Returns:<br />
*On success: (array) The list of the groups<br />
*On failure: (array) Failure status<br />
**Invalid Survey ID<br />
**No groups found<br />
**Invalid session key<br />
**No permission<br />
<br />
==delete_question==<br />
<br />
RPC Routine to delete a question of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
iQuestionID (int) Id of the question to delete<br />
<br />
Returns:<br />
*On success: (int)id of the deleted Question<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
** Invalid question ID<br />
**Survey is active and not editable<br />
**Cannot delete Question. Others rely on this question<br />
**Error<br />
<br />
==import_question==<br />
<br />
RPC Routine to import a question - imports lsq,csv<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey that the new questions belongs<br />
<br />
iGroupID (int) - Id of the group that the new questions belongs<br />
<br />
sImportData (string) - String containing the BASE 64 encoded data of a lsg,csv<br />
<br />
sImportDataType (string) - Format of the input stream (lsq,csv)<br />
<br />
sMandatory (string) - Optional Mandatory question option (default to No)<br />
<br />
sNewQuestionTitle (string) - Optional new title for the question<br />
<br />
sNewqQuestion (string) - An optional new question<br />
<br />
sNewQuestionHelp (string) - An optional new question help text<br />
<br />
Returns:<br />
*On success: (int) Id of the new Question<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**Invalid group ID<br />
**Survey is active and not editable<br />
**Invalid extension<br />
**Invalid LimeSurvey question structure XML<br />
<br />
==get_question_properties==<br />
<br />
RPC Routine to return properties of a question of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
iQuestionID (int) Id of the question to get properties of<br />
<br />
aQuestionSettings (array) The properties to get<br />
<br />
sLanguage (string) Optional parameter language for multilingual questions<br />
<br />
Returns:<br />
*On success: (array) The requested properties<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid questionid<br />
**Invalid language<br />
**No valid Data<br />
<br />
Available Properties:<br />
<br />
{|<br />
| || || ||<br />
|-<br />
|gid||type||help||language<br />
|-<br />
|parent_qid||title||other||scale_id<br />
|-<br />
|sid||question||mandatory||same_default<br />
|-<br />
|gid||preg||question_order||relevance<br />
|-<br />
|subquestions||attributes||attributes_lang||answeroptions<br />
|-<br />
|<br />
|}<br />
<br />
==set_question_properties==<br />
<br />
RPC Routine to set question properties<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iQuestionID (int) - Id of the question to get properties of<br />
<br />
aQuestionData (array) - An array with the particular fieldnames as keys and their values to set on that particular question<br />
<br />
sLanguage (string) - Optional parameter language for multilingual questions<br />
<br />
Returns:<br />
*On success: (array) The resilt of the set of each property<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid questionid<br />
**Invalid language<br />
**Questions with dependencies - Order cannot be changed<br />
**No valid Data<br />
<br />
Available Properties:<br />
<br />
{|<br />
| || ||<br />
|-<br />
|help|| ||<br />
|-<br />
|title||other||scale_id<br />
|-<br />
|question||mandatory||same_default<br />
|-<br />
|preg||question_order||relevance<br />
|-<br />
|<br />
|}<br />
<br />
==list_questions==<br />
<br />
RPC Routine to return the ids and info of questions of a survey/group.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to get questions of<br />
<br />
iGroupID (int) - Id of the group to get questions of<br />
<br />
sLanguage (string) - Optional parameter language for multilingual questions<br />
<br />
Returns:<br />
*On success: (array) The list of the questions<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid questionid<br />
**Invalid language<br />
**Invalid survey ID<br />
**Missmatch in surveyid and groupid<br />
**No questions found<br />
<br />
==activate_tokens==<br />
<br />
Activate tokens<br />
<br />
Parameters:<br />
<br />
session key (string) The session key<br />
<br />
surveyid (string) The survey ID<br />
<br />
additional_attributes (array of integers) Any additional attribute fields to create. Just give the attribute IDs<br />
<br />
Returns:<br />
*On success: (array) status OK<br />
*On failure: (array) Any other status<br />
<br />
==add_participants==<br />
<br />
Using this function you can add new entries to your token table. You can also set if for these new entries a token key is automatically create<br />
<br />
Parameters:<br />
*session key (string) - The session key<br />
*survey ID (string) - The survey id<br />
*participant data (array) - 2-dimensional array/structure containing your participants data<br />
*createTokenKey (boolean) - Set this to true if you want a token key create automatically for each entry - if your participant data included a [token] field it will be overwritten<br />
<br />
Returns:<br />
*On success: participant data (struct) - structure containing your participants data plus the token ID and (if applicable) the new token<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
<br />
==delete_participants==<br />
<br />
RPC Routine to delete multiple participants of a Survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to get questions of<br />
<br />
aTokenIDs (array) - IId of the tokens/participants to delete<br />
<br />
Returns:<br />
*On success: (array) Array of deletion status for each participant<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
<br />
==get_participant_properties==<br />
<br />
RPC Routine to return settings of a token/participant of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the Survey to get token properties<br />
<br />
iTokenID (int) - Id of the participant to check<br />
<br />
aTokenProperties (array) - The properties to get<br />
<br />
Returns:<br />
*On success: (array) Array of requested values<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
**Invalid tokenid<br />
**No valid Data<br />
<br />
Available Parameters:<br />
<br />
{|<br />
| || ||<br />
|-<br />
|tid|| token|| completed<br />
|-<br />
| participant_id || language|| usesleft<br />
|-<br />
|firstname|| blacklisted|| validfrom<br />
|-<br />
| lastname|| sent|| validuntil<br />
|-<br />
|email|| remindersent|| mpid<br />
|-<br />
|emailstatus|| remindercount|| <br />
|}<br />
<br />
==set_participant_properties==<br />
<br />
RPC Routine to set properties of a survey participant/token<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the Survey to set token properties<br />
<br />
iTokenID (int) - Id of the participant to alter<br />
<br />
aTokenData (array) - Key - value pair of the properties to set<br />
<br />
Returns:<br />
*On success: (array) Array of results of changing properties<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
**Invalid tokenid<br />
**No valid Data<br />
<br />
Available Parameters:<br />
<br />
{|<br />
| || ||<br />
|-<br />
||| token|| completed<br />
|-<br />
| participant_id || language|| usesleft<br />
|-<br />
|firstname|| blacklisted|| validfrom<br />
|-<br />
| lastname|| sent|| validuntil<br />
|-<br />
|email|| remindersent|| mpid<br />
|-<br />
|emailstatus|| remindercount|| <br />
|}<br />
<br />
==list_participants==<br />
<br />
RPC Routine to return the ids and info of token/participants of a survey.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to list participants<br />
<br />
iStart (int) - Start id of the token list<br />
<br />
iLimit (int) - Number of participants to return<br />
<br />
bUnused (bool) - If you want unused tokensm, set true<br />
<br />
Returns:<br />
*On success: (array) Array of Participants info<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
**No Tokens found<br />
<br />
==activate_tokens==<br />
<br />
RPC routine to to initialise the survey's collection of tokens where new participant tokens may be later added<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to list participants<br />
<br />
aAttributeFields (array) - An array of integer describing any additional attribute fields<br />
<br />
Returns:<br />
*On success: (array) Status OK<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**Token table could not be created<br />
<br />
==invite_participants==<br />
<br />
RPC Routine to invite participants in a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to send invitation to participants<br />
<br />
Returns:<br />
*On success: (array) Array of result of each email send action and count of invitations left to send<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
**No candidate tokens<br />
<br />
==remind_participants==<br />
<br />
RPC Routine to send reminder for participants in a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to send invitation to participants<br />
<br />
iMinDaysBetween (int) - Optional parameter days from last reminder<br />
<br />
iMaxReminders (int) - Optional parameter Maximum reminders count<br />
<br />
Returns:<br />
*On success: (array) Array of result of each email send action and count of invitations left to send<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
**No candidate tokens<br />
<br />
==add_response==<br />
<br />
Using this function you can add new responses to your survey response table.<br />
<br />
Parameters:<br />
*sSessionKey (string) - The session key<br />
*iSurveyID (integer) - The survey id<br />
*aResponseData (array) - array/structure containing your response data<br />
<br />
Returns:<br />
*On success: response_id (integer) - Returns the id of the inserted survey response<br />
*On failure: (array) with error description<br />
<br />
==export_responses==<br />
<br />
Export response data to pdf,csv,xls,doc<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
SurveyID (int) - Id of the Survey<br />
<br />
DocumentType (string) - pdf,csv,xls,doc<br />
<br />
sLanguageCode (string) - Optional The language to be used - if not given then the base language will be used<br />
<br />
CompletionStatus (string) - Optional 'complete','incomplete' or 'all' selection of responses - defaults to complete<br />
<br />
HeadingType (string) - 'code','full' or 'abbreviated'. type of question heading. Optional defaults to 'code'<br />
<br />
ResponseType (string) - 'short' or 'long' response type.Optional defaults to 'short'<br />
<br />
FromResponse (int) - Optional start number of response<br />
<br />
ToResponse (int) - Optional end number of responses<br />
<br />
Return:<br />
<br />
On success: Requested file as base 64-encoded string.<br />
<br />
On failure: Array with error information<br />
<br />
Note: If you have huge response sets try only to request a certain number of records at a time otherwise the server may run out of memory.<br />
<br />
=Testing=<br />
<br />
To test you will have to activate JSON-RPC in global settings. To run a simple self-test go to<br />
<br />
http://path_to_your_limesurvey_installation/index.php/admin/remotecontrol/test . This will import the example survey, do various things with it and delete it afterwards.<br />
<br />
The test assumes that you still are using the standard user 'admin' with password 'password'.<br />
<br />
The client function for this test can be found in /application/controller/admin/remotecontrol.php and the particular function is called test().<br />
<br />
=PHP Example=<br />
<br />
To include JSON-RPC in your application, you can write an application based on the tiny jsonRPCClient from [http://jsonrpcphp.org/ | jsonrpcphp.org]<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
<?php<br />
<br />
require_once 'jsonRPCClient.php';<br />
<br />
define( 'LS_BASEURL', 'http://localhost/limesurvey/'); // adjust this one to your actual LimeSurvey URL<br />
<br />
define( 'LS_USER', 'rpcuser' );<br />
<br />
define( 'LS_PASSWORD', 'mypassword' );<br />
<br />
// the survey to process<br />
<br />
$survey_id=374699;<br />
<br />
// instanciate a new client<br />
<br />
$myJSONRPCClient = new jsonRPCClient( LS_BASEURL.'/admin/remotecontrol' );<br />
<br />
// receive session key<br />
<br />
$sessionKey= $myJSONRPCClient->get_session_key( LS_USER, LS_PASSWORD );<br />
<br />
// receive all ids and info of groups belonging to a given survey<br />
<br />
$groups = $myJSONRPCClient->list_groups( $sessionKey, $survey_id );<br />
<br />
print_r($groups, null );<br />
<br />
// release the session key<br />
<br />
$myJSONRPCClient->release_session_key( $sessionKey );<br />
<br />
?><br />
<br />
</syntaxhighlight><br />
<br />
=Changes=<br />
<br />
2.0a Only three functions are supported right now: getSessionKey, releaseSessionKey, deleteSurvey<br />
<br />
2.0b Added function add_participants<br />
<br />
2.0RC5 Added import_survey, activate_survey, activate_tokens<br />
<br />
2.0 (build 121030) Added subquestions, attributes, attributes_lang and answeroptions properties for get_question_properties</div>Adminhttps://manual.limesurvey.org/index.php?title=RemoteControl_2_API&diff=2940RemoteControl 2 API2012-11-15T14:24:26Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Introduction=<br />
<br />
LimeSurvey RemoteControl 2 is a XML-RPC/JSON-RPC based web service available in LimeSurvey 2.0 or later. The old [RemoteControl] will not be available any longer in version 2.<br />
<br />
LSRC2 makes it possible for developers to control specific functionality of Limesurvey from any other application, without being restricted to PHP as a programming language.<br />
<br />
The following features are planned:<br />
* start a predefined survey (change titles and things)<br />
* add predefined groups or questions<br />
* activate the survey, restrict it to start and endtime<br />
* make it closed,<br />
* add participant data/tokens when you need them<br />
* return the unused tokens to the main application<br />
* get a fieldmap for a survey,<br />
* invite or remind the participants of your survey<br />
<br />
...and much more<br />
<br />
==Requirements==<br />
* libXML installed<br />
<br />
=Setup=<br />
<br />
== How to configure LSRC2==<br />
<br />
In a default LimeSurvey installation LSRC2 is disabled. In order to use LSRC2 you must first enable the service, and then adjust the settings to suit your needs. To enable LSRC2 login to the LimeSurvey administration, go to [[Global settings]], choose the tab 'Services' and select one of the two RPC services (XML-RPC or JSON-RPC) service.<br />
<br />
== Security==<br />
<br />
LSRC2 uses the same security measures as the normal administration login. That means that the permission set of the used username and password is the same as if you would login in the administration with that user/password. Also LSRC2 is protected against brute-force password cracking - like the normal administration login.<br />
<br />
=How to use LSRC2=<br />
<br />
The basic LSRC2 URL is: http://<your_domain>/<your_limesurvey_dir>/index.php/admin/remotecontrol<br />
<br />
LSRC2 fully complies to the [http://www.xmlrpc.com/ XML-RPC specification] and JSON-RPC specifications. We recommend in general to use JSON-RPC because it is well tested and has a much smaller footprint than XML-RPC.<br />
<br />
LSRC2 offers the following functions:<br />
<br />
==get_session_key==<br />
<br />
Using this function you can create a new XML-RPC session key. This is mandatory for all following LSRC2 function calls.<br />
<br />
Parameters: username (string), password (string)<br />
<br />
Returns:<br />
*On success: A session key (string)<br />
*On failure: Error Code 1<br />
<br />
==release_session_key==<br />
<br />
Using this function you can close a previously opened XML-RPC/JSON-RPC session.<br />
<br />
Parameters: session key (string)<br />
<br />
Returns:<br />
*Always: 'OK' (string)<br />
<br />
==get_site_settings==<br />
<br />
Function to provide with site settings only to administrators<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) The session key<br />
<br />
sSetttingName (string) - Name of the setting to get<br />
<br />
Returns:<br />
*On success: (string) Setting<br />
*On failure: (string) Error message<br />
<br />
==add_survey==<br />
<br />
RPC Routine to add an empty survey with minimum details<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
iSurveyID (int), The wish id of the Survey to add<br />
<br />
sSurveyTitle (string), Title of the new Survey<br />
<br />
sSurveyLanguage (string), Default language of the Survey<br />
<br />
sformat (string), Question appearance format (S|G|A)<br />
<br />
Returns:<br />
*On success: (int) $iNewSurveyID<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Faulty parameters<br />
**Creation Failed<br />
<br />
==delete_survey==<br />
<br />
RPC Routine to Delete a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string), Auth credentials<br />
<br />
iSurveyID (int), The Survey to delete<br />
<br />
Returns:<br />
*On success: Status =>OK (array)<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
<br />
==import_survey==<br />
<br />
RPC Routine to import a survey from lss,csv,xls or survey zip archive.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
sImportData (string) String containing the BASE 64 encoded data of a lss,csv,xls or survey zip archive<br />
<br />
sImportDataType (string), The format of the import file (lss,csv,xls or zip)<br />
<br />
sNewSurveyName (string), The optional new name of the survey (base language)<br />
<br />
DestSurveyID (int), This is the new ID of the survey - if already used a random one will be taken instead<br />
<br />
Returns:<br />
*On success: (int) $iNewSurveyID<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Import error<br />
<br />
==get_survey_properties==<br />
<br />
RPC Routine to get properties of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey<br />
<br />
aSurveySettings (array), An array with the properties to return<br />
<br />
Returns:<br />
*On success: (string) the requested value<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Invalid session key<br />
**No permission<br />
**No valid Data<br />
<br />
Available properties:<br />
<br />
{|<br />
| || || || || ||<br />
|-<br />
| sid|| savetimings|| allowprev|| tokenanswerspersistence|| showgroupinfo|| showwelcome<br />
|-<br />
| owner_id|| template|| printanswers|| assessments|| shownoanswer || showprogress<br />
|-<br />
| admin|| language|| ipaddr|| usecaptcha|| showqnumcode|| allowjumps<br />
|-<br />
| active|| additional_languages || refurl|| usetokens|| bouncetime|| navigationdelay<br />
|-<br />
| expires|| datestamp|| datecreated|| bounce_email|| bounceprocessing|| nokeyboard<br />
|-<br />
| startdate|| usecookie|| publicstatistics|| attributedescriptions|| bounceaccounttype|| alloweditaftercompletion<br />
|-<br />
| adminemail|| allowregister|| publicgraphs|| emailresponseto|| bounceaccounthost|| googleanalyticsstyle<br />
|-<br />
| anonymized|| allowsave|| listpublic|| emailnotificationto|| bounceaccountpass|| googleanalyticsapikey<br />
|-<br />
| faxto|| autonumber_start|| htmlemail|| tokenlength|| bounceaccountencryption||<br />
|-<br />
|format|| autoredirect|| sendconfirmation|| showxquestions|| bounceaccountuser|| <br />
|}<br />
<br />
==set_survey_properties==<br />
<br />
RPC Routine to set properties of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey<br />
<br />
aSurveySettings (array), An assosiative array with the name-value pair of the properties to set<br />
<br />
Returns:<br />
*On success: (array) The result of the change for each property<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Invalid session key<br />
**No permission<br />
**No valid Data<br />
<br />
Available properties:<br />
<br />
Properties available for changing are all those defined in get_survey_properties with the following exceptions<br />
<br />
{|<br />
|properties not allowed to be modified|| Properties not allowed to be modified when survey active<br />
|-<br />
|sid||anonymized<br />
|-<br />
|language||datestamp<br />
|-<br />
|additional_languages||savetimings<br />
|-<br />
|active||ipaddr<br />
|-<br />
|||refurl<br />
|-<br />
|<br />
|}<br />
<br />
==list_surveys==<br />
<br />
RPC Routine to list the ids and info of surveys belonging to a user.<br />
<br />
* If user is admin he can get surveys of every user (parameter sUser) or all surveys (sUser=null)<br />
<br />
* Else only the syrveys belonging to the user requesting will be shown.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
sUser (string) - The users surveys to list<br />
<br />
Returns:<br />
*On success: (array) Survey's properties<br />
*On failure: (array) Failure status<br />
**Invalid user<br />
**Invalid session key<br />
**No permission<br />
**No surveys found<br />
<br />
Survey's properties:<br />
<br />
{|<br />
|property||type<br />
|-<br />
|sid||integer<br />
|-<br />
|surveyls_title||string<br />
|-<br />
|startdate||date<br />
|-<br />
|expires||date<br />
|-<br />
|active||y/n<br />
|-<br />
|<br />
|}<br />
<br />
==activate_survey==<br />
<br />
RPC Routine that launches a newly created survey (sets active -available for users)<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
SurveyID (integer) - ID of the survey<br />
<br />
Returns<br />
*On success: (array) The result of the activation<br />
*On failure: (array) Failure status<br />
**Invalid Survey ID<br />
**Activation Error<br />
**Invalid session key<br />
**No permission<br />
<br />
==export_statistics==<br />
<br />
RPC routine to export statistics of a survey to a user.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
SurveyID (integer) - ID of the survey<br />
<br />
docType (string) - Type of document to generate<br />
<br />
sLanguage (string) Optional language of the survey to use (if not set, default language is selected)<br />
<br />
graph (string) - Optional parameter to enable graphs (0|1)<br />
<br />
Returns<br />
*On success: (string) Base64 encoded string with the statistics file<br />
*On failure: (array) Failure status<br />
**Invalid Survey ID<br />
**Invalid session key<br />
**No permission<br />
<br />
==get_summary==<br />
<br />
RPC routine to get survey summary, regarding token usage and survey participation.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey<br />
<br />
sStatname (string) - The statistic to return<br />
<br />
Returns<br />
*On success: (string) Base64 encoded string with the statistics file<br />
*On failure: (array) Failure status<br />
**No available data<br />
**No such property<br />
**Invalid session key<br />
**No permission<br />
<br />
Available statistics:<br />
<br />
{|<br />
|Survey stats||Token stats<br />
|-<br />
|completed_responses||token_count<br />
|-<br />
|incomplete_responses||token_invalid<br />
|-<br />
|full_responses||tokens_sent<br />
|-<br />
|||token_opted_out<br />
|-<br />
|||token_completed<br />
|-<br />
|<br />
|}<br />
<br />
==add_language==<br />
<br />
RPC Routine to add a language to an existing survey<br />
<br />
Parameters:<br />
<br />
session key (string) - The session key<br />
<br />
SurveyID (integer) - ID of the survey<br />
<br />
aLanguage (string) - The language shortcut for the new language to be added. Note: If the language is already in that survey no error will be thrown.<br />
<br />
Return values:<br />
*On success: (array) status=>OK<br />
*On failure: (array) Any other status<br />
**Invalid survey ID<br />
**Invalid language<br />
**Error<br />
**Invalid session key<br />
**No permission<br />
<br />
==delete_survey_language==<br />
<br />
RPC Routine to delete a language of an existing survey<br />
<br />
Parameters:<br />
<br />
session key (string) The session key<br />
<br />
SurveyID (integer) - ID of the survey<br />
<br />
aLanguage (string) - The language shortcut for the language to be removed. Note: If the language is not part of that survey no error will be thrown.<br />
<br />
Return values:<br />
*On success: (array) status=>OK<br />
*On failure: (array) Any other status<br />
**Invalid survey ID<br />
**Invalid language<br />
**Cannot remove base language<br />
**Error<br />
**No permission<br />
**Invalid session key<br />
<br />
==get_language_properties==<br />
<br />
RPC Routine to get survey language properties<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey<br />
<br />
aSurveyLocaleSettings (array) - An array with the properties to return<br />
<br />
slang (string) - The language to use<br />
<br />
Returns:<br />
*On success: (string) the requested value<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Invalid session key<br />
**No permission<br />
**No valid Data<br />
<br />
Available parameters:<br />
<br />
{|<br />
| || || ||<br />
|-<br />
| surveyls_survey_id || surveyls_url || surveyls_email_register_subj || email_admin_notification_subj<br />
|-<br />
| surveyls_language || surveyls_urldescription || surveyls_email_register || email_admin_notification<br />
|-<br />
| surveyls_title || surveyls_email_invite_subj || surveyls_email_confirm_subj || email_admin_responses_subj<br />
|-<br />
| surveyls_description || surveyls_email_invite || surveyls_email_confirm || email_admin_responses<br />
|-<br />
| surveyls_welcometext || surveyls_email_remind_subj || surveyls_dateformat || surveyls_numberformat<br />
|-<br />
|surveyls_endtext || surveyls_email_remind || surveyls_attributecaptions || <br />
|}<br />
<br />
==set_language_properties==<br />
<br />
RPC Routine to set survey language properties<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey<br />
<br />
aSurveyLocaleData (array) - An assosiative array with the key-value pairs of properties to set. Invalid fieldnames or fields that may not be modified are ignored.<br />
<br />
sLanguage (string) - The language to use<br />
<br />
Returns:<br />
*On success: (string) Result for each parameter set<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Invalid language<br />
**Invalid session key<br />
**No permission<br />
**No valid Data<br />
<br />
Allowed Parameters:<br />
<br />
All those defined in get-language_properties except:<br />
*surveyls_language<br />
*surveyls_survey_id<br />
<br />
==add_group==<br />
<br />
RPC Routine to add an empty group with minimum details.<br />
<br />
* Used as a placeholder for importing questions.<br />
<br />
* Returns the groupid of the created group.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - ID of the surveythat the group will be added<br />
<br />
sGroupTitle (string) - Name of the new group<br />
<br />
sGroupDescription (string) - Optional description of the group<br />
<br />
Returns:<br />
*On success: (int) The ID of the new group<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Error:Survey is active and not editable<br />
**Invalid session key<br />
**No permission<br />
**Creation Failed<br />
<br />
==delete_group==<br />
<br />
RPC Routine to delete a group of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - ID of the survey that the group belongs<br />
<br />
sGroupID (int) - Id of the group to delete<br />
<br />
Returns:<br />
*On success: (int) The ID of the deleted group<br />
*On failure: (array) Failure status<br />
**Invalid Survey ID<br />
**Invalid Group ID<br />
**Error:Survey is active and not editable<br />
**Invalid session key<br />
**No permission<br />
**Group deletion failed<br />
<br />
==import_group==<br />
<br />
RPC Routine to import a group - imports lsg,csv<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - The id of the survey that the group will belong<br />
<br />
sImportData (string) - String containing the BASE 64 encoded data of a lsg,csv<br />
<br />
sGroupDescription (string) -The format of the importfile in the stream (lsg|csv)<br />
<br />
sNewGroupName (string) - Optional new name for the group<br />
<br />
sNewGroupDescription (string) - Optional new description for the group<br />
<br />
Returns:<br />
*On success: (int) The ID of the new group<br />
*On failure: (array) Failure status<br />
**Invalid survey ID<br />
**Error:Survey is active and not editable<br />
**Invalid extension<br />
**Error: Invalid LimeSurvey group structure XML<br />
**Invalid session key<br />
**No permission<br />
**Import Error<br />
<br />
==get_group_properties==<br />
<br />
RPC Routine to return properties of a group of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iGroupID (integer) - The id of the group to get properties of<br />
<br />
aGroupSettings (array) - Array containing the properties to request.<br />
<br />
Returns:<br />
*On success: (array) The requested properties<br />
*On failure: (array) Failure status<br />
**Error: Invalid group ID<br />
**No valid Data<br />
**Invalid session key<br />
**No permission<br />
<br />
Available properties:<br />
<br />
{|<br />
| ||<br />
|-<br />
|gid||description<br />
|-<br />
|sid||language<br />
|-<br />
|group_name||randomization_group<br />
|-<br />
|group_order||grelevance<br />
|-<br />
|<br />
|}<br />
<br />
==set_group_properties==<br />
<br />
RPC Routine to set properties of a group of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iGroupID (integer) - The id of the group to set properties to<br />
<br />
aGroupData (array) - Assosiative Array containing key-value pairs of the properties to set.<br />
<br />
Returns:<br />
*On success: (array) The result of each set action<br />
*On failure: (array) Failure status<br />
**Error: Invalid group ID<br />
**No valid Data<br />
**Group with dependencies - Order cannot be changed<br />
**Invalid session key<br />
**No permission<br />
<br />
Available properties:<br />
<br />
{|<br />
| ||<br />
|-<br />
|||description<br />
|-<br />
|||language<br />
|-<br />
|group_name||randomization_group<br />
|-<br />
|group_order||grelevance<br />
|-<br />
|<br />
|}<br />
<br />
==list_groups==<br />
<br />
RPC Routine to return the ids and info of groups belonging to survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (integer) - The id of the survey to get groups of<br />
<br />
Returns:<br />
*On success: (array) The list of the groups<br />
*On failure: (array) Failure status<br />
**Invalid Survey ID<br />
**No groups found<br />
**Invalid session key<br />
**No permission<br />
<br />
==delete_question==<br />
<br />
RPC Routine to delete a question of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
iQuestionID (int) Id of the question to delete<br />
<br />
Returns:<br />
*On success: (int)id of the deleted Question<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
** Invalid question ID<br />
**Survey is active and not editable<br />
**Cannot delete Question. Others rely on this question<br />
**Error<br />
<br />
==import_question==<br />
<br />
RPC Routine to import a question - imports lsq,csv<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey that the new questions belongs<br />
<br />
iGroupID (int) - Id of the group that the new questions belongs<br />
<br />
sImportData (string) - String containing the BASE 64 encoded data of a lsg,csv<br />
<br />
sImportDataType (string) - Format of the input stream (lsq,csv)<br />
<br />
sMandatory (string) - Optional Mandatory question option (default to No)<br />
<br />
sNewQuestionTitle (string) - Optional new title for the question<br />
<br />
sNewqQuestion (string) - An optional new question<br />
<br />
sNewQuestionHelp (string) - An optional new question help text<br />
<br />
Returns:<br />
*On success: (int) Id of the new Question<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**Invalid group ID<br />
**Survey is active and not editable<br />
**Invalid extension<br />
**Invalid LimeSurvey question structure XML<br />
<br />
==get_question_properties==<br />
<br />
RPC Routine to return properties of a question of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) Auth credentials<br />
<br />
iQuestionID (int) Id of the question to get properties of<br />
<br />
aQuestionSettings (array) The properties to get<br />
<br />
sLanguage (string) Optional parameter language for multilingual questions<br />
<br />
Returns:<br />
*On success: (array) The requested properties<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid questionid<br />
**Invalid language<br />
**No valid Data<br />
<br />
Available Properties:<br />
<br />
{|<br />
| || || ||<br />
|-<br />
|gid||type||help||language<br />
|-<br />
|parent_qid||title||other||scale_id<br />
|-<br />
|sid||question||mandatory||same_default<br />
|-<br />
|gid||preg||question_order||relevance<br />
|-<br />
|subquestions||attributes||attributes_lang||answeroptions<br />
|-<br />
|<br />
|}<br />
<br />
==set_question_properties==<br />
<br />
RPC Routine to set question properties<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iQuestionID (int) - Id of the question to get properties of<br />
<br />
aQuestionData (array) - An array with the particular fieldnames as keys and their values to set on that particular question<br />
<br />
sLanguage (string) - Optional parameter language for multilingual questions<br />
<br />
Returns:<br />
*On success: (array) The resilt of the set of each property<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid questionid<br />
**Invalid language<br />
**Questions with dependencies - Order cannot be changed<br />
**No valid Data<br />
<br />
Available Properties:<br />
<br />
{|<br />
| || ||<br />
|-<br />
|help|| ||<br />
|-<br />
|title||other||scale_id<br />
|-<br />
|question||mandatory||same_default<br />
|-<br />
|preg||question_order||relevance<br />
|-<br />
|<br />
|}<br />
<br />
==list_questions==<br />
<br />
RPC Routine to return the ids and info of questions of a survey/group.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to get questions of<br />
<br />
iGroupID (int) - Id of the group to get questions of<br />
<br />
sLanguage (string) - Optional parameter language for multilingual questions<br />
<br />
Returns:<br />
*On success: (array) The list of the questions<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid questionid<br />
**Invalid language<br />
**Invalid survey ID<br />
**Missmatch in surveyid and groupid<br />
**No questions found<br />
<br />
==activate_tokens==<br />
<br />
Activate tokens<br />
<br />
Parameters:<br />
<br />
session key (string) The session key<br />
<br />
surveyid (string) The survey ID<br />
<br />
additional_attributes (array of integers) Any additional attribute fields to create. Just give the attribute IDs<br />
<br />
Returns:<br />
*On success: (array) status OK<br />
*On failure: (array) Any other status<br />
<br />
==add_participants==<br />
<br />
Using this function you can add new entries to your token table. You can also set if for these new entries a token key is automatically create<br />
<br />
Parameters:<br />
*session key (string) - The session key<br />
*survey ID (string) - The survey id<br />
*participant data (array) - 2-dimensional array/structure containing your participants data<br />
*createTokenKey (boolean) - Set this to true if you want a token key create automatically for each entry - if your participant data included a [token] field it will be overwritten<br />
<br />
Returns:<br />
*On success: participant data (struct) - structure containing your participants data plus the token ID and (if applicable) the new token<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
<br />
==delete_participants==<br />
<br />
RPC Routine to delete multiple participants of a Survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to get questions of<br />
<br />
aTokenIDs (array) - IId of the tokens/participants to delete<br />
<br />
Returns:<br />
*On success: (array) Array of deletion status for each participant<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
<br />
==get_participant_properties==<br />
<br />
RPC Routine to return settings of a token/participant of a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the Survey to get token properties<br />
<br />
iTokenID (int) - Id of the participant to check<br />
<br />
aTokenProperties (array) - The properties to get<br />
<br />
Returns:<br />
*On success: (array) Array of requested values<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
**Invalid tokenid<br />
**No valid Data<br />
<br />
Available Parameters:<br />
<br />
{|<br />
| || ||<br />
|-<br />
|tid|| token|| completed<br />
|-<br />
| participant_id || language|| usesleft<br />
|-<br />
|firstname|| blacklisted|| validfrom<br />
|-<br />
| lastname|| sent|| validuntil<br />
|-<br />
|email|| remindersent|| mpid<br />
|-<br />
|emailstatus|| remindercount|| <br />
|}<br />
<br />
==set_participant_properties==<br />
<br />
RPC Routine to set properties of a survey participant/token<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the Survey to set token properties<br />
<br />
iTokenID (int) - Id of the participant to alter<br />
<br />
aTokenData (array) - Key - value pair of the properties to set<br />
<br />
Returns:<br />
*On success: (array) Array of results of changing properties<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
**Invalid tokenid<br />
**No valid Data<br />
<br />
Available Parameters:<br />
<br />
{|<br />
| || ||<br />
|-<br />
||| token|| completed<br />
|-<br />
| participant_id || language|| usesleft<br />
|-<br />
|firstname|| blacklisted|| validfrom<br />
|-<br />
| lastname|| sent|| validuntil<br />
|-<br />
|email|| remindersent|| mpid<br />
|-<br />
|emailstatus|| remindercount|| <br />
|}<br />
<br />
==list_participants==<br />
<br />
RPC Routine to return the ids and info of token/participants of a survey.<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to list participants<br />
<br />
iStart (int) - Start id of the token list<br />
<br />
iLimit (int) - Number of participants to return<br />
<br />
bUnused (bool) - If you want unused tokensm, set true<br />
<br />
Returns:<br />
*On success: (array) Array of Participants info<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
**No Tokens found<br />
<br />
==activate_tokens==<br />
<br />
RPC routine to to initialise the survey's collection of tokens where new participant tokens may be later added<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to list participants<br />
<br />
aAttributeFields (array) - An array of integer describing any additional attribute fields<br />
<br />
Returns:<br />
*On success: (array) Status OK<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**Token table could not be created<br />
<br />
==invite_participants==<br />
<br />
RPC Routine to invite participants in a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to send invitation to participants<br />
<br />
Returns:<br />
*On success: (array) Array of result of each email send action and count of invitations left to send<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
**No candidate tokens<br />
<br />
==remind_participants==<br />
<br />
RPC Routine to send reminder for participants in a survey<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
iSurveyID (int) - Id of the survey to send invitation to participants<br />
<br />
iMinDaysBetween (int) - Optional parameter days from last reminder<br />
<br />
iMaxReminders (int) - Optional parameter Maximum reminders count<br />
<br />
Returns:<br />
*On success: (array) Array of result of each email send action and count of invitations left to send<br />
*On failure: (array) Failure status<br />
**Invalid session key<br />
**No permission<br />
**Invalid survey ID<br />
**No token table<br />
**No candidate tokens<br />
<br />
==add_response==<br />
<br />
Using this function you can add new responses to your survey response table.<br />
<br />
Parameters:<br />
*sSessionKey (string) - The session key<br />
*iSurveyID (integer) - The survey id<br />
*aResponseData (array) - array/structure containing your response data<br />
<br />
Returns:<br />
*On success: response_id (integer) - Returns the id of the inserted survey response<br />
*On failure: (array) with error description<br />
<br />
==export_responses==<br />
<br />
Export response data to pdf,csv,xls,doc<br />
<br />
Parameters:<br />
<br />
sSessionKey (string) - Auth credentials<br />
<br />
SurveyID (int) - Id of the Survey<br />
<br />
DocumentType (string) - pdf,csv,xls,doc<br />
<br />
sLanguageCode (string) - Optional The language to be used - if not given then the base language will be used<br />
<br />
CompletionStatus (string) - Optional 'complete','incomplete' or 'all' selection of responses - defaults to complete<br />
<br />
HeadingType (string) - 'code','full' or 'abbreviated'. type of question heading. Optional defaults to 'code'<br />
<br />
ResponseType (string) - 'short' or 'long' response type.Optional defaults to 'short'<br />
<br />
FromResponseID (int) - Optional start number of response<br />
<br />
ToResponseID (int) - Optional end number of responses<br />
<br />
Return:<br />
<br />
On success: Requested file as base 64-encoded string.<br />
<br />
On failure: Array with error information<br />
<br />
Note: If you have huge response sets try only to request a certain number of records at a time otherwise the server may run out of memory.<br />
<br />
=Testing=<br />
<br />
To test you will have to activate JSON-RPC in global settings. To run a simple self-test go to<br />
<br />
http://path_to_your_limesurvey_installation/index.php/admin/remotecontrol/test . This will import the example survey, do various things with it and delete it afterwards.<br />
<br />
The test assumes that you still are using the standard user 'admin' with password 'password'.<br />
<br />
The client function for this test can be found in /application/controller/admin/remotecontrol.php and the particular function is called test().<br />
<br />
=PHP Example=<br />
<br />
To include JSON-RPC in your application, you can write an application based on the tiny jsonRPCClient from [http://jsonrpcphp.org/ | jsonrpcphp.org]<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<br />
<?php<br />
<br />
require_once 'jsonRPCClient.php';<br />
<br />
define( 'LS_BASEURL', 'http://localhost/limesurvey/'); // adjust this one to your actual LimeSurvey URL<br />
<br />
define( 'LS_USER', 'rpcuser' );<br />
<br />
define( 'LS_PASSWORD', 'mypassword' );<br />
<br />
// the survey to process<br />
<br />
$survey_id=374699;<br />
<br />
// instanciate a new client<br />
<br />
$myJSONRPCClient = new jsonRPCClient( LS_BASEURL.'/admin/remotecontrol' );<br />
<br />
// receive session key<br />
<br />
$sessionKey= $myJSONRPCClient->get_session_key( LS_USER, LS_PASSWORD );<br />
<br />
// receive all ids and info of groups belonging to a given survey<br />
<br />
$groups = $myJSONRPCClient->list_groups( $sessionKey, $survey_id );<br />
<br />
print_r($groups, null );<br />
<br />
// release the session key<br />
<br />
$myJSONRPCClient->release_session_key( $sessionKey );<br />
<br />
?><br />
<br />
</syntaxhighlight><br />
<br />
=Changes=<br />
<br />
2.0a Only three functions are supported right now: getSessionKey, releaseSessionKey, deleteSurvey<br />
<br />
2.0b Added function add_participants<br />
<br />
2.0RC5 Added import_survey, activate_survey, activate_tokens<br />
<br />
2.0 (build 121030) Added subquestions, attributes, attributes_lang and answeroptions properties for get_question_properties</div>Adminhttps://manual.limesurvey.org/index.php?title=URL_fields&diff=3589URL fields2012-11-14T18:25:34Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
==General==<br />
<br />
At the end of a survey, or when a quota causes a survey to terminate, there is the option of setting a URL. This URL is presented to the participant who has finished the survey on the completed page, or you can optionally set the participant to be automatically redirected to the URL.<br />
<br />
There are a number of fields available to be used to enhance the functionality of this URL.<br />
<br />
===Basic fields===<br />
<br />
You can use {SAVEDID}, {TOKEN}, {SID} and {LANG} (since 1.71+) in this URL.<br />
* SAVEDID is the id assigned to this particular submission,<br />
* TOKEN is the token used to participate in the survey,<br />
* SID is the survey ID, and<br />
* LANG is the language code<br />
<br />
'''Example'''<br />
<br />
http://www.limesurvey.org/test.php?var1={SAVEDID}&var2;={TOKEN}&var3;={SID}&lang;={LANG} (external link)<br />
<br />
===Answer fields===<br />
<br />
You can also use {INSERTANS:SGQA} in this URL (since 1.82+).<br />
* {INSERTANS: SGQA} allows adding the response to a specific question in the survey to the final url. This can be useful for sending a response to an external script (ie an email address collected during the survey).<br />
<br />
'''Example'''<br />
<br />
"http://www.limesurvey.org/test.php?email={INSERTANS:1234X56X7}"<br />
<br />
===Expressions===<br />
<br />
You can also use any Expression Manager expression (since 1.92+).<br />
<br />
'''Example'''<br />
<br />
"http://www.limesurvey.org/test.php?gender={if(sex=='Male','M','F')}&name;={name}<br />
<br />
===Passthrough fields (LimeSurvey 2.x or later)===<br />
<br />
Starting with version 2.0 you can now define any additional parameters that should be passed to the end URl in the survey settings (Tab "Panel integration"). To use such a parameter in the end URL just insert the tag {PASSTHRU:<paramname>} where <paramname> is the name of your input parameter.<br />
<br />
Example:<br />
<br />
You defined in the Panel integration tab a parameter named 'foobar'. The survey is started with a link like<br />
<br />
http://localhost/limesurvey/index.php/survey/index/sid/12345/lang/eb?foobar=XYZ123<br />
<br />
where XYZ123 is the value you want to pass.<br />
<br />
A survey exit URL of "http://www.limesurvey.org/test.php?foobarout={PASSTHRU:foobar}" would then convert to "http://www.limesurvey.org/test.php?foobarout=XYZ123"<br />
<br />
===Passthrough fields (LimeSurvey 1.92 and older)===<br />
<br />
You can also use a 'passthrough' field name and data value in the end URL.<br />
<br />
In some instances you may want to pass a value to the survey at initialization, and then have that value passed through to an external script at the end (for example a marketing firms subsid).<br />
<br />
'''Example'''<br />
<br />
In this case you'd start the survey with the query url "index.php?sid=12345&passthru;=subsid&subsid;=9999".<br />
<br />
In your URL you would use {PASSTHRULABEL} and {PASSTHRUVALUE} to reuse these values at the end of the survey.<br />
<br />
A URL of "http://www.limesurvey.org/test.php?{PASSTHRULABEL}={PASSTHRUVALUE}" would then convert to "http://www.limesurvey.org/test.php?subsid=9999"<br />
<br />
===Places to use URL fields===<br />
<br />
URL fields can be used in the general survey exit URL (see [[Creating a new survey]] ), and in the URL setting for each individual quota (see [[Quotas]] ).</div>Adminhttps://manual.limesurvey.org/index.php?title=URL_fields&diff=3590URL fields2012-11-14T18:25:07Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
==General==<br />
<br />
At the end of a survey, or when a quota causes a survey to terminate, there is the option of setting a URL. This URL is presented to the participant who has finished the survey on the completed page, or you can optionally set the participant to be automatically redirected to the URL.<br />
<br />
There are a number of fields available to be used to enhance the functionality of this URL.<br />
<br />
===Basic fields===<br />
<br />
You can use {SAVEDID}, {TOKEN}, {SID} and {LANG} (since 1.71+) in this URL.<br />
* SAVEDID is the id assigned to this particular submission,<br />
* TOKEN is the token used to participate in the survey,<br />
* SID is the survey ID, and<br />
* LANG is the language code<br />
<br />
'''Example'''<br />
<br />
http://www.limesurvey.org/test.php?var1={SAVEDID}&var2;={TOKEN}&var3;={SID}&lang;={LANG} (external link)<br />
<br />
===Answer fields===<br />
<br />
You can also use {INSERTANS:SGQA} in this URL (since 1.82+).<br />
* {INSERTANS: SGQA} allows adding the response to a specific question in the survey to the final url. This can be useful for sending a response to an external script (ie an email address collected during the survey).<br />
<br />
'''Example'''<br />
<br />
"http://www.limesurvey.org/test.php?email={INSERTANS:1234X56X7}"<br />
<br />
===Expressions===<br />
<br />
You can also use any Expression Manager expression (since 1.92+).<br />
<br />
'''Example'''<br />
<br />
"http://www.limesurvey.org/test.php?gender={if(sex=='Male','M','F')}&name;={name}<br />
<br />
===Passthrough fields (LimeSurvey 2.x or later)===<br />
<br />
Starting with version 2.0 you can now define any additional parameters that should be passed to the end URl in the survey settings (Tab "Panel integration"). To use such a paramter in the end URL just insert the tag {PASSTHRU:<paramname>} where <paramname> is the name of your input parameter.<br />
<br />
Example:<br />
<br />
You defined in the Panel integration tab a parameter named 'foobar'. The survey is started with a link like<br />
<br />
http://localhost/limesurvey/index.php/survey/index/sid/12345/lang/eb?foobar=XYZ123<br />
<br />
where XYZ123 is the value you want to pass.<br />
<br />
A survey exit URL of "http://www.limesurvey.org/test.php?foobarout={PASSTHRU:foobar}" would then convert to "http://www.limesurvey.org/test.php?foobarout=XYZ123"<br />
<br />
===Passthrough fields (LimeSurvey 1.92 and older)===<br />
<br />
You can also use a 'passthrough' field name and data value in the end URL.<br />
<br />
In some instances you may want to pass a value to the survey at initialization, and then have that value passed through to an external script at the end (for example a marketing firms subsid).<br />
<br />
'''Example'''<br />
<br />
In this case you'd start the survey with the query url "index.php?sid=12345&passthru;=subsid&subsid;=9999".<br />
<br />
In your URL you would use {PASSTHRULABEL} and {PASSTHRUVALUE} to reuse these values at the end of the survey.<br />
<br />
A URL of "http://www.limesurvey.org/test.php?{PASSTHRULABEL}={PASSTHRUVALUE}" would then convert to "http://www.limesurvey.org/test.php?subsid=9999"<br />
<br />
===Places to use URL fields===<br />
<br />
URL fields can be used in the general survey exit URL (see [[Creating a new survey]] ), and in the URL setting for each individual quota (see [[Quotas]] ).</div>Adminhttps://manual.limesurvey.org/index.php?title=Central_participants_database_(User_panel)_Development&diff=3084Central participants database (User panel) Development2012-09-22T20:56:50Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
----<br />
<br />
=Database Schema=<br />
<br />
----<br />
<br />
==Central Storage==<br />
<br />
===lime_participants===<br />
<br />
The first table is the actual central table where all the participants&rsquo; entries are stored. The table is as follows<br />
<br />
{|<br />
|participant_id||first_name||last_name|| e_mail||blacklisted_global<br />
|-<br />
|4b3403665fea6||Carsten ||Schmitz||carsten.schmitz@example.com||N<br />
|-<br />
|4b1357665fea6||Jason||Cleeland||js@example.org||N<br />
|-<br />
|4dc14fa0db7f4||Thilabult||Lemer||thilabault.lemer@example.net||N<br />
|}<br />
<br />
{|<br />
|language|| owner_uid|| date_created||date_modified|| max_surveys<br />
|-<br />
|en|| 1|| 2007-11-04 01:00:01|| 2007-11-04 01:00:01||0<br />
|-<br />
|en|| 2|| 2007-11-04 01:00:01|| 2007-11-04 01:00:01||2<br />
|-<br />
|en|| 1|| 2007-11-04 01:00:01|| 2007-11-04 01:00:01||1<br />
|}<br />
<br />
The Fields in table are explained below:<br />
*participant_id : It is the primary key for the table and will be auto-generated.<br />
*first_name : It contains the first name of the participant.<br />
*last_name : It contains the last name of the participant.<br />
*e_mail : It contains the email id of participant.<br />
*language : It contains the language preference of the participant.<br />
*blacklisted_global : It is a field that will be updated if a participant hit a particular URL mentioned in the email sent to him. There will be two URL mentioned in the mail. One will allow the participant to blacklist himself globally from any survey from that server, or from a particular survey. When the user will blacklist himself from the server as a whole, he will be marked against the e-mail address in the above table , when it's survey specific, he will marked with the help of email and the survey_id in the tokens table. If for a particular participant, this field is set, the administrator would be not allowed to add that user to any of the survey's. If a new survey is set, then also administrator will not be allowed to add that particular participant. If the global setting for blacklisting is updated, then all the local tables will be updated accordingly.Once blocked the user will not be allowed to participate either. The user will have another set of URL's in case he/she wishes to unblock himself/herself.<br />
*owner_uid: It will contain the user id of the person who is adding the participant, this will be extracted based on who is logged in, in case the owner field is set to be editable then it can be changed.<br />
*date_created and date_modified are self-explanatory fields.<br />
*max_surveys:The max_locks field will contain a number which will indicate, the max number of surveys to which participant is to be locked for example if it contain 0, the participant is free to be added to any other survey, However if it values is 2, this means that the participant is locked to two surveys so after adding him to two surveys, he shouldn't be added to any third survey.<br />
<br />
The combination of email and owner_uid will be the composite key for this table.<br />
<br />
----<br />
<br />
==Locking Feature==<br />
<br />
In the lock feature there is one tables,lime_survey_info.The lime_participant_info table will contain the information regarding to which survey the participant is added.<br />
<br />
===lime_participant_links===<br />
<br />
The schema of the table is<br />
<br />
{|<br />
|participant_id||survey_id||token_id||date_created<br />
|-<br />
|4b3403665fea6||63273||1||2011-03-08 12:32<br />
|-<br />
|4b1357665fea6||76581||1||2011-03-08 12:32<br />
|}<br />
<br />
This table will be used for two purposes as far as I can see for now,<br />
<br />
1) It will give the clear cut info as to which survey a particular participant is added to.<br />
<br />
2) When a user will try to share a participant, but in the settings it is set that he can't be added to more than two surveys, then a SQL COUNT query will be run for that participant and if that number is equal to the max_locks field an error message will sprung up saying, these participants can't be added to the survey.<br />
<br />
----<br />
<br />
==Token Table==<br />
<br />
===lime_tokens_xxxxxx===<br />
<br />
{|<br />
|participant_id||token||token_id||e_mail_status ||sent||reminder_sent<br />
|-<br />
|4b3403665fea6||afir2ski6wrcyny||1||OK||2011-03-08 12:32||N<br />
|}<br />
<br />
{|<br />
|reminder_count||completed||uses_left||valid_from||valid_until||blacklisted ||att_id<br />
|-<br />
|0|| 2011-03-08 12:32||0||23.03.2011 00:00 ||26.03.2011 00:00|| N||2<br />
|}<br />
<br />
Some minor changes have been done to this table to make it work with the other Central Database System.One of then is that the user information will not be stored in this table, but in the Central Table and will be linked using the participant_id.Also, a blacklisted field is also added that will contain the survey and participant specific blacklist settings.<br />
<br />
The Fields in table are explained below:<br />
*participant_id : This is the key for linking participants in this system.<br />
*token,token_id,e_mail_status,sent,reminder_sent,reminder_count,completed,uses_left,valid_from,valid_until: Same as in the previous system.<br />
*blacklisted: This is the survey specific blacklist field which will contain as to whether the participant has chosen to blacklist himself from this survey or not.<br />
*att_id : This field will contain a id of the attribute that is added into the system. A combination of att_id and participant_id will extract information from lime_participant_attributes table<br />
<br />
----<br />
<br />
==Attribute Control==<br />
<br />
This feature will be using three tables namely :<br />
<br />
1) lime_participant_attributes - Store the actual attribute information<br />
<br />
2) lime_participant_attribute_info - Store the UI information related to the attribute<br />
<br />
3) lime_participant_attribute_values - Store the possible values of the attribute<br />
<br />
===lime_participant_attributes===<br />
<br />
This is the table that will hold the actual values<br />
<br />
{|<br />
| participant_id|| attribute_id|| value|| id<br />
|-<br />
|4b3403665fea6|| 1|| Male|| 1<br />
|-<br />
|4b1357665fea6|| 1|| Male|| 2<br />
|}<br />
<br />
The fields of the table are explained below<br />
* participant_id : Again this is the unique id for the participants.<br />
* attribute_id : Each attribute in the attribute control will have a unique id similar to participant_id and a combination of participant_id and attribute_id will tell give the value of the attribute.<br />
* value : This field contain the actual value of the attribute, in case of textbox, It will contain the value contained in the text box.<br />
<br />
===lime_participant_attribute_info===<br />
<br />
This is the table that will hold the UI related information for attribute control<br />
<br />
{|<br />
| attrbute_id|| attribute_name|| attribute_type|| visible<br />
|-<br />
|1|| sex|| DD|| 1<br />
|}<br />
*attribute_id : The unique id give to each additional attribute.<br />
*attribute_name : This is the label that will be shown in the UI created for additional attribute.<br />
*attribute_type : This field contains the type of UI that needs to be created for this particular attribute<br />
*visible : This field will tell whether that attribute is to be used for the current set of participants or not<br />
<br />
===lime_participant_attribute_values===<br />
<br />
This is the table that will hold all the possible values for the particular attribute. The scehma of this table is<br />
<br />
{|<br />
| attribute_id|| value_id|| p_value<br />
|-<br />
| 1|| 1|| male<br />
|-<br />
| 1|| 2|| male<br />
|-<br />
|2|| 1|| <br />
|}<br />
<br />
The above example will make it more clear, but keep in mind that in case of a text box and date-picker, this field will be empty because any value can be entered in the system. For multi-line text input we will use a different value_id for each text box, for example address.<br />
<br />
----<br />
<br />
==Relationship==<br />
<br />
The relationship between the tables explained above is shown below.<br />
<br />
[[File:Relationsv4.png]]}<br />
<br />
----<br />
<br />
=User Interface=<br />
<br />
In the user interface aspect, the entire participant control that we used to have` in the token menu will now be available globally, but the token will be generated in the survey specific table only. The link for adding participants to the limesurvey installation will be on the front screen.<br />
<br />
[[File:Screen_shot_1.png]]<br />
<br />
When clicked on the Add Participants the following screen will come up<br />
<br />
----<br />
<br />
==Add Participant==<br />
<br />
[[File:Screen_shot_2.jpg]]<br />
<br />
Explanation of the above screenshot is given below:<br />
*ID : This is the autogenerated ID for each participant.<br />
*First Name, Last Name, Email, Language : These fields are self-explanatory.<br />
*Blacklisted: This is the local blacklisted field I explained earlier.<br />
*Locked_with_survey : This is the field that will not allow the participant to be added to any other survey. The "add" link will allow the user to add more than one survey to be locked to. It will open a modal-dialog box. The unlocking will be possible only at the survey level, i.e. the participant could only be unlocked if the user has the access to that particular survey to which the participant is locked.<br />
*Owner: This will be a fixed field by default that will contain the owner&rsquo;s id of the owner who is adding that particular participant to the central database. However this field will only be editable if set in the user control options<br />
*Max Surveys: This field will tell set the number of surveys a particular participant can be added to, for example is the user set it to 0, then the participant can be added to as many as surveys the user wants.If it it set 2 it can be added to the maximum two surveys.<br />
*Sex: This is the additional attribute we set under attribute_control.<br />
<br />
----<br />
<br />
==Import from CSV/LDAP==<br />
<br />
[[File:Screen_shot_3.jpg]]<br />
<br />
The CSV file upload feature is similar to what we used to do under tokens, however with some differences, the differences are mentioned below:<br />
*The language is no longer an optional field, but under the mandatory fields.<br />
*Owner is the fields have the id of the user that is currently logged in and the participants will be added under this field. This field will only be editable if the corresponding option is set in user control.<br />
*Optional attributes are the survey specific fields, and will be added to the survey specified in the above field, along with the participants, this option will be enabled only if the participants are added to the survey table automatically based on the id they are adding.<br />
*locked_with_survey field will have another option, besides the survey. It will be "free" that will allow the participant to be added to any survey. This will be the default value.<br />
*Max Surveys: This field will tell set the number of surveys a particular participant can be added to, for example is the user set it to 0, then the participant can be added to as many as surveys the user wants.If it it set 2 it can be added to the maximum two surveys.<br />
*The LDAP import will work in the same way, and with the same options, I mean the locked to survey, group_id and optional fields.<br />
<br />
----<br />
<br />
==Display Participants==<br />
<br />
[[File:Screen_shot_4.png]]<br />
<br />
Again this screen is only for editing/deleting the participant entries. It is global, and hence nothing survey specific will be found here. If the user clicks on the edit button, then the screen similar to add participant screen will show up, showing the details of the participant, which can be edited there.<br />
<br />
----<br />
<br />
==Blacklist Control==<br />
<br />
[[File:Screen_shot_5.png]]<br />
<br />
All the settings under this page will be stored under the settings_global table. Each of setting is<br />
<br />
explained below<br />
*The first option if set, will mark participant blacklist for all the survey's that are present in the system currently.<br />
*The second option will mark the participant as blacklist for any new survey that is added to the system, if the global field is set.<br />
*The third option will not allow the participant to be even added to the survey if the global blacklist field is set.<br />
*The fourth option will not show the blacklisted participant in the display participant.<br />
*In the fifth option, if the participant blacklist himself/herself globally , he will be deleted from the database .<br />
*The sixth option will decide that whether the URL to blacklist the user will be sent in the invitation.<br />
<br />
----<br />
<br />
==User Control==<br />
<br />
[[File:Screen_shot_6.png]]<br />
<br />
This is the user control, by user I mean the administrator. The three options under this field will be stored in the global table. The options are explained below.<br />
*The first field if enabled or disable this feature completely.<br />
*The second option if set to yes, when the user uploads a csv file or adding a new participant indivisually. *The new participant will be added to the survey of which the user is the owner.<br />
*The third option will set if the owner field is editable or not.<br />
<br />
----<br />
<br />
==Attribute Control==<br />
<br />
[[File:Screen_shot_7.png]]<br />
<br />
This is a new feature I am planning to implement, in this feature I will be allowing the administrator to add a new attribute with a proper UI, rather than just a textbox. The value related to this feature will be stored in attribute_info_table. These are the UI components that I am planning to add for additional attribute<br />
*Drop Down<br />
*Check Box<br />
*Radio<br />
*jQuery DatePicker<br />
*Text Box<br />
<br />
In case of Drop Down,Check Box, Radio the "Add More" will allow the administrator to add more possible values. More advanced UI's can be added once the basic feature is ready.<br />
<br />
----<br />
<br />
==Add to survey==<br />
<br />
[[File:Screen_shot_8.png]]<br />
<br />
The UI is explained below:<br />
*The add group is basically the user id whose participants are to be added to the survey after going through three checks, locked or not, blacklisted or not,has permission or not.<br />
*Lock this group to the survey will lock this particular group to the survey, and will not allow any other<br />
*This field will give all the global attributes that are present with the participants and only relevant attributes are added to the survey<br />
*Allow blacklisted enteries to be added to the survey, if set, otherwise will not allow the blacklist enteries to be added. The main reason for this option is that in case the participant un-blacklist himself from the server, then he/she can participate in that survey. A automatic module can be made that will check for any participant that unblocked himself/herself and can be send invitation after that. I know this feature is not in the top of the list, but with many participants, will be worth it.<br />
<br />
----<br />
<br />
==Sign Up Control==<br />
<br />
[[File:Screen_shot_10.png]]<br />
<br />
This feature will allow the participant to just go on to the home screen, and sign him up. He will be verified against his e-mail. On the front screen there will be a sign up button, that when clicked will open a pop-up asking for the e-mail id. When entered an invitation mail will be sent to him asking for the rest of details. This way we will be sure that we have a valid participant. Once those details are entered, automatically a token will be generated for that user, and he will be redirected to the survey. Alternatively, if the administrator wants, he/she can disable this feature completey, or allow the participating to only participate only when he/she sends the invitation.<br />
<br />
The mock - up of the sign up control is as shown :<br />
<br />
[[File:Screen_shot_9.png]]<br />
<br />
This feature again will have a survey specific settings, which will be stored in the survey's table. The local settings if set ,will override the global settings.<br />
<br />
----<br />
<br />
=CodeIgniter Specific Details=<br />
<br />
Since we are porting LimeSurvey to codeIgniter and any new projects have to be developed according to the CodeIgniter framework. I will try and give the basic outline of the approach I will be following.<br />
<br />
==Controller==<br />
<br />
I as of now, will be adding a single controller for the whole project, and it will be named 'centralDB'. The functions under this controller will be of the form<br />
*addParticipant //Add Participant<br />
*import //Import CSV/LDAP<br />
*displayparticipant //Display the jqgrid<br />
*blcontrol //Blacklist Control<br />
*usercontrol //User Control<br />
*signupcontrol //signupcontrol<br />
<br />
All the controller's listed above will be used for only showing of the view, retrieving previous settings and storing new settings, and for import and displayparticipant functions, it will have major functionality as display participant will also be used for adding the participants to the database, and import will also be providing functionality and not just storing data.<br />
<br />
For Storing data we have functions such as<br />
*storeParticipant<br />
*storeBL<br />
*storeUser<br />
*storeSignup<br />
<br />
These methods will get the post variables from the view and storing it in the database using appropriate model. For displayParticipant and all, there will other functions such as addtosurvey.<br />
<br />
==Models==<br />
<br />
For the models we have<br />
*participants_model<br />
*attribute_model<br />
*token_model(older token table)<br />
*survey_links_model<br />
<br />
I think it's best to compress the three attributes table to one model. Rest of the models are pretty much simple, get and store records.This is the basic structure, what we need to concentrate on is what to do when we are joining tables and getting data from multiple tables.<br />
<br />
==View==<br />
<br />
For the view, I have decided to use the following views. These are<br />
*headercpdb<br />
*addparticipant_view<br />
*displayparticipant_view<br />
*importparticipant_view<br />
*blcontrol_view<br />
*usercontrol_view<br />
*signupcontrol_view<br />
<br />
----<br />
<br />
=Scenario Testing=<br />
<br />
The main purpose of making this proposal on the wiki page is to get the review of the community and suggest us some scenario's where you can see the system failing, so that we can make the changes before it's too late. If you see any shortcomings or any other feedback, please leave a comment and please try and answer these questions<br />
<br />
1) What do you want to do?<br />
<br />
2) Where will the system fail?<br />
<br />
3) Feature Suggestion?<br />
<br />
----<br />
<br />
=Action Plan :)=<br />
<br />
I received my date-sheet and I have exams from 24th of May to 11th of June, So I will be tweaking the action plan a bit in order to get things right :).<br />
<br />
Plan for June<br />
<br />
{|<br />
| Date||What to do ?<br />
|-<br />
|<span style='color:#999'>4-7th ||Talk to Shubham and Diogo during this period, as I think by that time they will be officially clear as to how they will be doing the porting, also, I will decide as to how I should go about it.If everything goes as planned I should be able to complete the add participant UI and the addition of data to the central database(without any features) along with the required validations.</span><br />
|-<br />
|12-15th ||Will add the user_id info(based on the logged in user), along with the datestamp in the central database. Also will be creating the owner control as mentioned in the original proposal along with the required functionality with it. Like automatically adding participants to the token table or not, or editable owner's field or not .<br />
|-<br />
|16-22th June ||Addition and attribute control<br />
|-<br />
|23-28th June ||CSV and LDAP upload with attribute support<br />
|-<br />
|29-10th July ||Add to token table and vice versa with editing logic and max surveys feature<br />
|-<br />
|11-15th July ||Sending email with blacklist control and the required logic<br />
|-<br />
|(12 July - 16 July) || (Midterm Break)<br />
|-<br />
|16-31th July ||sign up addition for participants along with the multiligual attribute support for token system<br />
|-<br />
|1-15th August ||features from if we have time list<br />
|-<br />
|16-22th August ||cleaning up code, video tutorials, testing and bug fixing<br />
|-<br />
|23-31th August ||worst case scenario or else party time ;) <br />
|}<br />
<br />
This is the action plan for the first milestone according to my original proposal, I will create the further action plan once I am done with this target. I will also be updating a weekly progress report here as well as a mail to the administration team of LimeSurvey, about the discussions we have during the week. The actual coding and progress report will start from 12th of June.<br />
<br />
----<br />
<br />
=Weekly Meetings=<br />
<br />
This will contain the logs of the weekly meetings we have:<br />
<br />
12th May 2011 -> http://docs.limesurvey.org/CPDB+Meeting+Log+12-05-2011<br />
<br />
Logs of meeting from the 19th of May will be available at the link below<br />
<br />
http://docs.limesurvey.org/CPDB+Meeting+Logs<br />
<br />
----<br />
<br />
=Scenarios=<br />
<br />
'''Use the following section to describe (as succinctly and clearly as possible) various different scenarios in which the Central Participants Database may be used. These scenarios can assist in clarifying User Interface issues and in initial database design'''<br />
<br />
==Privacy Scenarios==<br />
<br />
'''Single Company Installation'''<br />
<br />
In this scenario, LimeSurvey is installed by a single company for use by that company's staff. The right to view and access data relating to participants is shared by all staff and there is no need to fence data off between users.<br />
<br />
'''Multi User Installation'''<br />
<br />
LimeSurvey is installed at a University and different students or academics are using it to run surveys. Their ethics rules require that they keep their participant data to themselves, so other users cannot see it.<br />
<br />
==Survey Invitation Scenarios==<br />
<br />
'''Pre-existing List, Add it to Participants Database'''<br />
<br />
A user has a list of 500 people in their personal spreadsheet/database that they want to invite to participate in their survey. They create a survey, create a tokens table for it and then import the list (as per existing system). They want to make sure that their list is on the participants database for future use, and that they will be able to select these 500 people easily later on for future surveys.<br />
<br />
'''Pre-existing List, Don't add it to the participants database'''<br />
<br />
A user has a list of 300 people in their personal spreadsheet/database that they want to invite to participate in a survey. They create a survey, create a tokens table table for it and then import the list (as per exising system). They '''don't''' want their list to be added to the central participants database.<br />
<br />
'''Generate attributes for the participants database from answers to a survey'''<br />
<br />
A user has run a survey which asked whether participants live in a capitol city, a major regional centre or a minor regional centre. He wants to transfer the answers from that survey to the participants attributes in the central participants table. He also wants to transfer the annual income results from a question. He already has this information for some of the participants, but wants to update it with the information collected in this survey.<br />
<br />
'''Generate tokens from participants list based on earlier survey'''<br />
<br />
A user creates a new survey and wants to invite all the participants from an earlier survey to this new survey. He needs to be able to select all those who participated in the earlier survey, preferably just those who actually completed it. He might want to add those who didn't complete the earlier survey later on.<br />
<br />
'''Generate tokens from participants list based on their survey history'''<br />
<br />
A user creates a new survey and wants to invite only participants that have not taken part in a survey for the last 2 months. He might also want to exclude all that have participated in a survey with a similar topic in the last 6 months. User will need to view a search form where he can:<br />
<br />
1) Select search criteria from values such as "survey name", "survey completed date"<br />
<br />
2) Fill out matching values (ie: text string for survey name, dates for completion dates)<br />
<br />
3) Make the system search through all participants for matches to the search criteria<br />
<br />
4) See a list of all the matching participants (and the relevant information)<br />
<br />
5) Be able to do something with the resulting list (most likely copy them to a token table)<br />
<br />
'''Generate tokens from participants list based on other attribute'''<br />
<br />
A user creates a new survey and wants to invite all the participants he owns who have an income greater than $50,000 per annum and live in a capital city. User will need to be able to fill out a search form where he is able to:<br />
<br />
1) Select the attribute or attributes to use in his search<br />
<br />
2) Enter a search value/criteria for the search<br />
<br />
3) Make the system search through all the participants he has rights to view, for matches to his search criteria<br />
<br />
4) See a list of all the matching participants (and probably the relevant attribute data)<br />
<br />
5) Do stuff with the list (most likely, copy those participants to a token table for a survey)<br />
<br />
'''Taking care of the panel health'''<br />
<br />
The manager of the central participant list wants to check on the panel health. He wants to know if all participants have been invited to surveys in a certain period of time, how often they have been invited, the ration between invitation and participation, etc. Ideally there would be a system to attribute "points" to each survey and those points would be added to each participant (something like the total km count for a car). Ideally there would also be another field with points that can be reset (e.g. like the day km in a car). This would help to remunerate participants for their participations, without having to "pay" them for every single survey.<br />
<br />
After running the survey for 5 days he realises he needs more, so he then wants to add people who live in major regional centres.<br />
<br />
==Other scenario types?==</div>Adminhttps://manual.limesurvey.org/index.php?title=Installation_FAQ&diff=1658Installation FAQ2012-09-21T08:00:29Z<p>Admin: </p>
<hr />
<div><br />
Contents:{maketoc maxdepth=2}<br />
<br />
=During Installation=<br />
<br />
==How can I create a database and a user in mysql with command line access?==<br />
<br />
You have to enter the below commands in your mysql.<br />
<br />
create database '''<your_database_name>''';<br />
<br />
create user '''<your_database_username>''';<br />
<br />
create user '''<your_database_username>'''@localhost;<br />
<br />
set password for '''<your_database_username>''' = PASSWORD(''''<your_database_password>'''');<br />
<br />
set password for '''<your_database_username>'''@localhost = PASSWORD(''''<your_database_password>'''');<br />
<br />
grant all on '''<your_database_name>'''.* to ''''<your_database_username>'''';<br />
<br />
grant all on '''<your_database_name>'''.* to ''''<your_database_username>''''@'localhost';<br />
<br />
You have to replace '''<your_database_name>''', '''<your_database_username>''' and '''<your_database_password>''' in above commands with according values.<br />
<br />
==What if I can't create a database through a script?==<br />
<br />
Normally, the script creates a new database, and then the table structure. However if your server/ISP doesn't give you admin rights to create a new database in MySQL, you will need to contact your server administrator to create the necessary database (or create it yourself). They should create a blank database for you that gives you the appropriate access rights (ie: read/write/create). Enter the name of this database, and your user name and password in the config.php script, and run the /admin/install/index.php script. The script will then create the required tables in the database.<br />
<br />
==What is this mbstring (Multibyte String Functions) library?==<br />
<br />
The mbstring library is a PHP library to be able to convert char sets from one language to another. You need it if you want to run LimeSurvey. To check if it is already installed open the URL<br />
<br />
http://<your_server>/<your_limesurvey_directory>/admin/install/phpinfo.php<br />
<br />
from the web browser. A lot of information will be shown. Search for the string 'mbstring' under the '''Configuration''' section.<br />
<br />
If you find the mbstring section then all should be well and you can continue on with your LimeSurvey installation!<br />
<br />
'''If you don't find the mbstring section''' you might have a problem on your hands.<br />
<br />
There are three possible scenarios:<br />
*If it's your providers server: Ask your provider to activate that extension in PHP or how to activate it - if you have a good administration panel for your server you may be able to activate it yourself.<br />
*If it's your own '''Linux''' server: You may have to re-compile PHP and include the mbstring library. Ask the Linux experts how to do that. In most Linux versions today you can install it using your Linux packet manager.<br />
**If you are using a version of Linux that supports 'yum' (CentOS, RedHat, Fedora):<br />
### Use the terminal (as a super user) and type: '''yum install php-mbstring'''<br />
### Make sure to update /etc/php.ini to update and uncomment the various mbstring params<br />
### Make sure to restart apache after installing it: '''/etc/init.d/httpd restart'''<br />
*If it's your own '''Windows''' server: Search for php.ini on your system, open it with an editor and search for mbstring. Most probably the line that contains that string is commented out with a semicolon. Remove the semicolon, save and restart your web server.<br />
<br />
==When I am entering special chars (Chinese, Cyrillic, Greek, Arabic) into my survey, every character is shown as a question mark?==<br />
<br />
This happens if your database itself is not created to use an UTF-8 charset. This can happen when you have to create the database using a provider administration panel. You can fix this problem by executing the following SQL command on your database (using for example phpMyAdmin)<br />
<br />
ALTER DATABASE `<your_database_name>` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;<br />
<br />
Replace <your_database_name> with the name of your database. '''You need to do this before installing LimeSurvey.'''<br />
<br />
==Blank page when accessing the Install page==<br />
<br />
The problem is not with the LimeSurvey installation but with the PHP installation.<br />
*Verify you have the MySQL PHP module (php-mysql) installed.<br />
*Verify your PHP install is loading the PHP.ini file your are modifying and not parsing other PHP.INI files on your system.<br />
*Verify the location and permissions of the following setting in your PHP.ini<br />
<br />
<syntaxhighlight lang="c" enclose="div">upload_tmp_dir="/temp"<br />
<br />
session.save_path="/temp"</syntaxhighlight><br />
<br />
==Error messages because of a not existing ressources==<br />
<br />
Sometimes files are not uploaded correctly or were broken during upload. This leads to several different error messages. Most of them refer to a file or function within a file which can't be found.<br />
<br />
'''Solution:''' Re-upload all files using the binary mode of your FTP program.<br />
<br />
=After Database Creation=<br />
<br />
==Blank Page after Database Creation==<br />
<br />
===Symptoms===<br />
* LimeSurvey installed OK, and database was created, but instead of the admin page, you get an empty page<br />
* Web surver log shows "Fatal error: Call to a member function on a non-object in /path/to/limesurvey/admin/login_check.php on line 69"<br />
<br />
===Fix===<br />
<br />
This is probably an incorrect setting for $rooturl or $rootdir in config.php. In particular, config.php attempts to set $rootdir correctly by calling <nowiki>dirname('''FILE''')</nowiki> and while this usually works, it can be upset when LimeSurvey is installed in a user's home or public_html directory and the home directory is mounted over NFS. Try setting $rootdir manually, and in particular, while your shell or pwd command may show a path like "/disks/hostname/home/username/public_html/limesurvey", try using "/home/username/public_html/limesurvey".<br />
<br />
==When accessing admin page, the browser keeps running and will eventually fail to show it==<br />
<br />
===Symptoms===<br />
* LimeSurvey installed OK and database was created. But when you access the admin page, the browser keeps running and will eventually fail to show the page.<br />
* When you check the web server access log, its size has become so big (in some cases, more than 2 GB).<br />
* Inside the access log, you get this message filling the log.<br />
<br />
Warning: fread() [function.fread]: Length parameter must be greater than 0 in /limesurvey/classes/php-gettext/streams.php on line 120<br />
<br />
''Note:'' line number may be different depending on your LimeSurvey version.<br />
<br />
===Fix===<br />
<br />
This may be caused by the mbstring.func_overload setting. Check the setting in your php.ini and set as the following.<br />
<br />
mbstring.func_overload = 0<br />
<br />
''Note:'' This means no function overloading. See PHP manual for this setting: [http://us3.php.net/manual/en/mbstring.overload.php Function Overloading Feature]<br />
<br />
==When accessing admin page, the browser reports Fatal error: Call to a member function gT() on a non-object in login_check.php on line 76==<br />
<br />
===Symptoms===<br />
* LimeSurvey installed OK and database was created. But when rdirected to the admin page, the browser displayed the the listed error.<br />
* $rootdir and $rooturl are correctly set in config.php.<br />
* The disk path name for limesurvey installation directory includes one of the following characters: ()+<br />
<br />
''Note:'' Other characters may also induce the same behaviour<br />
<br />
===Fix===<br />
<br />
Move / rename the limesurvey installation directory so that pathname does not include either the '''(''' or ''')''' characters<br />
<br />
=After Login=<br />
<br />
==Any action in admin page will return you to login screen==<br />
<br />
This may happen for the following two main reasons :<br />
*PHP sessions problems<br />
*UTF8 encoding problems<br />
*IE (6,7 and 8) problems<br />
<br />
<u>PHP Sessions :</u><br />
# Update upload_tmp_dir and session.save_path in php.ini<br />
# Create the configured session and upload directories<br />
# IIS: Assigned permission to create and modify to IIS guest user account<br />
# Apache: Make sure your webserver has permissions to write into the configured directory<br />
# Check if the variable "session.use_cookies" in php.ini is set to 1.<br />
# Check the variable "session.auto_start" in php.ini. If it is set to 1, change it to 0.<br />
<br />
<u>UTF8 Encoding : </u><br />
<br />
If you edit any file (most probably config.php) do not save it as UTF8 to support special language chars! Always save .php files as true ANSI/ISO format. Starting with 1.87 you can set the most important settings inside the application using the 'Global settings' dialog (like site name, administrator name, etc.).<br />
<br />
<u>IE Cookies :</u><br />
<br />
IE (6,7 and 8) does not support underscore "_" in the server hostname. If it is the case, the cookies are not managed and cookie(s) is(are) not set. So change the server hostname under apache or IIS.<br />
<br />
==LimeSurvey and suhosin ("Session has expired")==<br />
<br />
You might, at one point, get a message like :<br />
<br />
<syntaxhighlight lang="php" enclose="div">ERROR<br />
<br />
We are sorry but your session has expired.<br />
<br />
Either you have been inactive for too long, you have cookies disabled for your browser, or there were problems with your connection.</syntaxhighlight><br />
<br />
And if you have Suhosin activated on your server, that's might be the reason why you get this in the middle of a survey.<br />
<br />
NB : when your survey is not active, the behaviour might be different, you could be redirected in the middle of a survey to the public list of surveys. The solution is the same.<br />
<br />
Suhosin is an advanced protection system for PHP installations. Suhosin default configuration can make trouble to LimeSurvey installation.<br />
<br />
First think to test with suhosin log, set suhosin.log.sapi = 511 and suhosin.simulation = on according with [http://www.hardened-php.net/suhosin/configuration.html suhosin documentation].<br />
<br />
The configuration file is usually located in /etc/php5/apache2/conf.d/suhosin.ini but to be sure you can check your phpinfo (Limesurvey administration > Global Settings > Button Show phpinfo > Line : "Additional .ini files parsed") to get the correct path.<br />
<br />
Don't forget to restart your Apache server for the parameters to be taken into account (service apache2 restart).<br />
<br />
When the simulation is on, Suhosin is not blocking anything and the errors are reported into the logs (usually in your syslog : /var/log/syslog). If you appear to get error messages such as "ALERT-SIMULATION - configured POST variable limit exceeded" that's Suhosin alerting...<br />
<br />
This configuration seems to work well with Limesurvey:<br />
<br />
<syntaxhighlight lang="php" enclose="div">suhosin.memory_limit = 128<br />
<br />
suhosin.post.max_value_length = 5000000<br />
<br />
suhosin.post.max_vars = 5000<br />
<br />
suhosin.request.max_value_length = 5000000<br />
<br />
suhosin.request.max_vars = 5000</syntaxhighlight><br />
<br />
With those parameters, you should be able to put the suhosin.simulation back at the "off" value (so that the serveur is protected and limesurvey still works).<br />
<br />
The default values of suhosin are not working well with limesurvey. If you really want to secure your serveur tightly you might want to use the simulation mode to tune the setting and find the good values between 1000 and 5000 for the vars and 1000000 and 5000000 for the value_lenghts.<br />
<br />
==LimeSurvey and suhosin ("quick translate trouble")==<br />
<br />
You can have some problem with the quick translate module when you are on OpenBSD 5.1 with php-5.3.10.<br />
<br />
The symptom is : modification via "Quick translate --> options answer" are not update<br />
<br />
You must downgrade your php version to php-5.2.17p8 and use the suhosin tweak proposed above.<br />
<br />
==I can't change the language!==<br />
<br />
No matter what language you choose, the interface (admin und user) always is in English language. Normally this is caused by a bug in your PHP version. There is no other fix for this than updating your PHP version.<br />
<br />
==Some common errors (IIS focused)==<br />
<br />
===Index.php won't open===<br />
<br />
Possible cause: This might happen if you haven't installed necessary extensions<br />
* You need to install Multi-byte string, and MSSQL (or MySQL) extensions<br />
<br />
Possible cause: ISAPI filter not configured<br />
* In IIS, for the website (you could do it at the directory level) you must configure it to use php5isapi.dll<br />
<br />
===Index.php won't open and "php.exe -i" gives error messages about missing .dll's===<br />
<br />
This may happen if you install too many extensions<br />
* If you install all PHP extensions, PHP will fail because not all dependencies were met (e.g. oracle package needs oracle dll's)<br />
* Install only the extensions that you need<br />
* To test, try running php.exe -i from the command line<br />
<br />
===Message stating database was missing===<br />
<br />
This may happen if you navigate to wrong url<br />
* Make sure you go to limesurvey/admin/install/index.php instead of limesurvey/index.php !<br />
<br />
===Above fixes do not solve the problem===<br />
<br />
This may happen if you have not restarted IIS<br />
* Restart IIS<br />
<br />
Things that were easy to forget:<br />
* .php needs to be associated to php5isapi.dll filter (It did this for me automagically)<br />
* limesurvey/tmp directory needs writer permission for survey uploads<br />
* updating doc_root in php.ini and $rootdir in config.php<br />
<br />
===Missing files ("No such file or directory")===<br />
<br />
When uploading LimeSurvey to your server it might happen that the connection is interrupted so that some files are not transferred or not transferred completely. Depending on the files you can receive error message at different part of LimeSurvey usage. Normally missing files throw errors like<br />
<br />
<div class="simplebox"><br />
<br />
"Warning: require_once(/path/to/your/limesurvey/installation/filename) [function.require-once]: failed to open stream: No such file or directory in /path/to/your/limesurvey/installation/filename on line 12345)" OR<br />
<br />
"Fatal error: require_once() [function.require]: Failed opening required 'require_once(/path/to/your/limesurvey/installation/filename)' (include_path='.:/x/y/z) in /path/to/your/limesurvey/installation/filename on line 12345"<br />
<br />
</div><br />
<br />
'''Solution'''<br />
<br />
1. Delete all uploaded files.<br />
<br />
2. Re-upload the files.<br />
<br />
(3. If necessary: Re-install by browsing to /limesurveyfolder/admin/install)<br />
<br />
==Not able to add or edit subquestions/answers after upgrade==<br />
<br />
If you're not capable of editing or adding a question, ask youre host provider to change the mod_security setting of the domain name. See the forum thread [http://www.limesurvey.org/en/support/forums/1-installation-a-update-issues/46435-not-able-to-add-or-edit-questions-on-new-190-?limit=10 Not Able to Add or Edit Questions on new 1.90] for more info.<br />
<br />
==Fancy URLs by removing index.php from the URL path==<br />
<br />
If you want to use fancy URLs and so not have /index.php in every URL please edit /application/config/config.php and change<br />
<br />
<syntaxhighlight lang="php" enclose="div">'showScriptName' => true,</syntaxhighlight><br />
<br />
to<br />
<br />
<syntaxhighlight lang="php" enclose="div">'showScriptName' => false,</syntaxhighlight><br />
<br />
For this to work properly you must use an Apache webserver with a properly installed mod_rewrite module.</div>Adminhttps://manual.limesurvey.org/index.php?title=Installation_-_LimeSurvey_CE&diff=1582Installation - LimeSurvey CE2012-09-20T11:09:43Z<p>Admin: </p>
<hr />
<div><br />
<div style="float:right;"><div class="simplebox">Additional pages:{toc}</div></div> {maketoc title="On this page:"}<br />
<br />
<div class="simplebox"> Note: These installation instructions are for version 2.0 or later. Older instructions for 1.92 can be found here [[Installation Version 1.92 or older|here]] </div><br />
<br />
=1. Make sure you can use LimeSurvey on your website=<br />
<br />
Make sure your server meets the following additional requirements. Most of these requirements will also be checked during the installation.<br />
<br />
Required:<br />
* Minimum 80 MB disk space<br />
* MySQL 4.1.0 or later '''OR''' Microsoft SQL Server 2005 or later '''OR''' Postgres 8.1 or later<br />
* PHP 5.1.2 or later with the following modules/libraries enabled:<br />
** mbstring (Multibyte String Functions) extension library (see also [http://docs.limesurvey.org/tiki-index.php?page=Installation+FAQ#What_is_this_mbstring_Multibyte_String_Functions_library_ Installation FAQ])<br />
** PDO database driver for MySQL (pdo_mysql or pdo_mysqli) or Postgres (pdo_pgsql) or MSSQL (pdo_sqlsrv)<br />
<br />
<div class="simplebox"> Please note that LimeSurvey 2.x uses different database drivers than 1.x . If you get a message not No DBO driver was found during the installation you will have to contact your webspace provider and ask them to activate one of the aforementioned database driver libraries. </div><br />
<br />
Optional PHP Extensions:<br />
* '''GD-Library''' '''with FreeType support''' installed is needed for captchas or nice charts in statistics - see [http://de3.php.net/manual/en/image.setup.php PHP GD-Library Extension documentation]<br />
* '''IMAP''' (pretty standard) is needed for the [[Email bounce tracking system]] - see [http://www.php.net/manual/en/imap.setup.php PHP IMAP Extension documentation]<br />
* '''LDAP''' installed is needed to import tokens using LDAP - see [http://de.php.net/manual/en/ldap.installation.php PHP LDAP Documentation]<br />
* '''Zip''' (pretty standard) for template upload and import resources Zip archives - see [http://www.php.net/manual/en/zip.setup.php PHP Zip Extension documentation]<br />
* '''Zlib''' (pretty standard) is needed for the [[ComfortUpdate]] - see [http://www.php.net/manual/en/zlib.setup.php PHP Zlib Extension documentation]<br />
<br />
In most cases your webspace provider or system administrator will be able to help you out on these optional components.<br />
<br />
If you want to try LimeSurvey on your local machine we recommend [http://www.apachefriends.org/en/xampp.html XAMPP] which is an easy to install software package containing a complete web server with Apache, MySQL, PHP and Perl. LimeSurvey will run on XAMPP with no configuration needed.<br />
<br />
If you want to run Microsoft's IIS server take a look at "[[Installation of LimeSurvey on a Windows XP machine]]" and "[[Installation on XP with IIS]]".<br />
<br />
==1.1 Hosting for LimeSurvey==<br />
<br />
LimeSurvey should work with most hosting companies which provide PHP and MYSQL. If you want a ready-installed version of LimeSurvey consider using LimeService, else check out our [[LimeSurvey-compatible hosting companies|list of LimeSurvey-compatible hosting companies]].<br />
<br />
=2. Download the LimeSurvey package=<br />
<br />
[http://www.limesurvey.org/en/download Download] the latest stable LimeSurvey zip package (there are also gzip, bz2 and 7zip packages available for your convenience) and save it to your local disk.<br />
<br />
=3. Unpack the LimeSurvey package=<br />
<br />
Uncompress the zip file into a dedicated directory/folder using your preferred compression software. When you uncompress the file make sure that you uncompress the directory structure with the files (this is default behavior for most compression programs). The path name for the installation directory should not include '''(''' or ''')''' characters, but may include the '''space''' character<br />
<br />
=4. Collect information about your server=<br />
<br />
You will need to know the following things to install LimeSurvey on your web server correctly:<br />
*Your intended website URL where your scripts will reside (e.g: ''http://my.domain.com/limesurvey'')<br />
*The physical disk location on your server where your scripts will reside (ie: ''/home/usr/htdocs/limesurvey'')<br />
*The IP/net location of your database server (ie: ''localhost'')<br />
*If your database server uses a non-standard port find out which port it is.<br />
*Your username and password for your database server<br />
*With most providers you can't let the script create the database but have to do it yourself. If you are using such a provider please create a database (for example ''limesurvey'') yourself.<br />
<br />
=5. Upload the files to your web server=<br />
<br />
Using your FTP program, connect to your web server and create a directory to store your scripts. Then upload the files using the directory structure they are in. Make sure you '''upload the files in binary mode''' (check the settings of your FTP program). Please note that uploading in ASCII mode can lead to uncommon errors (e.g. 'class not found' error during installation), also images may not be uploaded correctly.<br />
<br />
=7. Set Directory permissions=<br />
<br />
For the script to work properly it needs certain access to some directories - this applies especially to Linux/*nix systems.<br />
*The '''"/limesurvey/tmp"''' directory and all its subdiretories are used for imports & uploads and should be set to ''Read & Write'' for your webserver.<br />
*The '''"/limesurvey/upload/"''' directory and all its subdirectories must also have ''Read & Write'' for your webserver in order to enable picture and media files upload.<br />
*The other directories can be set to ''Read Only'' or in Linux/Unix. You may wish to set the permissions on each file within the /limesurvey/admin directory to ''Read Only''.<br />
<br />
<div class="simplebox">[[File:help.png]] '''Hint:''' If you are using Linux then depending on your webserver configuration you will have to chmod the rights on the writable folders to 755 or 777. Try 755 first - if it does not work 'upgrade' to 777.</div><br />
<br />
=8. Run the installation script=<br />
<br />
'''Go to "http://your.domain.com/limesurvey/admin"'''. If you configured everything correctly the LimeSurvey installer should be starting - just follow the instructions. You will be asked if to create the database and/or create the tables inside the database. Limesurvey then creates the needed tables in the database.<br />
<br />
=9. Connect to the administration script for the first time=<br />
<br />
After the installer has finished you are done! Open your browser and enter the URL of your admin.php script. Assuming you used LimeSurvey as the directory name to store the files in, this will be something like "http://your.domain.com/limesurvey/admin/admin.php".<br />
<br />
You should get a login screen. The default login credentials (if not changed during in the installation) are<br />
<br />
<div class="simplebox"> User: admin<br />
<br />
Password: password<br />
<br />
</div><br />
<br />
You will be prompted to change the default password after you logged in. Have fun!<br />
<br />
=10. What if I have problems...=<br />
<br />
Like all computer programs, most of the time things will work just like the instructions say, but sometimes they just won't. There are too many possible reasons for things not going according to plan to describe here. If you have trouble, first check out the [[Installation FAQ]]. If you don't find your answer there please post your problem and any error messages in the [http://www.limesurvey.org/en/forum LimeSurvey forums] on limesurvey.org or join the [irc://irc.freenode.net/limesurvey|LimeSurvey IRC channel]:<br />
<br />
<div class="simplebox"><center>'''[http://www.limesurvey.org/en/community-services/live-chat Direct link to the official LimeSurvey IRC Channel]'''</center></div></div>Adminhttps://manual.limesurvey.org/index.php?title=Upgrading_from_a_previous_version&diff=3566Upgrading from a previous version2012-09-20T10:57:14Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Before you start...=<br />
<br />
<span style='color:#FF0000'>... read this because it is very important: '''Always backup the files and the database of your current installation!!'''</span><br />
<br />
You can do this using a database adminstration tool like [http://www.phpmyadmin.net phpMyAdmin] etc. and a file manager! If you don't know how to do this you should better not proceed but ask someone who knows or use the [[ComfortUpdate]] instead.<br />
<br />
=The quick way (for minor version changes)=<br />
<br />
You can use this instruction if you are doing a minor upgrade (for example from 2.00 to 2.01)<br />
*Backup your files and database (did we already mention that?)<br />
*Delete all the old files/directory except for<br />
**/application/config/config.php<br />
**/upload directory<br />
*Copy the new files from the new LimeSurvey package to the existing location.<br />
*'''After the upgrade: Clear your browser cache and cookies!'''<br />
<br />
=The thorough way (for big version jumps)=<br />
<br />
Unfortunately there are a couple of things to consider, so please scan the following instruction closely.<br />
<br />
==Upgrading from version 1.50 or later to any later 2.xx version==<br />
#[http://www.limesurvey.org/download Download] the latest version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. For example in Linux tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory.<br />
### Using phpMyAdmin or similar to export all tables; or use the according '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file, modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Open http://<yourdomain>/<yourlimesurveydir>/admin in your browser and follow the instructions (you can use the old config.php as reference). The existing database will be atuomatically detected and , if necessary, upgraded after confirmation.<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Check if any special manual checks apply as listed below<br />
# '''Now clear your browser cache and cookies!'''<br />
# You are done (:biggrin:).<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 2.xx''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from version 1.50 or later to any later 1.xx version==<br />
#[http://www.limesurvey.org/download Download] the desired version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. e.g. tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory<br />
### Using phpMyAdmin or similar to export all tables; or using the '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file ,modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Edit or replace the '''config.php''' file:<br />
### If your previous version was < 1.70: Edit the new '''config.php''' to reflect changed settings in the backup '''config.php''' file. '''Do not just overwrite the new '''config.php''' with your old one!'''<br />
### If your previous version was >= 1.70: Simply replace the new '''config.php''' with your backup '''config.php''' (as the file format has not changed).<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Finishing the installation<br />
## Once you open the URL to your LimeSurvey administration the database tables will be updated after confirmation<br />
## Remove or rename the '''/admin/install''' directory as/if instructed by the installation script<br />
## Check if any special, manual checks apply as listed below<br />
# You are done (:biggrin:). If you notice any problems after the upgrade: Clear your browser cache and cookies!<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 1.92''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from a version earlier than v1.50 (v1.0 through v1.44)==<br />
<br />
Since the data structure and a lot of other things were changed, '''upgrading from any version previous to v1.50 is NOT possible'''. If you have old survey structure files with a *.sql extension the only way to get these into a newer version is to install [http://www.limesurvey.org/en/archived-releases/finish/24-archived-releases/289-limesurvey150zip version 1.50], import the .sql file(s) there, then upgrade that version to the most recent LimeSurvey version. See the also then page [[Transferring an installation]] for more details.<br />
<br />
=Upgrade FAQ=<br />
<br />
==What is the most actual LimeSurvey version that still supports PHP4?==<br />
<br />
The last release offering PHP4 support was version 1.82+.<br />
<br />
==Can I upgrade even if I have active surveys?==<br />
<br />
Yes, you can. Exceptions may be mentioned in the thorough instructions above. We strongly advise to test your surveys after upgrade to check if your design templates still work alright.<br />
<br />
==What is best way to port LimeSurvey *.sql survey structure files to the latest version?==<br />
<br />
Install version 1.50, import the file and export the survey structure to the newer .csv format. The latest version still can read the .csv survey structure format.</div>Adminhttps://manual.limesurvey.org/index.php?title=Upgrading_from_a_previous_version&diff=3567Upgrading from a previous version2012-09-20T10:57:04Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Before you start...=<br />
<br />
<span style='color:#FF0000'>... read this because it is very important: '''Always backup the files and the database of your current installation!!'''</span><br />
<br />
You can do this using a database adminstration tool like [http://www.phpmyadmin.net phpMyAdmin] etc. and a file manager! If you don't know how to do this you should better not proceed but ask someone who knows or use the [[ComfortUpdate]] instead.<br />
<br />
=The quick way (for minor version changes)=<br />
<br />
You can use this instruction if you are doing a minor upgrade (for example from 2.00 to 2.01)<br />
*Backup your files and database (did we already mention that?)<br />
*Delete all the old files/directory except for<br />
**/application/config/config.php<br />
**/upload directory<br />
*Copy the new files from the new LimeSurvey package to the existing location.<br />
*'''After the upgrade: Clear your browser cache and cookies!'''<br />
<br />
=The thorough way (for big version jumps)=<br />
<br />
Unfortunately there are a couple of things to consider, so please scan the following instruction closely.<br />
<br />
==Upgrading from version 1.50 or later to any later 2.xx version==<br />
#[http://www.limesurvey.org/download Download] the latest version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. For example in Linux tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory.<br />
### Using phpMyAdmin or similar to export all tables; or use the according '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file, modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Open http://<yourdomain>/<yourlimesurveydir>/admin in your browser and follow the instructions (you can use the old config.php as reference). The existing database will be atuomatically detected and , if necessary, upgraded after confirmation.<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Check if any special manual checks apply as listed below<br />
# '''Now clear your browser cache and cookies!'''<br />
# You are done (:biggrin:).<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 2.xx''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from version 1.50 or later to any later 1.xx version==<br />
#[http://www.limesurvey.org/download Download] the desired version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. e.g. tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory<br />
### Using phpMyAdmin or similar to export all tables; or using the '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file ,modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Edit or replace the '''config.php''' file:<br />
### If your previous version was < 1.70: Edit the new '''config.php''' to reflect changed settings in the backup '''config.php''' file. '''Do not just overwrite the new '''config.php''' with your old one!'''<br />
### If your previous version was >= 1.70: Simply replace the new '''config.php''' with your backup '''config.php''' (as the file format has not changed).<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Finishing the installation<br />
## Once you open the URL to your LimeSurvey administration the database tables will be updated after confirmation<br />
## Remove or rename the '''/admin/install''' directory as/if instructed by the installation script<br />
## Check if any special, manual checks apply as listed below<br />
# You are done (:biggrin:). If you notice any problems after the upgrade: Clear your browser cache and cookies!<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 1.92''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from a version earlier than v1.50 (v1.0 through v1.44)==<br />
<br />
Since the data structure and a lot of other things were changed, '''upgrading from any version previous to v1.50 is NOT possible'''. If you have old survey structure files with a *.sql extension the only way to get these into a newer version is to install [http://www.limesurvey.org/en/archived-releases/finish/24-archived-releases/289-limesurvey150zip version 1.50], import the .sql file(s) there, then upgrade that version to the most recent LimeSurvey version. See the also then page [[Transferring an installation]] for more details.<br />
<br />
=Upgrade FAQ=<br />
<br />
==What is the most actual LimeSurvey version that still supports PHP4?==<br />
<br />
The last release offering PHP4 support was version 1.82+.<br />
<br />
==Can I upgrade even if I have active surveys?==<br />
<br />
Yes, you can. Exceptions may be mentioned in the thorough instructions above. We strongly advise to test your surveys after upgrade to check if your design templates still work alright.<br />
<br />
==What is best way to port LimeSurvey *.sql survey structure files to the latest version?==<br />
<br />
Install version 1.50, import the file and export the survey structure to the newer .csv format. The latest version still can read the .csv survey structure format.</div>Adminhttps://manual.limesurvey.org/index.php?title=Upgrading_from_a_previous_version&diff=3568Upgrading from a previous version2012-09-20T10:55:49Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Before you start...=<br />
<br />
<span style='color:#FF0000'>... read this because it is very important: '''Always backup the files and the database of your current installation!!'''</span><br />
<br />
You can do this using a database adminstration tool like [http://www.phpmyadmin.net phpMyAdmin] etc. and a file manager! If you don't know how to do this you should better not proceed but ask someone who knows or use the [[ComfortUpdate]] instead.<br />
<br />
=The quick way (for minor version changes)=<br />
<br />
You can use this instruction if you are doing a minor upgrade (for example from 2.00 to 2.01)<br />
*Backup your files and database (did we already mention that?)<br />
*Delete all the old files/directory except for<br />
**/application/config/config.php<br />
**/upload directory<br />
*Copy the new files from the new LimeSurvey package to the existing location.<br />
*'''After the upgrade: Clear your browser cache and cookies!'''<br />
<br />
=The thorough way (for big version jumps)=<br />
<br />
Unfortunately there are a couple of things to consider, so please scan the following instruction closely.<br />
<br />
==Upgrading from version 1.50 or later to any later 2.xx version==<br />
#[http://www.limesurvey.org/download Download] the latest version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. For example in Linux tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory.<br />
### Using phpMyAdmin or similar to export all tables; or use the according '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file, modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Open http://<yourdomain>/<yourlimesurveydir>/admin in your browser and follow the instructions (you can use the old config.php as reference). The existing database will be atuomatically detected and , if necessary, upgraded after confirmation.<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Check if any special manual checks apply as listed below<br />
# '''Now clear your browser cache and cookies!'''<br />
# You are done (:biggrin:).<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 2.xx''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from version 1.50 or later to any later 1.xx version==<br />
#[http://www.limesurvey.org/download Download] the desired version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. e.g. tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory<br />
### Using phpMyAdmin or similar to export all tables; or using the '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file ,modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Edit or replace the '''config.php''' file:<br />
### If your previous version was < 1.70: Edit the new '''config.php''' to reflect changed settings in the backup '''config.php''' file. '''Do not just overwrite the new '''config.php''' with your old one!'''<br />
### If your previous version was >= 1.70: Simply replace the new '''config.php''' with your backup '''config.php''' (as the file format has not changed).<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Finishing the installation<br />
## Once you open the URL to your LimeSurvey administration the database tables will be updated after confirmation<br />
## Remove or rename the '''/admin/install''' directory as/if instructed by the installation script<br />
## Check if any special, manual checks apply as listed below<br />
# You are done (:biggrin:). If you notice any problems after the upgrade: Clear your browser cache and cookies!<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 1.92''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from a version earlier than v1.50 (v1.0 through v1.44)==<br />
<br />
Since the data structure and a lot of other things were changed, '''upgrading from any version previous to v1.50 is NOT possible'''. If you have old survey structure files with a *.sql extension the only way to get these into a newer version is to install [http://www.limesurvey.org/en/archived-releases/finish/24-archived-releases/289-limesurvey150zip version 1.50], import the .sql file(s) there, then upgrade that version to the most recent LimeSurvey version. See the also then page [[Transferring an installation]] for more details.<br />
<br />
=Upgrade FAQ=<br />
<br />
==What is the most actual LimeSurvey version that still supports PHP4?==<br />
<br />
The last release offering PHP4 support was version 1.82+.<br />
<br />
==Can I upgrade even if I have active surveys?==<br />
<br />
Yes, you can. Exceptions may be mentioned in the thorough instructions above. We strongly advise to test your surveys after upgrade to check if your design templates still work alright.<br />
<br />
==What is best way to port LimeSurvey *.sql survey structure files to the latest version?==<br />
<br />
Install version 1.50, import the file and export the survey structure to the newer .csv format. The latest version still can read the .csv survey structure format.</div>Adminhttps://manual.limesurvey.org/index.php?title=Upgrading_from_a_previous_version&diff=3569Upgrading from a previous version2012-09-20T10:54:46Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Before you start...=<br />
<br />
<span style='color:#FF0000'>... read this because it is very important: '''Always backup the files and the database of your current installation!!'''</span><br />
<br />
You can do this using a database adminstration tool like [http://www.phpmyadmin.net phpMyAdmin] etc. and a file manager! If you don't know how to do this you should better not proceed but ask someone who knows or use the [[ComfortUpdate]] instead.<br />
<br />
=The quick way (for minor version changes)=<br />
<br />
You can use this instruction if you are doing a minor upgrade (for example from 2.00 to 2.01)<br />
*Backup your files and database (did we already mention that?)<br />
*Delete all the old files/directory except for<br />
**/application/config/config.php<br />
**/upload directory<br />
*Copy the new files from the new LimeSurvey package to the existing location.<br />
*'''After the upgrade: Clear your browser cache and cookies!'''<br />
<br />
=The thorough way (for big version jumps)=<br />
<br />
Unfortunately there are a couple of things to consider, so please scan the following instruction closely.<br />
<br />
==Upgrading from version 1.50 or later to any later 2.xx version==<br />
#[http://www.limesurvey.org/download Download] the latest version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. For example in Linux tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory.<br />
### Using phpMyAdmin or similar to export all tables; or use the according '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file, modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Open http://<yourdomain>/<yourlimesurveydir>/admin in your browser and follow the instructions (you can use the old config.php as reference). The existing database will be atuomatically detected and , if necessary, upgraded after confirmation.<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Check if any special manual checks apply as listed below<br />
# Important: Clear your browser cache and cookies!<br />
# You are done (:biggrin:).<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 2.xx''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from version 1.50 or later to any later 1.xx version==<br />
#[http://www.limesurvey.org/download Download] the desired version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. e.g. tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory<br />
### Using phpMyAdmin or similar to export all tables; or using the '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file ,modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Edit or replace the '''config.php''' file:<br />
### If your previous version was < 1.70: Edit the new '''config.php''' to reflect changed settings in the backup '''config.php''' file. '''Do not just overwrite the new '''config.php''' with your old one!'''<br />
### If your previous version was >= 1.70: Simply replace the new '''config.php''' with your backup '''config.php''' (as the file format has not changed).<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Finishing the installation<br />
## Once you open the URL to your LimeSurvey administration the database tables will be updated after confirmation<br />
## Remove or rename the '''/admin/install''' directory as/if instructed by the installation script<br />
## Check if any special, manual checks apply as listed below<br />
# You are done (:biggrin:). If you notice any problems after the upgrade: Clear your browser cache and cookies!<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 1.92''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from a version earlier than v1.50 (v1.0 through v1.44)==<br />
<br />
Since the data structure and a lot of other things were changed, '''upgrading from any version previous to v1.50 is NOT possible'''. If you have old survey structure files with a *.sql extension the only way to get these into a newer version is to install [http://www.limesurvey.org/en/archived-releases/finish/24-archived-releases/289-limesurvey150zip version 1.50], import the .sql file(s) there, then upgrade that version to the most recent LimeSurvey version. See the also then page [[Transferring an installation]] for more details.<br />
<br />
=Upgrade FAQ=<br />
<br />
==What is the most actual LimeSurvey version that still supports PHP4?==<br />
<br />
The last release offering PHP4 support was version 1.82+.<br />
<br />
==Can I upgrade even if I have active surveys?==<br />
<br />
Yes, you can. Exceptions may be mentioned in the thorough instructions above. We strongly advise to test your surveys after upgrade to check if your design templates still work alright.<br />
<br />
==What is best way to port LimeSurvey *.sql survey structure files to the latest version?==<br />
<br />
Install version 1.50, import the file and export the survey structure to the newer .csv format. The latest version still can read the .csv survey structure format.</div>Adminhttps://manual.limesurvey.org/index.php?title=Upgrading_from_a_previous_version&diff=3570Upgrading from a previous version2012-09-20T10:47:23Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Before you start...=<br />
<br />
<span style='color:#FF0000'>... read this because it is very important: '''Always backup the files and the database of your current installation!!'''</span><br />
<br />
You can do this using a database adminstration tool like [http://www.phpmyadmin.net phpMyAdmin] etc. and a file manager! If you don't know how to do this you should better not proceed but ask someone who knows or use the [[ComfortUpdate]] instead.<br />
<br />
=The quick way (for minor version changes)=<br />
<br />
You can use this instruction if you are doing a minor upgrade (for example from 2.00 to 2.01)<br />
*Backup your files and database (did we already mention that?)<br />
*Delete all the old files/directory except for<br />
**/application/config/config.php<br />
**/upload directory<br />
*Copy the new files from the new LimeSurvey package to the existing location.<br />
*'''After the upgrade: Clear your browser cache and cookies!'''<br />
<br />
=The thorough way (for big version jumps)=<br />
<br />
Unfortunately there are a couple of things to consider, so please scan the following instruction closely.<br />
<br />
==Upgrading from version 1.50 or later to any later 1.xx version==<br />
#[http://www.limesurvey.org/download Download] the latest version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. e.g. tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory<br />
### Using phpMyAdmin or similar to export all tables; or using the '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file ,modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Edit or replace the '''config.php''' file:<br />
### If your previous version was < 1.70: Edit the new '''config.php''' to reflect changed settings in the backup '''config.php''' file. '''Do not just overwrite the new '''config.php''' with your old one!'''<br />
### If your previous version was >= 1.70: Simply replace the new '''config.php''' with your backup '''config.php''' (as the file format has not changed).<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Finishing the installation<br />
## Once you open the URL to your LimeSurvey administration the database tables will be updated after confirmation<br />
## Remove or rename the '''/admin/install''' directory as/if instructed by the installation script<br />
## Check if any special, manual checks apply as listed below<br />
# You are done (:biggrin:). If you notice any problems after the upgrade: Clear your browser cache and cookies!<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 1.92''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from a version earlier than v1.50 (v1.0 through v1.44)==<br />
<br />
Since the data structure and a lot of other things were changed, '''upgrading from any version previous to v1.50 is NOT possible'''. If you have old survey structure files with a *.sql extension the only way to get these into a newer version is to install [http://www.limesurvey.org/en/archived-releases/finish/24-archived-releases/289-limesurvey150zip version 1.50], import the .sql file(s) there, then upgrade that version to the most recent LimeSurvey version. See the also then page [[Transferring an installation]] for more details.<br />
<br />
=Upgrade FAQ=<br />
<br />
==What is the most actual LimeSurvey version that still supports PHP4?==<br />
<br />
The last release offering PHP4 support was version 1.82+.<br />
<br />
==Can I upgrade even if I have active surveys?==<br />
<br />
Yes, you can. Exceptions may be mentioned in the thorough instructions above. We strongly advise to test your surveys after upgrade to check if your design templates still work alright.<br />
<br />
==What is best way to port LimeSurvey *.sql survey structure files to the latest version?==<br />
<br />
Install version 1.50, import the file and export the survey structure to the newer .csv format. The latest version still can read the .csv survey structure format.</div>Adminhttps://manual.limesurvey.org/index.php?title=Upgrading_from_a_previous_version&diff=3571Upgrading from a previous version2012-09-20T10:46:03Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Before you start...=<br />
<br />
<span style='color:#FF0000'>... read this because it is very important: '''Always backup the files and the database of your current installation!!'''</span><br />
<br />
You can do this using a database adminstration tool like [http://www.phpmyadmin.net phpMyAdmin] etc. and a file manager! If you don't know how to do this you should better not proceed but ask someone who knows or use the [[ComfortUpdate]] instead.<br />
<br />
=The quick way (for minor version changes)=<br />
<br />
You can use this instruction if you are doing a minor upgrade (for example from 1.86 to 1.87)<br />
*Backup your files and database (did we already mention that?)<br />
*Delete all the old files/directory except for<br />
**/config.php<br />
**/upload directory<br />
*Copy the new files from the new LimeSurvey package to the existing location. Be careful to NOT overwrite your existing config.php (even if you do: You made a backup, didn't you, heh, HEH?). You can overwrite all other existing files.<br />
*'''After the upgrade: Clear your browser cache and cookies!'''<br />
<br />
=The thorough way (for big version jumps)=<br />
<br />
Unfortunately there are a couple of things to consider, so please scan the following instruction closely.<br />
<br />
==Upgrading from version 1.50 or later to any later 1.xx version==<br />
#[http://www.limesurvey.org/download Download] the latest version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. e.g. tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory<br />
### Using phpMyAdmin or similar to export all tables; or using the '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file ,modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Edit or replace the '''config.php''' file:<br />
### If your previous version was < 1.70: Edit the new '''config.php''' to reflect changed settings in the backup '''config.php''' file. '''Do not just overwrite the new '''config.php''' with your old one!'''<br />
### If your previous version was >= 1.70: Simply replace the new '''config.php''' with your backup '''config.php''' (as the file format has not changed).<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Finishing the installation<br />
## Once you open the URL to your LimeSurvey administration the database tables will be updated after confirmation<br />
## Remove or rename the '''/admin/install''' directory as/if instructed by the installation script<br />
## Check if any special, manual checks apply as listed below<br />
# You are done (:biggrin:). If you notice any problems after the upgrade: Clear your browser cache and cookies!<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 1.92''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from a version earlier than v1.50 (v1.0 through v1.44)==<br />
<br />
Since the data structure and a lot of other things were changed, '''upgrading from any version previous to v1.50 is NOT possible'''. If you have old survey structure files with a *.sql extension the only way to get these into a newer version is to install [http://www.limesurvey.org/en/archived-releases/finish/24-archived-releases/289-limesurvey150zip version 1.50], import the .sql file(s) there, then upgrade that version to the most recent LimeSurvey version. See the also then page [[Transferring an installation]] for more details.<br />
<br />
=Upgrade FAQ=<br />
<br />
==What is the most actual LimeSurvey version that still supports PHP4?==<br />
<br />
The last release offering PHP4 support was version 1.82+.<br />
<br />
==Can I upgrade even if I have active surveys?==<br />
<br />
Yes, you can. Exceptions may be mentioned in the thorough instructions above. We strongly advise to test your surveys after upgrade to check if your design templates still work alright.<br />
<br />
==What is best way to port LimeSurvey *.sql survey structure files to the latest version?==<br />
<br />
Install version 1.50, import the file and export the survey structure to the newer .csv format. The latest version still can read the .csv survey structure format.</div>Adminhttps://manual.limesurvey.org/index.php?title=Installation_Version_1.92_or_older&diff=1721Installation Version 1.92 or older2012-09-20T10:44:42Z<p>Admin: </p>
<hr />
<div><br />
<div style="float:right;"><div class="simplebox">Additional pages:{toc}</div></div> {maketoc title="On this page:"}<br />
<br />
=1. Make sure you can use LimeSurvey on your website=<br />
<br />
Make sure your server meets the following additional requirements:<br />
<br />
Required:<br />
* Minimum 80 MB disk space<br />
* MySQL 4.1.0 or later '''OR''' Microsoft SQL Server 2000 or later '''OR''' Postgres 8.1 or later<br />
* PHP 5.1.2 or later with the following modules/libraries enabled:<br />
** mbstring (Multibyte String Functions) extension library (see also [http://docs.limesurvey.org/tiki-index.php?page=Installation+FAQ#What_is_this_mbstring_Multibyte_String_Functions_library_ Installation FAQ])<br />
** mysql5 or pgsql PHP library (which is standard with hosting providers - if you have setup your own server make sure it is installed)<br />
<br />
Note: We assume that you don't have any PHP standard libraries explicitly deactivated (like sessions, pcre, ctype or others).<br />
<br />
Optional PHP Extensions:<br />
* '''GD-Library''' '''with FreeType support''' installed is needed for captchas or nice charts in statistics - see [http://de3.php.net/manual/en/image.setup.php PHP GD-Library Extension documentation]<br />
* '''IMAP''' (pretty standard) is needed for the [[Email bounce tracking system]] - see [http://www.php.net/manual/en/imap.setup.php PHP IMAP Extension documentation]<br />
* '''LDAP''' installed is needed to import tokens using LDAP - see [http://de.php.net/manual/en/ldap.installation.php PHP LDAP Documentation]<br />
* '''Zip''' (pretty standard) for template upload and import resources Zip archives - see [http://www.php.net/manual/en/zip.setup.php PHP Zip Extension documentation]<br />
* '''Zlib''' (pretty standard) is needed for the [[ComfortUpdate]] - see [http://www.php.net/manual/en/zlib.setup.php PHP Zlib Extension documentation]<br />
<br />
In most cases your webspace provider or system administrator will be able to help you out on these optional components.<br />
<br />
If you want to try LimeSurvey on your local machine we recommend [http://www.apachefriends.org/en/xampp.html XAMPP] which is an easy to install software package containing a complete web server with Apache, MySQL, PHP and Perl. LimeSurvey will run on XAMPP with no configuration needed.<br />
<br />
If you want to run Microsoft's IIS server take a look at "[[Installation of LimeSurvey on a Windows XP machine]]" and "[[Installation on XP with IIS]]".<br />
<br />
==1.1 Hosting for LimeSurvey==<br />
<br />
LimeSurvey should work with most hosting companies which provide PHP and MYSQL. If you want a ready-installed version of LimeSurvey consider using LimeService, else check out our [[LimeSurvey-compatible hosting companies|list of LimeSurvey-compatible hosting companies]].<br />
<br />
=2. Download the LimeSurvey package=<br />
<br />
[http://www.limesurvey.org/en/download Download] the latest stable LimeSurvey zip package (there are also gzip, bz2 and 7zip packages available for your convenience) and save it to your local disk.<br />
<br />
=3. Unpack the LimeSurvey package=<br />
<br />
Uncompress the zip file into a dedicated directory/folder using your preferred compression software. When you uncompress the file make sure that you uncompress the directory structure with the files (this is default behavior for most compression programs). The path name for the installation directory should not include '''(''' or ''')''' characters, but may include the '''space''' character<br />
<br />
=4. Collect information about your server=<br />
<br />
You will need to know the following things to install LimeSurvey on your web server correctly:<br />
*Your intended website URL where your scripts will reside (e.g: ''http://my.domain.com/limesurvey'')<br />
*The physical disk location on your server where your scripts will reside (ie: ''/home/usr/htdocs/limesurvey'')<br />
*The IP/net location of your database server (ie: ''localhost'')<br />
*If your database server uses a non-standard port find out which port it is.<br />
*Your username and password for your database server<br />
*With most providers you can't let the script create the database but have to do it yourself. If you are using such a provider please create a database (for example ''limesurvey'') yourself.<br />
<br />
=5. Configure LimeSurvey=<br />
<br />
Now open the file ''config.php'' in the ''/limesurvey/'' root directory with your preferred text editor.<br />
<br />
==5.1 Basic settings==<br />
<br />
Walk through config.php and check/configure the following settings:<br />
*'''$databasetype:''' This is the database type. At the moment you can set here "mysql" for the MySQL database server, "odbc_mssql" or "mssqlnative" (requires the native MSSQL PHP driver from Microsoft) for Microsoft SQL server and "postgres" for Postgres SQL Server. At least those are the ones that have been tested. (:biggrin:)<br />
<br />
<div class="simplebox">[[File:help.png]] '''Important:''' If you have Microsoft SQL server make sure your database is using a case-insensitive collation (should be set by default).</div><br />
*'''$databaselocation:''' Set this to the IP/net location of your database server. In most cases "localhost" will work. If you are using MSSQL try to use <MACHINENAME>/<SERVERNAME> instead.<br />
*'''$databasename:''' The name of the database on your database server that you will be using for LimeSurvey. If you have high level permissions on the server, you can create a database from LimeSurvey. In this case, put whatever the database will be called into this setting. Alternatively you can use the name of a previously created database here. If you provide an existing database name make sure the database does not contain old tables of LimeSurvey.<br />
*'''$databaseuser:''' Your database server user name<br />
<br />
<div class="simplebox">[[File:help.png]] '''Important:''' If you are using Postgres make sure your user is also the database owner.</div><br />
*'''$databasepass:''' Your database server password<br />
*'''$dbprefix:''' You can leave this setting blank (ie: $dbprefix="";) if you are using a separate database for LimeSurvey alone. If you want to share a database between LimeSurvey and other database applications, add a prefix to this setting. The recommended prefix is "lime_", but really - this is up to you. ''Note: Creating a database and a username in MySQL with command line is described in [[Installation FAQ]].''<br />
*'''$rooturl:''' This should be set to the URL location of your LimeSurvey scripts. If you copied the Limsurvey files into the folder ''limesurveyfolder'' you have to rename ''{$_SERVER<nowiki>[</nowiki>'SERVER_NAME']}/limesurvey'' to the folder name you have chosen (''{$_SERVER<nowiki>[</nowiki>'SERVER_NAME']}limesurveyfolder''). The variable {$_SERVER<nowiki>[</nowiki>'SERVER_NAME']} will attempt to do determine your domain name atomatically, so usually don't change it. If it doesn't work, set this to full server URL - for example "http://www.mydomain.com/limesurvey"). If you want LimeSurvey to '''only''' use SSL change http to https (provided that you have SSL certificates correctly installed and configured on your server). If you want to use http & https at the same time just leave this setting at http.<br />
*'''$rootdir:''' Usually you don't need to change this. It should be set to the physical disk location of your scripts. The default setting will attempt to do this for you, so most probably you won't need to change anything here (the section <nowiki>"dirname('''FILE''');"</nowiki> tries to do this automatically). If it doesn't work, type the disk location in manually - for example ''/home/public_html/limesurvey''.<br />
*'''$defaultuser:''' When the script has access control turned on this is the default user that is created when LimeSurvey first sets up your security settings.<br />
*'''$defaultpass:''' When the script has access control turned on this is the default password that is created when LimeSurvey first sets up your security settings. <br/><br />
<br />
<div class="simplebox">[[File:help.png]] '''Note:''' Both settings ($defaultuser and $defaultpass) are used '''only''' for the initial setup. After LimeSurvey has set up the database these settings are not used at all.</div><br />
<br />
==5.2 Optional settings==<br />
<br />
There are many more optional settings you can set in config.php. Most of them are for installation only and can later be change in the [[Global settings]] dialog. For more information on these optional settings please check out the [[Optional settings|this page]]. However for a basic setup just continue with the next step.<br />
<br />
=6. Upload the files to your web server=<br />
<br />
Using your FTP program, connect to your web server and create a directory to store your scripts. Then upload the files using the directory structure they are in. Make sure you '''upload the files in binary mode''' (check the settings of your FTP program). Please note that uploading in ASCII mode can lead to uncommon errors (e.g. 'class not found' error during installation), also images may not be uploaded correctly.<br />
<br />
=7. Set Directory permissions=<br />
<br />
For the script to work properly it needs certain access to some directories - this applies especially to Linux/*nix systems.<br />
*The '''"/limesurvey/tmp"''' directory is used for imports & uploads and should be set to ''Read & Write'' for your webserver.<br />
*The '''"/limesurvey/upload/"''' directory and all its subdirectories must also have ''Read & Write'' for your webserver in order to enable picture and media files upload.<br />
*The other directories can be set to ''Read Only'' or in Linux/Unix. You may wish to set the permissions on each file within the /limesurvey/admin directory to ''Read Only''.<br />
<br />
<div class="simplebox">[[File:help.png]] '''Hint:''' If you are using Linux then depending on your webserver configuration you will have to chmod the rights on the writable folders to 755 or 777. Try 755 first - if it does not work 'upgrade' to 777.</div><br />
<br />
=8. Run the installation script=<br />
<br />
'''Go to "http://your.domain.com/limesurvey/admin/install"'''. If you configured everything correctly you will be asked to create the database and/or create the tables inside the database. Limesurvey then creates the needed tables in the database.<br />
<br />
After the script shows that it successfully created the tables, you will be prompted to '''rename or delete the ''/admin/install'' directory''' - so just do it (:biggrin:).<br />
<br />
=9. Connect to the administration script for the first time=<br />
<br />
You are done! Open your browser and enter the URL of your admin.php script. Assuming you used LimeSurvey as the directory name to store the files in, this will be something like "http://your.domain.com/limesurvey/admin/admin.php".<br />
<br />
You should get a login screen. The default login credentials are<br />
<br />
<div class="simplebox"> User: admin<br />
<br />
Password: password<br />
<br />
</div><br />
<br />
You will be prompted to change the default password after you logged in. Have fun!<br />
<br />
=10. What if I have problems...=<br />
<br />
Like all computer programs, most of the time things will work just like the instructions say, but sometimes they just won't. There are too many possible reasons for things not going according to plan to describe here. If you have trouble, first check out the [[Installation FAQ]]. If you don't find your answer there please post your problem and any error messages in the [http://www.limesurvey.org/en/forum LimeSurvey forums] on limesurvey.org or join the [irc://irc.freenode.net/limesurvey|LimeSurvey IRC channel]:<br />
<br />
<div class="simplebox"><center>'''[http://www.limesurvey.org/en/community-services/live-chat Direct link to the Official LimeSurvey IRC Channel]'''</center></div></div>Adminhttps://manual.limesurvey.org/index.php?title=Installation_-_LimeSurvey_CE&diff=1583Installation - LimeSurvey CE2012-09-20T10:44:13Z<p>Admin: </p>
<hr />
<div><br />
<div style="float:right;"><div class="simplebox">Additional pages:{toc}</div></div> {maketoc title="On this page:"}<br />
<br />
<div class="simplebox"> Note: These installation instructions are for version 2.0 or later. Older instructions for 1.92 can be found here [[Installation Version 1.92 or older|here]] </div><br />
<br />
=1. Make sure you can use LimeSurvey on your website=<br />
<br />
Make sure your server meets the following additional requirements. Most of these requirements will also be checked during the installation.<br />
<br />
Required:<br />
* Minimum 80 MB disk space<br />
* MySQL 4.1.0 or later '''OR''' Microsoft SQL Server 2005 or later '''OR''' Postgres 8.1 or later<br />
* PHP 5.1.2 or later with the following modules/libraries enabled:<br />
** mbstring (Multibyte String Functions) extension library (see also [http://docs.limesurvey.org/tiki-index.php?page=Installation+FAQ#What_is_this_mbstring_Multibyte_String_Functions_library_ Installation FAQ])<br />
** PDO database driver for MySQL (pdo_mysql or pdo_mysqli) or Postgres (pdo_pgsql) or MSSQL (pdo_sqlsrv)<br />
<br />
Optional PHP Extensions:<br />
* '''GD-Library''' '''with FreeType support''' installed is needed for captchas or nice charts in statistics - see [http://de3.php.net/manual/en/image.setup.php PHP GD-Library Extension documentation]<br />
* '''IMAP''' (pretty standard) is needed for the [[Email bounce tracking system]] - see [http://www.php.net/manual/en/imap.setup.php PHP IMAP Extension documentation]<br />
* '''LDAP''' installed is needed to import tokens using LDAP - see [http://de.php.net/manual/en/ldap.installation.php PHP LDAP Documentation]<br />
* '''Zip''' (pretty standard) for template upload and import resources Zip archives - see [http://www.php.net/manual/en/zip.setup.php PHP Zip Extension documentation]<br />
* '''Zlib''' (pretty standard) is needed for the [[ComfortUpdate]] - see [http://www.php.net/manual/en/zlib.setup.php PHP Zlib Extension documentation]<br />
<br />
In most cases your webspace provider or system administrator will be able to help you out on these optional components.<br />
<br />
If you want to try LimeSurvey on your local machine we recommend [http://www.apachefriends.org/en/xampp.html XAMPP] which is an easy to install software package containing a complete web server with Apache, MySQL, PHP and Perl. LimeSurvey will run on XAMPP with no configuration needed.<br />
<br />
If you want to run Microsoft's IIS server take a look at "[[Installation of LimeSurvey on a Windows XP machine]]" and "[[Installation on XP with IIS]]".<br />
<br />
==1.1 Hosting for LimeSurvey==<br />
<br />
LimeSurvey should work with most hosting companies which provide PHP and MYSQL. If you want a ready-installed version of LimeSurvey consider using LimeService, else check out our [[LimeSurvey-compatible hosting companies|list of LimeSurvey-compatible hosting companies]].<br />
<br />
=2. Download the LimeSurvey package=<br />
<br />
[http://www.limesurvey.org/en/download Download] the latest stable LimeSurvey zip package (there are also gzip, bz2 and 7zip packages available for your convenience) and save it to your local disk.<br />
<br />
=3. Unpack the LimeSurvey package=<br />
<br />
Uncompress the zip file into a dedicated directory/folder using your preferred compression software. When you uncompress the file make sure that you uncompress the directory structure with the files (this is default behavior for most compression programs). The path name for the installation directory should not include '''(''' or ''')''' characters, but may include the '''space''' character<br />
<br />
=4. Collect information about your server=<br />
<br />
You will need to know the following things to install LimeSurvey on your web server correctly:<br />
*Your intended website URL where your scripts will reside (e.g: ''http://my.domain.com/limesurvey'')<br />
*The physical disk location on your server where your scripts will reside (ie: ''/home/usr/htdocs/limesurvey'')<br />
*The IP/net location of your database server (ie: ''localhost'')<br />
*If your database server uses a non-standard port find out which port it is.<br />
*Your username and password for your database server<br />
*With most providers you can't let the script create the database but have to do it yourself. If you are using such a provider please create a database (for example ''limesurvey'') yourself.<br />
<br />
=5. Upload the files to your web server=<br />
<br />
Using your FTP program, connect to your web server and create a directory to store your scripts. Then upload the files using the directory structure they are in. Make sure you '''upload the files in binary mode''' (check the settings of your FTP program). Please note that uploading in ASCII mode can lead to uncommon errors (e.g. 'class not found' error during installation), also images may not be uploaded correctly.<br />
<br />
=7. Set Directory permissions=<br />
<br />
For the script to work properly it needs certain access to some directories - this applies especially to Linux/*nix systems.<br />
*The '''"/limesurvey/tmp"''' directory and all its subdiretories are used for imports & uploads and should be set to ''Read & Write'' for your webserver.<br />
*The '''"/limesurvey/upload/"''' directory and all its subdirectories must also have ''Read & Write'' for your webserver in order to enable picture and media files upload.<br />
*The other directories can be set to ''Read Only'' or in Linux/Unix. You may wish to set the permissions on each file within the /limesurvey/admin directory to ''Read Only''.<br />
<br />
<div class="simplebox">[[File:help.png]] '''Hint:''' If you are using Linux then depending on your webserver configuration you will have to chmod the rights on the writable folders to 755 or 777. Try 755 first - if it does not work 'upgrade' to 777.</div><br />
<br />
=8. Run the installation script=<br />
<br />
'''Go to "http://your.domain.com/limesurvey/admin"'''. If you configured everything correctly the LimeSurvey installer should be starting - just follow the instructions. You will be asked if to create the database and/or create the tables inside the database. Limesurvey then creates the needed tables in the database.<br />
<br />
=9. Connect to the administration script for the first time=<br />
<br />
After the installer has finished you are done! Open your browser and enter the URL of your admin.php script. Assuming you used LimeSurvey as the directory name to store the files in, this will be something like "http://your.domain.com/limesurvey/admin/admin.php".<br />
<br />
You should get a login screen. The default login credentials (if not changed during in the installation) are<br />
<br />
<div class="simplebox"> User: admin<br />
<br />
Password: password<br />
<br />
</div><br />
<br />
You will be prompted to change the default password after you logged in. Have fun!<br />
<br />
=10. What if I have problems...=<br />
<br />
Like all computer programs, most of the time things will work just like the instructions say, but sometimes they just won't. There are too many possible reasons for things not going according to plan to describe here. If you have trouble, first check out the [[Installation FAQ]]. If you don't find your answer there please post your problem and any error messages in the [http://www.limesurvey.org/en/forum LimeSurvey forums] on limesurvey.org or join the [irc://irc.freenode.net/limesurvey|LimeSurvey IRC channel]:<br />
<br />
<div class="simplebox"><center>'''[http://www.limesurvey.org/en/community-services/live-chat Direct link to the official LimeSurvey IRC Channel]'''</center></div></div>Adminhttps://manual.limesurvey.org/index.php?title=Installation_-_LimeSurvey_CE&diff=1584Installation - LimeSurvey CE2012-09-20T10:42:50Z<p>Admin: </p>
<hr />
<div><br />
<div style="float:right;"><div class="simplebox">Additional pages:{toc}</div></div> {maketoc title="On this page:"}<br />
<br />
=1. Make sure you can use LimeSurvey on your website=<br />
<br />
Make sure your server meets the following additional requirements. Most of these requirements will also be checked during the installation.<br />
<br />
Required:<br />
* Minimum 80 MB disk space<br />
* MySQL 4.1.0 or later '''OR''' Microsoft SQL Server 2005 or later '''OR''' Postgres 8.1 or later<br />
* PHP 5.1.2 or later with the following modules/libraries enabled:<br />
** mbstring (Multibyte String Functions) extension library (see also [http://docs.limesurvey.org/tiki-index.php?page=Installation+FAQ#What_is_this_mbstring_Multibyte_String_Functions_library_ Installation FAQ])<br />
** PDO database driver for MySQL (pdo_mysql or pdo_mysqli) or Postgres (pdo_pgsql) or MSSQL (pdo_sqlsrv)<br />
<br />
Optional PHP Extensions:<br />
* '''GD-Library''' '''with FreeType support''' installed is needed for captchas or nice charts in statistics - see [http://de3.php.net/manual/en/image.setup.php PHP GD-Library Extension documentation]<br />
* '''IMAP''' (pretty standard) is needed for the [[Email bounce tracking system]] - see [http://www.php.net/manual/en/imap.setup.php PHP IMAP Extension documentation]<br />
* '''LDAP''' installed is needed to import tokens using LDAP - see [http://de.php.net/manual/en/ldap.installation.php PHP LDAP Documentation]<br />
* '''Zip''' (pretty standard) for template upload and import resources Zip archives - see [http://www.php.net/manual/en/zip.setup.php PHP Zip Extension documentation]<br />
* '''Zlib''' (pretty standard) is needed for the [[ComfortUpdate]] - see [http://www.php.net/manual/en/zlib.setup.php PHP Zlib Extension documentation]<br />
<br />
In most cases your webspace provider or system administrator will be able to help you out on these optional components.<br />
<br />
If you want to try LimeSurvey on your local machine we recommend [http://www.apachefriends.org/en/xampp.html XAMPP] which is an easy to install software package containing a complete web server with Apache, MySQL, PHP and Perl. LimeSurvey will run on XAMPP with no configuration needed.<br />
<br />
If you want to run Microsoft's IIS server take a look at "[[Installation of LimeSurvey on a Windows XP machine]]" and "[[Installation on XP with IIS]]".<br />
<br />
==1.1 Hosting for LimeSurvey==<br />
<br />
LimeSurvey should work with most hosting companies which provide PHP and MYSQL. If you want a ready-installed version of LimeSurvey consider using LimeService, else check out our [[LimeSurvey-compatible hosting companies|list of LimeSurvey-compatible hosting companies]].<br />
<br />
=2. Download the LimeSurvey package=<br />
<br />
[http://www.limesurvey.org/en/download Download] the latest stable LimeSurvey zip package (there are also gzip, bz2 and 7zip packages available for your convenience) and save it to your local disk.<br />
<br />
=3. Unpack the LimeSurvey package=<br />
<br />
Uncompress the zip file into a dedicated directory/folder using your preferred compression software. When you uncompress the file make sure that you uncompress the directory structure with the files (this is default behavior for most compression programs). The path name for the installation directory should not include '''(''' or ''')''' characters, but may include the '''space''' character<br />
<br />
=4. Collect information about your server=<br />
<br />
You will need to know the following things to install LimeSurvey on your web server correctly:<br />
*Your intended website URL where your scripts will reside (e.g: ''http://my.domain.com/limesurvey'')<br />
*The physical disk location on your server where your scripts will reside (ie: ''/home/usr/htdocs/limesurvey'')<br />
*The IP/net location of your database server (ie: ''localhost'')<br />
*If your database server uses a non-standard port find out which port it is.<br />
*Your username and password for your database server<br />
*With most providers you can't let the script create the database but have to do it yourself. If you are using such a provider please create a database (for example ''limesurvey'') yourself.<br />
<br />
=5. Upload the files to your web server=<br />
<br />
Using your FTP program, connect to your web server and create a directory to store your scripts. Then upload the files using the directory structure they are in. Make sure you '''upload the files in binary mode''' (check the settings of your FTP program). Please note that uploading in ASCII mode can lead to uncommon errors (e.g. 'class not found' error during installation), also images may not be uploaded correctly.<br />
<br />
=7. Set Directory permissions=<br />
<br />
For the script to work properly it needs certain access to some directories - this applies especially to Linux/*nix systems.<br />
*The '''"/limesurvey/tmp"''' directory and all its subdiretories are used for imports & uploads and should be set to ''Read & Write'' for your webserver.<br />
*The '''"/limesurvey/upload/"''' directory and all its subdirectories must also have ''Read & Write'' for your webserver in order to enable picture and media files upload.<br />
*The other directories can be set to ''Read Only'' or in Linux/Unix. You may wish to set the permissions on each file within the /limesurvey/admin directory to ''Read Only''.<br />
<br />
<div class="simplebox">[[File:help.png]] '''Hint:''' If you are using Linux then depending on your webserver configuration you will have to chmod the rights on the writable folders to 755 or 777. Try 755 first - if it does not work 'upgrade' to 777.</div><br />
<br />
=8. Run the installation script=<br />
<br />
'''Go to "http://your.domain.com/limesurvey/admin"'''. If you configured everything correctly the LimeSurvey installer should be starting - just follow the instructions. You will be asked if to create the database and/or create the tables inside the database. Limesurvey then creates the needed tables in the database.<br />
<br />
=9. Connect to the administration script for the first time=<br />
<br />
After the installer has finished you are done! Open your browser and enter the URL of your admin.php script. Assuming you used LimeSurvey as the directory name to store the files in, this will be something like "http://your.domain.com/limesurvey/admin/admin.php".<br />
<br />
You should get a login screen. The default login credentials (if not changed during in the installation) are<br />
<br />
<div class="simplebox"> User: admin<br />
<br />
Password: password<br />
<br />
</div><br />
<br />
You will be prompted to change the default password after you logged in. Have fun!<br />
<br />
=10. What if I have problems...=<br />
<br />
Like all computer programs, most of the time things will work just like the instructions say, but sometimes they just won't. There are too many possible reasons for things not going according to plan to describe here. If you have trouble, first check out the [[Installation FAQ]]. If you don't find your answer there please post your problem and any error messages in the [http://www.limesurvey.org/en/forum LimeSurvey forums] on limesurvey.org or join the [irc://irc.freenode.net/limesurvey|LimeSurvey IRC channel]:<br />
<br />
<div class="simplebox"><center>'''[http://www.limesurvey.org/en/community-services/live-chat Direct link to the official LimeSurvey IRC Channel]'''</center></div></div>Adminhttps://manual.limesurvey.org/index.php?title=The_LimeSurvey_project_team&diff=3335The LimeSurvey project team2012-09-14T13:57:44Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Project lead=<br />
*[[UserPage c_schmitz|Carsten Schmitz]] (c_schmitz)<br />
<br />
==Development leads==<br />
*[[Thibault Le Meur]] (lemeur)<br />
<br />
===Quality Assurance===<br />
*[[UserPage Mazi|Marcel Minke]] (Mazi)<br />
* Maybe you?<br />
<br />
===Core developers===<br />
*[[Thibault Le Meur]] (lemeur)<br />
*[[UserPage machaven|David Olivier]] (machaven)<br />
*[[UserPage jcleeland|Jason Cleeland]] (jcleeland)<br />
*[[UserPage TMSWhite|Thomas White]] (TMSWhite) - [[Expression Manager|Expression Manager]]<br />
<br />
===Translations manager===<br />
* Maybe you?<br />
<br />
==Support==<br />
<br />
===International support===<br />
*[[UserPage Mazi|Marcel Minke]] (Mazi)<br />
<br />
===National support===<br />
*French: [[UserPage Shnoulle|Denis Chenu]] (DenisChenu) / [[UserPage Shnoulle|Nicolas Goyer]] (Nickko)<br />
*German: [[UserPage Mazi|Marcel Minke]] (Mazi)<br />
*Greek: [[Eleni Konstantinou]] (konstantinou)<br />
*Spanish: [[J. Luis Simon]] (jlsimon)<br />
<br />
==Translators==<br />
<br />
Translations are hard work and we are very thankful for all the translations that have been done by this people. We are particularly looking for supervising translators for each language - if you are interested please get in touch with us (translations@limesurvey.org).<br />
<br />
If you just want to help with translations please have have a look at our [[Translating LimeSurvey|translations instructions]].<br />
<br />
<div class="simplebox"><center>'''Dear translators''' - We get a lot of updated translations every week. If you think your name should show up here but it doesn't then feel free to add it yourself or complain immediately to translations@limesurvey.org !</center></div><br />
<br />
{|<br />
|Language||Supervising translator||Translators<br />
|-<br />
|[[File:af.png]] '''Afrikaans''' || || Piet Vermeulen<br />
|-<br />
|[[File:al.png]] '''Albanian''' || || Maro&scaron; Koll&aacute;r<br />
|-<br />
|[[File:et.png]] '''Amharic''' ||Mezene Worku (mezwor)||<br />
|-<br />
|'''Basque'''|| ||Juan Ezeiza<br />
|-<br />
|[[File:bg.png]] '''Bulgarian'''|| || Nikolay Tsanov, Alex Simidchiev<br />
|-<br />
|[[File:cn.png]] '''Chinese (Simplified)'''|| ||Thomas Lee, Liang Zhao<br />
|-<br />
|[[File:cn.png]] '''Chinese (Traditional - Hong Kong)'''|| [http://http://www.pstudy.net Mark Yeung]<br />
|-<br />
|[[File:hr.png]] '''Croatian'''||Igor Dobrača (rovinj)||Nino Cosic<br />
|-<br />
|[[File:cz.png]] '''Czech'''||Lukas Slansky (slansky)||<br />
|-<br />
|[[File:dk.png]] '''Danish'''|| ||Mikkel Skovgaard S&oslash;rensen, Rolf Njor Jensen<br />
|-<br />
|[[File:nl.png]] '''Dutch'''|| ||Johan Geertsma, Hans Fraiponts, Ronald Leenes, Peter De Berdt, Han Velthuis<br />
|-<br />
|[[File:fi.png]] '''Finnish'''|| ||Juuso Heinisuo<br />
|-<br />
|[[File:fr.png]] '''French'''|| ||Sebastien Gaugry, Pascal Bastien<br />
|-<br />
|'''Galician'''|| [http://calidonia.eu/ Carlos Neira Cortizas]<br />
|-<br />
|[[File:de.png]] '''German'''||Patrick Drews (PatrickDrews)||Carsten Schmitz, Josef Prandstetter, Peter Sereinigg,[[UserPage Mazi||Marcel Minke]]<br />
|-<br />
|[[File:de.png]] '''German informal'''||Patrick Drews (PatrickDrews)||Carsten Schmitz, Josef Prandstetter, Peter Sereinigg,[[UserPage Mazi||Marcel Minke]]<br />
|-<br />
|[[File:gr.png]] '''Greek'''|| [http://www.mendrinos.com/ Artemis Mendrinos], Eleni Konstantinou, Georgallidie Eleni, Manolis Stamatogiannakis, Yiannos Katsirintakis, Nikos Korfiatis, [http://www.math.upatras.gr/~chrodost/ Christos Rodosthenous]<br />
|-<br />
|[[File:hu.png]] '''Hungarian'''|| ||Daniel Dobosi,David Selmeczi<br />
|-<br />
|[[File:id.png]] '''Indonesian'''|| ||Lukas<br />
|-<br />
|[[File:it.png]] '''Italian'''||Luciano Fanfoni (lfanfoni)||Mario Marani, Gabriele Carioli, Lorenzo Vigentini, Edita Paulisic<br />
|-<br />
|[[File:jp.png]] '''Japanese'''|| [http://www.offiba.com Hiroki Yoshino], Masaru Ryumae<br />
|-<br />
|[[File:mt.png]] '''Maltese'''|| ||Glorianne Bezzina, Richard Pullicino<br />
|-<br />
|[[File:no.png]] '''Norwegian bokm&aring;l'''|| ||Odd-Jarle Kristoffersen, Eirik Sunde, P&aring;l Monstad<br />
|-<br />
|[[File:no.png]] '''Norwegian nynorsk'''|| ||Guttorm Flatab&oslash;<br />
|-<br />
|[[File:pl.png]] '''Polish'''||Elżbieta Lesińska (elisa)||Maciej Zawado, Damian Kubiak<br />
|-<br />
|[[File:pt.png]] '''Portuguese'''|| ||Clemente Aguia, Rosaura Gazzola, Job Vieira L&uacute;cio<br />
|-<br />
|[[File:br.png]] '''Portuguese (Brazil)'''||Mauricio Furtado (mauriciofurtado)||Andr&eacute;a Sim&otilde;es, De Lucca, Anderson La&eacute;cio Galindo Trindade<br />
|-<br />
|[[File:ro.png]] '''Romanian'''|| ||Bogdan Anastasiei<br />
|-<br />
|[[File:ru.png]] '''Russian'''|| ||Alexei G. Tchernov, Alexander Shilovv<br />
|-<br />
|[[File:rs.png]] '''Serbian'''|| ||Milica Veljović<br />
|-<br />
|[[File:si.png]] '''Slovenian'''|| ||Gasper Koren, Matej Kovacic, Jure Cuhalev<br />
|-<br />
|[[File:es.png]] '''Spanish'''|| ||J. Luis Sim&oacute;n, Luis M. Mart&iacute;nez, Juan Rafael Fern&aacute;ndez, [[UserPage kadejo||Carlos Juan Mart&iacute;n P&eacute;rez]], Esteban Adri&aacute;n P&eacute;rez<br />
|-<br />
|[[File:cl.png]] '''Spanish (Chile)'''||Victor Pinto (SirCrovax)||<br />
|-<br />
|[[File:se.png]] '''Swedish'''|| ||Bj&ouml;rn Mildh, Niklas Andersson, Jonas Norlinder<br />
|-<br />
|[[File:tr.png]] '''Turkish'''||Kaya Zeren (kayazeren)||Murad Bayram, Cihat Karli<br />
|-<br />
|[[File:vn.png]] '''Vietnamese'''|| ||Vinh Ngo<br />
|-<br />
|'''Welsh'''|| ||John Moorhouse, Niklas Andersson<br />
|-<br />
|<br />
|}<br />
<br />
==Past Contributors & Developers==<br />
<br />
Thank you to the following people who have assisted/contributed templates, PHP-coding and many other things (ordered by last name):<br />
* C. Scott Ananian<br />
* James Barkley (barkleja)<br />
* Mitchell Butler - Did the basic artwork for 1.1x and higher<br />
* Evan Caylor<br />
* Jeff Clement<br />
* Sabine Cretella<br />
* Jos&eacute; Luis Ram&iacute;rez Cuevas<br />
* Jan Doemen<br />
* Daniel Eggel<br />
* Marco Ermini<br />
* Arjen Gideonse<br />
* Andreas Gleis<br />
* Peterjan Heyse<br />
* Yao-Wen (Wayne) Huong<br />
* Rolf Njor Jensen<br />
* Odd-Jarle Kristoffersen<br />
* Frederik Kunz<br />
* Johannes Kutsam<br />
* Michael Macasek (macasek)<br />
* Patrick McKnight<br />
* Mark Meytin<br />
* Ronald Mulder<br />
* Brian O'Neill<br />
* Darrel O'Pry<br />
* Ulrika Olsson<br />
* Esteban A. P&eacute;rez (dgeaperez)<br />
* Bas Peusens<br />
* Mark Rabideau<br />
* Philip Roy<br />
* Gustavo San Roman (leochaton)<br />
* Andreas Schroeter<br />
* Dominik Sommer<br />
* Juhan Sonin (jsonin)<br />
* Brian Staats (bstaats)<br />
* Wes Sonnenreich<br />
* Karyl Stein<br />
* Eirik Sunde<br />
* Rob Thew (rob.thew)<br />
* Fran&ccedil;ois Tissandier<br />
* Tor de Vries<br />
* Shawn Wales (swales)<br />
* Chris Wessells<br />
* Verified Voting Foundation<br />
<br />
...and many others (sorry if we've missed you!)<br />
<br />
Your assistance has been invaluable. Well done and thank you for contributing to the Open Source Community!</div>Adminhttps://manual.limesurvey.org/index.php?title=The_LimeSurvey_project_team&diff=3336The LimeSurvey project team2012-09-14T13:56:55Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Project lead=<br />
*[[UserPage c_schmitz|Carsten Schmitz]] (c_schmitz)<br />
<br />
==Development leads==<br />
*[[Thibault Le Meur]] (lemeur)<br />
<br />
===Quality Assurance===<br />
*[[UserPage Mazi|Marcel Minke]] (Mazi)<br />
* Maybe you?<br />
<br />
===Core developers===<br />
*[[Thibault Le Meur]] (lemeur)<br />
*[[UserPage machaven|David Olivier]] (machaven)<br />
*[[UserPage jcleeland|Jason Cleeland]] (jcleeland)<br />
*[[UserPage TMSWhite|Thomas White]] (TMSWhite) - [[Expression Manager|Expression Manager]]<br />
<br />
===Translations manager===<br />
* Maybe you?<br />
<br />
==Support==<br />
<br />
===International support===<br />
*[[UserPage Mazi|Marcel Minke]] (Mazi)<br />
<br />
===National support===<br />
*French: [[UserPage Shnoulle|Denis Chenu]] (DenisChenu) / [[UserPage Shnoulle|Nicolas Goyer]] (Nickko)<br />
*German: [[UserPage Mazi|Marcel Minke]] (Mazi)<br />
*Greek: [[Eleni Konstantinou]] (konstantinou)<br />
*Spanish: [[J. Luis Simon]] (jlsimon)<br />
<br />
[[File:rs.png]]<br />
<br />
==Translators==<br />
<br />
Translations are hard work and we are very thankful for all the translations that have been done by this people. We are particularly looking for supervising translators for each language - if you are interested please get in touch with us (translations@limesurvey.org).<br />
<br />
If you just want to help with translations please have have a look at our [[Translating LimeSurvey|translations instructions]].<br />
<br />
<div class="simplebox"><center>'''Dear translators''' - We get a lot of updated translations every week. If you think your name should show up here but it doesn't then feel free to add it yourself or complain immediately to translations@limesurvey.org !</center></div><br />
<br />
{|<br />
|Language||Supervising translator||Translators<br />
|-<br />
|[[File:af.png]] '''Afrikaans''' || || Piet Vermeulen<br />
|-<br />
|[[File:al.png]] '''Albanian''' || || Maro&scaron; Koll&aacute;r<br />
|-<br />
|[[File:et.png]] '''Amharic''' ||Mezene Worku (mezwor)||<br />
|-<br />
|'''Basque'''|| ||Juan Ezeiza<br />
|-<br />
|[[File:bg.png]] '''Bulgarian'''|| || Nikolay Tsanov, Alex Simidchiev<br />
|-<br />
|[[File:cn.png]] '''Chinese (Simplified)'''|| ||Thomas Lee, Liang Zhao<br />
|-<br />
|[[File:cn.png]] '''Chinese (Traditional - Hong Kong)'''|| [http://http://www.pstudy.net Mark Yeung]<br />
|-<br />
|[[File:hr.png]] '''Croatian'''||Igor Dobrača (rovinj)||Nino Cosic<br />
|-<br />
|[[File:cz.png]] '''Czech'''||Lukas Slansky (slansky)||<br />
|-<br />
|[[File:dk.png]] '''Danish'''|| ||Mikkel Skovgaard S&oslash;rensen, Rolf Njor Jensen<br />
|-<br />
|[[File:nl.png]] '''Dutch'''|| ||Johan Geertsma, Hans Fraiponts, Ronald Leenes, Peter De Berdt, Han Velthuis<br />
|-<br />
|[[File:fi.png]] '''Finnish'''|| ||Juuso Heinisuo<br />
|-<br />
|[[File:fr.png]] '''French'''|| ||Sebastien Gaugry, Pascal Bastien<br />
|-<br />
|'''Galician'''|| [http://calidonia.eu/ Carlos Neira Cortizas]<br />
|-<br />
|[[File:de.png]] '''German'''||Patrick Drews (PatrickDrews)||Carsten Schmitz, Josef Prandstetter, Peter Sereinigg,[[UserPage Mazi||Marcel Minke]]<br />
|-<br />
|[[File:de.png]] '''German informal'''||Patrick Drews (PatrickDrews)||Carsten Schmitz, Josef Prandstetter, Peter Sereinigg,[[UserPage Mazi||Marcel Minke]]<br />
|-<br />
|[[File:gr.png]] '''Greek'''|| [http://www.mendrinos.com/ Artemis Mendrinos], Eleni Konstantinou, Georgallidie Eleni, Manolis Stamatogiannakis, Yiannos Katsirintakis, Nikos Korfiatis, [http://www.math.upatras.gr/~chrodost/ Christos Rodosthenous]<br />
|-<br />
|[[File:hu.png]] '''Hungarian'''|| ||Daniel Dobosi,David Selmeczi<br />
|-<br />
|[[File:id.png]] '''Indonesian'''|| ||Lukas<br />
|-<br />
|[[File:it.png]] '''Italian'''||Luciano Fanfoni (lfanfoni)||Mario Marani, Gabriele Carioli, Lorenzo Vigentini, Edita Paulisic<br />
|-<br />
|[[File:jp.png]] '''Japanese'''|| [http://www.offiba.com Hiroki Yoshino], Masaru Ryumae<br />
|-<br />
|[[File:mt.png]] '''Maltese'''|| ||Glorianne Bezzina, Richard Pullicino<br />
|-<br />
|[[File:no.png]] '''Norwegian bokm&aring;l'''|| ||Odd-Jarle Kristoffersen, Eirik Sunde, P&aring;l Monstad<br />
|-<br />
|[[File:no.png]] '''Norwegian nynorsk'''|| ||Guttorm Flatab&oslash;<br />
|-<br />
|[[File:pl.png]] '''Polish'''||Elżbieta Lesińska (elisa)||Maciej Zawado, Damian Kubiak<br />
|-<br />
|[[File:pt.png]] '''Portuguese'''|| ||Clemente Aguia, Rosaura Gazzola, Job Vieira L&uacute;cio<br />
|-<br />
|[[File:br.png]] '''Portuguese (Brazil)'''||Mauricio Furtado (mauriciofurtado)||Andr&eacute;a Sim&otilde;es, De Lucca, Anderson La&eacute;cio Galindo Trindade<br />
|-<br />
|[[File:ro.png]] '''Romanian'''|| ||Bogdan Anastasiei<br />
|-<br />
|[[File:ru.png]] '''Russian'''|| ||Alexei G. Tchernov, Alexander Shilovv<br />
|-<br />
|[[File:rs.png]] '''Serbian'''|| ||Milica Veljović<br />
|-<br />
|[[File:si.png]] '''Slovenian'''|| ||Gasper Koren, Matej Kovacic, Jure Cuhalev<br />
|-<br />
|[[File:es.png]] '''Spanish'''|| ||J. Luis Sim&oacute;n, Luis M. Mart&iacute;nez, Juan Rafael Fern&aacute;ndez, [[UserPage kadejo||Carlos Juan Mart&iacute;n P&eacute;rez]], Esteban Adri&aacute;n P&eacute;rez<br />
|-<br />
|[[File:cl.png]] '''Spanish (Chile)'''||Victor Pinto (SirCrovax)||<br />
|-<br />
|[[File:se.png]] '''Swedish'''|| ||Bj&ouml;rn Mildh, Niklas Andersson, Jonas Norlinder<br />
|-<br />
|[[File:tr.png]] '''Turkish'''||Kaya Zeren (kayazeren)||Murad Bayram, Cihat Karli<br />
|-<br />
|[[File:vn.png]] '''Vietnamese'''|| ||Vinh Ngo<br />
|-<br />
|'''Welsh'''|| ||John Moorhouse, Niklas Andersson<br />
|-<br />
|<br />
|}<br />
<br />
==Past Contributors & Developers==<br />
<br />
Thank you to the following people who have assisted/contributed templates, PHP-coding and many other things (ordered by last name):<br />
* C. Scott Ananian<br />
* James Barkley (barkleja)<br />
* Mitchell Butler - Did the basic artwork for 1.1x and higher<br />
* Evan Caylor<br />
* Jeff Clement<br />
* Sabine Cretella<br />
* Jos&eacute; Luis Ram&iacute;rez Cuevas<br />
* Jan Doemen<br />
* Daniel Eggel<br />
* Marco Ermini<br />
* Arjen Gideonse<br />
* Andreas Gleis<br />
* Peterjan Heyse<br />
* Yao-Wen (Wayne) Huong<br />
* Rolf Njor Jensen<br />
* Odd-Jarle Kristoffersen<br />
* Frederik Kunz<br />
* Johannes Kutsam<br />
* Michael Macasek (macasek)<br />
* Patrick McKnight<br />
* Mark Meytin<br />
* Ronald Mulder<br />
* Brian O'Neill<br />
* Darrel O'Pry<br />
* Ulrika Olsson<br />
* Esteban A. P&eacute;rez (dgeaperez)<br />
* Bas Peusens<br />
* Mark Rabideau<br />
* Philip Roy<br />
* Gustavo San Roman (leochaton)<br />
* Andreas Schroeter<br />
* Dominik Sommer<br />
* Juhan Sonin (jsonin)<br />
* Brian Staats (bstaats)<br />
* Wes Sonnenreich<br />
* Karyl Stein<br />
* Eirik Sunde<br />
* Rob Thew (rob.thew)<br />
* Fran&ccedil;ois Tissandier<br />
* Tor de Vries<br />
* Shawn Wales (swales)<br />
* Chris Wessells<br />
* Verified Voting Foundation<br />
<br />
...and many others (sorry if we've missed you!)<br />
<br />
Your assistance has been invaluable. Well done and thank you for contributing to the Open Source Community!</div>Adminhttps://manual.limesurvey.org/index.php?title=LimeSurvey-compatible_hosting_companies&diff=2110LimeSurvey-compatible hosting companies2012-08-13T09:03:51Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
These providers have been tested successfully with LimeSurvey. Please add your provider if everything works fine - just don't add a link.<br />
<br />
'''In general we recommend to use [http://www.bluehost.com/track/limesurvey Bluehost] as hosting provider to host your LimeSurvey installlation.'''<br />
<br />
=By country=<br />
<br />
==Australia==<br />
* InfoTech<br />
<br />
==Austria==<br />
* kapper.net<br />
* World4you<br />
<br />
==Belgium==<br />
* SoHosted Webhosting<br />
* Spoox<br />
<br />
==Canada==<br />
* [http://www.kqzyfj.com/click-5292771-10732159 MyHosting]<br />
* Imperial Hosting<br />
<br />
==Germany==<br />
* [http://partners.webmasterplan.com/click.asp?ref=561106&site;=2941&type;=text&tnb;=38 1&1 Webhosting]<br />
* [http://www1.belboon.de/adtracking/031a8808973201333a0031fc.html 1blue]<br />
* All-incl.com<br />
* [http://alfahosting.de/webhosting_pakete/webspace_uebersicht.html?wmid=limesurvey alfahosting]<br />
* Domainfactory<br />
* EUserv Internet<br />
* gn2-netwerk<br />
* [http://affiliate.hosteurope.de/click.php/EZiXxIy2u43aV--CSFp4cj8Vx81VO9Vry4DWtAbjQ1M, HostEurope]<br />
* ICDSoft<br />
* Sysprovide<br />
* Webhostone<br />
<br />
==Hong Kong==<br />
* ICDSoft<br />
<br />
==Romania==<br />
* Extraconsult Web Hosting Services<br />
<br />
==Swiss==<br />
* Metanet<br />
<br />
==The Netherlands==<br />
* SoHosted Webhosting<br />
<br />
==UK==<br />
* 1&1<br />
* 2020Media<br />
* Centicero<br />
* Evohosting<br />
<br />
==US==<br />
* 1&1<br />
* [http://www.a2hosting.com/3037.html A2 Hosting]<br />
* '''[http://www.bluehost.com/track/limesurvey Bluehost]'''<br />
* [http://www.dreamhost.com/r.cgi?1143272 Dreamhost]<br />
* GoDaddy<br />
* [https://accounts.hostcolor.com/aff.php?aff=076 Host Color]<br />
* [http://secure.hostgator.com/~affiliat/cgi-bin/affiliates/clickthru.cgi?id=limesurvey Hostgator]<br />
* HostPC<br />
* InMotion<br />
* [http://icdsoft.com/promo-code/limesurvey ICDSoft]<br />
* [https://www.ixwebhosting.com/templates/ix/v2/affiliate/clickthru.cgi?id=limesurvey IX Webhosting]<br />
* [http://hsp.viux.com/redirector.cgi/ID,9c59540119 Viux]<br />
* [http://refer.webhostingbuzz.com/334.html Web Hosting Buzz]<br />
* [http://www.webfaction.com/signup?affiliate=limesurvey WebFaction]</div>Adminhttps://manual.limesurvey.org/index.php?title=Translating_LimeSurvey&diff=3453Translating LimeSurvey2012-06-21T11:12:29Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Translating LimeSurvey=<br />
<br />
Wouldn't it be great to have LimeSurvey completely translated to your mother-language? The LimeSurvey team is always on the look-out for new translations and for people who help to update the existing ones. Please read these instructions and don't hesitate to send email to translations@limesurvey.org if you are in doubt or have any other questions.<br />
<br />
~tc~<br />
<br />
(alias(LimeSurvey 1.x Translating LimeSurvey))<br />
<br />
~/tc~<br />
<br />
=How to translate - Step-by-Step instructions=<br />
<br />
==Updating an existing translation==<br />
#Create a free user account on [http://www.limesurvey.org].<br />
#Note: If you already have an account please log in once at [http://www.limesurvey.org] first!<br />
#Go to [http://translate.limesurvey.org], login there with the same user name and password.<br />
#Pick the LimeSurvey version you want to translate for and start translating. After your translation was approved it will automatically be released in the weekly stable release and your username will be credited in the change log.<br />
#If you are interested to become a prime translator for your language with the ability to approve newly translated string please contact us at translations@limesurvey.org . Such a position requires a maximum of about an hour of work per week - important to us is that you are reliable doing this.<br />
<br />
==Customize an existing translation==<br />
<br />
Sometimes you want to modify an existing translation so it accommodates your particular survey situation better. In that case do the following:<br />
#Go to http://translate.limesurvey.org(external link), pick the LimeSurvey version you want to translate for and the particular language you want to modify.<br />
#On the bottom of the translation page you will find an option to export all strings as .po file. Do that and save it as *.po file to your local harddisk.<br />
#Download and install [http://www.poedit.net/download.php poEDIT]<br />
#Start poEdit end edit the downloaded *.po file - modify the particular translations.<br />
#Save. When you save the .po file then automatically a .mo file is created too. That is the one LimeSurvey will read from.<br />
#Place the particular .mo file in the right language folder in /locale by replacing the existing one - for example for French this would be /locale/fr/LC_MESSAGES/fr.po<br />
#Done.<br />
<br />
<div class="simplebox"> Note: If you are using LimeService they will be happy to place the file for you. Just create a support ticket.</div><br />
<br />
==Creating a new translation==<br />
#First of all get access to the development version of LimeSurvey. You can find detailed instructions how to get your hands on it on this page: [[Accessing the source code]]<br />
#Download and install [http://www.poedit.net/download.php poEDIT]<br />
#Now you have to find out the language-code for your language - you can search for your language-code in the [http://people.w3.org/rishida/utils/subtags/ IANA Language Subtag Registry].<br />
#Go to the /locale directory and create a directory named after your language code.<br />
#Inside that directory create a directory named LC_MESSAGES.<br />
#Now create a language file with poEdit. Save the (yet) empty file to that dir (in the /locale/your_language_code/LC_MESSAGES/ folder). The file has to be be named according to your language-code. (look into the other directory for examples)<br />
#In poEdit do the following:<br />
##Open menu ''Catalog/Settings'', enter the ''Paths''-Tab<br />
##Delete the existing path and add a new one pointing to the downloaded LimeSurvey sources<br />
##Click on the ''Keywords'' tab, click on new item<br />
##Add the keywords: 'gT', 'eT', 'neT:1,2', and 'ngT:1,2' (without quotes).<br />
##On the project info tab you will find "Plural Forms" at the bottom. Just copy & paste the following into this field: 'nplurals=2; plural=n != 1;' (without quotes, again)<br />
##Press 'OK' to close the settings.<br />
##Open the menu entry ''Catalog/Update from Sources''<br />
##If you did everything right it should now find all untranslated strings and add it to the .po file<br />
#Translate everything you need to translate. The yellowish marked items are 'unclear' translations and you should check/correct these first. Remember that is better to have no translation than a wrong one!<br />
#To make LimeSurvey know about your language you must add it to the file classes/core/surveytranslator.php. Open that file with a text editor and add your language in the same way the other languages in that file are defined.<br />
#Save. Send the new .po-File and the updated surveytranslator.php file to translations@limesurvey.org . If you want your name to be linked from/shown on the team-page please write so in the e-mail!</div>Adminhttps://manual.limesurvey.org/index.php?title=Translating_LimeSurvey&diff=3454Translating LimeSurvey2012-06-21T11:11:34Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Translating LimeSurvey=<br />
<br />
Wouldn't it be great to have LimeSurvey completely translated to your mother-language? The LimeSurvey team is always on the look-out for new translations and for people who help to update the existing ones. Please read these instructions and don't hesitate to send email to translations@limesurvey.org if you are in doubt or have any other questions.<br />
<br />
~tc~<br />
<br />
(alias(LimeSurvey 1.x Translating LimeSurvey))<br />
<br />
~/tc~<br />
<br />
=How to translate - Step-by-Step instructions=<br />
<br />
==Updating an existing translation==<br />
#Create a free user account on [http://www.limesurvey.org].<br />
#Note: If you already have an account please log in once at [http://www.limesurvey.org] first!<br />
#Go to [http://translate.limesurvey.org], login there with the same user name and password.<br />
#Pick the LimeSurvey version you want to translate for and start translating. After your translation was approved it will automatically be released in the weekly stable release and your username will be credited in the change log.<br />
#If you are interested to become a prime translator for your language with the ability to approve newly translated string please contact us at translations@limesurvey.org . Such a position requires a maximum of about an hour of work per week - important to us is that you are reliable doing this.<br />
<br />
==Customize an existing translation for your personal LimeSurvey installation.==<br />
<br />
Sometimes you want to modify an existing translation so it accommodates your particular survey situation better. In that case do the following:<br />
#Go to http://translate.limesurvey.org(external link), pick the LimeSurvey version you want to translate for and the particular language you want to modify.<br />
#On the bottom of the translation page you will find an option to export all strings as .po file. Do that and save it as *.po file to your local harddisk.<br />
#Download and install poEDIT(external link)<br />
#Start poEdit end edit the downloaded *.po file - modify the particular translations.<br />
#Save. When you save the .po file then automatically a .mo file is created too. That is the one LimeSurvey will read from.<br />
#Place the particular .mo file in the right language folder in /locale by replacing the existing one - for example for French this would be /locale/fr/LC_MESSAGES/fr.po<br />
#Done.<br />
<br />
<div class="simplebox"> Note: If you are using LimeService they will be happy to place the file for you. Just create a support ticket.</div><br />
<br />
==Creating a new translation==<br />
#First of all get access to the development version of LimeSurvey. You can find detailed instructions how to get your hands on it on this page: [[Accessing the source code]]<br />
#Download and install [http://www.poedit.net/download.php poEDIT]<br />
#Now you have to find out the language-code for your language - you can search for your language-code in the [http://people.w3.org/rishida/utils/subtags/ IANA Language Subtag Registry].<br />
#Go to the /locale directory and create a directory named after your language code.<br />
#Inside that directory create a directory named LC_MESSAGES.<br />
#Now create a language file with poEdit. Save the (yet) empty file to that dir (in the /locale/your_language_code/LC_MESSAGES/ folder). The file has to be be named according to your language-code. (look into the other directory for examples)<br />
#In poEdit do the following:<br />
##Open menu ''Catalog/Settings'', enter the ''Paths''-Tab<br />
##Delete the existing path and add a new one pointing to the downloaded LimeSurvey sources<br />
##Click on the ''Keywords'' tab, click on new item<br />
##Add the keywords: 'gT', 'eT', 'neT:1,2', and 'ngT:1,2' (without quotes).<br />
##On the project info tab you will find "Plural Forms" at the bottom. Just copy & paste the following into this field: 'nplurals=2; plural=n != 1;' (without quotes, again)<br />
##Press 'OK' to close the settings.<br />
##Open the menu entry ''Catalog/Update from Sources''<br />
##If you did everything right it should now find all untranslated strings and add it to the .po file<br />
#Translate everything you need to translate. The yellowish marked items are 'unclear' translations and you should check/correct these first. Remember that is better to have no translation than a wrong one!<br />
#To make LimeSurvey know about your language you must add it to the file classes/core/surveytranslator.php. Open that file with a text editor and add your language in the same way the other languages in that file are defined.<br />
#Save. Send the new .po-File and the updated surveytranslator.php file to translations@limesurvey.org . If you want your name to be linked from/shown on the team-page please write so in the e-mail!</div>Adminhttps://manual.limesurvey.org/index.php?title=Translating_LimeSurvey&diff=3455Translating LimeSurvey2012-06-21T11:06:23Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Translating LimeSurvey=<br />
<br />
Wouldn't it be great to have LimeSurvey completely translated to your mother-language? The LimeSurvey team is always on the look-out for new translations and for people who help to update the existing ones. Please read these instructions and don't hesitate to send email to translations@limesurvey.org if you are in doubt or have any other questions.<br />
<br />
~tc~<br />
<br />
(alias(LimeSurvey 1.x Translating LimeSurvey))<br />
<br />
~/tc~<br />
<br />
=How to translate - Step-by-Step instructions=<br />
<br />
==Updating an existing translation==<br />
#Create a free user account on [http://www.limesurvey.org].<br />
#Note: If you already have an account please log in once at [http://www.limesurvey.org] first!<br />
#Go to [http://translate.limesurvey.org], login there with the same user name and password.<br />
#Pick the LimeSurvey version you want to translate for and start translating. After your translation was approved it will automatically be released in the weekly stable release and your username will be credited in the change log.<br />
#If you are interested to become a prime translator for your language with the ability to approve newly translated string please contact us at translations@limesurvey.org . Such a position requires a maximum of about an hour of work per week - important to us is that you are reliable doing this.<br />
<br />
==Customize an existing translation==<br />
<br />
Sometimes you want to modify an existing translation so it accommodates your particular survey situation better. In that case do the following:<br />
*Go to http://translate.limesurvey.org(external link), pick the LimeSurvey version you want to translate for and the particular language you want to modify.<br />
*On the bottom of the translation page you will find an option to export all strings as .po file. Do that and save it as *.po file to your local harddisk.<br />
*<br />
<br />
==Creating a new translation==<br />
#First of all get access to the development version of LimeSurvey. You can find detailed instructions how to get your hands on it on this page: [[Accessing the source code]]<br />
#Download and install [http://www.poedit.net/download.php poEDIT]<br />
#Now you have to find out the language-code for your language - you can search for your language-code in the [http://people.w3.org/rishida/utils/subtags/ IANA Language Subtag Registry].<br />
#Go to the /locale directory and create a directory named after your language code.<br />
#Inside that directory create a directory named LC_MESSAGES.<br />
#Now create a language file with poEdit. Save the (yet) empty file to that dir (in the /locale/your_language_code/LC_MESSAGES/ folder). The file has to be be named according to your language-code. (look into the other directory for examples)<br />
#In poEdit do the following:<br />
##Open menu ''Catalog/Settings'', enter the ''Paths''-Tab<br />
##Delete the existing path and add a new one pointing to the downloaded LimeSurvey sources<br />
##Click on the ''Keywords'' tab, click on new item<br />
##Add the keywords: 'gT', 'eT', 'neT:1,2', and 'ngT:1,2' (without quotes).<br />
##On the project info tab you will find "Plural Forms" at the bottom. Just copy & paste the following into this field: 'nplurals=2; plural=n != 1;' (without quotes, again)<br />
##Press 'OK' to close the settings.<br />
##Open the menu entry ''Catalog/Update from Sources''<br />
##If you did everything right it should now find all untranslated strings and add it to the .po file<br />
#Translate everything you need to translate. The yellowish marked items are 'unclear' translations and you should check/correct these first. Remember that is better to have no translation than a wrong one!<br />
#To make LimeSurvey know about your language you must add it to the file classes/core/surveytranslator.php. Open that file with a text editor and add your language in the same way the other languages in that file are defined.<br />
#Save. Send the new .po-File and the updated surveytranslator.php file to translations@limesurvey.org . If you want your name to be linked from/shown on the team-page please write so in the e-mail!</div>Adminhttps://manual.limesurvey.org/index.php?title=Translating_LimeSurvey&diff=3456Translating LimeSurvey2012-06-21T11:01:25Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Translating LimeSurvey=<br />
<br />
Wouldn't it be great to have LimeSurvey completely translated to your mother-language? The LimeSurvey team is always on the look-out for new translations and for people who help to update the existing ones. Please read these instructions and don't hesitate to send email to translations@limesurvey.org if you are in doubt or have any other questions.<br />
<br />
~tc~<br />
<br />
(alias(LimeSurvey 1.x Translating LimeSurvey))<br />
<br />
~/tc~<br />
<br />
=How to translate - Step-by-Step instructions=<br />
<br />
==Updating an existing translation==<br />
#Create a free user account on [http://www.limesurvey.org].<br />
#Note: If you already have an account please log in once at [http://www.limesurvey.org] first!<br />
#Go to [http://translate.limesurvey.org], login there with the same user name and password.<br />
#Pick the LimeSurvey version you want to translate for and start translating. After your translation was approved it will automatically be released in the weekly stable release and your username will be credited in the change log.<br />
#If you are interested to become a prime translator for your language with the ability to approve newly translated string please contact us at translations@limesurvey.org . Such a position requires a maximum of about an hour of work per week - important to us is that you are reliable doing this.<br />
<br />
==Creating a new translation==<br />
#First of all get access to the development version of LimeSurvey. You can find detailed instructions how to get your hands on it on this page: [[Accessing the source code]]<br />
#Download and install [http://www.poedit.net/download.php poEDIT]<br />
#Now you have to find out the language-code for your language - you can search for your language-code in the [http://people.w3.org/rishida/utils/subtags/ IANA Language Subtag Registry].<br />
#Go to the /locale directory and create a directory named after your language code.<br />
#Inside that directory create a directory named LC_MESSAGES.<br />
#Now create a language file with poEdit. Save the (yet) empty file to that dir (in the /locale/your_language_code/LC_MESSAGES/ folder). The file has to be be named according to your language-code. (look into the other directory for examples)<br />
#In poEdit do the following:<br />
##Open menu ''Catalog/Settings'', enter the ''Paths''-Tab<br />
##Delete the existing path and add a new one pointing to the downloaded LimeSurvey sources<br />
##Click on the ''Keywords'' tab, click on new item<br />
##Add the keywords: 'gT', 'eT', 'neT:1,2', and 'ngT:1,2' (without quotes).<br />
##On the project info tab you will find "Plural Forms" at the bottom. Just copy & paste the following into this field: 'nplurals=2; plural=n != 1;' (without quotes, again)<br />
##Press 'OK' to close the settings.<br />
##Open the menu entry ''Catalog/Update from Sources''<br />
##If you did everything right it should now find all untranslated strings and add it to the .po file<br />
#Translate everything you need to translate. The yellowish marked items are 'unclear' translations and you should check/correct these first. Remember that is better to have no translation than a wrong one!<br />
#To make LimeSurvey know about your language you must add it to the file classes/core/surveytranslator.php. Open that file with a text editor and add your language in the same way the other languages in that file are defined.<br />
#Save. Send the new .po-File and the updated surveytranslator.php file to translations@limesurvey.org . If you want your name to be linked from/shown on the team-page please write so in the e-mail!</div>Adminhttps://manual.limesurvey.org/index.php?title=Translating_LimeSurvey&diff=3457Translating LimeSurvey2012-06-21T11:01:09Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Translating LimeSurvey=<br />
<br />
Wouldn't it be great to have LimeSurvey completely translated to your mother-language? The LimeSurvey team is always on the look-out for new translations and for people who help to update the existing ones. Please read these instructions and don't hesitate to send email to translations@limesurvey.org if you are in doubt or have any other questions.<br />
<br />
~tc~<br />
<br />
(alias(LimeSurvey 1.x Translating LimeSurvey))<br />
<br />
~/tc~<br />
<br />
=How to translate - Step-by-Step instructions=<br />
<br />
==Updating an existing translation for the next release==<br />
#Create a free user account on [http://www.limesurvey.org].<br />
#Note: If you already have an account please log in once at [http://www.limesurvey.org] first!<br />
#Go to [http://translate.limesurvey.org], login there with the same user name and password.<br />
#Pick the LimeSurvey version you want to translate for and start translating. After your translation was approved it will automatically be released in the weekly stable release and your username will be credited in the change log.<br />
#If you are interested to become a prime translator for your language with the ability to approve newly translated string please contact us at translations@limesurvey.org . Such a position requires a maximum of about an hour of work per week - important to us is that you are reliable doing this.<br />
<br />
==Creating a new translation==<br />
#First of all get access to the development version of LimeSurvey. You can find detailed instructions how to get your hands on it on this page: [[Accessing the source code]]<br />
#Download and install [http://www.poedit.net/download.php poEDIT]<br />
#Now you have to find out the language-code for your language - you can search for your language-code in the [http://people.w3.org/rishida/utils/subtags/ IANA Language Subtag Registry].<br />
#Go to the /locale directory and create a directory named after your language code.<br />
#Inside that directory create a directory named LC_MESSAGES.<br />
#Now create a language file with poEdit. Save the (yet) empty file to that dir (in the /locale/your_language_code/LC_MESSAGES/ folder). The file has to be be named according to your language-code. (look into the other directory for examples)<br />
#In poEdit do the following:<br />
##Open menu ''Catalog/Settings'', enter the ''Paths''-Tab<br />
##Delete the existing path and add a new one pointing to the downloaded LimeSurvey sources<br />
##Click on the ''Keywords'' tab, click on new item<br />
##Add the keywords: 'gT', 'eT', 'neT:1,2', and 'ngT:1,2' (without quotes).<br />
##On the project info tab you will find "Plural Forms" at the bottom. Just copy & paste the following into this field: 'nplurals=2; plural=n != 1;' (without quotes, again)<br />
##Press 'OK' to close the settings.<br />
##Open the menu entry ''Catalog/Update from Sources''<br />
##If you did everything right it should now find all untranslated strings and add it to the .po file<br />
#Translate everything you need to translate. The yellowish marked items are 'unclear' translations and you should check/correct these first. Remember that is better to have no translation than a wrong one!<br />
#To make LimeSurvey know about your language you must add it to the file classes/core/surveytranslator.php. Open that file with a text editor and add your language in the same way the other languages in that file are defined.<br />
#Save. Send the new .po-File and the updated surveytranslator.php file to translations@limesurvey.org . If you want your name to be linked from/shown on the team-page please write so in the e-mail!</div>Adminhttps://manual.limesurvey.org/index.php?title=Installation_-_LimeSurvey_CE&diff=1588Installation - LimeSurvey CE2012-06-19T10:26:10Z<p>Admin: </p>
<hr />
<div><br />
<div style="float:right;"><div class="simplebox">Additional pages:{toc}</div></div> {maketoc title="On this page:"}<br />
<br />
=1. Make sure you can use LimeSurvey on your website=<br />
<br />
Make sure your server meets the following additional requirements:<br />
<br />
Required:<br />
* Minimum 80 MB disk space<br />
* MySQL 4.1.0 or later '''OR''' Microsoft SQL Server 2000 or later '''OR''' Postgres 8.1 or later<br />
* PHP 5.1.2 or later with the following modules/libraries enabled:<br />
** mbstring (Multibyte String Functions) extension library (see also [http://docs.limesurvey.org/tiki-index.php?page=Installation+FAQ#What_is_this_mbstring_Multibyte_String_Functions_library_ Installation FAQ])<br />
** mysql5 or pgsql PHP library (which is standard with hosting providers - if you have setup your own server make sure it is installed)<br />
<br />
Note: We assume that you don't have any PHP standard libraries explicitly deactivated (like sessions, pcre, ctype or others).<br />
<br />
Optional PHP Extensions:<br />
* '''GD-Library''' '''with FreeType support''' installed is needed for captchas or nice charts in statistics - see [http://de3.php.net/manual/en/image.setup.php PHP GD-Library Extension documentation]<br />
* '''IMAP''' (pretty standard) is needed for the [[Email bounce tracking system]] - see [http://www.php.net/manual/en/imap.setup.php PHP IMAP Extension documentation]<br />
* '''LDAP''' installed is needed to import tokens using LDAP - see [http://de.php.net/manual/en/ldap.installation.php PHP LDAP Documentation]<br />
* '''Zip''' (pretty standard) for template upload and import resources Zip archives - see [http://www.php.net/manual/en/zip.setup.php PHP Zip Extension documentation]<br />
* '''Zlib''' (pretty standard) is needed for the [[ComfortUpdate]] - see [http://www.php.net/manual/en/zlib.setup.php PHP Zlib Extension documentation]<br />
<br />
In most cases your webspace provider or system administrator will be able to help you out on these optional components.<br />
<br />
If you want to try LimeSurvey on your local machine we recommend [http://www.apachefriends.org/en/xampp.html XAMPP] which is an easy to install software package containing a complete web server with Apache, MySQL, PHP and Perl. LimeSurvey will run on XAMPP with no configuration needed.<br />
<br />
If you want to run Microsoft's IIS server take a look at "[[Installation of LimeSurvey on a Windows XP machine]]" and "[[Installation on XP with IIS]]".<br />
<br />
==1.1 Hosting for LimeSurvey==<br />
<br />
LimeSurvey should work with most hosting companies which provide PHP and MYSQL. If you want a ready-installed version of LimeSurvey consider using LimeService, else check out our [[LimeSurvey-compatible hosting companies|list of LimeSurvey-compatible hosting companies]].<br />
<br />
=2. Download the LimeSurvey package=<br />
<br />
[http://www.limesurvey.org/en/download Download] the latest stable LimeSurvey zip package (there are also gzip, bz2 and 7zip packages available for your convenience) and save it to your local disk.<br />
<br />
=3. Unpack the LimeSurvey package=<br />
<br />
Uncompress the zip file into a dedicated directory/folder using your preferred compression software. When you uncompress the file make sure that you uncompress the directory structure with the files (this is default behavior for most compression programs). The path name for the installation directory should not include '''(''' or ''')''' characters, but may include the '''space''' character<br />
<br />
=4. Collect information about your server=<br />
<br />
You will need to know the following things to install LimeSurvey on your web server correctly:<br />
*Your intended website URL where your scripts will reside (e.g: ''http://my.domain.com/limesurvey'')<br />
*The physical disk location on your server where your scripts will reside (ie: ''/home/usr/htdocs/limesurvey'')<br />
*The IP/net location of your database server (ie: ''localhost'')<br />
*If your database server uses a non-standard port find out which port it is.<br />
*Your username and password for your database server<br />
*With most providers you can't let the script create the database but have to do it yourself. If you are using such a provider please create a database (for example ''limesurvey'') yourself.<br />
<br />
=5. Configure LimeSurvey=<br />
<br />
Now open the file ''config.php'' in the ''/limesurvey/'' root directory with your preferred text editor.<br />
<br />
==5.1 Basic settings==<br />
<br />
Walk through config.php and check/configure the following settings:<br />
*'''$databasetype:''' This is the database type. At the moment you can set here "mysql" for the MySQL database server, "odbc_mssql" or "mssqlnative" (requires the native MSSQL PHP driver from Microsoft) for Microsoft SQL server and "postgres" for Postgres SQL Server. At least those are the ones that have been tested. (:biggrin:)<br />
<br />
<div class="simplebox">[[File:help.png]] '''Important:''' If you have Microsoft SQL server make sure your database is using a case-insensitive collation (should be set by default).</div><br />
*'''$databaselocation:''' Set this to the IP/net location of your database server. In most cases "localhost" will work. If you are using MSSQL try to use <MACHINENAME>/<SERVERNAME> instead.<br />
*'''$databasename:''' The name of the database on your database server that you will be using for LimeSurvey. If you have high level permissions on the server, you can create a database from LimeSurvey. In this case, put whatever the database will be called into this setting. Alternatively you can use the name of a previously created database here. If you provide an existing database name make sure the database does not contain old tables of LimeSurvey.<br />
*'''$databaseuser:''' Your database server user name<br />
<br />
<div class="simplebox">[[File:help.png]] '''Important:''' If you are using Postgres make sure your user is also the database owner.</div><br />
*'''$databasepass:''' Your database server password<br />
*'''$dbprefix:''' You can leave this setting blank (ie: $dbprefix="";) if you are using a separate database for LimeSurvey alone. If you want to share a database between LimeSurvey and other database applications, add a prefix to this setting. The recommended prefix is "lime_", but really - this is up to you. ''Note: Creating a database and a username in MySQL with command line is described in [[Installation FAQ]].''<br />
*'''$rooturl:''' This should be set to the URL location of your LimeSurvey scripts. If you copied the Limsurvey files into the folder ''limesurveyfolder'' you have to rename ''{$_SERVER<nowiki>[</nowiki>'SERVER_NAME']}/limesurvey'' to the folder name you have chosen (''{$_SERVER<nowiki>[</nowiki>'SERVER_NAME']}limesurveyfolder''). The variable {$_SERVER<nowiki>[</nowiki>'SERVER_NAME']} will attempt to do determine your domain name atomatically, so usually don't change it. If it doesn't work, set this to full server URL - for example "http://www.mydomain.com/limesurvey"). If you want LimeSurvey to '''only''' use SSL change http to https (provided that you have SSL certificates correctly installed and configured on your server). If you want to use http & https at the same time just leave this setting at http.<br />
*'''$rootdir:''' Usually you don't need to change this. It should be set to the physical disk location of your scripts. The default setting will attempt to do this for you, so most probably you won't need to change anything here (the section <nowiki>"dirname('''FILE''');"</nowiki> tries to do this automatically). If it doesn't work, type the disk location in manually - for example ''/home/public_html/limesurvey''.<br />
*'''$defaultuser:''' When the script has access control turned on this is the default user that is created when LimeSurvey first sets up your security settings.<br />
*'''$defaultpass:''' When the script has access control turned on this is the default password that is created when LimeSurvey first sets up your security settings. <br/><br />
<br />
<div class="simplebox">[[File:help.png]] '''Note:''' Both settings ($defaultuser and $defaultpass) are used '''only''' for the initial setup. After LimeSurvey has set up the database these settings are not used at all.</div><br />
<br />
==5.2 Optional settings==<br />
<br />
There are many more optional settings you can set in config.php. Most of them are for installation only and can later be change in the [[Global settings]] dialog. For more information on these optional settings please check out the [[Optional settings|this page]]. However for a basic setup just continue with the next step.<br />
<br />
=6. Upload the files to your web server=<br />
<br />
Using your FTP program, connect to your web server and create a directory to store your scripts. Then upload the files using the directory structure they are in. Make sure you '''upload the files in binary mode''' (check the settings of your FTP program). Please note that uploading in ASCII mode can lead to uncommon errors (e.g. 'class not found' error during installation), also images may not be uploaded correctly.<br />
<br />
=7. Set Directory permissions=<br />
<br />
For the script to work properly it needs certain access to some directories - this applies especially to Linux/*nix systems.<br />
*The '''"/limesurvey/tmp"''' directory is used for imports & uploads and should be set to ''Read & Write'' for your webserver.<br />
*The '''"/limesurvey/upload/"''' directory and all its subdirectories must also have ''Read & Write'' for your webserver in order to enable picture and media files upload.<br />
*The other directories can be set to ''Read Only'' or in Linux/Unix. You may wish to set the permissions on each file within the /limesurvey/admin directory to ''Read Only''.<br />
<br />
<div class="simplebox">[[File:help.png]] '''Hint:''' If you are using Linux then depending on your webserver configuration you will have to chmod the rights on the writable folders to 755 or 777. Try 755 first - if it does not work 'upgrade' to 777.</div><br />
<br />
=8. Run the installation script=<br />
<br />
'''Go to "http://your.domain.com/limesurvey/admin/install"'''. If you configured everything correctly you will be asked to create the database and/or create the tables inside the database. Limesurvey then creates the needed tables in the database.<br />
<br />
After the script shows that it successfully created the tables, you will be prompted to '''rename or delete the ''/admin/install'' directory''' - so just do it (:biggrin:).<br />
<br />
=9. Connect to the administration script for the first time=<br />
<br />
You are done! Open your browser and enter the URL of your admin.php script. Assuming you used LimeSurvey as the directory name to store the files in, this will be something like "http://your.domain.com/limesurvey/admin/admin.php".<br />
<br />
You should get a login screen. The default login credentials are<br />
<br />
<div class="simplebox"> User: admin<br />
<br />
Password: password<br />
<br />
</div><br />
<br />
You will be prompted to change the default password after you logged in. Have fun!<br />
<br />
=10. What if I have problems...=<br />
<br />
Like all computer programs, most of the time things will work just like the instructions say, but sometimes they just won't. There are too many possible reasons for things not going according to plan to describe here. If you have trouble, first check out the [[Installation FAQ]]. If you don't find your answer there please post your problem and any error messages in the [http://www.limesurvey.org/en/forum LimeSurvey forums] on limesurvey.org or join the [irc://irc.freenode.net/limesurvey|LimeSurvey IRC channel]:<br />
<br />
<div class="simplebox"><center>'''[http://www.limesurvey.org/en/support/live-chat Direct link to the Official LimeSurvey IRC Channel]'''</center></div></div>Adminhttps://manual.limesurvey.org/index.php?title=Upgrading_from_a_previous_version&diff=3572Upgrading from a previous version2012-05-31T19:15:10Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Before you start...=<br />
<br />
<span style='color:#FF0000'>... read this because it is very important: '''Always backup the files and the database of your current installation!!'''</span><br />
<br />
You can do this using a database adminstration tool like [http://www.phpmyadmin.net phpMyAdmin] etc. and a file manager! If you don't know how to do this you should better not proceed but ask someone who knows or use the [[ComfortUpdate]] instead.<br />
<br />
=The quick way (for minor version changes)=<br />
<br />
You can use this instruction if you are doing a minor upgrade (for example from 1.86 to 1.87)<br />
*Backup your files and database (did we already mention that?)<br />
*Delete all the old files/directory except for<br />
**/config.php<br />
**/upload directory<br />
*Copy the new files from the new LimeSurvey package to the existing location. Be careful to NOT overwrite your existing config.php (even if you do: You made a backup, didn't you, heh, HEH?). You can overwrite all other existing files.<br />
*'''After the upgrade: Clear your browser cache and cookies!'''<br />
<br />
=The thorough way (for big version jumps)=<br />
<br />
Unfortunately there are a couple of things to consider, so please scan the following instruction closely.<br />
<br />
==Upgrading from version 1.50 or later to the latest 1.xx series==<br />
#[http://www.limesurvey.org/download Download] the latest version of LimeSurvey.<br />
# Prepare and backup the old installation<br />
## Backup your installation directory files and SQL-based database just in case.<br />
### At the command-line level, make a '''.zip''' or similar archive of the whole installation directory tree of files. e.g. tar cvzf foo.tgz cps100 will tar and zip the whole of the cps100 directory<br />
### Using phpMyAdmin or similar to export all tables; or using the '''Limesurvey Administration''' button [[File:button-export-sql.png]] to backup the entire database<br />
## Copy your '''config.php''' file ,modified '''template''' directories and the /upload directory separately for quick access later.<br />
# Replace all the installation directory files<br />
## Delete all old files in the existing installation directory<br />
## Upload and unpack the new code version into the same installation directory<br />
## Edit or replace the '''config.php''' file:<br />
### If your previous version was < 1.70: Edit the new '''config.php''' to reflect changed settings in the backup '''config.php''' file. '''Do not just overwrite the new '''config.php''' with your old one!'''<br />
### If your previous version was >= 1.70: Simply replace the new '''config.php''' with your backup '''config.php''' (as the file format has not changed).<br />
## If your previous version was older than 1.90: Copy any customized templates to /upload/templates - you will also need to rename each template directory whose name matches an existing template in /templates.<br />
## Copy your /upload directory back to the old location<br />
## Double check the '''permissions''' set on the directories (write access to '''/tmp''', '''/upload''' and and their subdirectories is required) as described in [http://docs.limesurvey.org/tiki-index.php?page=Installation&structure;=English+Instructions+for+LimeSurvey#Set_Directory_permissions Installation]<br />
# Finishing the installation<br />
## Once you open the URL to your LimeSurvey administration the database tables will be updated after confirmation<br />
## Remove or rename the '''/admin/install''' directory as/if instructed by the installation script<br />
## Check if any special, manual checks apply as listed below<br />
# You are done (:biggrin:). If you notice any problems after the upgrade: Clear your browser cache and cookies!<br />
<br />
<div class="simplebox">'''Special checks after an upgrade''':<br />
*'''from any earlier version to 1.92''': The '''templates''' have been changed in a lot of places. Please check your customized templates if they are still looking right. If not you will have to edit your templates accordingly (check out the original templates to see what was changed)<br/><br />
*'''from a version earlier than v1.53''': When upgrading from a version before v1.53 to the latest version, please check the '''global user rights''' of each user. There was a new '''superadmin''' right introduced in v1.53 that can give a user the same privilege as the master administration account created during the install. The upgrade script is guessing who to give this right to in the older versions. As this is not perfect, it should be carefully checked.</div><br />
<br />
==Upgrading from a version earlier than v1.50 (v1.0 through v1.44)==<br />
<br />
Since the data structure and a lot of other things were changed, '''upgrading from any version previous to v1.50 is NOT possible'''. If you have old survey structure files with a *.sql extension the only way to get these into a newer version is to install [http://www.limesurvey.org/en/archived-releases/finish/24-archived-releases/289-limesurvey150zip version 1.50], import the .sql file(s) there, then upgrade that version to the most recent LimeSurvey version. See the also then page [[Transferring an installation]] for more details.<br />
<br />
=Upgrade FAQ=<br />
<br />
==What is the most actual LimeSurvey version that still supports PHP4?==<br />
<br />
The last release offering PHP4 support was version 1.82+.<br />
<br />
==Can I upgrade even if I have active surveys?==<br />
<br />
Yes, you can. Exceptions may be mentioned in the thorough instructions above. We strongly advise to test your surveys after upgrade to check if your design templates still work alright.<br />
<br />
==What is best way to port LimeSurvey *.sql survey structure files to the latest version?==<br />
<br />
Install version 1.50, import the file and export the survey structure to the newer .csv format. The latest version still can read the .csv survey structure format.</div>Adminhttps://manual.limesurvey.org/index.php?title=The_LimeSurvey_project_team&diff=3337The LimeSurvey project team2012-05-31T07:14:12Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Project lead=<br />
*[[UserPage c_schmitz|Carsten Schmitz]] (c_schmitz)<br />
<br />
==Development leads==<br />
*[[Thibault Le Meur]] (lemeur)<br />
<br />
===Quality Assurance===<br />
*[[UserPage Mazi|Marcel Minke]] (Mazi)<br />
* Maybe you?<br />
<br />
===Core developers===<br />
*[[Thibault Le Meur]] (lemeur)<br />
*[[UserPage machaven|David Olivier]] (machaven)<br />
*[[UserPage jcleeland|Jason Cleeland]] (jcleeland)<br />
*[[UserPage TMSWhite|Thomas White]] (TMSWhite) - [[Expression Manager|Expression Manager]]<br />
<br />
===Translations manager===<br />
* Maybe you?<br />
<br />
==Support==<br />
<br />
===International support===<br />
*[[UserPage Mazi|Marcel Minke]] (Mazi)<br />
<br />
===National support===<br />
*French: [[UserPage Shnoulle|Denis Chenu]] (DenisChenu) / [[UserPage Shnoulle|Nicolas Goyer]] (Nickko)<br />
*German: [[UserPage Mazi|Marcel Minke]] (Mazi)<br />
*Greek: [[Eleni Konstantinou]] (konstantinou)<br />
*Spanish: [[J. Luis Simon]] (jlsimon)<br />
<br />
==Translators==<br />
<br />
Translations are hard work and we are very thankful for all the translations that have been done by this people. We are particularly looking for supervising translators for each language - if you are interested please get in touch with us (translations@limesurvey.org).<br />
<br />
If you just want to help with translations please have have a look at our [[Translating LimeSurvey|translations instructions]].<br />
<br />
<div class="simplebox"><center>'''Dear translators''' - We get a lot of updated translations every week. If you think your name should show up here but it doesn't then feel free to add it yourself or complain immediately to translations@limesurvey.org !</center></div><br />
<br />
{|<br />
|Language||Supervising translator||Translators<br />
|-<br />
|[[File:af.png]] '''Afrikaans''' || || Piet Vermeulen<br />
|-<br />
|[[File:al.png]] '''Albanian''' || || Maro&scaron; Koll&aacute;r<br />
|-<br />
|[[File:et.png]] '''Amharic''' ||Mezene Worku (mezwor)||<br />
|-<br />
|'''Basque'''|| ||Juan Ezeiza<br />
|-<br />
|[[File:bg.png]] '''Bulgarian'''|| || Nikolay Tsanov, Alex Simidchiev<br />
|-<br />
|[[File:cn.png]] '''Chinese (Simplified)'''|| ||Thomas Lee, Liang Zhao<br />
|-<br />
|[[File:cn.png]] '''Chinese (Traditional - Hong Kong)'''|| [http://http://www.pstudy.net Mark Yeung]<br />
|-<br />
|[[File:hr.png]] '''Croatian'''||Igor Dobrača (rovinj)||Nino Cosic<br />
|-<br />
|[[File:cz.png]] '''Czech'''||Lukas Slansky (slansky)||<br />
|-<br />
|[[File:dk.png]] '''Danish'''|| ||Mikkel Skovgaard S&oslash;rensen, Rolf Njor Jensen<br />
|-<br />
|[[File:nl.png]] '''Dutch'''|| ||Johan Geertsma, Hans Fraiponts, Ronald Leenes, Peter De Berdt, Han Velthuis<br />
|-<br />
|[[File:fi.png]] '''Finnish'''|| ||Juuso Heinisuo<br />
|-<br />
|[[File:fr.png]] '''French'''|| ||Sebastien Gaugry, Pascal Bastien<br />
|-<br />
|'''Galician'''|| [http://calidonia.eu/ Carlos Neira Cortizas]<br />
|-<br />
|[[File:de.png]] '''German'''||Patrick Drews (PatrickDrews)||Carsten Schmitz, Josef Prandstetter, Peter Sereinigg,[[UserPage Mazi||Marcel Minke]]<br />
|-<br />
|[[File:de.png]] '''German informal'''||Patrick Drews (PatrickDrews)||Carsten Schmitz, Josef Prandstetter, Peter Sereinigg,[[UserPage Mazi||Marcel Minke]]<br />
|-<br />
|[[File:gr.png]] '''Greek'''|| [http://www.mendrinos.com/ Artemis Mendrinos], Eleni Konstantinou, Georgallidie Eleni, Manolis Stamatogiannakis, Yiannos Katsirintakis, Nikos Korfiatis, [http://www.math.upatras.gr/~chrodost/ Christos Rodosthenous]<br />
|-<br />
|[[File:hu.png]] '''Hungarian'''|| ||Daniel Dobosi,David Selmeczi<br />
|-<br />
|[[File:id.png]] '''Indonesian'''|| ||Lukas<br />
|-<br />
|[[File:it.png]] '''Italian'''||Luciano Fanfoni (lfanfoni)||Mario Marani, Gabriele Carioli, Lorenzo Vigentini, Edita Paulisic<br />
|-<br />
|[[File:jp.png]] '''Japanese'''|| [http://www.offiba.com Hiroki Yoshino], Masaru Ryumae<br />
|-<br />
|[[File:mt.png]] '''Maltese'''|| ||Glorianne Bezzina, Richard Pullicino<br />
|-<br />
|[[File:no.png]] '''Norwegian bokm&aring;l'''|| ||Odd-Jarle Kristoffersen, Eirik Sunde, P&aring;l Monstad<br />
|-<br />
|[[File:no.png]] '''Norwegian nynorsk'''|| ||Guttorm Flatab&oslash;<br />
|-<br />
|[[File:pl.png]] '''Polish'''||Elżbieta Lesińska (elisa)||Maciej Zawado, Damian Kubiak<br />
|-<br />
|[[File:pt.png]] '''Portuguese'''|| ||Clemente Aguia, Rosaura Gazzola, Job Vieira L&uacute;cio<br />
|-<br />
|[[File:br.png]] '''Portuguese (Brazil)'''||Mauricio Furtado (mauriciofurtado)||Andr&eacute;a Sim&otilde;es, De Lucca, Anderson La&eacute;cio Galindo Trindade<br />
|-<br />
|[[File:ro.png]] '''Romanian'''|| ||Bogdan Anastasiei<br />
|-<br />
|[[File:ru.png]] '''Russian'''|| ||Alexei G. Tchernov, Alexander Shilovv<br />
|-<br />
|[[File:si.png]] '''Slovenian'''|| ||Gasper Koren, Matej Kovacic, Jure Cuhalev<br />
|-<br />
|[[File:es.png]] '''Spanish'''|| ||J. Luis Sim&oacute;n, Luis M. Mart&iacute;nez, Juan Rafael Fern&aacute;ndez, [[UserPage kadejo||Carlos Juan Mart&iacute;n P&eacute;rez]], Esteban Adri&aacute;n P&eacute;rez<br />
|-<br />
|[[File:cl.png]] '''Spanish (Chile)'''||Victor Pinto (SirCrovax)||<br />
|-<br />
|[[File:se.png]] '''Swedish'''|| ||Bj&ouml;rn Mildh, Niklas Andersson, Jonas Norlinder<br />
|-<br />
|[[File:tr.png]] '''Turkish'''||Kaya Zeren (kayazeren)||Murad Bayram, Cihat Karli<br />
|-<br />
|[[File:vn.png]] '''Vietnamese'''|| ||Vinh Ngo<br />
|-<br />
|'''Welsh'''|| ||John Moorhouse, Niklas Andersson<br />
|-<br />
|<br />
|}<br />
<br />
==Past Contributors & Developers==<br />
<br />
Thank you to the following people who have assisted/contributed templates, PHP-coding and many other things (ordered by last name):<br />
* C. Scott Ananian<br />
* James Barkley (barkleja)<br />
* Mitchell Butler - Did the basic artwork for 1.1x and higher<br />
* Evan Caylor<br />
* Jeff Clement<br />
* Sabine Cretella<br />
* Jos&eacute; Luis Ram&iacute;rez Cuevas<br />
* Jan Doemen<br />
* Daniel Eggel<br />
* Marco Ermini<br />
* Arjen Gideonse<br />
* Andreas Gleis<br />
* Peterjan Heyse<br />
* Yao-Wen (Wayne) Huong<br />
* Rolf Njor Jensen<br />
* Odd-Jarle Kristoffersen<br />
* Frederik Kunz<br />
* Johannes Kutsam<br />
* Michael Macasek (macasek)<br />
* Patrick McKnight<br />
* Mark Meytin<br />
* Ronald Mulder<br />
* Brian O'Neill<br />
* Darrel O'Pry<br />
* Ulrika Olsson<br />
* Esteban A. P&eacute;rez (dgeaperez)<br />
* Bas Peusens<br />
* Mark Rabideau<br />
* Philip Roy<br />
* Gustavo San Roman (leochaton)<br />
* Andreas Schroeter<br />
* Dominik Sommer<br />
* Juhan Sonin (jsonin)<br />
* Brian Staats (bstaats)<br />
* Wes Sonnenreich<br />
* Karyl Stein<br />
* Eirik Sunde<br />
* Rob Thew (rob.thew)<br />
* Fran&ccedil;ois Tissandier<br />
* Tor de Vries<br />
* Shawn Wales (swales)<br />
* Chris Wessells<br />
* Verified Voting Foundation<br />
<br />
...and many others (sorry if we've missed you!)<br />
<br />
Your assistance has been invaluable. Well done and thank you for contributing to the Open Source Community!</div>Adminhttps://manual.limesurvey.org/index.php?title=The_LimeSurvey_project_team&diff=3338The LimeSurvey project team2012-05-31T07:12:55Z<p>Admin: </p>
<hr />
<div><br />
__TOC__<br />
<br />
=Project lead=<br />
*[[UserPage c_schmitz|Carsten Schmitz]] (c_schmitz)<br />
<br />
==Development leads==<br />
*[[Thibault Le Meur]] (lemeur)<br />
<br />
===Quality Assurance===<br />
*[[UserPage Mazi|Marcel Minke]] (Mazi)<br />
* Maybe you?<br />
<br />
===Core developers===<br />
*[[Thibault Le Meur]] (lemeur)<br />
*[[UserPage machaven|David Olivier]] (machaven)<br />
*[[UserPage jcleeland|Jason Cleeland]] (jcleeland)<br />
*[[UserPage TMSWhite|Thomas White]] (TMSWhite) - [[Expression Manager|Expression Manager]]<br />
<br />
===Translations manager===<br />
* Maybe you?<br />
<br />
==Support==<br />
<br />
===International support===<br />
*[[UserPage Mazi|Marcel Minke]] (Mazi)<br />
<br />
===National support===<br />
*French: [[UserPage Shnoulle|Denis Chenu]] (Shnoulle) / [[UserPage Shnoulle|Nicolas GOYER]] (Nickko)<br />
*German: [[UserPage Mazi|Marcel Minke]] (Mazi)<br />
*Greek: [[Eleni Konstantinou]] (konstantinou)<br />
*Spanish: [[J. Luis Simon]] (jlsimon)<br />
<br />
==Translators==<br />
<br />
Translations are hard work and we are very thankful for all the translations that have been done by this people. We are particularly looking for supervising translators for each language - if you are interested please get in touch with us (translations@limesurvey.org).<br />
<br />
If you just want to help with translations please have have a look at our [[Translating LimeSurvey|translations instructions]].<br />
<br />
<div class="simplebox"><center>'''Dear translators''' - We get a lot of updated translations every week. If you think your name should show up here but it doesn't then feel free to add it yourself or complain immediately to translations@limesurvey.org !</center></div><br />
<br />
{|<br />
|Language||Supervising translator||Translators<br />
|-<br />
|[[File:af.png]] '''Afrikaans''' || || Piet Vermeulen<br />
|-<br />
|[[File:al.png]] '''Albanian''' || || Maro&scaron; Koll&aacute;r<br />
|-<br />
|[[File:et.png]] '''Amharic''' ||Mezene Worku (mezwor)||<br />
|-<br />
|'''Basque'''|| ||Juan Ezeiza<br />
|-<br />
|[[File:bg.png]] '''Bulgarian'''|| || Nikolay Tsanov, Alex Simidchiev<br />
|-<br />
|[[File:cn.png]] '''Chinese (Simplified)'''|| ||Thomas Lee, Liang Zhao<br />
|-<br />
|[[File:cn.png]] '''Chinese (Traditional - Hong Kong)'''|| [http://http://www.pstudy.net Mark Yeung]<br />
|-<br />
|[[File:hr.png]] '''Croatian'''||Igor Dobrača (rovinj)||Nino Cosic<br />
|-<br />
|[[File:cz.png]] '''Czech'''||Lukas Slansky (slansky)||<br />
|-<br />
|[[File:dk.png]] '''Danish'''|| ||Mikkel Skovgaard S&oslash;rensen, Rolf Njor Jensen<br />
|-<br />
|[[File:nl.png]] '''Dutch'''|| ||Johan Geertsma, Hans Fraiponts, Ronald Leenes, Peter De Berdt, Han Velthuis<br />
|-<br />
|[[File:fi.png]] '''Finnish'''|| ||Juuso Heinisuo<br />
|-<br />
|[[File:fr.png]] '''French'''|| ||Sebastien Gaugry, Pascal Bastien<br />
|-<br />
|'''Galician'''|| [http://calidonia.eu/ Carlos Neira Cortizas]<br />
|-<br />
|[[File:de.png]] '''German'''||Patrick Drews (PatrickDrews)||Carsten Schmitz, Josef Prandstetter, Peter Sereinigg,[[UserPage Mazi||Marcel Minke]]<br />
|-<br />
|[[File:de.png]] '''German informal'''||Patrick Drews (PatrickDrews)||Carsten Schmitz, Josef Prandstetter, Peter Sereinigg,[[UserPage Mazi||Marcel Minke]]<br />
|-<br />
|[[File:gr.png]] '''Greek'''|| [http://www.mendrinos.com/ Artemis Mendrinos], Eleni Konstantinou, Georgallidie Eleni, Manolis Stamatogiannakis, Yiannos Katsirintakis, Nikos Korfiatis, [http://www.math.upatras.gr/~chrodost/ Christos Rodosthenous]<br />
|-<br />
|[[File:hu.png]] '''Hungarian'''|| ||Daniel Dobosi,David Selmeczi<br />
|-<br />
|[[File:id.png]] '''Indonesian'''|| ||Lukas<br />
|-<br />
|[[File:it.png]] '''Italian'''||Luciano Fanfoni (lfanfoni)||Mario Marani, Gabriele Carioli, Lorenzo Vigentini, Edita Paulisic<br />
|-<br />
|[[File:jp.png]] '''Japanese'''|| [http://www.offiba.com Hiroki Yoshino], Masaru Ryumae<br />
|-<br />
|[[File:mt.png]] '''Maltese'''|| ||Glorianne Bezzina, Richard Pullicino<br />
|-<br />
|[[File:no.png]] '''Norwegian bokm&aring;l'''|| ||Odd-Jarle Kristoffersen, Eirik Sunde, P&aring;l Monstad<br />
|-<br />
|[[File:no.png]] '''Norwegian nynorsk'''|| ||Guttorm Flatab&oslash;<br />
|-<br />
|[[File:pl.png]] '''Polish'''||Elżbieta Lesińska (elisa)||Maciej Zawado, Damian Kubiak<br />
|-<br />
|[[File:pt.png]] '''Portuguese'''|| ||Clemente Aguia, Rosaura Gazzola, Job Vieira L&uacute;cio<br />
|-<br />
|[[File:br.png]] '''Portuguese (Brazil)'''||Mauricio Furtado (mauriciofurtado)||Andr&eacute;a Sim&otilde;es, De Lucca, Anderson La&eacute;cio Galindo Trindade<br />
|-<br />
|[[File:ro.png]] '''Romanian'''|| ||Bogdan Anastasiei<br />
|-<br />
|[[File:ru.png]] '''Russian'''|| ||Alexei G. Tchernov, Alexander Shilovv<br />
|-<br />
|[[File:si.png]] '''Slovenian'''|| ||Gasper Koren, Matej Kovacic, Jure Cuhalev<br />
|-<br />
|[[File:es.png]] '''Spanish'''|| ||J. Luis Sim&oacute;n, Luis M. Mart&iacute;nez, Juan Rafael Fern&aacute;ndez, [[UserPage kadejo||Carlos Juan Mart&iacute;n P&eacute;rez]], Esteban Adri&aacute;n P&eacute;rez<br />
|-<br />
|[[File:cl.png]] '''Spanish (Chile)'''||Victor Pinto (SirCrovax)||<br />
|-<br />
|[[File:se.png]] '''Swedish'''|| ||Bj&ouml;rn Mildh, Niklas Andersson, Jonas Norlinder<br />
|-<br />
|[[File:tr.png]] '''Turkish'''||Kaya Zeren (kayazeren)||Murad Bayram, Cihat Karli<br />
|-<br />
|[[File:vn.png]] '''Vietnamese'''|| ||Vinh Ngo<br />
|-<br />
|'''Welsh'''|| ||John Moorhouse, Niklas Andersson<br />
|-<br />
|<br />
|}<br />
<br />
==Past Contributors & Developers==<br />
<br />
Thank you to the following people who have assisted/contributed templates, PHP-coding and many other things (ordered by last name):<br />
* C. Scott Ananian<br />
* James Barkley (barkleja)<br />
* Mitchell Butler - Did the basic artwork for 1.1x and higher<br />
* Evan Caylor<br />
* Jeff Clement<br />
* Sabine Cretella<br />
* Jos&eacute; Luis Ram&iacute;rez Cuevas<br />
* Jan Doemen<br />
* Daniel Eggel<br />
* Marco Ermini<br />
* Arjen Gideonse<br />
* Andreas Gleis<br />
* Peterjan Heyse<br />
* Yao-Wen (Wayne) Huong<br />
* Rolf Njor Jensen<br />
* Odd-Jarle Kristoffersen<br />
* Frederik Kunz<br />
* Johannes Kutsam<br />
* Michael Macasek (macasek)<br />
* Patrick McKnight<br />
* Mark Meytin<br />
* Ronald Mulder<br />
* Brian O'Neill<br />
* Darrel O'Pry<br />
* Ulrika Olsson<br />
* Esteban A. P&eacute;rez (dgeaperez)<br />
* Bas Peusens<br />
* Mark Rabideau<br />
* Philip Roy<br />
* Gustavo San Roman (leochaton)<br />
* Andreas Schroeter<br />
* Dominik Sommer<br />
* Juhan Sonin (jsonin)<br />
* Brian Staats (bstaats)<br />
* Wes Sonnenreich<br />
* Karyl Stein<br />
* Eirik Sunde<br />
* Rob Thew (rob.thew)<br />
* Fran&ccedil;ois Tissandier<br />
* Tor de Vries<br />
* Shawn Wales (swales)<br />
* Chris Wessells<br />
* Verified Voting Foundation<br />
<br />
...and many others (sorry if we've missed you!)<br />
<br />
Your assistance has been invaluable. Well done and thank you for contributing to the Open Source Community!</div>Admin