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.