Eu criei um componente de perfil personalizado há um tempo. O que você provavelmente precisa é de uma tabela de banco de dados mapeando um ID do usuário para um URL de imagem do usuário e, em seguida, crie um arquivo auxiliar para recuperar a imagem sempre que precisar.
Para fazer upload da imagem, usei o gerenciador de imagens do Joomla, acho ... para que você pudesse apenas fornecer um link que abra o gerenciador, talvez fornecer um caminho modificado direcionado para uma pasta de imagens de perfil. Ou, se você (provavelmente) não deseja que eles vejam todas as imagens disponíveis (ou seja, de todos os usuários), você pode remover todos os campos do gerenciador de imagens (por exemplo, sua instância do gerenciador de imagens) removendo os elementos filhos correspondentes do documento quando estiver carregado, basta deixar o botão "procurar" e o rótulo indicando o nome e o caminho do arquivo e salve o caminho (URL) na tabela mencionada acima.
Eu usei o AJAX para fazer isso - clicar no link para carregar / alterar a imagem chama uma função javascript, passando o ID do usuário. A função javascript abre o gerenciador de imagens, recupera o novo caminho e cria uma solicitação AJAX passando o ID do usuário e o caminho da tabela para um arquivo php que consulta / atualiza o banco de dados. Voilà.
É disso que você precisava? Avise-me se isso lhe interessar. Teremos prazer em fornecer mais informações. Embora essa provavelmente não seja a melhor prática.
Felicidades