Alguém pode ajudar?
Agradeço desde ja!
Re: Desabilitar campos opcionais da edição de perfil
Verifique se o segundo parâmetro existe : $contextid
if (has_capability('moodle/course:create', $contextid)) {
//...
} else {
//...
}
Exemplo interessante, estou com um problema parecido , preciso desabilitar a opção de professores mudarem o nome do curso , mas nao poso tirar a permissao dos outros campos (entao eles devem ter courseediting ativado), estava etudando o formslib.php e encontrei uma função hardfreeze(); que me pareceu ser util , na minha analize , é esta função que é usada para desabilitar os campos que vc marca como nao editaveis pros usuarios , mais tem um porem , ele transforma o campo num texto simples e nao num input , ou seja o campo nao é enviado pelo action do formulario, estou testando se isto vai acarretar problemas no campo cadastrado , mas no geral , este campo me interessa... Se alguem tiver outra solução de desabilitar a edição de apenas alguns campos será bem vinda;
if (has_capability('moodle/course:create', $contextid)) {
$mform->addElement('text', 'email', get_string('email'), 'maxlength="100" size="30"');
$mform->addRule('email', $strrequired, 'required', null, 'client');
} else{
$mform->addElement('text', 'email', get_string('email'), 'maxlength="100" size="30" disabled');
$mform->addRule('email', $strrequired, 'required', null, 'client');
}
Este exemplo é no arquivo user/editlib.php Cuidado com a variável $contextid verifica o valor dela antes de usá-la
mas apenas se está usando uma versão antiga a atual moodle 1.9 tem esta capability changefullname e outras já disponível olha no tracker