No Moodle, é comum precisarmos obter o nome completo de um usuário a partir do ID. Embora seja possível concatenar firstname e lastname manualmente, existe uma forma oficial e mais segura de fazer isso utilizando a própria API do Moodle.
O Problema
Muitos desenvolvedores fazem consultas diretas na tabela mdl_user e concatenam os campos manualmente:
global $DB;
$user = $DB->get_record('user', ['id' => $userid]);
$nomecompleto = $user->firstname . ' ' . $user->lastname;
O problema dessa abordagem:
- Ignora formatação configurada no Moodle
- Não respeita localidade (idioma)
- Desconsidera plugins que alteram exibição do nome
A Solução Correta
O Moodle possui uma função própria para isso: fullname().
global $DB;
$user = $DB->get_record('user', ['id' => $userid]);
$nomecompleto = fullname($user);
echo $nomecompleto;
Essa função:
- Respeita o padrão de exibição configurado em Administração > Usuários > Permissões > Políticas de usuário
- Considera idioma e formato regional
- Evita problemas futuros em customizações
Exemplo direto em um curso
require_once('../../config.php');
$userid = required_param('userid', PARAM_INT);
$user = $DB->get_record('user', ['id' => $userid], '*', MUST_EXIST);
echo fullname($user);
Quando usar SQL?
Se for apenas para relatório simples via SQL:
SELECT id,
CONCAT(firstname, ' ', lastname) AS nome_completo
FROM mdl_user;
Mas para desenvolvimento dentro do Moodle (plugins, relatórios customizados, scripts PHP), sempre prefira fullname().
Conclusão
Para obter o nome completo no Moodle, não concatene manualmente. Utilize a função fullname(). Ela é a forma oficial, segura e compatível com futuras atualizações da plataforma.