Tornar Campo Sobrenome Opcional no Formulário de Cadastro de Usuário no Moodle 2.7

Tornar Campo Sobrenome Opcional no Formulário de Cadastro de Usuário no Moodle 2.7

por Lino Vaz Moniz -
Número de respostas: 1

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.

Em resposta à Lino Vaz Moniz

Re: Tornar Campo telefone no Formulário de Cadastro de Usuário no Moodle 3.6

por Sergio Guedes -

Oi Lino

pergunta simples: como torno um campo opcional em obrigatório?  Coloco apenas o addRule com  opcao required??? 

 

 

esse é o trecho de código no editlib.php

$mform->addElement('text', 'phone1', get_string('phone1'), 'maxlength="20" size="25"');
$mform->setType('phone1', core_user::get_property_type('phone1'));
$mform->setForceLtr('phone1');

$mform->addElement('text', 'phone2', get_string('phone2'), 'maxlength="20" size="25"');
$mform->setType('phone2', core_user::get_property_type('phone2'));
$mform->setForceLtr('phone2');

 onde mais eu teria que intervir?

 

Abraços