Caso você queira customizar o formulário de cadastro de usuário do Moodle para que o campo sobrenome não seja obrigatório, é necessário alterar o código PHP.
Observação:
Se estiver usando a verão 2.7 ou superior, veja atualização desse post no fórum da comunidade Badiu nesse link: http://comunidade.badiu.com.br/mod/forum/discuss.php?d=132
Para tornar opcional o preenchimento do campo sobrenome, 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:
$mform->addRule('lastname', $strrequired, 'required', null, 'client');
Esse código fica normalmente na linha 97. Define que o campo sobrenome do usuário deve ser preenchido.
3° Passo - Desativar a regra do campo sobrenome
Faça comentário na linha do código que define a regra de obrigatoriedade ou simplesmente apague a linha de código. Se fizer o comentário, a linha de código deve ficar assim:
//$mform->addRule('lastname', $strrequired, 'required', null, 'client');
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-obrigatoria-do.html
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.
Lino,
ResponderExcluirObrigado. Dica simples mas que facilitará muito a minha vida durante a importação de alunos.
Diogo Fereira
E como tornar o campo descrição opcional??
ResponderExcluirPara tornar o campo descrição opcional no formulário de edição do perfil do usuário na versão 1.9. do Moodle, siga os seguintes passos:
ResponderExcluir1° Passo - Abrir o arquivo edit_form.php
Abra em um editor de texto o seguinte arquivo:
$CFG->wwwroot /user/edit_form.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 descrição
Localize no arquivo o seguinte código:
$mform->addRule('description', $strrequired, 'required', null, 'client');
Esse código fica normalmente na linha 28. Define que o campo descrição deve ser preenchido.
3° Passo - Desativar a regra do campo descrição
Faça comentário na linha do código que define a regra de obrigatoriedade ou simplesmente apague a linha de código. Se fizer o comentário, a linha de código deve ficar assim:
//$mform->addRule('description', $strrequired, 'required', null, 'client');
Qual seria o caminho para bloquear, somente, a edição dos campos nome e sobrenome do perfil pelos usuários?
ResponderExcluirDesde já agradeço. [],s
Maurício,
ExcluirPara bloquear os campos nome e sobrenome do formulário de edição do perfil do usuário, siga as instruções no post: http://moodlephp.blogspot.com.br/2012/05/bloquear-edicao-do-nome-e-sobrenome-dos.html
Na versão 2.2 do moodle, como tornar o campo "descrição" obrigatório somente na edição?
ResponderExcluirPara obrigar o preenchimento do campo descrição apenas na edição do perfil, siga as instruções do post:
Excluirhttp://moodlephp.blogspot.com.br/2012/07/tornar-o-campo-descricao-obrigatorio-ao.html
parabens pelos seu trabalho no moodle...
ResponderExcluirgostaria de tirar alguns campos do formulario default do moodle e adcionar 7 campos de imagens (documentos pessoais dos alunos), pensei em editar o arquivo /user/editlib.php,
nessa parte abaixo mas nao sei se funcionaria em conjunto com a criação de um campo na tabela users do server e se ia influenciar no core do moodle..
function useredit_update_picture(stdClass $usernew, moodleform $userform, $filemanageroptions = array()) {
global $CFG, $DB;
require_once("$CFG->libdir/gdlib.php");
$context = get_context_instance(CONTEXT_USER, $usernew->id, MUST_EXIST);
$user = $DB->get_record('user', array('id'=>$usernew->id), 'id, picture', MUST_EXIST);
$newpicture = $user->picture;
// Get file_storage to process files.
$fs = get_file_storage();
if (!empty($usernew->deletepicture)) {
// The user has chosen to delete the selected users picture
$fs->delete_area_files($context->id, 'user', 'icon'); // drop all images in area
$newpicture = 0;
} else {
// Save newly uploaded file, this will avoid context mismatch for newly created users.
file_save_draft_area_files($usernew->imagefile, $context->id, 'user', 'newicon', 0, $filemanageroptions);
if (($iconfiles = $fs->get_area_files($context->id, 'user', 'newicon')) && count($iconfiles) == 2) {
// Get file which was uploaded in draft area
foreach ($iconfiles as $file) {
if (!$file->is_directory()) {
break;
}
}
// Copy file to temporary location and the send it for processing icon
if ($iconfile = $file->copy_content_to_temp()) {
// There is a new image that has been uploaded
// Process the new image and set the user to make use of it.
// NOTE: Uploaded images always take over Gravatar
$newpicture = (int)process_new_icon($context, 'user', 'icon', 0, $iconfile);
// Delete temporary file
@unlink($iconfile);
// Remove uploaded file.
$fs->delete_area_files($context->id, 'user', 'newicon');
} else {
// Something went wrong while creating temp file.
// Remove uploaded file.
$fs->delete_area_files($context->id, 'user', 'newicon');
return false;
}
}
}
if ($newpicture != $user->picture) {
$DB->set_field('user', 'picture', $newpicture, array('id' => $user->id));
return true;
} else {
return false;
}
}
Beta Educar,
ExcluirPara adicionar novos campos no formulário de cadastro de autoinscrição no Moodle, siga os seguintes passos:
1)Acesse o Moodle com senha de admin
2)Navegue em
Administração ► Usuários ► Contas ► Campos de perfil do usuário
ou acesse o link: URL_MOOLDE/user/profile/index.php
3)Acrescente novos campos ao formulário
Para excluir algum campo padrão, há duas alternativas:
1- Fazer hacker no código
2- Criar um novo plugin de autenticação
Em caso de hacker no código, me informa qual campo pretende excluir e qual é a versão do seu Moodle
Adorei o blog, continue postando, no site Scriptcase contem algumas informações sobre.
ResponderExcluirRicardo,
ExcluirObrigado pelo feedback.
Curti muito o blog, tá me ajudando muito...
ResponderExcluirSó mais uma dúvida, criei um campo novo no meu formulário, porém dependendo do que o usuário escolher a inscrição ser direcionada para uma área diferente para aceitação do usuário?
Por exemplo: o usuário selecionou a área de exatas, então um administrador de exatas recebe a solicitação de cadastro dele, se for para outra área, outro usuário será o responsável por este aceite..
Obrigado.
Rafael,
ExcluirEsse tipo de customização deve ser feita no plugin de inscrição. Se o cadastro estiver associado a inscrição, faça um plugin que agrupa funcionalidade do plugin de autenticação e plugin de inscrição.
Para criar um plugin de inscrição, clone um já existente e altere o código. No código você poderá criar a regra de envio de e-mail dependendo do perfil de cadastro.
Ola Baidu, não consigo encontrar esse código na versão 2.7.2 será que você poderia dar uma ajuda ?
ResponderExcluirOlá... também estou com problemas para encontrar o codigo no moodle 2.8.
ResponderExcluirBaidu, muito obrigado por compartilhar seus conhecimentos.
ResponderExcluir