Configurações opcionais
From LimeSurvey Manual
A secção seguinte destina-se a quem pretende editar as configurações que não podem ser modificadas através da GUI (Interface Gráfica do Utilizador) da instalação do LimeSurvey. Tenha em atenção que todas as alterações efetuadas na pasta raiz do LimeSurvey são feitas por sua conta e risco. No entanto, se tiver problemas ou precisar de mais orientações, participe nos fóruns de discussão para obter ajuda da comunidade LimeSurvey.
Introdução
Para modificar as configurações da instalação, tem de editar as configurações opcionais. Estas encontram-se em /application/config/config-defaults.php, na pasta raiz do LimeSurvey. As configurações predefinidas da instalação padrão encontram-se em config-defaults.php. Algumas podem ser substituídas através da caixa de diálogo das configurações globais, enquanto as restantes têm de ser editadas manualmente.
Quando é efetuada uma atualização, apenas as configurações de config-defaults.php são alteradas. Por isso, ao editar o ficheiro config.php, as suas configurações personalizadas ficam guardadas.
Para atualizar/adicionar configurações do LimeSurvey em /application/config/config.php, tem de atualizar a tabela config:
'config'=>array(
'debug'=>0,
'debugsql'=>0,
'LimeSurveySetting'=>'New value', // Update default LimeSurvey config here
)
Configurações do Yii
O LimeSurvey utiliza o framework Yii, que tem os seus próprios parâmetros de configuração nos ficheiros application/config/internal.php e application/config/config.php. Também pode aceder a algumas configurações específicas do LimeSurvey através da configuração do Yii.
Como a tabela de config.php é integrada na configuração global, pode substituir qualquer parâmetro do Yii no ficheiro config.php.
As configurações específicas do Yii são definidas na tabela components:
'components' => array(
'db' => array(
....
),
'Specific settings'=>array(
....
),
),
Configurações da base de dados
As configurações da base de dados são escritas em config.php pelo instalador quando instala o LimeSurvey pela primeira vez. Se necessário, pode atualizar esta parte do ficheiro config.php. Lembre-se de que o faz por sua conta e risco! Consulte também a documentação do Yii e tenha em atenção que o LimeSurvey suporta apenas os seguintes tipos de base de dados: mysql, pgsql, dblib, mssql e sqlsrv.
Configurações de sessão
Pode definir alguns parâmetros de sessão em config.php (veja os dois exemplos abaixo). Pode descomentar/adicionar a parte necessária em config.php. Consulte a documentação do Yii para outras configurações.
Utilizar sessões baseadas em tabelas
O LimeSurvey pode utilizar sessões baseadas em tabelas; encontra uma parte comentada no ficheiro config.php predefinido gerado. Para utilizar sessões baseadas em tabelas, elimine o // antes de cada linha.
'session' => array (
'class' => 'application.core.web.DbHttpSession',
'connectionID' => 'db',
'sessionTableName' => '{{sessions}}',
),
Outras atualizações de sessão
Se utiliza SSL ('https') na sua instalação do LimeSurvey, a adição das seguintes linhas ao seu config.php aumentará a segurança da sessão:
// 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
),
),
Se pretende fixar o domínio de um cookie, utilize a seguinte sintaxe em config.php:
// Set the domain for cookie
'session' => array (
'cookieParams' => array(
'domain' => '.example.org',
),
),
Cada instância do LimeSurvey no mesmo domínio precisa do seu próprio nome de sessão. Caso contrário, iniciar sessão numa instância termina a sessão na outra. O instalador define um nome de sessão aleatório no config.php. Se copiou o config.php de outra instância, ou se o seu config.php provém de uma versão anterior ao LimeSurvey 4.0, adicione ou altere a linha sessionName na secção session existente e utilize um valor diferente para cada instância:
// Set the name of the session
'session' => array (
'sessionName' => 'LS-ABCDEFGHIJKLMNOP',
),
Configurações de pedido
As configurações de pedido são importantes, mas as configurações predefinidas já estão otimizadas para a utilização do LimeSurvey. Para saber mais sobre elas, consulte a documentação do Yii.
Por exemplo, a configuração de pedido do LimeSurvey pode ser modificada da seguinte forma (por sua conta e risco) :
// 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
'request' => array(
'csrfCookie' => array(
'domain' => '.example.com',
'path' => '/limesurvey/',
)
),
Se precisar de atualizar apenas o URL dos emails com códigos, defina o seu publicurl no ficheiro config.php.
Permitir a utilização de sessão e validação CSRF em iFrame
Ativar a opção Permitir inclusão em IFrame nas configurações globais de segurança apenas permite que os navegadores mostrem os seus inquéritos num iframe. Para que os participantes possam preencher e submeter um inquérito dentro de um iframe, também tem de alterar as configurações dos cookies de sessão e CSRF em config.php, conforme descrito abaixo. Ambos os cookies têm de ser enviados com SameSite=None, que os navegadores só aceitam através de uma ligação HTTPS válida.
Permitir o início de sessão numa iframe
O cookie de sessão tem de ser seguro (requer uma ligação HTTPS válida) e httponly, e o samesite tem de estar definido como None. As chaves em cookieParams têm de ser escritas em minúsculas.
'session' => array (
'sessionName'=>'LS-VBXZZORFJZCAKGYI',
// Remova os comentários das linhas seguintes se precisar de sessões baseadas em tabelas.
// Nota: as sessões baseadas em tabelas não são atualmente suportadas no servidor MSSQL.
// 'class' => 'application.core.web.DbHttpSession',
// 'connectionID' => 'db',
// 'sessionTableName' => '{{sessions}}',
'cookieParams' => array(
'secure' => true,
'httponly' => true,
'samesite' => 'None',
),
),
Permitir o cookie CSRF numa iframe
Tal como no cookie de sessão, o cookie CSRF tem de ser seguro e o sameSite tem de estar definido como None. Note que aqui a chave é escrita sameSite. Adicione toda a tabela request ao mesmo nível que session.
'request' => array(
'enableCsrfValidation'=>true,
'csrfCookie' => array(
'sameSite' => 'None',
'secure' => true,
),
),
Definições de URL
Para alterar as definições de URL por omissão, atualize o urlManager:
// Usar URL curto
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
),
Também pode adicionar .html a seguir ao ID do inquérito da seguinte forma:
// Usar URL curto
'urlManager' => array(
'urlFormat' => 'path',
'rules' => array (
'<sid:\d+>' => array('survey/index','urlSuffix'=>'.html','matchValue'=>true),
),
'showScriptName' => false,
),
Para mais informações, consulte a documentação do Yii.
Definições de registo (logging)
O Yii disponibiliza diferentes soluções para gerar registos. Para saber mais sobre elas, consulte o tópico especial sobre registos. Por omissão, o LimeSurvey usa '1' ou '2', o que permite que qualquer utilizador web veja os registos. Pode criar as suas próprias definições diretamente através do Yii.
Por exemplo, uma solução rápida para registar erros e avisos em ficheiros é:
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) */
);
application.controller.customInit.max_execution_time e application.controller.customInit.memory_limit são utilizadas para registar tentativas de alteração das definições do PHP.
Se tem conhecimento destas mensagens de registo e pretende excluí-las dos registos, pode adicionar estas categorias à opção except na configuração da rota de registo, conforme indicado abaixo:
'except' => [
'exception.CHttpException.404',
'application.controller.customInit.max_execution_time',
'application.controller.customInit.memory_limit',
],
limesurvey/tmp/runtime/application.log, que se encontra na pasta de raiz do LimeSurvey. Pode definir outro nome de ficheiro utilizando logFile..
Caminho de execução (runtime path)
O caminho de execução tem de ser uma pasta com permissões de leitura e escrita para o “utilizador web”. No entanto, o caminho de execução contém ficheiros com informação potencialmente sensível que se encontram na área de acesso público da web. O LimeSurvey reúne estes ficheiros na pasta temporária da pasta de raiz do LimeSurvey. Para eliminar o acesso a estes dados importantes, pode definir o caminho de execução fora do acesso público da web, editando as respetivas linhas no ficheiro /application/config/config.php:
return array(
'components' => array(
[…]
'runtimePath'=>'/var/limesurvey/runtime/',
'config'=>array(
[…]
)
)
)
Definições globais
- sitename: Atribui um nome ao seu sítio web de inquéritos. Este nome aparecerá na vista geral da lista de inquéritos e no cabeçalho da administração. O valor por defeito é 'LimeSurvey' e pode ser substituído na caixa de diálogo das configurações globais ou editado no config.php.
- siteadminemail: Este é o endereço de email por omissão do administrador do sítio web e é utilizado para mensagens do sistema e opções de contacto. Esta definição é usada apenas como valor por defeito e pode ser substituída na caixa de diálogo das configurações globais.
- showEmailInError: Utiliza o email por omissão do administrador (siteadminemail) na hiperligação mailto da página de erro. Desative para mostrar apenas o nome do administrador. Por omissão, está desativado para evitar mais spam no email de administração.
- siteadminbounce: Este é o endereço de email para onde serão enviados os emails devolvidos. Esta definição é usada apenas como valor por defeito e pode ser substituída na caixa de diálogo das configurações globais.
- siteadminname: O nome real do administrador do sítio web. Esta definição é usada apenas como valor por defeito e pode ser substituída na caixa de diálogo das configurações globais.
- proxy_host_name: Este é o nome de anfitrião do seu servidor proxy (tem de ser indicado se estiver atrás de um proxy e quiser atualizar o LimeSurvey através do ComfortUpdate).
- proxy_host_port: Esta é a porta do seu servidor proxy (tem de ser indicada se estiver atrás de um proxy e quiser atualizar o LimeSurvey através do ComfortUpdate).
Segurança
- maxLoginAttempt: Este é o número de tentativas que um utilizador tem para introduzir a senha correta antes de o seu endereço IP ser bloqueado. O valor por defeito é 3 e pode ser modificado no config.php.
- timeOutTime: Se o utilizador introduzir a senha incorretamente <maxLoginAttempt> vezes, fica bloqueado durante <timeOutTime> segundos. O valor por defeito é 10 minutos e pode ser modificado no config.php.
- maxLoginAttemptParticipants: Este é o número de tentativas que um participante tem para introduzir um código válido antes de o seu endereço IP ser bloqueado. O valor por defeito é 3 e pode ser modificado no config.php.
- timeOutParticipants: Se o participante introduzir o código incorretamente <maxLoginAttemptParticipants> vezes, fica bloqueado durante <timeOutParticipants> segundos. O valor por defeito é 10 minutos e pode ser modificado no config.php.
- surveyPreview_require_Auth: Definido como true por defeito. Se o definir como 'false', qualquer pessoa pode testar o seu inquérito através do URL do inquérito, sem iniciar sessão no painel de administração e sem que o inquérito tenha de ser ativado primeiro. Esta definição é um valor por defeito e pode ser substituída na caixa de diálogo das configurações globais ou editada no config.php.
- usercontrolSameGroupPolicy: Definido como true por defeito. Por defeito, os utilizadores não administradores definidos na interface de gestão do LimeSurvey só poderão ver os utilizadores que criaram ou os utilizadores que pertençam a pelo menos um mesmo grupo. O valor por defeito pode ser substituído na caixa de diálogo das configurações globais ou editado no config.php.
- demoMode: Se esta opção estiver definida como 'true' no config.php, o LimeSurvey entra em modo de demonstração. O modo de demonstração altera o seguinte:
- Desativa a alteração dos dados e da senha do utilizador administrador;
- Desativa o carregamento de ficheiros no editor de modelos;
- Desativa o envio de convites e lembretes por email;
- Desativa a criação de uma cópia da base de dados;
- Desativa a possibilidade de modificar as seguintes configurações globais: nome do sítio web, idioma por omissão, modo predefinido do editor HTML, filtro XSS.
- forcedsuperadmin: Tabela de ID de utilizador com todos os direitos sobre todo o LimeSurvey. Esta definição só pode ser atualizada no ficheiro config.php. Os direitos destes utilizadores não podem ser editados nas permissões globais de um utilizador, nem sequer por outro superadministrador forçado. Por omissão, o utilizador com estes direitos é o utilizador com o ID 1, o primeiro utilizador criado logo após a instalação.
- force_ssl: Força o LimeSurvey a funcionar através de HTTPS ou a bloquear o HTTPS. Consulte Forçar o HTTPS na interface gráfica das configurações globais.
- ssl_emergency_override: Esta definição força a desativação do SSL. Se ativou o HTTPS/SSL nas configurações globais mas o seu servidor não tem o HTTPS ativado, a única forma de o desativar é alterar diretamente um valor na base de dados. Esta definição permite forçar a desativação do HTTPS enquanto altera as configurações globais de Forçar o HTTPS. Deve estar sempre como false, exceto em emergências, em que a deve alterar para true até resolver o problema. Esta definição só pode ser configurada através do ficheiro config.php.
- ssl_disable_alert: Desativa o alerta para o superadministrador sobre o SSL não forçado, se realmente não puder ou não quiser forçar o SSL. Esta definição só pode ser configurada através do ficheiro config.php.
- allow_unserialize_attributedescriptions: Permite a desserialização (com a função unserialize do PHP) dos atributos de códigos ao importar ou ler um objeto de inquérito. Os dados dos atributos de códigos são guardados como JSON. Se importar um ficheiro de inquérito de uma versão muito antiga do LimeSurvey e precisar de obter os respetivos atributos de códigos, tem de ativar esta definição. Aviso: a desserialização pode resultar no carregamento e execução de código devido à instanciação de objetos e ao carregamento automático, e um utilizador mal-intencionado poderá explorar esta situação. Esta definição só pode ser configurada através do ficheiro config.php.
- allow_unserialize_attachments: Permite a desserialização (com a função unserialize do PHP) dos atributos de anexos ao importar um inquérito. No LimeSurvey 6.16.17, o atributo de anexos passou de serialize para json_encode. Se precisar de manter os anexos ao importar ficheiros LSS antigos, tem de o permitir. Aviso: a desserialização pode resultar no carregamento e execução de código devido à instanciação de objetos e ao carregamento automático, e um utilizador mal-intencionado poderá explorar esta situação. Esta definição só pode ser configurada através do ficheiro config.php.
- twig_getConfig_extraallowlist: Permite autorizar elementos específicos para a função getConfig no Twig. O LimeSurvey já permite as definições mais necessárias e utilizadas, mas pode precisar de mais. Se quiser permitir 'securesetting' e 'anothersetting', defina-o como
['securesetting','anothersetting'], assim:'twig_getConfig_extraallowlist' => ['securesetting','anothersetting']. Esta definição só pode ser configurada através do ficheiro config.php.
Proteção contra Cross-site scripting (XSS)
O LimeSurvey não permite qualquer script de utilizador na página de administração. Se descobrir uma forma de um utilizador adicionar um script XSS na página de administração, consulte a nossa Política de Segurança.
Os scripts das páginas públicas são geridos pelas definições do filtro XSS.
- filterxsshtml: Esta definição ativa a filtragem de etiquetas HTML suspeitas existentes nos textos de inquéritos, grupos, perguntas e respostas na interface de administração. Deixe-a como 'false' apenas se confiar totalmente nos utilizadores que criou para a administração do LimeSurvey e se quiser permitir que estes utilizadores possam usar Javascript, filmes Flash, etc. O HTML dos superadministradores nunca é filtrado. O valor por defeito pode ser substituído na caixa de diálogo das Configurações globais.
- filterxsshtml_forcedall: Força
filterxsshtmlpara true para todos os utilizadores e desativa as alterações na interface gráfica de administração. Ativa também a filtragem de etiquetas HTML suspeitas para o superadministrador. - filterxsshtml_allowforcedsuperadmin: Utilizado apenas se
filterxsshtml_forcedallfor true. Permite a adição de qualquer script e HTML porforcedsuperadmin(por omissão, o utilizador administrador n.º 1). - disablescriptwithxss: Permite a alteração do script numa pergunta: por defeito, true: segue as regras XSS; defina como false para permitir a todos os utilizadores. O valor por defeito pode ser substituído na caixa de diálogo das Configurações globais.
- filterxsshtml_enablescript: Utilizado apenas se filterxsshtml_forcedall for true. Ativa o script da pergunta para um utilizador específico:
gui: permite alterar a definição através da interface gráfica;superadmin: apenas o superadministrador;forcedsuperadmin: apenas o superadministrador forçado; por defeito: nenhum utilizador e não permite a alteração através da interface gráfica
Carregamento de ficheiros permitido
- allowedthemeimageformats : Tipos de ficheiro de imagem cujo carregamento é permitido na secção de temas. Por defeito, os ficheiros SVG estão desativados devido a possíveis ataques XSS.
- allowedthemeuploads : Outros tipos de ficheiro cujo carregamento é permitido na secção de temas (ficheiro zip)
- allowedresourcesuploads : Tipos de ficheiro cujo carregamento é permitido nas secções de recursos e com o Editor HTML
- allowedpluginuploads : Tipo de ficheiro permitido ao carregar o ficheiro zip de um plugin.
Basta introduzir uma cadeia de caracteres com as extensões separadas por vírgulas. Por exemplo:
'allowedthemeimageformats' => 'jpg,jpeg,gif,png,webm,svg',
Aviso: tenha sempre cuidado ao permitir o carregamento de ficheiros. Podem ocorrer atividades maliciosas.
Plugins
- usePluginWhitelist : Se for true, os plugins que não estejam na lista de permissões (ver 'pluginWhitelist') não podem ser instalados nem carregados. Isto pode desativar plugins já instalados.
- pluginWhitelist : Lista de nomes de plugins cuja instalação e carregamento são permitidos quando 'usePluginWhitelist' é true. Os plugins principais estão implicitamente na lista de permissões.
- corePluginBlacklist : Lista de nomes de plugins principais proibidos quando 'usePluginWhitelist' é true.
- disablePluginUpload : Quando esta definição é true, a funcionalidade "Carregamento de plugins" fica desativada
Controlo de anfitriões
- allowedHosts : para evitar a Host Header Injection, pode definir o anfitrião permitido para todas as ações. Se utilizar anfitriões diferentes para a página pública e para a página de administração, tem de definir ambos como anfitriões permitidos.
'config'=>array(
....
, // Update default LimeSurvey config here
'allowedHosts' => [
'survey.example.org',
'proxy.survey.example.com',
'example.limesurvey.org',
],
),
Recursos
- iSessionExpirationTime: Define o tempo, em segundos, após o qual expira uma sessão de inquérito. Aplica-se apenas se utilizar sessões de base de dados. Se utilizar sessões de base de dados, altere o parâmetro em config.php ou substitua o valor por defeito na caixa de diálogo das Configurações globais.
- memory_limit: Determina a quantidade de memória, em megabytes, a que o LimeSurvey pode aceder. O valor por defeito é '256'. Se receber erros de tempo limite excedido ou tiver problemas ao gerar estatísticas ou exportar ficheiros, aumente este limite para '512' ou mais. Se o seu servidor web tiver definido um limite mais elevado em php.ini, esta definição será ignorada.
Para aumentar o limite de memória para 128M, pode também tentar adicionar:
- memory_limit = 128M ao ficheiro php.ini principal do seu servidor (recomendado, se tiver acesso)
- memory_limit = 128M a um ficheiro php.ini na raiz do LimeSurvey
- php_value memory_limit 128M num ficheiro .htaccess na raiz do LimeSurvey
- max_execution_time: Define o número de segundos durante os quais um script pode ser executado. Se este limite for atingido, o script devolve um erro fatal. Para permitir a exportação de grandes volumes de dados e estatísticas de inquéritos, o LimeSurvey tenta defini-lo por defeito para 1200 segundos. Pode definir um tempo superior ou inferior, se necessário. Apenas acessível através do ficheiro de configuração php.
Aspeto
- repeatheadings: Com o tipo de pergunta Tabela, terá frequentemente muitas subperguntas que, quando apresentadas no ecrã, ocupam mais do que uma página. Esta definição permite decidir quantas subperguntas devem ser apresentadas antes de repetir a informação do cabeçalho da pergunta. Um bom valor é cerca de 15. Se não pretender que os cabeçalhos se repitam, defina como 0. Esta definição é substituída na caixa de diálogo das Configurações globais.
- minrepeatheadings: O número mínimo de subperguntas restantes necessário antes de repetir os cabeçalhos nas perguntas de tabela. O valor por defeito é 3 e pode ser editado em config.php.
- defaulttheme: Esta definição especifica o tema por defeito utilizado na 'lista pública' de inquéritos. Esta definição pode ser substituída na caixa de diálogo das Configurações globais ou editada em config.php.
- defaulthtmleditormode: Define o modo por defeito do Editor HTML integrado. Esta definição pode ser substituída na caixa de diálogo das Configurações globais ou editada em config.php. As definições válidas são:
- 'inline' - Substituição dos campos por um editor HTML em linha. Lento, mas conveniente e fácil de utilizar;
- 'popup' - Adiciona um ícone que executa o editor HTML num popup, se necessário. Mais rápido, mas o código HTML é apresentado no formulário;
- 'none'- Sem editor HTML;
- column_style: Define como são apresentadas as colunas nas respostas do inquérito ao utilizar display_columns. Pode ser editado no ficheiro config.php. As definições válidas são:
- 'css' - utiliza um dos vários métodos CSS para criar colunas (consulte a folha de estilos do tema para mais detalhes);
- 'ul' - as colunas são apresentadas como várias listas não ordenadas flutuantes (por defeito);
- 'table' - utiliza um esquema convencional baseado em tabelas;
- NULL - desativa a utilização de colunas.
Idioma e hora
- defaultlang: Deve ser definido para o idioma por defeito a utilizar nos scripts de administração e também a definição por defeito do idioma na lista pública de inquéritos. Esta definição pode ser substituída na caixa de diálogo das Configurações globais ou editada em config.php.
- timeadjust: Se o seu servidor web estiver num fuso horário diferente do local onde os seus inquéritos se baseiam, indique aqui a diferença entre o seu servidor e o seu fuso horário. Por exemplo, eu vivo na Austrália, mas utilizo um servidor web dos EUA. O servidor web está 14 horas atrás do meu fuso horário local. Assim, a minha definição aqui é "14". Por outras palavras, adiciona 14 horas à hora do servidor web. Esta definição é particularmente importante quando os inquéritos registam a data e hora das respostas. Esta definição pode ser substituída na caixa de diálogo das Configurações globais ou editada em config.php.
Comportamento do inquérito
- deletenonvalues: Utilize esta funcionalidade com cuidado. Por defeito (valor 1), as perguntas irrelevantes ficam a NULL na base de dados. Isto garante que os dados na base de dados são internamente consistentes. No entanto, há casos raros em que poderá querer manter os valores irrelevantes e, nesse caso, pode definir o valor como 0. Por exemplo, pergunta-se o género a um homem e ele responde acidentalmente 'feminino' e depois responde a algumas perguntas específicas para mulheres (perguntas condicionadas ao género feminino, portanto relevantes apenas para mulheres). Depois, apercebe-se do erro, volta atrás, define o género como 'masculino' e continua o inquérito. Agora, as perguntas específicas para mulheres são irrelevantes. Se
$deletenonvalues==1, esses valores irrelevantes serão limpos (NULL) na base de dados. Se$deletenonvalues==0, as suas respostas erróneas não serão eliminadas, pelo que continuarão presentes na base de dados quando a analisar. - shownoanswer: Quando uma pergunta do tipo botão de opção/seleção que contém respostas editáveis (por exemplo: perguntas de lista e de tabela) não é obrigatória e 'shownoanswer' está definido como 1, é apresentada uma entrada adicional 'Sem resposta', para que os participantes possam optar por não responder à pergunta. Algumas pessoas preferem que esta opção não esteja disponível. Esta definição pode ser substituída na caixa de diálogo das Configurações globais ou editada em config.php. Os valores válidos são:
- '0': Não;
- '1': Sim;
- '2': O administrador do inquérito pode escolher.
- printanswershonorsconditions: Esta definição determina se a funcionalidade printanswers apresenta entradas de perguntas que foram ocultadas por ramificação de condições (por defeito: 1 = ocultar respostas de perguntas ocultadas por condições).
- showpopups: Mostra mensagens em popup se as perguntas obrigatórias ou condicionais não tiverem sido respondidas corretamente:
- '2' = definido pela opção do tema (por defeito)
- '1'= mostrar mensagem em popup;
- '0'= mostrar a mensagem na página;
- '-1'= não mostrar a mensagem de todo (neste caso, os utilizadores continuarão a ver as dicas específicas da pergunta que indicam quais as perguntas a que é necessário responder).
Comportamento do tipo de pergunta numérica
- bFixNumAuto: Os campos numéricos podem ser filtrados automaticamente para remover todos os valores não numéricos. Por defeito, está ativado, mas pode desativá-lo globalmente. Esta definição está relacionada com Corrigir automaticamente valor numérico nas opções do tema principal. Está ativada para Sim e desativada para Para expressão e Não.
- bNumRealValue: Os campos numéricos utilizados no gestor de expressões podem ser corrigidos ou não. Por defeito, são corrigidos. Se NUMERIC for uma pergunta numérica: desativado ou 0: {NUMERIC} com caracteres inválidos devolve ''; ativado ou 1: {NUMERIC} devolve todos os caracteres introduzidos. Esta definição está relacionada com Corrigir automaticamente valor numérico nas opções do tema principal. Está ativada para Sim e Para expressão e desativada para Não.
Desenvolvimento e debug
- debug: Com esta definição, define o relatório de erros do PHP para E_ALL. Isto significa que é apresentado cada pequeno aviso ou erro relacionado com o script. Esta definição só deve ser alterada para '1' se estiver a fazer debug da aplicação por qualquer motivo. Se for programador, defina-a como '2'. Não a defina como '1' ou '2' em produção, pois pode causar a divulgação de caminhos. O valor por defeito é '0' e pode ser editado em config.php.
- debugsql: Ative esta definição se pretender apresentar todas as consultas SQL executadas pelo script no fundo de cada página. Muito útil para otimizar o número de consultas. Para a ativar, altere o valor por defeito para '1' no ficheiro config.php.
- use_asset_manager: Por defeito, o modo debug desativa o gestor de recursos (asset manager); pode permitir a utilização do gestor de recursos com o modo debug ativado.
- rpc_log: (New in 7.9.0 ) Defina-a como
truepara registar cada chamada do RemoteControl emtmp/runtime/remotecontrol.log. Cada linha contém o método chamado, os respetivos parâmetros, o endereço IP do cliente, a duração e o início da resposta. As senhas são removidas, as chaves de sessão são substituídas por um hash curto e os valores longos são encurtados. O registo continua a conter os dados do inquérito, dos participantes e das respostas que foram enviados e recebidos, pelo que só o deve ativar enquanto procura um problema. O valor por defeito éfalse.
Caso ocorra um erro na aplicação, recomendamos vivamente que ative a definição de debug, de modo a obter um erro mais detalhado que pode submeter com o relatório de erro:
'config'=>array(
'debug'=>2,
'debugsql'=>0,
)
Se trabalha num plugin e precisa de uma forma rápida de apresentar variáveis no ecrã, pode utilizar a função traceVar. Se o debug estiver ativado, esta função utiliza CWebLogRoute para apresentar a informação na página HTML. Utilização: traceVar($MyVariable)
Configurações do email
Todas as definições abaixo podem ser substituídas na janela de configurações globais.
- 'emailmethod: Determina a forma como as mensagens de email são enviadas. Estão disponíveis as seguintes opções:
- 'mail:' utiliza o programa de envio de email interno do PHP;
- 'sendmail:' utiliza o programa de envio sendmail;
- 'smtp:' utiliza o reencaminhamento SMTP. Utilize esta opção quando executa o LimeSurvey num anfitrião que não é o seu servidor de email.
- 'emailsmtphost: Se utilizar 'smtp' como
$emailmethod, tem de indicar aqui o seu servidor SMTP. Se utilizar o Google mail, poderá ter de adicionar o número da porta, por exemplo $emailsmtphost = 'smtp.gmail.com:465'. - emailsmtpuser: Se o seu servidor SMTP necessitar de autenticação, defina aqui o seu nome de utilizador; caso contrário, deve ficar em branco.
- emailsmtppassword: Se o seu servidor SMTP necessitar de autenticação, defina aqui a sua senha; caso contrário, deve ficar em branco.
- emailsmtpssl: Defina como 'ssl' ou 'tls' para utilizar SSL/TLS na ligação SMTP.
- maxemails: Ao enviar convites ou lembretes aos participantes no inquérito, esta definição determina quantos emails podem ser enviados de uma só vez. Os diferentes servidores web têm capacidades de envio de email diferentes e, se o seu script demorar demasiado tempo a enviar um lote de emails, pode exceder o tempo limite e provocar erros. A maioria dos servidores web consegue enviar 100 emails de cada vez dentro do tempo limite predefinido de 30 segundos para um script PHP. Se receber erros de tempo limite do script ao enviar grandes quantidades de emails, reduza o número nesta definição. Ao clicar no botão 'Enviar email com convite' na barra de ferramentas de controlo dos códigos (e não no botão situado à direita de cada código), são enviados <maxemails> convites; em seguida, é apresentada uma lista com os endereços dos destinatários e um aviso de que existem mais emails pendentes do que os que puderam ser enviados num só lote. Continue a enviar emails clicando abaixo. Ainda faltam ### emails por enviar. e é disponibilizado um "botão de continuação" para avançar para o lote seguinte. Ou seja, o utilizador determina quando enviar o lote seguinte, depois de cada lote ser enviado. Não é necessário aguardar com este ecrã ativo. O administrador pode terminar a sessão e voltar mais tarde para enviar o lote seguinte de convites.
- send_error_saving_results_email: (New in 7.8.0 ) Se não for possível gravar uma resposta, o LimeSurvey envia as respostas ao administrador do inquérito num email com o assunto "Erro ao gravar os resultados". Defina-a como
falsepara deixar de enviar estes emails. Os participantes continuam a ver a mensagem de erro. O valor por defeito étrue. Esta definição só pode ser alterada em config.php.
- filterout_incomplete_answers: Controla o comportamento predefinido da filtragem de respostas incompletas ao navegar ou analisar respostas. Para uma discussão sobre respostas incompletas, consulte a nossa wiki sobre a navegação nos resultados do inquérito. Uma vez que estes registos podem corromper as estatísticas, é disponibilizada uma opção para ativar ou desativar este filtro em vários formulários da interface gráfica. O parâmetro pode ser editado no config.php. Estão disponíveis as seguintes opções:
- 'all': Permite visualizar respostas completas e incompletas;
- 'complete': Mostra apenas as respostas completas;
- 'incomplete': Mostra apenas as respostas incompletas.
- strip_query_from_referer_url: Esta configuração determina se o URL de origem guarda ou não o parâmetro. O valor por defeito é 'false' (neste caso, o URL de origem guarda todos os parâmetros). Em alternativa, este valor pode ser definido como 'true' e a parte do parâmetro do URL de origem será removida.
- showaggregateddata: quando ativada, são apresentados valores estatísticos adicionais, como a média aritmética e o desvio padrão. Além disso, os dados são agregados para obter uma visão geral mais rápida. Por exemplo, os resultados das escalas 1+2 e 4+5 são somados para obter uma classificação geral como "bom" (1/2), "médio" (3) e "mau" (4/5). Isto afeta apenas os tipos de pergunta "A" (tabela de 5 pontos) e "5" (escolher entre 5 pontos).
- Configurações de exportação para PDF: Esta funcionalidade ativa a exportação para PDF dos inquéritos imprimíveis e de Imprimir/Gravar as suas respostas. A função de exportação para PDF é totalmente experimental e o resultado está longe de ser perfeito. Infelizmente, de momento não é possível prestar suporte - se quiser ajudar a corrigi-la, entre em contacto connosco.
- 'pdfdefaultfont': Representa o tipo de letra predefinido que será utilizado pela função de exportação para PDF. O valor por defeito é 'auto'. Para o alterar, tem de o definir como um dos tipos de letra principais do PDF.
- 'alternatepdffontfile': É uma tabela com chaves de idioma e o respetivo tipo de letra correspondente. O tipo de letra predefinido para cada idioma pode ser substituído no ficheiro config.php;
- 'pdffontsize': indica o tamanho do tipo de letra para os textos normais; para o título do inquérito é <pdffontsize>+4, enquanto para o título do grupo é <pdffontsize>+2. Pode ser editado no ficheiro config.php ou na caixa de diálogo das configurações globais.
- Configuração dos gráficos
- 'chartfontfile': Define o nome do ficheiro do tipo de letra utilizado para criar os gráficos estatísticos. O ficheiro tem de estar localizado na pasta fonts, situada na pasta raiz do LimeSurvey. Pode ser editado no ficheiro config.php;
- 'alternatechartfontfile': É uma tabela com chaves de idioma e o respetivo tipo de letra correspondente. Pode ser editado no ficheiro config.php.
- showsgqacode: Esta configuração é utilizada na funcionalidade de versão de impressão do inquérito e, por defeito, tem o valor 'false'. Se definir showsgqacode = 'true';, serão apresentados os IDs de cada pergunta - e resposta, se aplicável. Estes IDs correspondem ao cabeçalho das colunas da tabela Lime_survey_12345, que contém os dados das respostas de um determinado inquérito. Estes IDs podem ser utilizados num livro de códigos para consultas manuais à base de dados.
Configurando o LDAP
Como este é um assunto extenso passamos Configurando o LDAP para outra página.
Autenticação
A autenticação é gerida por plugins. As configurações abaixo são utilizadas pelo plugin de autenticação Webserver; consulte Plugins de autenticação.
Delegado de autenticação para o servidor web
Os administradores de sistemas podem querer que os seus administradores de inquéritos sejam autenticados num sistema de autenticação central (Active Directory, openLdap, Radius, ...) em vez de utilizarem a base de dados interna do LimeSurvey. Uma forma simples de o fazer é configurar o software do servidor web para utilizar este sistema de autenticação externo e, depois, pedir ao LimeSurvey que confie na identidade do utilizador comunicada pelo servidor web. Para ativar esta funcionalidade, tem de:
- ativar o plugin Webserver em Configuração > Plugins e definir, nas configurações do plugin, a chave do servidor que contém o nome de utilizador (por defeito: REMOTE_USER);
- ativar a autenticação do lado do servidor web.
Tenha em atenção que:
- o LimeSurvey irá então ignorar o seu próprio processo de autenticação (utilizando o nome de utilizador comunicado pelo servidor web, sem pedir uma senha);
- isto só pode substituir o sistema de autenticação da interface gráfica do LimeSurvey, não o sistema de convites do inquérito (interface do participante).
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 utilizador obtém então acesso ao LimeSurvey se, e só se:
- tiver sido autenticado no servidor web;
- o seu nome de utilizador estiver definido como utilizador na base de dados de utilizadores do LimeSurvey (o utilizador recebe então os privilégios do utilizador definido na base de dados de utilizadores do LimeSurvey);
- tiver a permissão global Autenticar através do servidor web.
Delegação de autenticação do usuário com importação automática
Ao gerir uma base de dados de utilizadores muito grande, por vezes é mais fácil importar automaticamente os utilizadores para a base de dados do LimeSurvey:
- auth_webserver_autocreate_user: Se definido como 'true', o LimeSurvey tentará importar automaticamente os utilizadores autenticados pelo servidor web que ainda não existam na sua base de dados de utilizadores.
- auth_webserver_autocreate_profile: Uma tabela que descreve o perfil predefinido que será atribuído ao utilizador: o nome completo (fictício), o email e o idioma.
- auth_webserver_autocreate_permissions: Uma tabela com as permissões globais que serão atribuídas ao utilizador.
Se quiser personalizar o perfil do utilizador para que corresponda ao utilizador com sessão iniciada, terá de desenvolver uma função simples chamada hook_get_auth_webserver_profile no config.php - com esta função pode obter, a partir de uma base de dados central de contas de utilizadores (por exemplo, um diretório LDAP), o nome completo, o email e o idioma reais de um determinado utilizador.
A função hook_get_auth_webserver_profile recebe o nome de utilizador como único argumento e pode devolver:
- False ou uma tabela vazia - neste caso, o acesso do utilizador ao LimeSurvey é negado;
- uma tabela com as mesmas entradas que
auth_webserver_autocreate_profile.
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
return array(
'full_name' => $user_name_from_backend,
'email' => $user_email_from_backend,
'lang' => $user_lang_from_backend,
);
}
// If user should be denied access, return an empty array
// return array();
Mapeamento de nomes de utilizador
No caso de alguns utilizadores terem um nome de utilizador externo diferente do seu nome de utilizador no LimeSurvey, pode ser útil utilizar um mapeamento de nomes de utilizador. No LimeSurvey, isto é feito através do parâmetro auth_webserver_user_map. Por exemplo, imagine que não tem um nome de utilizador 'admin' definido na sua base de dados de autenticação externa. Então, para iniciar sessão no LimeSurvey como admin, terá de mapear o seu nome de utilizador externo (vamos chamar-lhe 'myname') para o nome de utilizador admin no LimeSurvey. A configuração correspondente é:
'config'=>array(
...
'auth_webserver_user_map' => array ('myname' => 'admin');
)
Após uma autenticação bem-sucedida com o nome de utilizador 'myname' e a senha do servidor web, ficará diretamente autorizado a utilizar o LimeSurvey como o utilizador 'admin'.
Isto tem implicações de segurança graves, por isso utilize-o com cuidado. Proteja também o seu config.php contra acesso de escrita por parte do servidor web.
Utilizar senhas descartáveis
Um utilizador pode abrir a página de início de sessão do LimeSurvey em default.com/limesurvey/admin e introduzir o nome de utilizador e a senha descartável que foi previamente escrita na tabela de utilizadores (coluna one_time_pw) por uma aplicação externa.
Esta configuração tem de ser ativada no ficheiro config.php para permitir a utilização de senhas descartáveis (por defeito = false).
'config'=>array(
'debug'=>0,
'debugsql'=>0,
'use_one_time_passwords'=>true,
)
Pode encontrar mais informações na secção "Gerir utilizadores".
Configurações de encriptação
application/config/security.php. Se quiser, pode mover estas configurações para o config.php ou deixá-las no security.php.Consulte Encriptação de dados para mais detalhes sobre esta funcionalidade.
- encryptionkeypair
- encryptionpublickey
- encryptionsecretkey
- encryptionnonce
- encryptionsecretboxkey
Configurações avançadas de URL
- publicurl: Deve ser definido como a localização URL dos seus 'scripts públicos'. Os scripts públicos são os que se encontram na pasta "limesurvey" (ou o nome que tenha dado à pasta onde estão guardados todos os outros scripts e pastas). Esta configuração está disponível no config.php e é utilizada quando o LimeSurvey necessita de um URL absoluto (por exemplo, quando são enviados emails com códigos).
- tempurl: Deve ser definido como a localização URL da sua pasta "/limesurvey/tmp" - ou de uma pasta que pretenda que o LimeSurvey utilize para servir ficheiros temporários.
- uploadurl: Deve ser definido como a localização URL da sua pasta "/limesurvey/upload" - ou de uma pasta que pretenda que o LimeSurvey utilize para servir ficheiros carregados. Isto permite-lhe colocar os ficheiros carregados noutro domínio de URL.
Configurações avançadas de caminhos
- homedir: Deve ser definido como a localização física em disco dos seus scripts de administração - por exemplo "/home/usr/htdocs/limesurvey/admin". Não acrescente uma barra final a esta entrada. A configuração predefinida no config.php tenta detetar o caminho raiz predefinido de todos os seus documentos utilizando a variável PHP
{$_SERVER['DOCUMENT_ROOT']}. Na maioria dos casos, pode deixá-la como está e modificar apenas o restante desta cadeia de caracteres para corresponder ao nome da pasta onde colocou os scripts do LimeSurvey. - publicdir: Deve ser definido como a localização física em disco dos seus 'scripts públicos'.
- tempdir: Deve ser definido como a localização física em disco da sua pasta /limesurvey/tmp, para que o script possa ler e escrever ficheiros.
- uploaddir: Deve ser definido como a localização física em disco da sua pasta /limesurvey/upload, para que o script possa ler e escrever ficheiros.
- sCKEditorURL: URL do script do CKEditor.
Outras configurações avançadas
Carregamento de ficheiros
- magic_database: Permite utilizar uma base de dados MIME diferente para finfo_open. Só pode ser atualizada no ficheiro config.php. Exemplo:
/usr/share/misc/magic.mgcpara Linux baseado em Red Hat. - magic_file: Permite utilizar um ficheiro diferente para obter a tabela de extensões por tipo MIME, em vez do ficheiro incluído. Tem de ser um ficheiro PHP que devolva uma tabela. Só pode ser atualizado no ficheiro config.php.
Atualização
- updatable: Esta definição encontra-se em version.php. Pode ser true ou false. Se for definida como true, quando um superadministrador iniciar sessão, o LimeSurvey verifica se existe uma atualização disponível e mostra um aviso. Se for definida como false, não é efetuada nenhuma verificação e não poderá utilizar o ComfortUpdate.
Códigos
- allowedcharacters_pattern_token : Estas definições permitem definir o padrão de expressão regular ao filtrar códigos.