Imágenes de perfil para usuarios de Joomla?

9

No quiero instalar ningún complemento de la comunidad para hacer eso.
Quiero proporcionar un formulario simple de carga de imágenes a mis usuarios registrados, lo que les permitirá cargar y cambiar su imagen de perfil en cualquier momento que quieran y también quiero recuperar esa imagen usando cualquier tipo de material variable de Joomla.
Quiero decir, al igual que $user->usernamedevuelve el nombre del usuario que inició sesión, ¿debería haber algo similar de variable (o script / código) que muestre la imagen de perfil del usuario conectado?
¿Alguna posibilidad?

saibbyweb
fuente

Respuestas:

10

En realidad, es un complemento bastante nuevo que es posible que desee ver llamado Joom Profile. En lugar de un componente de comunidad completo, está hecho para expandir los perfiles de usuario. También le brinda la flexibilidad de agregar más campos y anular la salida. Realmente no he jugado mucho con él, pero he escuchado cosas buenas al respecto.

Perfil de Joom

Brian Peat
fuente
Cabe señalar, es una descarga de pago.
Mohd Abdul Mujib
extensiones.joomla.org/extension/joom-profile también podrían funcionar
Eoin
8

La única forma de lograr esto sin usar una extensión de terceros sería escribir su propio complemento o comenzar a editar el complemento de perfil que viene con Joomla. Editar el archivo core es simplemente un área prohibida , por lo que ni siquiera comenzaré con eso.

Le sugiero encarecidamente que use un pequeño y simple complemento de terceros. Aquí hay un complemento que hace exactamente eso para Joomla 3.4, Imagen de perfil:

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

Para acceder y mostrar el avatar, puede usar el siguiente 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();

Consulte https://github.com/mosets/profilepicture para ver el resto de las API.

Espero que esto ayude

Lodder
fuente
Usando el código anterior, no se muestra nada en la página. Cuando eliminé esta línea del código anterior if( $profilepicture->exists() ), se mostró un icono de imagen rota en la página, que intentaba obtener la imagen de esta ruta http://localhost/mediaDSplg_user_profilepictureDSimagesDS200DS8a639a6998494f88b94826cfba68655179d010ee.jpgmientras la ruta de la imagen real es http://localhost/media/plg_user_profilepicture/images/200/8a639a6998494f88b94826cfba68655179d010ee.jpg (la barra inclinada) / está siendo reemplazada por DS en la url de ¿¿el camino??
saibbyweb
Y una cosa más que funciona el código anterior, si se coloca dentro de un artículo pero solo eliminando esta líneaif( $profilepicture->exists() )
saibbyweb
@lodder no sería mejor hacerlo duplicando el núcleo de Joomla! ¿Complemento de perfil de usuario y agregar un campo?
Eoin
@Eoin Esto incluso puede ser posible con campos personalizados ... no estoy seguro. Nunca los usé o los usaré. Pero sí, puede duplicar el complemento de perfil principal y editarlo si lo prefiere, sin embargo, si hay actualizaciones o correcciones de errores en el complemento original, probablemente nunca lo sabrá a menos que siga el repositorio con avidez
Lodder
Es cierto, pero también puede anular los complementos. No lo he probado, pero este stackoverflow.com/questions/17372379/... parece indicar que alguien tuvo éxito con jw_sig. Supongo que todo depende si puede anular el XML de la misma manera que puede hacerlo con los elementos del menú, pero supongo que no.
Eoin
7

Anteriormente he usado un complemento llamado Easy Profile . Además de admitir Avatares, tiene varias otras mejoras sobre el sistema de perfil de usuario Joomla incorporado. La versión gratuita es algo limitada, pero por lo que recuerdo todavía es compatible con avatares.

Una de las funciones que encontré útiles fue la opción de establecer una redirección personalizada para el primer inicio de sesión después del registro, una función que utilizamos para mostrar las reglas de la comunidad a los nuevos usuarios.

Otras funciones disponibles (de acuerdo con la lista JED ) incluyen:

  • Campos Personalizados
  • Avatar
  • Lista de usuarios y búsqueda
  • Condiciones básicas con grupos de usuarios
  • Redirigir
  • Puente Jomsocial
  • Registro y editar vista de pestañas de perfil
  • Nombre de estilo
  • Registro de Joomla y Editar Perfil
  • Complemento de autor y contenido
  • Joomla Native Multilenguaje
  • Tipo de inicio de sesión
  • Control de privacidad
  • Social Connect (solo versión Pro)
johanpw
fuente
1
Otra votación para Easy Profile que descubrí recientemente. Esta extensión está superando enormemente mis expectativas y actualmente la estoy usando para crear un directorio de negocios miembro simple. ¡Definitivamente vale la pena!
Neil Robertson
3

Creé un componente de perfil personalizado hace un tiempo. Lo que probablemente necesitará es una tabla de base de datos que asigne una ID de usuario a una URL de imagen de usuario, luego cree un archivo auxiliar para recuperar la imagen donde la necesite.

Para cargar la imagen, utilicé el administrador de imágenes de Joomla, creo ... para que pueda proporcionar un enlace que abra el administrador, tal vez proporcionarle una ruta modificada que dirija a una carpeta de imágenes de perfil. O, si (probablemente) no desea que vean todas las imágenes disponibles (es decir, de todos los usuarios), puede eliminar todos los campos del administrador de imágenes (es decir, su instancia del administrador de imágenes) eliminando los elementos secundarios correspondientes del documento cuando se carga, solo deja el botón "examinar" y la etiqueta que indica el nombre y la ruta del archivo, luego guarda la ruta (URL) en la tabla mencionada anteriormente.

Utilicé AJAX para lograr esto: al hacer clic en el enlace para cargar / cambiar la imagen, se llama a una función de JavaScript, pasando la identificación del usuario. La función javascript abre el administrador de imágenes, recupera la nueva ruta y crea una solicitud AJAX que pasa la identificación del usuario y la ruta a la tabla a un archivo php que consulta / actualiza la base de datos. Voilà.

¿Es esto lo que necesitabas? Avíseme si le parece interesante, me complacería proporcionarle más información. Aunque esto probablemente NO sea la mejor práctica.

Salud

alce
fuente
Realmente no necesitas hacer esto si usas la versión integrada de Joomla! Plugin de perfil. La relación de la base de datos ya se creará utilizando XML. Realmente no necesitas un archivo auxiliar tampoco creo.
Eoin
3

Esto se puede lograr utilizando campos personalizados hoy en día.

ingrese la descripción de la imagen aquí

Mi respuesta anterior en caso de que alguien lo encuentre útil. Lo anterior es probablemente más relevante, esto es solo aquí para referencia.

Los campos personalizados (respuesta anterior) serían mi preferencia hoy.

Hay un complemento llamado Perfil de usuario. Solo ve a Plugins y búscalo. Tiene bastantes campos adicionales integrados, aunque no es una imagen. Si desea mejorarlo, puede seguir esta documentación. Advertencia. Sospecho que este complemento se eliminará ya que Fields lo hace menos útil.

Joomla!  Complemento de perfil de usuario

https://docs.joomla.org/Creating_a_profile_plugin

No es demasiado difícil, probablemente parezca mucho más difícil de lo que es hasta que sepas cómo hacerlo. Si tuviera que hacerlo, seguramente miraría el código existente y luego trataría de adaptarlo yo mismo.

Aquí hay una lista de todos los tipos de campos de formulario actuales: https://docs.joomla.org/Standard_form_field_types

Pero es posible que desee ver específicamente https://docs.joomla.org/Media_form_field_type que le dará acceso al modal de administrador de medios.

Eoin
fuente