Actions

Optional settings/pt: Difference between revisions

From LimeSurvey Manual

(Updating to match new version of source page)
(Updating to match new version of source page)
(16 intermediate revisions by the same user not shown)
Line 2: Line 2:
__TOC__
__TOC__


The following section is addressed to those of you who would like to edit those configuration settings that could not be modified with the help of the GUI (Graphical User Interface) of the LimeSurvey installation. Please bear in mind that all the changes from the LimeSurvey root directory are done at your own risk. Nevertheless, in the case in which you are experiencing problems/need further guidance, join the [https://www.limesurvey.org/forum discussion forums] or the [irc://irc.freenode.net/limesurvey|IRC IRC channel] for help from the LimeSurvey community.
<div class="mw-translate-fuzzy">
=Nota=
=Nota=
</div>


<div class="mw-translate-fuzzy">
Essas configurações opcionais só podem ser encontradas em config-defaults.php de uma instalação padrão. <span style='color:red'>Se você quiser alterar essas configurações por favor, não mudá-la em config-defaults.php, deve copiar a configuração em particular para config.php e alterá-lo lá. Todas as configurações em config.php substituem os valores padrão de config-defaults.php e começando com a versão 1.87 algumas dessas configurações obter substituído na janela de configuração global</span>. Desta forma é muito mais fácil de atualizar a sua instalação em um momento posterior!
Essas configurações opcionais só podem ser encontradas em config-defaults.php de uma instalação padrão. <span style='color:red'>Se você quiser alterar essas configurações por favor, não mudá-la em config-defaults.php, deve copiar a configuração em particular para config.php e alterá-lo lá. Todas as configurações em config.php substituem os valores padrão de config-defaults.php e começando com a versão 1.87 algumas dessas configurações obter substituído na janela de configuração global</span>. Desta forma é muito mais fácil de atualizar a sua instalação em um momento posterior!


<div class="simplebox">'''Nota''': Cada novo lançamento vê configurações introduzidas ou alteradas, por isso tome cuidado com a edição. Desde a versão 1,72, em agosto de 2008, a maioria das configurações de configuração foram movidos para '''config-defaults.php''' do '''config.php'''. Na versão 1.0, o '''config.php''' foi transferida para fora do '''admin/''' para o diretório principal.</div>  
<div class="simplebox">'''Nota''': Cada novo lançamento vê configurações introduzidas ou alteradas, por isso tome cuidado com a edição. Desde a versão 1,72, em agosto de 2008, a maioria das configurações de configuração foram movidos para '''config-defaults.php''' do '''config.php'''. Na versão 1.0, o '''config.php''' foi transferida para fora do '''admin/''' para o diretório principal.</div>
</div> 
 
{{Alert|If you want to change these settings, please do not change them in config-defaults.php, but copy the particular setting/line to /application/config/'''config.php''' in <nowiki>'config'=>array( )</nowiki> and change it there. All the newly modified/introduced settings from the config.php file will override the default values from config-defaults.php.}}


{{Alert|If you want to change these settings please do not change it in config-defaults.php but copy the particular setting/line over to /application/config/config.php in <nowiki>'config'=>array()</nowiki> and change it there.}}
When an upgrade occurs, only the config-defaults.php settings are changed. Therefore, editing the config.php file will save your customized settings.  
All settings in config.php overwrite the default values from config-defaults.php and some of these settings get overridden in the Global settings dialog{{NewIn|1.87}} . This way it is much easier to upgrade your installation at a later time!


To update/add the LimeSurvey settings in /application/config/config.php you have to update the config array:
To update/add the LimeSurvey settings in /application/'''config/config.php''', you have to update the config array:
<syntaxhighlight lang="php" enclose="pre">
<syntaxhighlight lang="php" enclose="pre">
     'config'=>array(
     'config'=>array(
         'debug'=>0,
         'debug'=>0,
         'debugsql'=>0,
         'debugsql'=>0,
         'LimeSurveySetting'=>'New value',
         'LimeSurveySetting'=>'New value', // Update default LimeSurvey config here
     )
     )
</syntaxhighlight>
</syntaxhighlight>


=Yii settings=
=Yii settings=
LimeSurvey uses the Yii framework and Yii has its own configuration parameters in the application/config/config.php file. You can access some specific configuration settings of LimeSurvey also via the Yii configuration.


The Yii-specific settings are set in the components array:
LimeSurvey uses the Yii framework, which has its own configuration parameters in application/config/'''internal.php''' and application/config/'''config.php''' file. You can also access some specific configuration settings of LimeSurvey via the Yii configuration.
 
Since config.php array is merged to the whole config, you can replace any Yii params in the config.php file.
 
The Yii specific settings are set in the components array:
<syntaxhighlight lang="php" enclose="pre">
<syntaxhighlight lang="php" enclose="pre">
     'components' => array(
     'components' => array(
Line 34: Line 44:
     ),
     ),
</syntaxhighlight>
</syntaxhighlight>
{{Note|For more information about the Yii framework, please access the [http://www.yiiframework.com/doc-2.0/guide-index.html following link.]}}


==Database settings==
==Database settings==
The database settings are written by the installer to the config.php file when you install LimeSurvey for the first time. If needed you can update this part of the config. Please remember that you do this at your own risk.
The database settings are written to config.php by the installer file when you install LimeSurvey for the first time. If needed, you can update this part of the config.php file. Please remember that you do this at your own risk!
See also the [[http://www.yiiframework.com/doc/blog/1.1/en/prototype.database#establishing-database-connection Yii documentation]], and please remember that LimeSurvey supports only the database types mysql,pgsql,dblib,mssql, and sqlsrv.
See also the [http://www.yiiframework.com/doc/blog/1.1/en/prototype.database#establishing-database-connection Yii documentation] and please remember that LimeSurvey supports only the following types of database: mysql, pgsql, dblib, mssql, and sqlsrv.


==Session settings==
==Session settings==
You can set some session parameters in config.php, the first example is the session in the database. You can uncomment/add the part needed in config.php. See [[http://www.yiiframework.com/doc/api/1.1/CHttpSession Yii Documentation]] for other settings.


If you use SSL ('https') for your LimeSurvey installation adding the following lines to your config.php will increase session security:
You can set some session parameters in config.php (check the two examples from below). You can uncomment/add the part needed in config.php. See the [http://www.yiiframework.com/doc/api/1.1/CHttpSession Yii Documentation] for other settings.
 
{{Alert|If you need to update session settings to have multiple LimeSurvey instances running on the same server, check if you don't have to update [[Optional_settings#Request_settings|request settings]] for crsf cookie.}}
 
===Use table-based sessions===
 
LimeSurvey can use table-based sessions, you find a commented part on the default config.php generated file. To use table-based session, remove the // before each line.
 
<syntaxhighlight lang="php" enclose="pre">
        'session' => array (
            'class' => 'application.core.web.DbHttpSession',
            'connectionID' => 'db',
            'sessionTableName' => '{{sessions}}',
        ),
</syntaxhighlight>
 
{{Alert|Table-based sessions are currently not supported on MSSQL server.}}
 
===Other sessions update===
 
If you use SSL ('https') for your LimeSurvey installation, adding the following lines to your config.php will increase the security of the session:
<syntaxhighlight lang="php" enclose="pre">        // Set the cookie via SSL
<syntaxhighlight lang="php" enclose="pre">        // Set the cookie via SSL
         'session' => array (
         'session' => array (
Line 52: Line 83:
</syntaxhighlight>
</syntaxhighlight>


If you want to fix the domain for a cookie use this in config.php:
If you want to fix the domain for a cookie, use the following syntax in config.php:
<syntaxhighlight lang="php" enclose="pre">        // Set the domain for cookie
<syntaxhighlight lang="php" enclose="pre">        // Set the domain for cookie
         'session' => array (
         'session' => array (
Line 58: Line 89:
                     'domain' => '.example.org',
                     'domain' => '.example.org',
                 ),
                 ),
            ),
</syntaxhighlight>
If you have mutiples installation on the same server, it can be more quick and easy to set different session name for each LimeSurvey instance. This can be need for IE11 in some condition (see [https://bugs.limesurvey.org/view.php?id=12083#c42892 issue 12083])
<syntaxhighlight lang="php" enclose="pre">        // Set the name of the session
        'session' => array (
            'sessionName' => "LimeSurveyN1",
             ),
             ),
</syntaxhighlight>
</syntaxhighlight>


==Request settings==
==Request settings==
The request settings are important, but the default settings are already optimized for LimeSurvey usage. See [http://www.yiiframework.com/doc/api/1.1/CHttpRequest Yii Documentation] for more information.
The request settings are important, but the default settings are already optimized for LimeSurvey usage. To read more about them, see the [http://www.yiiframework.com/doc/api/1.1/CHttpRequest Yii Documentation].


Some example you can modify in your LimeSurvey configuration:<sup>At your own risk</sup> :
For example, the LimeSurvey request settings configuration may be modified in the following way (at your own risk) :
<syntaxhighlight lang="php" enclose="pre">        // Disable CSRF protection
<syntaxhighlight lang="php" enclose="pre">        // Disable CSRF protection
         'request' => array(
         'request' => array(
Line 70: Line 108:
             ),
             ),
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="php" enclose="pre">        // Enforce a certain base URL
<syntaxhighlight lang="php" enclose="pre">        // Enforce a certain URL base  
         'request' => array(
         'request' => array(
             'hostInfo' => 'http://www.example.org/'   
             'hostInfo' => 'http://www.example.org/'   
             ),
             ),
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="php" enclose="pre">        // Set the cookie domain name for CSRF protection
<syntaxhighlight lang="php" enclose="pre">        // Set the cookie domain name and path for CSRF protection, path is used if you have different instance on same domain
         'request' => array(
         'request' => array(
             'csrfCookie' => array( 'domain' => '.example.com' )
             'csrfCookie' => array(  
                'domain' => '.example.com',
                'path' => '/limesurvey/',
            )
         ),
         ),
</syntaxhighlight>
</syntaxhighlight>
If you need to update only the url for token emails, set your [[Optional_settings#Advanced_path_settings|publicurl]] in your config.php file.


==URL settings==
==URL settings==
To have the same behaviour like the old 'Fancy URL' feature , you can update the urlManager
To change the default URL settings, update the urlManager:
<syntaxhighlight lang="php" enclose="pre">      // Use short URL
<syntaxhighlight lang="php" enclose="pre">      // Use short URL
'urlManager' => array(
'urlManager' => array(
Line 89: Line 132:
),
),
</syntaxhighlight>
</syntaxhighlight>
Adding .html after the survey id
You can also add .html after the survey id in the following way:
<syntaxhighlight lang="php" enclose="pre">      // Use short URL
<syntaxhighlight lang="php" enclose="pre">      // Use short URL
'urlManager' => array(
'urlManager' => array(
Line 99: Line 142:
),
),
</syntaxhighlight>
</syntaxhighlight>
Find more information in the [http://www.yiiframework.com/doc/guide/1.1/en/topics.url Yii documentation].
For more information, check the [http://www.yiiframework.com/doc/guide/1.1/en/topics.url Yii documentation].
 
==Logging settings==
 
Yii provides different solutions to generate logs. To find out more about them, check the [http://www.yiiframework.com/doc/guide/1.1/en/topics.logging logging special topic]. LimeSurvey uses '1' or '2' by default, which allows every web user to see the logs. You can create your own settings using Yii directly.
 
For example, a quick solution to log errors and warnings in files is:
<syntaxhighlight lang="php" enclose="pre">
return array(
'components' => array(
/* Other component part here 'db' for example */
'log' => array(
'routes' => array(
'fileError' => array(
'class' => 'CFileLogRoute',
'levels' => 'warning, error',
'except' => 'exception.CHttpException.404',
),
),
),
/* Other component part here 'urlManager' for example */
),
/* Final part (with 'runtimePath' 'config' for example) */
);
</syntaxhighlight>
 
{{Hint|Text=The file is saved by default to <code><nowiki>limesurvey/tmp/runtime/application.log</nowiki></code>, which is located in the LimeSurvey root folder.}}
{{Alert|Yii uses runtime path. By default, the logs are web accessible. They may contain a lot of information from your server. It is better to use a directory that cannot be accessed via the web. You can set it in routes or by updating  the [[Optional settings#Yii settings#Runtime path|Runtime path]].}}.
 
==Runtime path==
 
[http://www.yiiframework.com/doc/guide/1.1/en/basics.convention#directory The runtime path] must be a readable and writable directory for the “web user”. However, the runtime path contains files with potential security information that are located in the public web access area. LimeSurvey collects these files in the temp directory of the LimeSurvey root directory. In order to eliminate the access to such important data, you can set the runtime path outside the public web access by editing the respective lines in the /application/config/config.php file:
 
<syntaxhighlight lang="php" enclose="pre">
return array(
  'components' => array(
    […]
    'runtimePath'=>'/var/limesurvey/runtime/',
    'config'=>array(
    […]
    )
  )
)
</syntaxhighlight>


=General settings=
=General settings=


*'''sitename''': Give your survey site a name. This name will appear in the survey list overview and in the administration header. This setting is used only as default value and overridden in the [[Global settings]] dialog {{NewIn|1.87}}.
*'''sitename''': Gives your survey site a name. This name will appear in the survey list overview and in the administration header. The default value is 'LimeSurvey' and it can be overridden in the [[Global settings|global settings]] dialog or edited in config.php.
*'''siteadminemail:''' This is the default email address of the site administrator and used for system messages and contact options. This setting is used only as default value and overridden by the [[Global settings]] dialog {{NewIn|1.87}}.
*'''siteadminemail:''' This is the default email address of the site administrator and it is used for system messages and contact options. This setting is used only as default value and can be overridden in the [[Global settings|global settings]] dialog.
*'''siteadminbounce:''' This is the email address where bounced emails will be sent to. This setting is used only as default value and overridden by the [[Global settings]] dialog {{NewIn|1.87}}.
*'''siteadminbounce:''' This is the email address where bounced emails will be sent to. This setting is used only as default value and can be  overridden by the [[Global settings|global settings]] dialog.
*'''siteadminname:''' The real name of the site administrator. This setting is used only as default value and overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.
*'''siteadminname:''' The real name of the site administrator. This setting is used only as default value and can be overridden in the [[Global settings|global settings]] dialog).
*'''proxy_host_name:''' This is the host name of your proxy server (if you are behind a proxy and want to update LimeSurvey using ComfortUpdate) {{NewIn|2.05}}.
*'''proxy_host_name:''' This is the host name of your proxy server (it has to be mentioned if you are behind a proxy and you want to update LimeSurvey using [[ComfortUpdate|ComfortUpdate]]).
*'''proxy_host_port:''' This is the port of your proxy server (if you are behind a proxy and want to update LimeSurvey  using ComfortUpdate) {{NewIn|2.05}}.
*'''proxy_host_port:''' This is the port of your proxy server (it has to be mentioned if you are behind a proxy and you want to update LimeSurvey  using [[ComfortUpdate|ComfortUpdate]]).


= Security=
= Security=


* '''maxLoginAttempt''': If the user enters password incorrectly this is the number of attempts before the users is locked out by IP address.  
* '''maxLoginAttempt''': This is the number of attempts a user has to enter the correct password before he or she gets her or his IP address blocked/locked out. The default value is 3 and it can be modified from config.php.  
* '''timeOutTime''': If the user enters password incorrectly for <maxLoginAttempt> set the lock out time (in seconds).
* '''timeOutTime''': If the user enters the password incorrectly for <maxLoginAttempt>, she or he gets locked out for <timeOutTime> seconds. The default value is 10 minutes and it can be modified from config.php.
* '''surveyPreview_require_Auth''': true by default. If you set this to false any person can test your survey using the survey URL - without logging in to the administration and without having to activate the survey first. This setting is a default value and can be overridden in the [[Global settings]] dialog {{NewIn|1.87}}.
* '''surveyPreview_require_Auth''': Set to true by default. If you set this to 'false', any person can test your survey using the survey URL, without logging in to the administration panel and without having to activate the survey first. This setting is a default value and can be overridden in the [[Global settings|global settings]] dialog or edited in config.php.
* '''usercontrolSameGroupPolicy''' :  Set to true by default. By default non-admin users defined in the LimeSurvey management interface will only be able to see users they create or users that belongs to at least one same group. This setting is a default value and can be overridden in the [[Global settings]] dialog.
* '''usercontrolSameGroupPolicy''': Set to true by default. By default, non-admin users defined in the LimeSurvey management interface will only be able to see users they create or users that belong to at least one same group. The default value can be overridden in the [[Global settings|global settings]] dialog or edited in config.php.
*'''filterxsshtml:''' This setting enables filtering of suspicious html tags in survey, group, questions and answer texts in the administration interface. Only leave this to 'false' if you absolutely trust the users you created for the administration of  LimeSurvey and if you want to allow these users to be able to use Javascript, Flash Movies, etc. <span class="warning">Super admin never have their HTML filtered</span>.  This setting is a default value and can be overridden in the [[Global settings]] dialog {{NewIn|1.87}}.
*'''filterxsshtml:''' This setting enables the filtering of suspicious html tags located within surveys, groups, and questions and answer texts in the administration interface. Leave this to 'false' only if you absolutely trust the users you created for the administration of LimeSurvey and if you want to allow these users to be able to use Javascript, Flash Movies, etc.. <span class="warning">The super admins never have their HTML filtered</span>.  The default value can be overridden in the [[Global settings|global settings]] dialog or edited in config.php.
*'''demoModeOnly:''' If this option is set to true, then LimeSurvey will go into demo mode. The demo mode changes the following things:
*'''demoMode:''' If this option is set to 'true' in config.php, then LimeSurvey will go into demo mode. The demo mode changes the following things:
** Disables changing of the admin user's details and password
** Disables admin user's details and password changing;
** Disables uploading files on the template editor
** Disables the upload of files on the template editor;
** Disables sending email invitations and reminders
** Disables sending email invitations and reminders;
** Disables doing a database dump
** Disables the creation of a database dump;
** Disables the ability to modify the following global settings: Site name, Default language, Default Htmleditor Mode, XSS filter
** Disables the ability to modify the following global settings: site name, default language, default HTML editor mode, XSS filter.
*'''forcedsuperadmin:''' Array of user id whith all rights on all LimeSurvey. This settings can only be updated in config.php file.  This user's rights can not be edited in [[Manage_users#Set_global_permissions_for_a_user|global permissions for a user]] even by other forced super administrator. By default : user with this rights is user with id : 1. The first user created just after installation.
*'''force_ssl:''' forces LimeSurvey to run through HTTPS or to block HTTPS. See [https://manual.limesurvey.org/Global_settings#Security Force HTTPS] in global settings admin GUI.
*'''ssl_emergency_override:''' This setting forces SSL off. If You've turned HTTPS/SSL on in the global settings but your server doesn't have HTTPS enabled, the only way to turn it off is by changing a value in the database directly. This allows you to force HTTPS off while you change the global settings for Force Secure. This should always be false except in emergencies where you change it to true until you fix the problem. This setting can be only set via config.php file.
*'''ssl_disable_alert:''' Disable alert for super-admin about unforced SSL, if you really can not or don't want to force ssl.  This setting can be only set via config.php file.


= Resources=
= Resources=
*'''sessionlifetime:''' Defines the time in seconds after which a survey session expires. It applies only if you are using database sessions. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.
*'''sessionlifetime:''' Defines the time in seconds after which a survey session expires. It applies only if you are using database sessions. If you do use database sessions, change the parameter in config.php or override the default value from the [[Global settings|global settings]] dialog.
*'''memorylimit:''' This sets how much memory LimeSurvey can access. '128M' is the minimum (M=Megabyte) recommended. If you receive time out errors or have problems generating statistics or exporting files raise this limit to '256M' or higher. If your webserver has set a higher limit then this setting will be ignored.
*'''memorylimit:''' This determines how much memory LimeSurvey can access. '128 MB' is the minimum (MB=Megabyte) recommended. If you receive time out errors or have problems generating statistics or exporting files, raise this limit to '256 MB' or higher. If your web server has set a higher limit in config.php, then this setting will be ignored.  


<div class="warningbox">Please mind that such local settings by an application can always be overruled by global server settings.</div>
<div class="warningbox">'''Please bear in mind that such local settings can always be overruled by the changes done in the global settings dialog'''.</div>


To increase the memory limit to 128M you could also try adding:
To increase the memory limit to 128M you could also try adding:
Line 134: Line 224:
*memory_limit = 128M to a php.ini file in the LimeSurvey root
*memory_limit = 128M to a php.ini file in the LimeSurvey root
*php_value memory_limit 128M in a .htaccess file in the LimeSurvey root
*php_value memory_limit 128M in a .htaccess file in the LimeSurvey root
*'''max_execution_time:''' Set the number of seconds a script is allowed to run. If this is reached, the script returns a fatal error. To be allowed to export big survey data and statistics, LimeSurvey try to set it by default to 1200 seconds. You can set a bigger time or a lower time if needed. Only accessible via php config file.


=Appearance=
=Appearance=
*'''lwcdropdowns:'''{{ObsoleteIn|2.0}} This can be set to either "L" or "R". Setting it to "R" will result in 'List with Comment' questions being displayed as radio buttons, whereas "L" will result in 'List with Comment' questions being displayed in a 'dropdown' list box .
*'''dropdownthreshold'''{{ObsoleteIn|2.50}}: When "R" is selected for <code>$dropdowns</code>, the administrator is allowed to set a maximum number of options that will be displayed as radio buttons, before converting back to a dropdown list. If there is a question that has a large number of options, displaying all of them at once as radio buttons can look unwieldy, and can become counter-intuitive to users. Setting this to a maximum of, say 25 (which is the default) means that large lists are easier to be used by the administrators for the survey participant.
*'''dropdownthreshold:''''{{ObsoleteIn|2.50}} When you have selected "R" for $dropdowns, this allows you to set a maximum number of options that will display as radio buttons, before converting back to a dropdown list. If you have a question that has a large number of options, displaying them all as radio buttons can look unweildy, and be counter-intuitive to users. Setting this to a maximum of, say 25 (which is the default) means that large lists are easier for the survey participant to use.
*'''repeatheadings:''' With the Array question type, you'll often have a lot of subquestions, which - when displayed on screen - take up more than one page. This setting lets you decide how many subquestions should be displayed before repeating the header information for the question. A good setting for this is around 15. If you don't want the headings to repeat at all, set this to 0. This setting is overridden in the [[Global settings|global settings]] dialog {{NewIn|2.05}}.
*'''repeatheadings:''' With the Array type question, often you'll have a lot of subquestions, which - when displayed on screen - take up more than one page. This setting lets you decide how many subquestions should be displayed before repeating the header information for the question. A good setting for this is around 15. If you don't want the headings to repeat at all, set this to 0. This setting is overridden in the [[Global settings]] dialog) {{NewIn|2.05}}.
*'''minrepeatheadings:''' The minimum number of remaining subquestions that are required before repeating the headings in Array questions. The default value is 3 and it can be edited in config.php.  
*'''minrepeatheadings:''' The minimum number of remaining subquestions that are required before repeating the headings in Array questions.
*'''defaulttemplate:''' This setting specifies the default theme used for the 'public list' of surveys. This setting can be overridden in the [[Global settings|global settings]] dialog or edited in config.php.
*'''defaulttemplate:''' This setting specifys the default theme used for the 'public list' of surveys. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.
*'''defaulthtmleditormode:''' Sets the default mode for the integrated HTML editor. This setting can be overridden in the [[Global settings|global settings]] dialog or edited in config.php. The valid settings are:
*'''defaulthtmleditormode:''' Sets the default mode for integrated HTML editor. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}. Valid settings are:
** 'inline' - Inline replacement of fields by an HTML editor. Slow but convenient and user friendly;
** ''inline'': Inline replacement of fields by an HTML editor. Slow but convenient and user friendly
** 'popup' - Adds an icon that runs the HTML editor in a popup if needed. Faster, but HTML code is displayed in the form;
** ''popup'': Adds an icon that runs the HTML editor in a popup if needed. Faster, but HTML code is displayed in the form.
** 'none'No HTML editor;
** ''none'': No HTML editor
*'''column_style:''' Defines how columns are rendered for survey answers when using [[QS:Display_columns|display_columns]]. It can be edited in the config.php file. The valid settings are:  
*'''column_style:''' Defines how columns are rendered for survey answers when using [[QS:Display_columns|display_columns]]. Valid settings are:  
** 'css' - it uses one of the various CSS methods to create columns (see the template style sheet for details);
** 'css' using one of the various CSS only methods for creating columns (see template style sheet for details).
** 'ul' - the columns are rendered as multiple floated unordered lists (default);
** 'ul' using multiple floated unordered lists. (default)
** 'table' - it uses conventional-tables-based layout;
** 'table' using conventional tables based layout.
** NULL - it disables the use of columns.
** NULL disable the use of columns


=Language & time=
=Language & time=
*'''defaultlang:''' This should be set to the default language to be used in your administration scripts, and also the default setting for language in the public survey list. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.
*'''defaultlang:''' This should be set to the default language to be used in your administration scripts, and also the default setting for language in the public survey list. This setting can be overridden in the [[Global settings|global settings]] dialog or edited in config.php.
*'''timeadjust:''' If your web server is in a different time zone to the location where your surveys will be based, put the difference between your server and your home time zone here. For example, I live in Australia but use a US web server. The web server is 14 hours behind my local time zone. So my setting here is "14". In other words, it adds 14 hours to the web servers time. This setting is particularly important when surveys timestamp the responses. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}.
*'''timeadjust:''' If your web server is in a different time zone to the location where your surveys will be based, put the difference between your server and your home time zone here. For example, I live in Australia, but I use a US web server. The web server is 14 hours behind my local time zone. So my setting here is "14". In other words, it adds 14 hours to the web servers time. This setting is particularly important when surveys timestamp the responses. This setting can be overridden in the [[Global settings|global settings]] dialog or edited in config.php.


=Survey behavior=
=Survey behavior=
*'''deletenonvalues:''' Use this feature with caution.  By default (a value of 1), irrelevant questions are NULLed in the database.  This ensures that the data in your database is internally consistent.  However, there are rare cases where you might want to hold onto irrelevant values, in which case you can set the value to 0.  Say you ask the person his gender, and he accidentally says 'female' and then answers some female-specific questions (questions that are conditioned on being female, so are only relevant for women).  Then, he realizes his mistake, backs up, sets the gender to 'male', and continues with the survey.  Now, the female-specific questions are irrelevant.  If $deletenonvalues==1, those irrelevant values will be cleared (NULLed) in the database.  If $deletenonvalues==0, his erroneous answers will not be deleted, so they will still be present in the database when you analyze it.
*'''deletenonvalues:''' Use this feature with caution. By default (a value of 1), irrelevant questions are NULLed in the database. This ensures that the data in your database is internally consistent. However, there are rare cases where you might want to hold onto irrelevant values, in which case you can set the value to 0. For example, you ask a male person his gender, and he accidentally says 'female' and then answers some female-specific questions (questions that are conditioned on being female, so are only relevant for women). Then, he realizes his mistake, backs up, sets the gender to 'male', and continues with the survey.  Now, the female-specific questions are irrelevant. If <code>$deletenonvalues==1</code>, those irrelevant values will be cleared (NULLed) in the database. If <code>$deletenonvalues==0</code>, his erroneous answers will not be deleted, so they will still be present in the database when you analyze it.  
*'''shownoanswer:''' When a question of a radio button/select type that contains editable answers (ie: List, Array questions) is not mandatory and shownoanswer is set to 1, an additional 'No answer' entry is shown - so that participants may choose to not answer the question. Some people prefer this not to be available. This setting is overridden in the [[Global settings]] dialog) {{NewIn|1.87}}. Valid values are:
*'''shownoanswer:''' When a radio button/select type question that contains editable answers (i.e.: List, Array questions) is not mandatory and 'shownoanswer' is set to 1, an additional 'No answer' entry is shown - so that participants may choose to not answer the question. Some people prefer this not to be available. This setting can be overridden from the [[Global settings|global settings]] dialog or edited in config.php. Valid values are:
**0 = no ,
**'0': No;
**1 = yes ,
**'1': Yes;
**2 = survey admin can choose.   
**'2': The Survey admin can choose.   
*'''printanswershonorsconditions:''' This setting determines if the printanswers feature will display entries from questions that were hidden by conditions-branching (Default: 1 = hide answers from questions hidden by conditions).
*'''printanswershonorsconditions:''' This setting determines if the printanswers feature will display entries from questions that were hidden by conditions-branching (Default: 1 = hide answers from questions hidden by conditions).
*'''hide_groupdescr_allinone:'''{{NewIn|1.85}} This setting is relevant for all-in-one surveys using conditions . When this is set to true the group name and description is hidden if all questions in the group are hidden. (Default: true  - hide group name and description when all conditions in the group are hidden by conditions)
*'''hide_groupdescr_allinone:''' This setting is relevant for all-in-one surveys using conditions . When this is set to 'true', the group name and description is hidden if all questions in the group are hidden. The default value is 'true' - hides group name and description when all questions in the group are hidden by conditions. It can be edited in config.php.
*'''showpopups:'''  Show popup messages if mandatory or conditional questions have not been answered correctly. 1=Show popup message (default), 0=Show message on page instead, -1=Do not show the message at all (in this case, users will still see the question-specific tips indicating which questions must be answered).
*'''showpopups:'''  Show popup messages if mandatory or conditional questions have not been answered correctly:
**  '2' = defined by Theme option (default)
**  '1'= show popup message;
**  '0'= show message on page instead;
** '-1'= do not show the message at all (in this case, users will still see the question-specific tips indicating which questions must be answered).


=Development and debugging=
=Development and debugging=
*'''debug:''' With this setting you set the PHP error reporting to E_ALL. That means every little notice, warning or error with the script is shown. This setting should be only switched to 1 if you are trying to debug the application for any reason, if you are a developer switch it to 2. Don't switch it to 1 or 2 in production since it might cause path disclosure. (Default: 0)
*'''debug:''' With this setting, you set the PHP error reporting to E_ALL. This means that every little notice, warning or error related to the script is shown. This setting should be only switched to '1' if you are trying to debug the application for any reason. If you are a developer, switch it to '2'. Don't switch it to '1' or '2' in production since it might cause path disclosure. The default value is '0' and it can be edited in config.php.
*'''debugsql:''' Activate this setting if you want to display all SQL queries executed for the script on the bottom of each page. Very useful for optimizing the number of queries
*'''debugsql:''' Activate this setting if you want to display all SQL queries executed for the script on the bottom of each page. Very useful for the optimization of the the number of queries. In order to activate it, change the default value to '1' from the config.php file.


If you experience an error in the application, we strongly recommend to acivate the debug setting so you usually get some more detailed error that you can submit with the bug report:
In the case in which you experience an error in the application, we strongly recommend to activate the debug setting in order to get a more detailed error that you can submit with the bug report:


<syntaxhighlight lang="php" enclose="pre">
<syntaxhighlight lang="php" enclose="pre">
Line 178: Line 273:
</syntaxhighlight>
</syntaxhighlight>


= Email Settings=
= Email settings=


Note: All these settings in this section are overridden in the [[Global settings]] dialog{{NewIn|1.87}}.
All the settings from below can be overridden in the [[Global settings|global settings]] dialog.
*'''emailmethod:'''  This determines how E-mail messages are being sent. The following options are available:
*'''emailmethod:'' This determines how email messages are being sent. The following options are available:
**'''mail:''' use internal PHP mailer
**'mail:' it uses internal PHP mailer;
**'''sendmail:''' use sendmail mailer
**'sendmail:' it uses sendmail mailer;
**'''smtp:'''use SMTP relaying. Use this setting when you are running LimeSurvey on a host that is not your mail server.
**'smtp:' it uses SMTP relaying. Use this setting when you are running LimeSurvey on a host that is not your mail server.
*'''emailsmtphost:''' If you use 'smtp' as $emailmethod then you have to put your SMTP-server here. If you are using Google mail you might have to add the port number like $emailsmtphost = 'smtp.gmail.com:465';
*'''emailsmtphost:'' If you use 'smtp' as <code>$emailmethod</code>, then you have to put your SMTP-server here. If you are using Google mail you might have to add the port number like $emailsmtphost = 'smtp.gmail.com:465'.
*'''emailsmtpuser:''' If your SMTP-server needs authentication then set this to your user name, otherwise it must be blank.
*''emailsmtpuser:'' If your SMTP-server needs authentication then set this to your user name, otherwise it must be blank.
*'''emailsmtppassword:''' If your SMTP-server needs authentication then set this to your password, otherwise it must be blank.
*''emailsmtppassword:'' If your SMTP-server needs authentication then set this to your password, otherwise it must be blank.
*'''emailsmtpssl:''' Set this to 'ssl' or 'tls' to use SSL/TLS for SMTP connection
*''emailsmtpssl:'' Set this to 'ssl' or 'tls' to use SSL/TLS for SMTP connection.
*'''maxemails:''' When sending invitations or reminders to survey participants, this setting is used to determine how many emails can be sent in one bunch. Different web servers have different email capacities, and if your script takes too long to send a bunch of emails, the script could time out and cause errors. Most web servers can send 100 emails at a time within the default 30 second time limit for a PHP script. If you get script timeout errors when sending large numbers of emails, reduce the number in this setting.  Clicking the 'send email invitation' button on the token control toolbar, (not the button on the right of each token), sends the maxemails number of invitations, then displays a list of the addresses sent to and a warning that "There are more emails pending than could be sent in one batch. Continue sending emails by clicking below. There are ### emails still to be sent." and provides a "continue button" to proceed with the next batch. I.e., the user determines when to send the next batch after each batch gets emailed.  It is not necessary to wait with this screen active.  The admin could log off and come back at a later time to send the next batch of invites.
*''maxemails:'' When sending invitations or reminders to survey participants, this setting is used to determine how many emails can be sent in one bunch. Different web servers have different email capacities and if your script takes too long to send a bunch of emails, the script could time out and cause errors. Most web servers can send 100 emails at a time within the default 30 second time limit for a PHP script. If you get script timeout errors when sending large numbers of emails, reduce the number in this setting. Clicking the 'send email invitation' button from the token control toolbar (not the button situated on the right of each token) sends the <maxemails> number of invitations, then it displays a list of the addresses of the recipients and a warning that ''there are more emails pending than could be sent in one batch. Continue sending emails by clicking below. There are ### emails still to be sent.'' and provides a "continue button" to proceed with the next batch. I.e., the user determines when to send the next batch after each batch gets emailed. It is not necessary to wait with this screen active. The admin could log out and come back at a later time to send the next batch of invites.


= Statistics and Response Browsing=
= Statistics and response browsing=
*'''usejpgraph:''' {{ObsoleteIn|1.8}} The [http://www.aditus.nu/jpgraph/ JPGraph-library] lets you display the results of your survey in the statistics part of LimeSurvey  in bar- and pie charts. If you have a correctly configured jpgraph class set up on your server, you can turn this feature on or off (1=on, 0=off). Please have a look, every version of PHP needs another version of JPGraph! This feature is currently in development, so expect a few weird outcomes.
*'''filterout_incomplete_answers:''' Control the default behavior of filtering incomplete answers when browsing or analyzing responses. For a discussion on incomplete responses see our [[Responses & statistics#Responses summary|browsing survey results wiki]]. Since these records can corrupt the statistics, an option is given to switch this filter on or off in several GUI forms. The parameter can be edited in the config.php. The following options are available:
*'''jpgraphdir:''' {{ObsoleteIn|1.8}} The physical disk location of the jpgraph class scripts. This setting is only required if $usejpgraph is equal to 1.
**'show': Allows you to visualize both complete and incomplete answers;
*'''jpgraphfont:''' {{ObsoleteIn|1.8}} The font to use with graphs. A failsafe setting would be "FF_FONT1"
**'filter': It shows only complete answers;
*'''embedded:'''{{ObsoleteIn|2.0}} If you want to integrate LimeSurvey into another page then you can turn off sending HTML headers by using this setting and point instead to the header method of a custom function. This is a dirty hack but should work for a quick integration.
**'incomplete': Show only incomplete answers.
*'''filterout_incomplete_answers:''' Control the default behaviour of  filtering incomplete answers when browsing or analyzing responses. For a discussion on incomplete Responses see [[Browsing survey results]]. Since these records can corrupt the statistics, an option is given to switch this filter on or off in several GUI forms. This parameter config.php is just the default state for the incomplete answer filter. The following options are available:
*'''strip_query_from_referer_url''': This setting determines if the referrer URL saves the parameter or not. The default value is 'false' (in this case, the referrer URL saves all parameters). Alternatively, this value can be set to 'true' and the parameter part of the referrer URL will be removed.
**''show'': Show both complete and incomplete answers
*'''showaggregateddata:''' when activated, additional statistical values such as the arithmetic mean and standard deviation are shown. Furthermore, the data is aggregated to get a faster overview. For example, results of scale 1+2 and 4+5 are added to have a general ranking like "good" (1/2), "average" (3) and "bad" (4/5). This only affects question types "A" (5 point array) and "5" (5 point choice).
**''filter'': Show only complete answers
* '''PDF Export Settings:''' This feature activates PDF export for printable surveys and Print Answers. The PDF export function is totally experimental and the output is far from being perfect. Unfortunately, no support can be given at the moment - if you want to help to fix it, please get in touch with us.
**''incomplete'': Show only incomplete answers
**'usepdfexport': Set '0' to disable and '1' to enable;
*'''strip_query_from_referer_url''': This setting determine if the referrer URL saves parameter or not. Default value is "false" (in this case referrer URL saves all parameter). Alternatively this value can be set to "true" and the parameter part of the referrer URL will be removed.
**'pdfdefaultfont': It represents the default font that will be used by the pdf export function. The default value is 'auto'. To change it, you have to set it to one of the [https://tcpdf.org/docs/fonts/ PDF core fonts].
*'''showaggregateddata:''' {{NewIn|1.8}} When activated there are additional values like arithmetic mean and standard deviation at statistics. Furthermore data is aggregated to get a faster overview e.g. results of scale 1+2 and 4+5 are added to have a general ranking like "good" (1/2), "average" (3) and "bad" (4/5). This only affects question types "A" (5 point array) and "5" (5 point choice).
**'alternatepdffontfile': It's an array with language keys and their corresponding font. The default font for each language can be replaced in the config.php file;
* '''PDF Export Settings:''' {{NewIn|1.85}} This feature activates PDF export for printable survey and Print Answers. The PDF export is totally experimental. The output is mostly ugly. At this point no support can be given - if you want to help to fix it please get in touch with us.
**'pdffontsize': it shows the font size for normal texts; For the title of the survey, it is <pdffontsize>+4, while for the group title is <pdffontsize>+2. It can be edited in the config.php file or from the [Global settings|global settings]] dialog;
**usepdfexport: Set 0 to disable; 1 to enable
**'notsupportlanguages': it includes a list with the languages for which no PDF font was found. The list includes Amharic ('am'), Sinhala ('si'), and Thai ('th'), and it can be found in the config-defaults.php file;
**pdfdefaultfont: Default font for the pdf Export
**'pdforientation': Set 'L' for Landscape or 'P' for portrait format. It can be edited from the config.php file.
**alternatepdffontfile: an array with key for language and specific font for this language can be replaced or just updated .
*'''Graph setting'''
**pdffontsize: Fontsize for normal text; Surveytitle is +4; grouptitle is +2
**'chartfontfile': Sets the font file name that is used to create the statistical charts. The file has to be located in the fonts directory, located in the LimeSurvey root folder. It can be edited in the config.php file;
**notsupportlanguages = array('zh-Hant-TW','zh-Hant-HK','zh-Hans','ja','th');
**'alternatechartfontfile': It's an array with language keys and their corresponding font. It can be edited in the config.php file.
**pdforientation: Set L for Landscape or P for portrait format
*'''showsgqacode:''' This setting is used at the printable survey feature and defaults to 'false''. If you set showsgqacode = 'true';, the IDs of each question - and answer if applicable - will be shown. These IDs match the column heading at the Lime_survey_12345 table, which holds the answer data for a certain survey. These IDs can be used for a code book for manual database queries.
*'"Graph setting"'
** chartfontfile : Font file to be used : must be in the server font directory or in ./fot directory
** alternatechartfontfile : an array with key for language and specific font for this language can be replaced or just updated .
*'''showsgqacode:''' {{NewIn|1.91}} This setting is used at the printable survey feature and defaults to ''false''. If you set ''showsgqacode = true;'' the IDs for each question - and answer if applicable - will be shown; these IDs match the column heading at the Lime_survey_12345 table which holds the answer data for a certain survey. These Ids can be used for a code book for manual database queries.


= [[Configurando o LDAP]]=
= [[Configurando o LDAP]]=
Line 220: Line 311:
= Autenticação=
= Autenticação=


Starting with LimeSurvey 2.05 authentication will be handled by plugins. Because of this the information below might be outdated. See [[Plugins]] for most up to date information.
Starting with LimeSurvey 2.05, authentication will be handled by plugins. As a result, the information below might be outdated. See [[Plugins|the plugins wiki]] for most up to date information.


==Delegado de autenticação para o servidor web==
==Delegado de autenticação para o servidor web==
Line 229: Line 320:


Please note that:
Please note that:
* LimeSurvey will then bypass its own authentication process (by using the login name reported by the webserver without asking for a password)
* LimeSurvey will then bypass its own authentication process (by using the login name reported by the web server without asking for a password);
* this can only replace the LimeSurvey GUI authentication system, '''not the survey invitation system''' (participant interface)
* this can only replace the LimeSurvey GUI authentication system, '''not the survey invitation system''' (participant interface).


==Delegação de autenticação do usuário com nenhuma importação automática==
==Delegação de autenticação do usuário com nenhuma importação automática==
Line 276: Line 367:


     // return Array();</syntaxhighlight>
     // return Array();</syntaxhighlight>
{{Alert|The optionnal 'hook_get_auth_webserver_profile' function is for advanced user usage only! For further details, please read the comments from the config-defaults.php file.}}
== User name mapping==
== User name mapping==


In case some users have an external user name that is different from their LimeSurvey user name, you may find useful to use a user name mapping. This is done in LimeSurvey by using the '''auth_webserver_user_map''' parameter. For instance imagine you don't have an 'admin' username defined in your external authentication database. Then in order to login to LimeSurvey as admin, you'll have to map your external username let's call it 'myname' to the admin login name ine LimeSurvey. The corresponding setup is :
In the case in which some users have an external user name that is different from their LimeSurvey user name, you may find useful to use a user name mapping. This is done in LimeSurvey by using the '''auth_webserver_user_map''' parameter. For instance, imagine you don't have an 'admin' user name defined in your external authentication database. Then, in order to login to LimeSurvey as admin, you'll have to map your external user name (let's call it 'myname') to the admin login name in LimeSurvey. The corresponding setup is:


<syntaxhighlight lang="php" enclose="div">$config['auth_webserver_user_map'] = Array ('myname' => 'admin');</syntaxhighlight>
<syntaxhighlight lang="php" enclose="div">'config'=>array(
After a successful authentication with the 'myname' login and password to the webserver, you'll be directly authorized to use LimeSurvey as the 'admin' user.
...
'auth_webserver_user_map' => array ('myname' => 'admin');
)</syntaxhighlight>
After a successful authentication with the 'myname' login and web server password, you'll be directly authorized to use LimeSurvey as the 'admin' user.  


This obviously has serious security implications, so use it with care, and please protect your config.php from write access by the web server.
This has serious security implications, so use it with care. Also, protect your config.php from write access by the web server.


== Use one time passwords==
== Use one-time passwords==


{{NewIn|1.81}} A user can open 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.
A user can open the LimeSurvey login page at default.com/limesurvey/admin and type the username and the one-time password which was previously written into the users table (column one_time_pw) by an external application.


This setting has to be turned on ('''use_one_time_passwords''' => true) to enable the usage of one time passwords (default = false). More information can be found at [[Manage users#Use one-time passwords|"Manage Users"]].
This setting has to be turned on config.php file to enable the usage of one-time passwords (default = false).
<syntaxhighlight lang="php" enclose="pre">
    'config'=>array(
        'debug'=>0,
        'debugsql'=>0,
        'use_one_time_passwords'=>true,
    )
</syntaxhighlight>


= Advanced Path Settings=
More information can be found in the [[Manage users#Use one-time passwords|"Manage Users" section]].


'''If possible do no touch these settings. Additionally these settings can only be adjusted on config-defaults.php.'''
= Advanced path settings=
*'''homeurl:''' This should be set to the URL location of your administration scripts. These are the scripts in the /limesurvey/admin folder. This should be set to the WEB URL location - for example "http://www.example.com/limesurvey/html/admin". Don't add a trailing slash to this entry. The default setting in config.php attempts to detect the name of your server automatically using a php variable setting - {$_SERVER<nowiki>[</nowiki>'SERVER_NAME']}. In most cases you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in.
 
*'''publicurl:''' This should be set to the URL location of your 'public scripts'. The public scripts are those located in the "limesurvey" folder (or whatever name you gave to the directory that all the other scripts and directories are kept in).
*'''homeurl:''' This should be set to the URL location of your administration scripts. These are located in the /limesurvey/admin folder. This should be set to the WEB URL location - for example, ''http://www.example.com/limesurvey/html/admin''. Don't add a trailing slash to this entry. The default setting in config.php attempts to detect the name of your server automatically using a php variable setting - <code>{$_SERVER<nowiki>[</nowiki>'SERVER_NAME']}</code>. '''In most cases, you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in.'''
*'''tempurl:''' This should be set to the URL location of your "/limesurvey/tmp" directory - or a directory which you would like LimeSurvey to use to store temporary files, including uploads. This directory must be set to read & write for your webserver (e.g. chmod 755)
*'''publicurl:''' This should be set to the URL location of your 'public scripts'. The public scripts are those located in the "limesurvey" folder (or whatever name you gave to the directory that all the other scripts and directories are kept in). '''This settings is available in config.php and it is used when LimeSurvey need an absolute url (for example when token emails are sent).'''
*'''imagefiles:''' By default you should leave this pointing to the URL location of /limesurvey/admin/images - where the images are installed initially. You may, however, prefer to move these images to another location and if so point this to the URL directory where they are stored.
*'''tempurl:''' This should be set to the URL location of your "/limesurvey/tmp" directory - or to a directory in which you would like LimeSurvey to use to serve temporary files.  
*'''homedir:''' This should be set to the physical disk location of your administration scripts - for example "/home/usr/htdocs/limesurvey/admin". Don't add a trailing slash to this entry. The default setting in config.php attempts to detect the default root path of all your documents using the php variable setting - {$_SERVER<nowiki>[</nowiki>'DOCUMENT_ROOT']}. In most cases you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in.
*'''uploadurl:''' This should be set to the URL location of your "/limesurvey/upload" directory - or to a directory in which you would like LimeSurvey to use to serve uploaded files. This allow you to set uploaded files on another url domain.
*'''homedir:''' This should be set to the physical disk location of your administration scripts - for example "/home/usr/htdocs/limesurvey/admin". Don't add a trailing slash to this entry. The default setting in config.php attempts to detect the default root path of all your documents using the php variable setting <code>{$_SERVER<nowiki>[</nowiki>'DOCUMENT_ROOT']}</code>. In most cases you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in.
*'''publicdir:''' This should be set to the physical disk location of your 'public scripts'.
*'''publicdir:''' This should be set to the physical disk location of your 'public scripts'.
*'''tempdir:''' This should be set to the physical disk location of your /limesurvey/tmp directory so that the script can read and write files.
*'''tempdir:''' This should be set to the physical disk location of your /limesurvey/tmp directory so that the script can read and write files.
*'''sCKEditorURL:''' url of the fckeditor script
*'''uploaddir:''' This should be set to the physical disk location of your /limesurvey/upload directory so that the script can read and write files.
*'''fckeditexpandtoolbar:''' defines if the FCKeditor toolbar should be opened by default
*'''sCKEditorURL:''' url of the fckeditor script.
*'''pdfexportdir:''' Directory with the tcpdf.php extensiontcpdf.php
*'''fckeditexpandtoolbar:''' defines if the fckeditor toolbar should be opened by default.
*'''pdffonts:''' Directory for the TCPDF fonts
*'''pdfexportdir:''' This is the directory with the tcpdf.php extensiontcpdf.php.
*'''pdffonts:''' This is the directory for the TCPDF fonts.
 
= Other advanced settings=
 
== Upload files==
 
*'''magic_database:''' {{NewIn|3.17.17}} Allow to use a different MIME database for [https://www.php.net/manual/en/function.finfo-open.php finfo_open]. Can be updated only in config.php file. Example : <code>/usr/share/misc/magic.mgc</code> for redhat based linux.
*'''magic_file:''' {{NewIn|3.17.17}} Allow to use a different file to get the array of extension by mime type than the [https://github.com/LimeSurvey/LimeSurvey/blob/master/framework/utils/fileExtensions.php included one]. Must be a PHP file return an array. Can be updated only in config.php file.
 
== Update ==
 
*'''updatable:''' This setting is in version.php. Can be true or false. If you set to true : when an super admin user log in : LimeSurvey checks if an update is available and show you a warning. If set to false : no check is done and you can't use ComfortUpdate.
 
== Numerical question type behavior  ==
 
*'''bFixNumAuto:''' Numeric fields can be automatically filtered to remove all non numeric values. By default this is enable, you can disable it globally. This settings is related to ''Fix automatically numeric value'' in core theme options. It was enable for ''Yes'', disable for ''Only for expression'' and ''No''.
*'''bNumRealValue:''' Numeric fields used in expression manager can be fixed or not. It's fixed by default. If NUMERIC is a numerical question : disable or 0 : {NUMERIC} with bad caracters send <nowiki>''</nowiki>, enable or 1 : {NUMERIC} send all character entered. This settings is related to ''Fix automatically numeric value'' in core theme options. It was enable for ''Yes'' and ''Only for expression'' and  disable for ''No''.

Revision as of 12:00, 12 November 2019

The following section is addressed to those of you who would like to edit those configuration settings that could not be modified with the help of the GUI (Graphical User Interface) of the LimeSurvey installation. Please bear in mind that all the changes from the LimeSurvey root directory are done at your own risk. Nevertheless, in the case in which you are experiencing problems/need further guidance, join the discussion forums or the IRC channel for help from the LimeSurvey community.

Nota

Essas configurações opcionais só podem ser encontradas em config-defaults.php de uma instalação padrão. Se você quiser alterar essas configurações por favor, não mudá-la em config-defaults.php, deve copiar a configuração em particular para config.php e alterá-lo lá. Todas as configurações em config.php substituem os valores padrão de config-defaults.php e começando com a versão 1.87 algumas dessas configurações obter substituído na janela de configuração global. Desta forma é muito mais fácil de atualizar a sua instalação em um momento posterior!

Nota: Cada novo lançamento vê configurações introduzidas ou alteradas, por isso tome cuidado com a edição. Desde a versão 1,72, em agosto de 2008, a maioria das configurações de configuração foram movidos para config-defaults.php do config.php. Na versão 1.0, o config.php foi transferida para fora do admin/ para o diretório principal.
  If you want to change these settings, please do not change them in config-defaults.php, but copy the particular setting/line to /application/config/config.php in 'config'=>array( ) and change it there. All the newly modified/introduced settings from the config.php file will override the default values from config-defaults.php.


When an upgrade occurs, only the config-defaults.php settings are changed. Therefore, editing the config.php file will save your customized settings.

To update/add the LimeSurvey settings in /application/config/config.php, you have to update the config array:

    'config'=>array(
        'debug'=>0,
        'debugsql'=>0,
        'LimeSurveySetting'=>'New value', // Update default LimeSurvey config here
    )

Yii settings

LimeSurvey uses the Yii framework, which has its own configuration parameters in application/config/internal.php and application/config/config.php file. You can also access some specific configuration settings of LimeSurvey via the Yii configuration.

Since config.php array is merged to the whole config, you can replace any Yii params in the config.php file.

The Yii specific settings are set in the components array:

    'components' => array(
        'db' => array(
            ....
        ),
        'Specific settings'=>array(
            ....
        ),
    ),
For more information about the Yii framework, please access the following link.

Database settings

The database settings are written to config.php by the installer file when you install LimeSurvey for the first time. If needed, you can update this part of the config.php file. Please remember that you do this at your own risk! See also the Yii documentation and please remember that LimeSurvey supports only the following types of database: mysql, pgsql, dblib, mssql, and sqlsrv.

Session settings

You can set some session parameters in config.php (check the two examples from below). You can uncomment/add the part needed in config.php. See the Yii Documentation for other settings.

  If you need to update session settings to have multiple LimeSurvey instances running on the same server, check if you don't have to update request settings for crsf cookie.


Use table-based sessions

LimeSurvey can use table-based sessions, you find a commented part on the default config.php generated file. To use table-based session, remove the // before each line.

        'session' => array (
            'class' => 'application.core.web.DbHttpSession',
            'connectionID' => 'db',
            'sessionTableName' => '{{sessions}}',
        ),
  Table-based sessions are currently not supported on MSSQL server.


Other sessions update

If you use SSL ('https') for your LimeSurvey installation, adding the following lines to your config.php will increase the security of the session:

        // Set the cookie via SSL
        'session' => array (
            'cookieParams' => array(
                    'secure' => true, // use SSL for cookies
                    'httponly' => true // Cookies may not be used by other protocols - experimental
                ),
            ),

If you want to fix the domain for a cookie, use the following syntax in config.php:

        // Set the domain for cookie
        'session' => array (
            'cookieParams' => array(
                    'domain' => '.example.org',
                ),
            ),

If you have mutiples installation on the same server, it can be more quick and easy to set different session name for each LimeSurvey instance. This can be need for IE11 in some condition (see issue 12083)

        // Set the name of the session
        'session' => array (
            'sessionName' => "LimeSurveyN1",
            ),

Request settings

The request settings are important, but the default settings are already optimized for LimeSurvey usage. To read more about them, see the Yii Documentation.

For example, the LimeSurvey request settings configuration may be modified in the following way (at your own risk) :

        // Disable CSRF protection
        'request' => array(
            'enableCsrfValidation'=>false,    
            ),
        // Enforce a certain URL base 
        'request' => array(
            'hostInfo' => 'http://www.example.org/'  
            ),
        // Set the cookie domain name and path for CSRF protection, path is used if you have different instance on same domain
        'request' => array(
            'csrfCookie' => array( 
                'domain' => '.example.com',
                'path' => '/limesurvey/',
            )
        ),

If you need to update only the url for token emails, set your publicurl in your config.php file.

URL settings

To change the default URL settings, update the urlManager:

       // Use short URL
		'urlManager' => array(
			'urlFormat' => 'path',
			'showScriptName' => false,
		),

You can also add .html after the survey id in the following way:

       // Use short URL
		'urlManager' => array(
			'urlFormat' => 'path',
			'rules' => array (
			    '<sid:\d+>' => array('survey/index','urlSuffix'=>'.html','matchValue'=>true),
			 ),
			'showScriptName' => false,
		),

For more information, check the Yii documentation.

Logging settings

Yii provides different solutions to generate logs. To find out more about them, check the logging special topic. LimeSurvey uses '1' or '2' by default, which allows every web user to see the logs. You can create your own settings using Yii directly.

For example, a quick solution to log errors and warnings in files is:

return array(
	'components' => array(
		/* Other component part here 'db' for example */
		'log' => array(
			'routes' => array(
				'fileError' => array(
					'class' => 'CFileLogRoute',
					'levels' => 'warning, error',
					'except' => 'exception.CHttpException.404',
				),
			),
		),
		/* Other component part here 'urlManager' for example */
	),
	/* Final part (with 'runtimePath' 'config' for example) */
);
 Hint: The file is saved by default to limesurvey/tmp/runtime/application.log, which is located in the LimeSurvey root folder.
  Yii uses runtime path. By default, the logs are web accessible. They may contain a lot of information from your server. It is better to use a directory that cannot be accessed via the web. You can set it in routes or by updating the Runtime path.

.

Runtime path

The runtime path must be a readable and writable directory for the “web user”. However, the runtime path contains files with potential security information that are located in the public web access area. LimeSurvey collects these files in the temp directory of the LimeSurvey root directory. In order to eliminate the access to such important data, you can set the runtime path outside the public web access by editing the respective lines in the /application/config/config.php file:

 
return array(
  'components' => array(
    []
    'runtimePath'=>'/var/limesurvey/runtime/',
    'config'=>array(
    []
    )
  )
)

General settings

  • sitename: Gives your survey site a name. This name will appear in the survey list overview and in the administration header. The default value is 'LimeSurvey' and it can be overridden in the global settings dialog or edited in config.php.
  • siteadminemail: This is the default email address of the site administrator and it is used for system messages and contact options. This setting is used only as default value and can be overridden in the global settings dialog.
  • siteadminbounce: This is the email address where bounced emails will be sent to. This setting is used only as default value and can be overridden by the global settings dialog.
  • siteadminname: The real name of the site administrator. This setting is used only as default value and can be overridden in the global settings dialog).
  • proxy_host_name: This is the host name of your proxy server (it has to be mentioned if you are behind a proxy and you want to update LimeSurvey using ComfortUpdate).
  • proxy_host_port: This is the port of your proxy server (it has to be mentioned if you are behind a proxy and you want to update LimeSurvey using ComfortUpdate).

Security

  • maxLoginAttempt: This is the number of attempts a user has to enter the correct password before he or she gets her or his IP address blocked/locked out. The default value is 3 and it can be modified from config.php.
  • timeOutTime: If the user enters the password incorrectly for <maxLoginAttempt>, she or he gets locked out for <timeOutTime> seconds. The default value is 10 minutes and it can be modified from config.php.
  • surveyPreview_require_Auth: Set to true by default. If you set this to 'false', any person can test your survey using the survey URL, without logging in to the administration panel and without having to activate the survey first. This setting is a default value and can be overridden in the global settings dialog or edited in config.php.
  • usercontrolSameGroupPolicy: Set to true by default. By default, non-admin users defined in the LimeSurvey management interface will only be able to see users they create or users that belong to at least one same group. The default value can be overridden in the global settings dialog or edited in config.php.
  • filterxsshtml: This setting enables the filtering of suspicious html tags located within surveys, groups, and questions and answer texts in the administration interface. Leave this to 'false' only if you absolutely trust the users you created for the administration of LimeSurvey and if you want to allow these users to be able to use Javascript, Flash Movies, etc.. The super admins never have their HTML filtered. The default value can be overridden in the global settings dialog or edited in config.php.
  • demoMode: If this option is set to 'true' in config.php, then LimeSurvey will go into demo mode. The demo mode changes the following things:
    • Disables admin user's details and password changing;
    • Disables the upload of files on the template editor;
    • Disables sending email invitations and reminders;
    • Disables the creation of a database dump;
    • Disables the ability to modify the following global settings: site name, default language, default HTML editor mode, XSS filter.
  • forcedsuperadmin: Array of user id whith all rights on all LimeSurvey. This settings can only be updated in config.php file. This user's rights can not be edited in global permissions for a user even by other forced super administrator. By default : user with this rights is user with id : 1. The first user created just after installation.
  • force_ssl: forces LimeSurvey to run through HTTPS or to block HTTPS. See Force HTTPS in global settings admin GUI.
  • ssl_emergency_override: This setting forces SSL off. If You've turned HTTPS/SSL on in the global settings but your server doesn't have HTTPS enabled, the only way to turn it off is by changing a value in the database directly. This allows you to force HTTPS off while you change the global settings for Force Secure. This should always be false except in emergencies where you change it to true until you fix the problem. This setting can be only set via config.php file.
  • ssl_disable_alert: Disable alert for super-admin about unforced SSL, if you really can not or don't want to force ssl. This setting can be only set via config.php file.

Resources

  • sessionlifetime: Defines the time in seconds after which a survey session expires. It applies only if you are using database sessions. If you do use database sessions, change the parameter in config.php or override the default value from the global settings dialog.
  • memorylimit: This determines how much memory LimeSurvey can access. '128 MB' is the minimum (MB=Megabyte) recommended. If you receive time out errors or have problems generating statistics or exporting files, raise this limit to '256 MB' or higher. If your web server has set a higher limit in config.php, then this setting will be ignored.
Please bear in mind that such local settings can always be overruled by the changes done in the global settings dialog.

To increase the memory limit to 128M you could also try adding:

  • memory_limit = 128M to your server's main php.ini file (recommended, if you have access)
  • memory_limit = 128M to a php.ini file in the LimeSurvey root
  • php_value memory_limit 128M in a .htaccess file in the LimeSurvey root
  • max_execution_time: Set the number of seconds a script is allowed to run. If this is reached, the script returns a fatal error. To be allowed to export big survey data and statistics, LimeSurvey try to set it by default to 1200 seconds. You can set a bigger time or a lower time if needed. Only accessible via php config file.

Appearance

  • dropdownthreshold (Obsolete since 2.50): When "R" is selected for $dropdowns, the administrator is allowed to set a maximum number of options that will be displayed as radio buttons, before converting back to a dropdown list. If there is a question that has a large number of options, displaying all of them at once as radio buttons can look unwieldy, and can become counter-intuitive to users. Setting this to a maximum of, say 25 (which is the default) means that large lists are easier to be used by the administrators for the survey participant.
  • repeatheadings: With the Array question type, you'll often have a lot of subquestions, which - when displayed on screen - take up more than one page. This setting lets you decide how many subquestions should be displayed before repeating the header information for the question. A good setting for this is around 15. If you don't want the headings to repeat at all, set this to 0. This setting is overridden in the global settings dialog (New in 2.05 ).
  • minrepeatheadings: The minimum number of remaining subquestions that are required before repeating the headings in Array questions. The default value is 3 and it can be edited in config.php.
  • defaulttemplate: This setting specifies the default theme used for the 'public list' of surveys. This setting can be overridden in the global settings dialog or edited in config.php.
  • defaulthtmleditormode: Sets the default mode for the integrated HTML editor. This setting can be overridden in the global settings dialog or edited in config.php. The valid settings are:
    • 'inline' - Inline replacement of fields by an HTML editor. Slow but convenient and user friendly;
    • 'popup' - Adds an icon that runs the HTML editor in a popup if needed. Faster, but HTML code is displayed in the form;
    • 'none'- No HTML editor;
  • column_style: Defines how columns are rendered for survey answers when using display_columns. It can be edited in the config.php file. The valid settings are:
    • 'css' - it uses one of the various CSS methods to create columns (see the template style sheet for details);
    • 'ul' - the columns are rendered as multiple floated unordered lists (default);
    • 'table' - it uses conventional-tables-based layout;
    • NULL - it disables the use of columns.

Language & time

  • defaultlang: This should be set to the default language to be used in your administration scripts, and also the default setting for language in the public survey list. This setting can be overridden in the global settings dialog or edited in config.php.
  • timeadjust: If your web server is in a different time zone to the location where your surveys will be based, put the difference between your server and your home time zone here. For example, I live in Australia, but I use a US web server. The web server is 14 hours behind my local time zone. So my setting here is "14". In other words, it adds 14 hours to the web servers time. This setting is particularly important when surveys timestamp the responses. This setting can be overridden in the global settings dialog or edited in config.php.

Survey behavior

  • deletenonvalues: Use this feature with caution. By default (a value of 1), irrelevant questions are NULLed in the database. This ensures that the data in your database is internally consistent. However, there are rare cases where you might want to hold onto irrelevant values, in which case you can set the value to 0. For example, you ask a male person his gender, and he accidentally says 'female' and then answers some female-specific questions (questions that are conditioned on being female, so are only relevant for women). Then, he realizes his mistake, backs up, sets the gender to 'male', and continues with the survey.  Now, the female-specific questions are irrelevant. If $deletenonvalues==1, those irrelevant values will be cleared (NULLed) in the database. If $deletenonvalues==0, his erroneous answers will not be deleted, so they will still be present in the database when you analyze it.
  • shownoanswer: When a radio button/select type question that contains editable answers (i.e.: List, Array questions) is not mandatory and 'shownoanswer' is set to 1, an additional 'No answer' entry is shown - so that participants may choose to not answer the question. Some people prefer this not to be available. This setting can be overridden from the global settings dialog or edited in config.php. Valid values are:
    • '0': No;
    • '1': Yes;
    • '2': The Survey admin can choose.
  • printanswershonorsconditions: This setting determines if the printanswers feature will display entries from questions that were hidden by conditions-branching (Default: 1 = hide answers from questions hidden by conditions).
  • hide_groupdescr_allinone: This setting is relevant for all-in-one surveys using conditions . When this is set to 'true', the group name and description is hidden if all questions in the group are hidden. The default value is 'true' - hides group name and description when all questions in the group are hidden by conditions. It can be edited in config.php.
  • showpopups:  Show popup messages if mandatory or conditional questions have not been answered correctly:
    • '2' = defined by Theme option (default)
    • '1'= show popup message;
    • '0'= show message on page instead;
    • '-1'= do not show the message at all (in this case, users will still see the question-specific tips indicating which questions must be answered).

Development and debugging

  • debug: With this setting, you set the PHP error reporting to E_ALL. This means that every little notice, warning or error related to the script is shown. This setting should be only switched to '1' if you are trying to debug the application for any reason. If you are a developer, switch it to '2'. Don't switch it to '1' or '2' in production since it might cause path disclosure. The default value is '0' and it can be edited in config.php.
  • debugsql: Activate this setting if you want to display all SQL queries executed for the script on the bottom of each page. Very useful for the optimization of the the number of queries. In order to activate it, change the default value to '1' from the config.php file.

In the case in which you experience an error in the application, we strongly recommend to activate the debug setting in order to get a more detailed error that you can submit with the bug report:

    'config'=>array(
        'debug'=>2,
        'debugsql'=>0,
    )

Email settings

All the settings from below can be overridden in the global settings dialog.

  • 'emailmethod: This determines how email messages are being sent. The following options are available:
    • 'mail:' it uses internal PHP mailer;
    • 'sendmail:' it uses sendmail mailer;
    • 'smtp:' it uses SMTP relaying. Use this setting when you are running LimeSurvey on a host that is not your mail server.
  • 'emailsmtphost: If you use 'smtp' as $emailmethod, then you have to put your SMTP-server here. If you are using Google mail you might have to add the port number like $emailsmtphost = 'smtp.gmail.com:465'.
  • emailsmtpuser: If your SMTP-server needs authentication then set this to your user name, otherwise it must be blank.
  • emailsmtppassword: If your SMTP-server needs authentication then set this to your password, otherwise it must be blank.
  • emailsmtpssl: Set this to 'ssl' or 'tls' to use SSL/TLS for SMTP connection.
  • maxemails: When sending invitations or reminders to survey participants, this setting is used to determine how many emails can be sent in one bunch. Different web servers have different email capacities and if your script takes too long to send a bunch of emails, the script could time out and cause errors. Most web servers can send 100 emails at a time within the default 30 second time limit for a PHP script. If you get script timeout errors when sending large numbers of emails, reduce the number in this setting. Clicking the 'send email invitation' button from the token control toolbar (not the button situated on the right of each token) sends the <maxemails> number of invitations, then it displays a list of the addresses of the recipients and a warning that there are more emails pending than could be sent in one batch. Continue sending emails by clicking below. There are ### emails still to be sent. and provides a "continue button" to proceed with the next batch. I.e., the user determines when to send the next batch after each batch gets emailed. It is not necessary to wait with this screen active. The admin could log out and come back at a later time to send the next batch of invites.

Statistics and response browsing

  • filterout_incomplete_answers: Control the default behavior of filtering incomplete answers when browsing or analyzing responses. For a discussion on incomplete responses see our browsing survey results wiki. Since these records can corrupt the statistics, an option is given to switch this filter on or off in several GUI forms. The parameter can be edited in the config.php. The following options are available:
    • 'show': Allows you to visualize both complete and incomplete answers;
    • 'filter': It shows only complete answers;
    • 'incomplete': Show only incomplete answers.
  • strip_query_from_referer_url: This setting determines if the referrer URL saves the parameter or not. The default value is 'false' (in this case, the referrer URL saves all parameters). Alternatively, this value can be set to 'true' and the parameter part of the referrer URL will be removed.
  • showaggregateddata: when activated, additional statistical values such as the arithmetic mean and standard deviation are shown. Furthermore, the data is aggregated to get a faster overview. For example, results of scale 1+2 and 4+5 are added to have a general ranking like "good" (1/2), "average" (3) and "bad" (4/5). This only affects question types "A" (5 point array) and "5" (5 point choice).
  • PDF Export Settings: This feature activates PDF export for printable surveys and Print Answers. The PDF export function is totally experimental and the output is far from being perfect. Unfortunately, no support can be given at the moment - if you want to help to fix it, please get in touch with us.
    • 'usepdfexport': Set '0' to disable and '1' to enable;
    • 'pdfdefaultfont': It represents the default font that will be used by the pdf export function. The default value is 'auto'. To change it, you have to set it to one of the PDF core fonts.
    • 'alternatepdffontfile': It's an array with language keys and their corresponding font. The default font for each language can be replaced in the config.php file;
    • 'pdffontsize': it shows the font size for normal texts; For the title of the survey, it is <pdffontsize>+4, while for the group title is <pdffontsize>+2. It can be edited in the config.php file or from the [Global settings|global settings]] dialog;
    • 'notsupportlanguages': it includes a list with the languages for which no PDF font was found. The list includes Amharic ('am'), Sinhala ('si'), and Thai ('th'), and it can be found in the config-defaults.php file;
    • 'pdforientation': Set 'L' for Landscape or 'P' for portrait format. It can be edited from the config.php file.
  • Graph setting
    • 'chartfontfile': Sets the font file name that is used to create the statistical charts. The file has to be located in the fonts directory, located in the LimeSurvey root folder. It can be edited in the config.php file;
    • 'alternatechartfontfile': It's an array with language keys and their corresponding font. It can be edited in the config.php file.
  • showsgqacode: This setting is used at the printable survey feature and defaults to 'false. If you set showsgqacode = 'true';, the IDs of each question - and answer if applicable - will be shown. These IDs match the column heading at the Lime_survey_12345 table, which holds the answer data for a certain survey. These IDs can be used for a code book for manual database queries.

Configurando o LDAP

Como este é um assunto extenso passamos Configurando o LDAP para outra página.

Autenticação

Starting with LimeSurvey 2.05, authentication will be handled by plugins. As a result, the information below might be outdated. See the plugins wiki for most up to date information.

Delegado de autenticação para o servidor web

Administradores de sistema pode querer ter seu survey administrators autenticado em um sistema de autenticação central (Active Directory, OpenLDAP, Radius, ...) ao invés de usar o banco de dados LimeSurvey interno. Uma maneira fácil de fazer isso é configurar o seu software de servidor web para usar este sistema de autenticação externa, e então pedir LimeSurvey confiar a identidade do usuário relatado pelo servidor. A fim de habilitar esse recurso você precisa:

  • Definir $useWebserverAuth = true no config.php
  • Habilitar a autenticação no lado servidor

Please note that:

  • LimeSurvey will then bypass its own authentication process (by using the login name reported by the web server without asking for a password);
  • this can only replace the LimeSurvey GUI authentication system, not the survey invitation system (participant interface).

Delegação de autenticação do usuário com nenhuma importação automática

Observe, porém, que por padrão autenticação delegação não burlar o sistema de autorização LimeSurvey : isto significa que, mesmo se você não tem que gerenciar senhas em LimeSurvey, você ainda precisa definir os usuários do LimeSurvey banco de dados e atribuir-lhes o conjunto correto de direitos, a fim de deixá-los de Pesquisa de Recursos de acesso.

Um usuário é, então, acesso a LimeSurvey se e somente se:

  • Ele foi autenticado para o servidor
  • Seu nome de usuário é definido como um usuário no banco de dados do usuário LimeSurvey (o usuário é, então, concedeu os privilégios do usuário definido na base de dados LimeSurvey).

Delegação de autenticação do usuário com importação automática

Quando o gerenciamento do banco de dados de usuários é enorme, às vezes é mais fácil fazer a importação automáticos dos usuários para o banco de dados LimeSurvey.

  • $WebserverAuth_autocreateUser: Se definido como verdadeiro LimeSurvey tentará importa automaticamente os usuários autenticados pelo servidor, mas não já no PO de seus usuários
  • $WebserverAuth_autouserprofile: uma matriz que descreve o perfil padrão que será atribuído ao usuário (incluindo o primeiro fake e último nome, e-mail, privilégios)

Se você quiser personalizar o perfil do usuário para que ele corresponda o usuário logado, você terá que desenvolver uma função simples chamado hook_get_autouserprofile: com esta função você pode recuperar a partir de um banco central conta de usuário (por exemplo, um diretório LDAP), Primeiro true & Sobrenomes e-mail de um usuário em particular. Você pode até personalizar seus privilégios no sistema baseado em seus grupos na DB externo.

A função hook_get_autouserprofile leva o nome de login do usuário como o único argumento e pode retornar:

  • Falso ou uma matriz vazia: neste caso, o usuário é negado o acesso a LimeSurvey
  • Um array contendo todos os itens comuns userprofile conforme descrito no $ WebserverAuth_autouserprofile
function hook_get_auth_webserver_profile($user_name)
{
     // Retrieve user's data from your database backend (for instance LDAP) here
     ... get $user_name_from_backend
     ... get $user_email_from_backend
     ... get $user_lang_from_backend
     ... from groups defined in your backend set $user_admin_status_frombackend_0_or_1
     return Array(
                     'full_name' => "$user_name_from_backend",
                     'email' => "$user_email_from_backend",
                     'lang' => '$user_lang_from_backend',
                     'htmleditormode' => 'inline',
                     'templatelist' => 'default,basic,MyOrgTemplate',
                     'create_survey' => 1,
                     'create_user' => 0,
                     'delete_user' => 0,
                     'superadmin' => $user_admin_status_frombackend_0_or_1,
                     'configurator' =>0,
                     'manage_template' => 0,
                     'manage_label' => 0);
}

     // If user should be denied access, return an empty array

     // return Array();
  The optionnal 'hook_get_auth_webserver_profile' function is for advanced user usage only! For further details, please read the comments from the config-defaults.php file.


User name mapping

In the case in which some users have an external user name that is different from their LimeSurvey user name, you may find useful to use a user name mapping. This is done in LimeSurvey by using the auth_webserver_user_map parameter. For instance, imagine you don't have an 'admin' user name defined in your external authentication database. Then, in order to login to LimeSurvey as admin, you'll have to map your external user name (let's call it 'myname') to the admin login name in LimeSurvey. The corresponding setup is:

'config'=>array(
...
'auth_webserver_user_map' => array ('myname' => 'admin');
)

After a successful authentication with the 'myname' login and web server password, you'll be directly authorized to use LimeSurvey as the 'admin' user.

This has serious security implications, so use it with care. Also, protect your config.php from write access by the web server.

Use one-time passwords

A user can open the LimeSurvey login page at default.com/limesurvey/admin and type the username and the one-time password which was previously written into the users table (column one_time_pw) by an external application.

This setting has to be turned on config.php file to enable the usage of one-time passwords (default = false).

    'config'=>array(
        'debug'=>0,
        'debugsql'=>0,
        'use_one_time_passwords'=>true,
    )

More information can be found in the "Manage Users" section.

Advanced path settings

  • homeurl: This should be set to the URL location of your administration scripts. These are located in the /limesurvey/admin folder. This should be set to the WEB URL location - for example, http://www.example.com/limesurvey/html/admin. Don't add a trailing slash to this entry. The default setting in config.php attempts to detect the name of your server automatically using a php variable setting - {$_SERVER['SERVER_NAME']}. In most cases, you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in.
  • publicurl: This should be set to the URL location of your 'public scripts'. The public scripts are those located in the "limesurvey" folder (or whatever name you gave to the directory that all the other scripts and directories are kept in). This settings is available in config.php and it is used when LimeSurvey need an absolute url (for example when token emails are sent).
  • tempurl: This should be set to the URL location of your "/limesurvey/tmp" directory - or to a directory in which you would like LimeSurvey to use to serve temporary files.
  • uploadurl: This should be set to the URL location of your "/limesurvey/upload" directory - or to a directory in which you would like LimeSurvey to use to serve uploaded files. This allow you to set uploaded files on another url domain.
  • homedir: This should be set to the physical disk location of your administration scripts - for example "/home/usr/htdocs/limesurvey/admin". Don't add a trailing slash to this entry. The default setting in config.php attempts to detect the default root path of all your documents using the php variable setting {$_SERVER['DOCUMENT_ROOT']}. In most cases you can leave this and just modify the remainder of this string to match the directory name you have put the LimeSurvey scripts in.
  • publicdir: This should be set to the physical disk location of your 'public scripts'.
  • tempdir: This should be set to the physical disk location of your /limesurvey/tmp directory so that the script can read and write files.
  • uploaddir: This should be set to the physical disk location of your /limesurvey/upload directory so that the script can read and write files.
  • sCKEditorURL: url of the fckeditor script.
  • fckeditexpandtoolbar: defines if the fckeditor toolbar should be opened by default.
  • pdfexportdir: This is the directory with the tcpdf.php extensiontcpdf.php.
  • pdffonts: This is the directory for the TCPDF fonts.

Other advanced settings

Upload files

  • magic_database: (New in 3.17.17 ) Allow to use a different MIME database for finfo_open. Can be updated only in config.php file. Example : /usr/share/misc/magic.mgc for redhat based linux.
  • magic_file: (New in 3.17.17 ) Allow to use a different file to get the array of extension by mime type than the included one. Must be a PHP file return an array. Can be updated only in config.php file.

Update

  • updatable: This setting is in version.php. Can be true or false. If you set to true : when an super admin user log in : LimeSurvey checks if an update is available and show you a warning. If set to false : no check is done and you can't use ComfortUpdate.

Numerical question type behavior

  • bFixNumAuto: Numeric fields can be automatically filtered to remove all non numeric values. By default this is enable, you can disable it globally. This settings is related to Fix automatically numeric value in core theme options. It was enable for Yes, disable for Only for expression and No.
  • bNumRealValue: Numeric fields used in expression manager can be fixed or not. It's fixed by default. If NUMERIC is a numerical question : disable or 0 : {NUMERIC} with bad caracters send '', enable or 1 : {NUMERIC} send all character entered. This settings is related to Fix automatically numeric value in core theme options. It was enable for Yes and Only for expression and disable for No.