Je ne veux installer aucun plugin de communauté pour faire ça.
Je souhaite fournir à mes utilisateurs enregistrés un formulaire d’image de téléchargement simple, qui leur permettra de télécharger et de modifier la photo de leur profil à tout moment, et de récupérer cette image à l’aide de n’importe quel type de variable Joomla.
Je veux dire comme $user->username
renvoie le nom de l'utilisateur connecté, il devrait exister une variable similaire (ou un script/code) qui affichera la photo de profil de l'utilisateur connecté?
Des chances?
Il existe en fait un plugin assez récent que vous voudrez peut-être consulter et qui s'appelle Joom Profile. Au lieu d'un composant de communauté complet, il est simplement conçu pour développer les profils d'utilisateurs. Cela vous donne également la possibilité d'ajouter plus de champs et de remplacer le résultat. Je n'ai pas beaucoup joué avec ça mais j'ai entendu de bonnes choses à ce sujet.
Le seul moyen d'y parvenir sans en utilisant une extension tierce serait d'écrire votre propre plugin ou de commencer à éditer le plugin de profil fourni avec Joomla. La modification du fichier de base est simplement une zone no go , je ne vais donc même pas commencer par cela.
Je vous suggère fortement d'utiliser un plugin tiers simple et petit. Voici un plugin qui fait exactement cela pour Joomla 3.4, Profile Picture:
Pour accéder et afficher l'avatar, vous pouvez utiliser le code suivant:
// 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();
Consultez https://github.com/mosets/profilepicture pour le reste des API.
J'espère que cela t'aides
J'ai déjà utilisé un plugin appelé Easy Profile . En plus de prendre en charge les avatars, il comporte plusieurs autres améliorations par rapport au système de profil utilisateur Joomla intégré. La version gratuite est quelque peu limitée, mais pour autant que je me souvienne, elle supporte toujours les avatars.
L’une des fonctions que j’ai trouvée utile était la possibilité de définir une redirection personnalisée pour la première connexion après l’enregistrement, une fonction utilisée pour afficher les règles de la communauté à l'intention des nouveaux utilisateurs.
Les autres fonctions disponibles (selon la liste JED ) sont les suivantes:
- Les champs personnalisés
- Avatar
- Liste des utilisateurs et recherche
- Conditions de base avec des groupes d'utilisateurs
- Réorienter
- Pont Jomsocial
- Enregistrement et modification du profil
- Nom Style
- Joomla Registration & Edit Profile
- Author & Content Plugin
- Joomla Native Multilanguage
- Type de connexion
- Contrôle de confidentialité
- Social Connect (version Pro uniquement)
J'ai créé un composant de profil personnalisé il y a quelque temps. Vous aurez probablement besoin d'une table de base de données mappant un ID utilisateur sur une URL d'image utilisateur, puis créez un fichier d'assistance pour récupérer l'image où vous en avez besoin.
Pour télécharger l'image, j'ai utilisé le gestionnaire d'images Joomla, je pense ... afin que vous puissiez simplement fournir un lien qui ouvre le gestionnaire, peut-être lui fournir un chemin modifié menant à un dossier d'images de profil. Ou, si vous (probablement) ne voulez pas qu'ils voient toutes les images disponibles (ce qui signifie de tous les utilisateurs), vous pouvez supprimer tous les champs du gestionnaire d'images (c'est-à-dire votre instance de gestionnaire d'images) en supprimant les éléments enfants correspondants du document. quand il est chargé, il suffit de laisser le bouton "parcourir" et l'étiquette indiquant le nom et le chemin du fichier, puis enregistrez le chemin (URL) dans la table mentionnée ci-dessus.
J'ai utilisé AJAX pour y parvenir - cliquer sur le lien pour importer/modifier l'image appelle une fonction javascript, en transmettant l'identifiant de l'utilisateur. La fonction javascript ouvre le gestionnaire d'images, récupère le nouveau chemin d'accès et construit une requête AJAX) transmettant l’ID utilisateur et le chemin de la table à un fichier php interrogeant/mettant à jour la base de données. Voilà.
Est-ce ce dont vous aviez besoin? Faites-moi savoir si cela vous semble intéressant, je serais heureux de fournir plus d'informations. Bien que ce ne soit probablement pas la meilleure pratique.
À votre santé
Cela peut être réalisé en utilisant des champs personnalisés maintenant-a-jours.
Ma réponse précédente au cas où quelqu'un trouverait cela utile. Ce qui précède est probablement plus pertinent que ce n'est ici que pour référence.
Les champs personnalisés (réponse ci-dessus) seraient ma préférence aujourd'hui.
Il existe un plugin appelé Profil utilisateur. Il suffit d’aller dans Plugins et de le rechercher. Il a quelques champs supplémentaires intégrés, mais pas une image. Si vous souhaitez l’améliorer, vous pouvez suivre cette documentation. Avertissement. Je pense que ce plugin sera supprimé car Fields le rend moins utile.
https://docs.joomla.org/Creating_a_profile_plugin
Ce n'est pas trop difficile, cela semble probablement beaucoup plus difficile qu'il ne l'est jusqu'à ce que vous sachiez le faire. Si je devais le faire, je regarderais très certainement le code existant et ensuite essayer de l'adapter moi-même.
Voici une liste de tous les types de champs de formulaire actuels: https://docs.joomla.org/Standard_form_field_types
Mais vous voudrez peut-être spécifiquement regarder https://docs.joomla.org/Media_form_field_type qui donnera accès au modal du gestionnaire de médias.