LimeSurvey - Tópicos avançados

De Wiki CGU
Ir para: navegação, pesquisa

Chaves de acesso

Por meio das chaves de acesso, é possível restringir a utilização dos questionários apenas a usuários finais selecionados. Ao publicar um formulário, o servidor será perguntado se deseja mudar para o modo de acesso restrito. Clicando “mudar para modo de acesso restrito”, essa funcionalidade será ativada e o sistema perguntará se deve inicializar os códigos, após o que será possível criar chaves de acesso e enviar e-mails de convite para o preenchimento do formulário. Os códigos são acessíveis por meio do botão NovoImagem16.PNG na barra de ferramentas do inquérito.

Por padrão, a nova tabela de códigos terá campos para informar o primeiro e o último nome do respondente, seu e-mail e o código de acesso (que também pode ser criado automaticamente). O botão NovoImagem17.PNG permite incluir novos campos nessa tabela, o que pode ser especialmente útil na personalização do questionário usando o expression manager. Nesse caso, far-se-á uso de expressões como {TOKEN:FIRSTNAME} ou {TOKEN:LASTNAME}.

Modelos de e-mail

O botão NovoImagem18.PNG leva à configuração dos modelos de e-mail NovoPropriedadedoEnquerito.PNG. Além dos e-mails relacionados à restrição de acesso ao formulário, modelos de notificação ao administrador, confirmação da conclusão do formulário e registro no sistema estão disponíveis. Eles fazem uso extenso do expression manager.

O uso conjunto de e-mails e chaves de acesso permite a criação de uma mala direta de convites para a participação na pesquisa.

Validação

Cada pergunta contém opcionalmente uma expressão de validação. Trata-se de uma expressão regular, colocada entre barras (“/”), no formato habitualmente usado na programação de computadores. Para validar um número com um tamanho mínimo e um máximo, por exemplo, a expressão seria: /^[0-9]{min,max}$/, onde:

Código Significado
^ Inicio da resposta
[0-9] Qualquer caractere compreendido de 0 a 9 (outras opções seriam, por exemplo, [a-z], [A-Z] ou ainda [a-zA-Z\u00c0-\u017F] para permitir qualquer letra, maiúscula, minúscula ou acentuada)
$ Fim da resposta

h3. Exemplos de expressões regulares

Algumas expressões regulares comumente utilizadas para validar respostas nos formulários da CFECS:

Campo Expressão regular
CEP /^[0-9]{5}-[0-9]{3}$/
CNPJ /^[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}$/
CPF /^[0-9]{3}.[0-9]{3}.[0-9]{3}-[0-9]{2}$/
Código IBGE de município /^[0-9]{7}$/
INEP /^[0-9]{8}$/
Telefone /^\([0-9]{2}\) [0-9]{4,5}-[0-9]{4}$/
E-mail /^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/

No caso de CEP, CNPJ, CPF e telefone, a formatação da entrada será automática quando se usarem os modelos “CGU” e “Embutido”. Ou seja, bastará ao usuário final digitar os números do CEP, CNPJ, CPF ou telefone para que os demais caracteres sejam inseridos automaticamente.

Dinamizando um questionário

O expression manager é o nome dado a um mecanismo de automação de formulários utilizado pelo LimeSurvey. Por meio de códigos escritos entre chaves (“{“ e “}”), podem-se dinamizar enunciados, descrições, textos de ajuda e de encerramento, e também definir se uma questão ou um grupo de questões será exibido. No expression manager poderão ser utilizados os códigos das questões (para obter as respectivas respostas) e funções, das quais a mais comum será a de processamento condicional (“if”). A sintaxe da função if é semelhante à do Excel:

{if(questao1 == ″comparação″, ″Verdadeiro″, ″Falso″)}

Note bem que deve haver um espaço entre o operador lógico (“==”, neste caso) e os operandos. O primeiro argumento da função é a condição a ser cumprida, o segundo é a ação ou o texto no caso de a comparação ser verdadeira, e o terceiro, no caso de ser falsa.

Os principais operadores lógicos disponíveis são:

  • (): agrupamento e argumentos de funções.
  •  !: negação.
  • < <= > >= it le gt ge: comparação de valores (menor, menor ou igual, maior, maior ou igual).
  • == != eq ne: "igual" ou "não igual".
  • and or: "e" e "ou"

Exemplos de expression manager

Utilizando uma resposta anterior

{Name}, há quanto tempo você trabalha no(a){instituição}?

No caso de a resposta á pergunta com o código "Nome" ser "Fulano" e á pergunta com o código "Instituicao" ser "CGU", será exibido: "Fulano, há quanto tempo você trabalha no(a) CGU?"

Texto condicional

{Nome}, há quanto tempo você trabalha {if(TipoInstituicao == “Associacao”, “nessa associação”, if(TipoInstituicao == “OrgaoPublico”, “nesse órgão”, “nessa empresa”))}?

Neste caso, conforme a resposta à pergunta com o código “TipoInstituicao”, será exibido o texto “nessa associação”, “nesse órgão” ou “nessa empresa”. Note que há duas cláusulas “if”, uma dentro da outra, para o caso de a primeira condição não ser satisfeita.

E-mail exemplificado

Informe preferencialmente o seu endereço de e-mail oficial na entidade (ex.: {strtolower(str_replace(" ",".",Responsavel))}@{strtolower(str_replace(" ","",Entidade))}.{if(TipoEntidade == "ONG","org",if(TipoEntidade == "AssMu", "org", if(TipoEntidade == "OrgLe", "leg", if(TipoEntidade == "OrgJu", "jus", "gov"))))}.br)

