Esse post explica como desabilitar obrigatoriedade no campo sobrenome. É uma atualização do post: http://moodlephp.blogspot.com.br/2011/01/tornar-campo-sobrenome-opcional-no.html que foi publicado em 2011. Esse post traz atualização para a versão 2.7 e 2.8, ou seja, versões mais recentes.
Se você precisa cancelar a obrigatoriedade no campo sobrenome no Moodle 2.7, siga os seguintes passos:
1° Passo - Abrir o arquivo editlib.php
Abra em um editor de texto o seguinte arquivo:
$CFG->wwwroot /user/editlib.php
$CFG->wwwroot se refere ao endereço da pasta em que a aplicação do Moodle está instalado.
2° Passo - Localizar a regra do campo sobrenome
Localize no arquivo o seguinte código:
// Add the necessary names.
foreach (useredit_get_required_name_fields() as $fullname) {
$mform->addElement('text', $fullname, get_string($fullname), 'maxlength="100" size="30"');
$mform->addRule($fullname, $strrequired, 'required', null, 'client');
$mform->setType($fullname, PARAM_NOTAGS);
}
Esse código fica normalmente na linha 196. Define que o campo nome e sobrenome do usuário deve ser preenchido.
3° Passo - Desativar a regra do campo sobrenome
Altere o código para que apenas o campo sobrenome não seja obrigatório. Para isso, o código: if($fullname != 'lastname') ante do código $mform->addRule($fullname, $strrequired, 'required', null, 'client');
Ao fazer alteração, deve ficar assim:
foreach (useredit_get_required_name_fields() as $fullname) { $mform->addElement('text', $fullname, get_string($fullname), 'maxlength="100" size="30"'); if($fullname != 'lastname') $mform->addRule($fullname, $strrequired, 'required', null, 'client'); $mform->setType($fullname, PARAM_NOTAGS); }
Na versão 4.3, esse código não mudou muito. Neste caso, a alteração foi feita na linha 271.
Basta adicionar o mesmo código e seguir a mesma lógica.
Veja o print do código adicionado destacado.
O código if($fullname != 'lastname') { ......} foi colocado para tornar excepção $mform->addRule($fullname, $strmissingfield, 'required', null, 'client'); se trantando de sobrenome.
Essa mesma regra também se aplica às versões da família 3.x, 4.1 e 4.2.
4° Passo - Gravar alteração do arquivo editlib.php
Para que a alteração seja efetivada, grave o arquivo. Feito isso, basta acessar o formulário de cadastro e verificar que o campo sobrenome se tornou opcional.
5° Passo - Desabilite a obrigatoriedade do sobrenome na biblioteca do sistema
Para evitar que o formulário de perfil tranque a navegação após o login, desabilite o sobrenome na função função user_not_fully_set_up. Para isso, siga as instrução no link: http://moodlephp.blogspot.com/2011/02/cancelar-atualizacao-obrigatria-do.html na verão 2.7 essa função foi localizada na linha 3449.
Essa alteração não é recomendado nos campos que são definidos obrigatórios a nível do banco de dados como a caso dos campos nome e e-mail.
Essa alteração foi testada na versão 2.7.5 e 2.8.1 do Moodle. Se a sua versão do Moodle for outra, tente seguir a lógica aplicado aqui, localizando o campo que se precisa desabilitar. O link original desse post que trata da alteração na verão 1.9 é: http://moodlephp.blogspot.com.br/2011/01/tornar-campo-sobrenome-opcional-no.html use esse post caso a sua versão for 1.9.
Na versão 4.3, esse código não mudou muito também.
Abra o arquivo $CFG->wwwroot/lib/moodlelib.php
Localize a função user_not_fully_set_up que fica na lina 3493. Essa localização pode mudar em função da sua versão.
Remova o código da obrigatoriedade do sobrenome. O print a seguir mostra o código que deve ser excluído. Feito isso, pode salvar o arquivo.
Para remover obrigatoriedade de outros campos, basta remover no código. Está explicito.
Essa mesma regra também se aplica às versões da família 3.x, 4.1 e 4.2.