We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
  • Bonjour,

    Suite à un tweet de @toutsurmodx sur l'utilisation de photos dans les profils d'utilisateurs de Revolution, voici un post hook rapide pour le snippet UpdateProfile (contenu dans l'extra Login).

    En espérant que cela puisse vous être utile.



    photo est un post hook pour le snippet UpdateProfile (extra Login) permettant aux utilisateur d’ajouter une photo à leur profil.

    Installation

    Créez un snippet (dans mon cas nommé « photo ») ayant pour contenu : https://github.com/meltingmedia/Tools/blob/develop/core/components/tools/elements/snippets/hook.photo.php
    Dans l’onglet des propriétés du snippet, créez les 3 propriétés suivantes :


    • - photo_path
      Chemin absolu vers le répertoire où vous souhaitez que les photos soient stockées

    • - photo_path_url
      Url permettantt d’acceder au répertoire défini dans la propriété path

    • - photo_field
      Nom du champ (input) du formulaire à utiliser pour récupérer les informations de l’image ( dans l’exemple ci-dessous : « picture » ). Veuillez à ne pas utiliser un champ nommé « photo ».

    Une quatrième propriété existe, photo_filename. Elle permet de définir le nom de l’image. Ce nom doit être unique pour chaque utilisateur (afin d’éviter les conflits/écrasements). Par défaut le nom sera : {nom d’utilisateur}-profile.{extension du fichier}, exemple : romain-profile.jpg

    Utilisation

    [[!UpdateProfile?
        &postHooks=`photo`
        &useExtended=`0`
    ]]
    
    <form action="[[~[[*id]]]]" method="post" enctype="multipart/form-data">
    <label for="picture">Photo [[+error.picture]]</label>
    [[+photo:notempty=`<img src="[[+photo]]" />`]]
    <input type="file" name="picture" />
    
    <input type="submit" name="submit" value="submit" />
    </form>
    


    Dans cet exemple, j’ai désactivé l’utilisation des champs étendus (activée par défaut) afin de ne pas créer une entrée pour le champ « picture » (qui est un array).

    Si vous désirez utiliser les champs étendus, penser à indiquer
    &excludeExtended=`picture`
    dans votre appel de snippet (où picture est le nom de champ input type = "file").

    Il est possible de définir ou « d’écraser » les paramètres dans votre appel UpdateProfile, par exemple :

    [[!UpdateProfile?
        &postHooks=`photo`
        &useExtended=`0`
        &photo_path=`/chemin/absolu/vers/dossier/`
        &photo_path_url=`url/vers/dossier/`
        &photo_field=`nom_du_champ_de_photo`
        &photo_filename=`nom_unique-[[!+modx.user.id]]`
    ]]
    


    Edit : bug avec Discuss lipsrsealed [ed. note: romain last edited this post 12 years, 5 months ago.]
    • Merci beaucoup pour ton aide !!!

      M'autorise tu à reprendre ce tuto pour l'intégrer sur le site toutsurmodx ?

      Bien sur je ferais un lien sur ton site en indiquant que tu m'as donné cette solution.

      Encore Merci
        Donner vie à votre entreprise avec W&B CREATION
        Portfolio : Manuel GOBEAUT
        Tout sur MODx, le guide indispensable pour utiliser simplement le CMS MODx
      • Feel free to

        En revanche, mon site n'étant pas vraiment le reflet de mes travaux actuels, ce détail est facultatif wink