segunda-feira, 28 de fevereiro de 2011

Cancelar Atualização Obrigatória do Formulário Perfil para Destrancar a Navegar no Moodle

     No sistema Moodle é obrigatório que o perfil do usuário tenha nome, sobrenome e e-mail. Se você desativar a obrigatoriedade deses campos no formulário  de cadastro, ou efetuar inserção SQL diretamente no banco de dados, a navegação no ambiente do Moodle, após o login, fica trancada até o que esses dados sejam atualizados.

    Se você estiver recebendo reclamação dos alunos de que toda as vezes que logam no Moodle aparece o formulário de perfil que os impeçam de acessar o curso enquanto o maldito formulário não for atualizada, fique frio. A solução será desativar a função da biblioteca do Moodle responsável por essa dor cabeça. Então vamos lá, para resolver isso,  siga os seguintes passos:

 1° Passo  - Abrir o arquivo moodlelib.php
    Abra em um editor de texto  o seguinte arquivo:
    $CFG->wwwroot/lib/moodlelib.php


2° Passo  - Localizar  função user_not_fully_set_up
    Localize no arquivo o seguinte código:

function user_not_fully_set_up($user) {
    return ($user->username != 'guest' and (empty($user->firstname) or empty($user->lastname) or empty($user->email) or over_bounce_threshold($user)));
}

Esse código fica normalmente na linha 2330. Define os campos do perfil que são obrigatório.

3° Passo  - Desativar a  função user_not_fully_set_up parcialmente ou  totalmente

a) Parcialmente

Para desativar a função parcialmente, eliminando a obrigatoriedade apenas do sobrenome,  apague o seguinte trecho do código: or empty($user->lastname)
Feito isso, o código ficará assim:

function user_not_fully_set_up($user) {
    return ($user->username != 'guest' and (empty($user->firstname)  or empty($user->email) or over_bounce_threshold($user)));
}

b) Totalmente
    Para desativar a função totalmente, simplesmente substitua toda a linha de código dentro da função 
return false.
Feito isso, o código ficará assim:

function user_not_fully_set_up($user) {
  return false;
}

4° Passo  - Gravar alteração do arquivo moodlelib.php
    Para que a alteração seja efetivada, grave o arquivo. Feito isso, os alunos não terão mais dor de cabeça com o formulário do perfil e você não perderá seu sono pensando em como descascar o abacaxi.

    O ideal é manter a linha de código original desativado com comando de comentário. Isso é importante caso queira voltar para a configuração original depois.
     Foi feito teste disso na versão 1.9.3 e 1.9.7. Tendo em conta  que se trata do padrão básico do Moodle, em tese, isso pode funcionar em qualquer versão seja  1.8 ou 2.0, basta testar.
    É bom lembrar que esse tipo de operação cirúrgica alterar o padrão do Moodle. Sendo assim, ao atualizar o Moodle para a nova versão,  o problema voltará. A solução é alterar novamente o código PHP. 

Veja também
Tornar Campo Sobrenome Opcional no Formulário de Cadastro de Usuário no Moodle