Imagens de perfil para usuários do Joomla?


9

Não quero instalar nenhum plugin da comunidade para fazer isso.
Eu quero fornecer um formulário de imagem de upload simples para meus usuários registrados, o que permitirá que eles carreguem e alterem sua imagem de perfil sempre que quiserem e também quero recuperar essa imagem usando qualquer tipo de material variável do Joomla.
Quero dizer, assim como $user->usernameretorna o nome do usuário conectado, deve haver alguma variável (ou script / código) similar que exibirá a imagem do perfil do usuário conectado?
Alguma chance?

Respostas:


10

Na verdade, existe um plugin relativamente novo que você pode querer chamar chamado Joom Profile. Em vez de um componente completo da comunidade, ele foi criado apenas para expandir os perfis de usuário. Também oferece a flexibilidade de adicionar mais campos e substituir a saída. Eu realmente não brinquei muito com isso, mas ouvi coisas boas sobre isso.

Perfil do Joom


Deve-se notar, é um download pago.
Mohd Abdul Mujib


8

A única maneira de conseguir isso sem usar uma extensão de terceiros seria escrever seu próprio plug-in ou começar a editar o plug-in de perfil que acompanha o Joomla. A edição do arquivo principal é simplesmente uma área proibida , por isso nem vou começar.

Eu sugiro fortemente que você use um pequeno e simples plugin de terceiros. Aqui está um plugin que faz exatamente isso no Joomla 3.4, Imagem do perfil:

http://extensions.joomla.org/extensions/extension/clients-a-communities/user-management/profile-picture

Para acessar e exibir o avatar, você pode usar o seguinte código:

// Import the Profile Picture library
jimport('profilepicture.profilepicture');

// Get the current user object
$user = JFactory::getUser();

// Instantiate the ProfilePicture class with User ID
$profilepicture = new ProfilePicture($user->get('id'));

// Output the picture
echo $profilepicture->toHTML();

Confira https://github.com/mosets/profilepicture para o restante das APIs.

Espero que isto ajude


Usando o código acima, nada é exibido na página. Quando removi esta linha do código acima if( $profilepicture->exists() ), um ícone de imagem corrompida era exibido na página, que tentava obter a imagem desse caminho http://localhost/mediaDSplg_user_profilepictureDSimagesDS200DS8a639a6998494f88b94826cfba68655179d010ee.jpgenquanto o caminho real da imagem é http://localhost/media/plg_user_profilepicture/images/200/8a639a6998494f88b94826cfba68655179d010ee.jpg (a barra) / está sendo substituído pelo DS no URL de o caminho??
Saibbyweb

E mais uma coisa que o código acima funciona, se colocado dentro de um artigo, mas apenas por querer retirar esta linhaif( $profilepicture->exists() )
saibbyweb

O @lodder não faria isso melhor ao duplicar o núcleo do Joomla! Plug-in de perfil de usuário e adição de um campo?
Eoin

@ Eoin Isso pode até ser possível com campos personalizados .... não tenho certeza. Nunca os usou ou os utilizará. Mas sim, você pode duplicar o plugin núcleo perfil e editar que se você preferir, no entanto, se há quaisquer atualizações ou correções de bugs feitas para o plugin original, você provavelmente nunca saberá a menos que você siga o repo avidamente
Lodder

É verdade, mas você também pode substituir os plugins. Ainda não testei, mas este stackoverflow.com/questions/17372379/… parece indicar que alguém teve algum sucesso com o jw_sig. Eu acho que tudo depende se você pode substituir o XML da mesma maneira que pode com os itens de menu, mas eu presumo que não.
Eoin

7

Eu já usei um plugin chamado Easy Profile . Além de oferecer suporte ao Avatars, ele possui várias outras melhorias em relação ao sistema de perfil de usuário interno do Joomla. A versão gratuita é um pouco limitada, mas, pelo que me lembro, ainda suporta avatares.

Uma das funções que achei úteis foi a opção de definir um redirecionamento personalizado para o primeiro login após o registro, uma função que usamos para exibir as regras da comunidade para novos usuários.

Outras funções disponíveis (de acordo com a listagem do JED ) incluem:

  • Os campos personalizados
  • Avatar
  • Lista de Usuários e Pesquisa
  • Condições básicas com grupos de usuários
  • Redirecionar
  • Ponte Jomsocial
  • Registro e edição de guias de perfil
  • Nome Estilo
  • Registro do Joomla e Editar Perfil
  • Autor e plug-in de conteúdo
  • Joomla Native Multilanguage
  • Tipo de login
  • Controle de Privacidade
  • Social Connect (somente versão Pro)

11
Outro voto no Easy Profile, que eu descobri recentemente. Essa extensão está excedendo enormemente minhas expectativas e, atualmente, estou usando-a para criar um diretório comercial de membros simples. Definitivamente, vale a pena!
Neil Robertson


3

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


Você realmente não precisa fazer isso se usar o Joomla incorporado! plugin de perfil. O relacionamento do banco de dados já será construído usando XML. Você realmente não precisa de um arquivo auxiliar ou eu não acho.
Eoin

3

Isso pode ser alcançado usando campos personalizados hoje em dia.

insira a descrição da imagem aqui

Minha resposta anterior, caso alguém ache isso útil. O acima exposto é provavelmente mais relevante, este é apenas aqui para referência.

Os campos personalizados (resposta acima) seriam a minha preferência hoje.

Existe um plugin chamado Perfil do Usuário. Basta ir a Plugins e procurar por ele. Possui alguns campos adicionais integrados, embora não seja uma imagem. Se você quiser aprimorá-lo, siga esta documentação. Atenção. Eu suspeito que esse plug-in será removido, pois Fields o torna menos útil.

Joomla!  Plugin de perfil de usuário

https://docs.joomla.org/Creating_a_profile_plugin

Não é muito difícil, provavelmente parece muito mais difícil do que é até você saber como fazê-lo. Se eu fizesse isso, certamente observaria o código existente e tentaria adaptá-lo.

Aqui está uma lista de todos os tipos de campos de formulário atuais: https://docs.joomla.org/Standard_form_field_types

Mas você pode querer consultar especificamente https://docs.joomla.org/Media_form_field_type, que dará acesso ao modal do gerenciador de mídia.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.