O facto é que eu passei recentemente por uma situação onde eu tinha de desenvolver um módulo no Xoops para executar uma tarefa específica, onde o módulo envolvia dados de usuários do site. O objectivo era criar uma página no módulo que mostrasse apenas informações do usuário logado no site naquele momento. Então, para isso eu precisava do nome do usuário logado, bem como do nome próprio para usar em algum momento dentro da página.
Primeira alternativa: Criar uma tabela de usuários particular no novo módulo
A primeira idéia que me apareceu foi criar uma tabela particular de usuários no novo módulo que eu estou desenvolvendo. Esta idéia funcionou na fase de desenvolvimento, mas quando estava na fase de testes parciais do sistema que estou a desenvolver, o problema com esta alternativa veio a tona. Era difícil determinar qual o usuário logado e depois pegar os seus dados na nova tabela de usuários criada. Então, decidi partir para a segunda alternativa, que a primeira vista parecia mais difícil, mas que tornou este e outros projetos futuros mais fáceis de desenvolver.
Segunda alternativa: Estudar o sistema de usuários do Xoops
Falhada a primeira alternativa, decidi partir para o plano B, que era estudar como os outros módulos manipulavam os dados de usuários do sistema Xoops e fazer o mesmo para o meu futuro sistema completo. Estou usando três módulos como base de exemplos para o desenvolvimento do meu próprio módulo no Xoops, o módulo news, o módulo mydownloads e o módulo profile para Xoops 2.3.
Desta vez o módulo escolhido para investigação foi o módulo profile, já que ele é capaz de mostrar o perfil do usuário logado no site, assim como de qualquer outro usuário. Observando como o sistema funciona, descobri que, tal como tudo na informática, o funcionamento é muito simples: existe uma variável global $xoopsUser que é o objecto que representa o usuário logado no site.
A classe que define os atributos dos usuários no Xoops 2.3 está definida no ficheiro user.php localizado no diretório Kernel do site. Foi só verificar este ficheiro para notar que na classe que é instanciada pelo objecto $xoopsUser está definido o método getVar(), que retorna o valor de cada um dos atributos do perfil do usuário de acordo com o argumento passado na função(método). Por exemplo, para obter o id, nome do usuário e o nome real do usuário logado, basta ter o seguinte código php:
|
global $xoopsUser; //Estamos declarando uma variável global if($xoopsUser){ //Esta condição verifica se existe um usuário logado no site. $id=$xoopsUser->getVar('uid'); //Obtemos o id $usuario=$xoopsUser->getVar('uname'); //Obtemos o nome de usuário $nome=$xoopsUser->getVar('name'); //Obtemos o nome real } |
Aqui ficou uma dica para quem pretende desenvolver seus próprios módulos no Xoops. Para quem ainda não conhece o Xoops, saiba que ele é um dos sistemas de gerenciamento de conteúdos mais bem elaborados que existem, e possui um nível de desenvolvimento igual ou superior aos CMSs mais falados atualmente, falo do Joomla ou WordPress.






Comentários Recentes