Esse exemplo mostra o uso das funções “strtolower” para colocar um texto em caixa baixa e “str_replace” para substituir os espaços nos nomes por ponto ou para excluí-los (substituir por um texto vazio: ″″). Ao final do processamento, o texto ficará como segue:

Informe preferencialmente o seu endereço de e-mail oficial na entidade (ex.: fulano.de.tal@nomedaentidade.org.br)

Ajuda adicional

Equações de relevância

Equações de relevância determinam se uma pergunta ou um grupo de perguntas será exibido para o usuário final – isto é, determinam se é relevante. Elas podem ser criadas com o uso do expression manager ou do botão NovoImagem19.PNG na barra de ferramentas da pergunta. Contudo, somente com o expression manager é possível determinar a relevância de todo o grupo de questões. Por isso, e por permitir formas mais refinadas para determinação da relevância, o expression manager é a opção recomendada.

Para adicionar uma equação de relevância usando o expression manager, não é preciso usar chaves para a delimitação da expressão (todo o conteúdo do campo “equação de relevância” é considerado código do expression manager). Um valor verdadeiro ou igual a 1 determinará a exibição da pergunta ou do grupo. Um valor falso ou igual a zero determinará sua não-exibição. Por exemplo, para que um grupo de perguntas seja exibido somente para servidores públicos, considerando que a pergunta com o código “Trabalho” tenha coletado essa informação, poderia ser utilizada a seguinte equação de relevância:

O expression manager é o mecanismo recomendado para criar equações de relevância.

Trabalho == “orgaopublico”

Adicionando máscaras de formatação automática

Os modelos CGU e Embutido incluem uma função em Javascript para acrescentar máscaras de formatação automática customizadas, além daquelas já disponibilizadas. Trata-se da função maskAll(m), que toma como argumentos um array de arrays contendo cada um a máscara, as suas opções, e a expressão regular de validação à qual se quer acrescentar a formatação automática. Para acrescentar as máscaras customizadas, acrescente um script como o seguinte ao código-fonte da descrição do questionário ou do grupo de perguntas:


<script type="text/javascript"> $(document).ready(function() { var telefone = function (val) { return val.replace(/\D/g, ).length === 11 ? '00-00000-0000' : '00-0000-00009'; }; var telefoneOptions = { onKeyPress: function(val, e, field, options) { field.mask(telefone.apply({ }, arguments), options); } }; maskAll([[telefone, telefoneOptions, "/^[0-9]\u007b2\u007d-[0-9]\u007b4,5\u007d-[0-9]\u007b4\u007d$/", [12, 13]]]); }); </script>

É preciso observar estritamente as quebras de linha antes e após as chaves (“{“ e “}”) e substituir as chaves nas strings, como se verá a seguir.

Utilizando de chaves em Javascript("{" e "}")

O uso de chaves (“{“ e “}”) pelo expression manager resulta em uma dificuldade para a inserção de códigos em Javascript no formulário. O Javascript permite acrescentar funcionalidades e dinamizar adicionalmente os formulários, mas também faz uso de chaves. No caso de ser necessário usar essa linguagem (para acrescentar novas máscaras de formatação automática, por exemplo), as chaves do código terão de ser seguidas imediatamente por uma quebra de linha (na abertura) ou precedidas imediatamente de uma quebra de linha (no fechamento). Nas strings, as chaves terão de ser substituídas por “\u007b” na abertura e por “\u007d” no fechamento.

Editando formulários fora do LimeSurvey

Há casos em que a edição de um formulário no LimeSurvey pode ser muito demorada – um formulário muito extenso, por exemplo, ou com várias perguntas semelhantes. Nessas ocasiões, pode ser vantajoso exportar o inquérito e editá-lo manualmente. Para isso, o usuário deve clicar no botão NovoImagem20.PNG na barra de ferramentas do inquérito, em seguida em NovoImagem21.PNG Formato "valores separados por tabulações" (*.txt). Será baixado um arquivo de texto com todas as informações do inquérito, em um formato semelhante ao CSV, mas com os valores separados por tabulação.

O arquivo gerado pode ser aberto em diversos editores, mas é recomendável utilizar o Notepad++, que é homologado para uso na CGU. Não é recomendável utilizar nem o LibreOffice, nem o Excel, porque pode haver problemas na importação subseqüente. A primeira linha do arquivo corresponde a um cabeçalho com a identificação de cada coluna. A cada linha, uma informação de configuração ou uma unidade do formulário (questão ou grupo de questões). No caso de formulário com muitas repetições das questões, o procedimento de copiar um grupo de questões pronto, colar e substituir os códigos das questões deve ser suficiente para praticamente concluí-lo. Depois, para importar novamente o questionário, é preciso criar um novo com o botão Novos2Imagem22.PNG na barra de ferramentas do sistema, na aba importar selecionar o arquivo modificado no computador do usuário, e importar o inquérito.




Índice Geral
Formularios
LimeSurvey - Iniciando uso
LimeSurvey - Criando um formulário
LimeSurvey - Tipos de questões
LimeSurvey - Publicando o Formulário
LimeSurvey - Configurações do questionário
LimeSurvey - Exportação e importação
LimeSurvey - Tópicos avançados
LimeSurvey - Problemas Conhecidos
LimeSurvey - Perguntas Frequentes do LimeSurvey
LimeSurvey - Atualizações do LimeSurvey