Nouveau mixin pour les informations de contact


Pour permettre la soumission d'un contenu en mode anonyme, un mixin "org.ametys.plugins.ugc.Mixin" a été rajouté. Il apporte les informations de contact : nom et mail de la personne soumettant le contenu.

Ces informations ne sont plus automatiquement calculées mais sont attendues dans le formulaire de soumission de l'annonce.

Dans le rendu par défaut du service "Proposition de contenu" :

  • sur une page authentifiée: les champs nom + mail sont cachés et pré-remplis avec l'utilisateur connecté
  • sur une page non-authentifiée: les champs nom + mail sont visibles et pré-rempli si un utilisateur est connecté

Attention donc si vous avez surchargé dans le rendu du service la partie ci-dessous :

<xsl:call-template name="contenttype-form"> 
    <xsl:with-param name="className">ugc-form</xsl:with-param> 
    <xsl:with-param name="actionUrl" select="$ugc-form-url"/> 
    <xsl:with-param name="submitJsClass" select="concat('submit_', $uniqueId, '()')"/> 
    <xsl:with-param name="uniqueId" select="$uniqueId"/> 
    <xsl:with-param name="formId" select="concat('ugc-form-', $uniqueId)"/> 
    <xsl:with-param name="items" select="/ugc/mixin/metadataSet/*|/ugc/content-type/metadataSet/*[local-name() != 'dc']"/> 
    <xsl:with-param name="submitI18nKey" select="'plugin.ugc:PLUGINS_UGC_SERVICE_FORM_SUBMIT'"></xsl:with-param> 
    <xsl:with-param name="contentValues" select="/ugc/items"></xsl:with-param> 
    <xsl:with-param name="withCaptcha" select="/ugc/has-captcha = 'true'"/> 
</xsl:call-template> 

<script type="text/javascript"> 
    $j(document).ready(function() { 
    var _getAmetysUserCb = function(user) 
    { 
        if (user) 
        { 
            $j('.ugc-form').find('input[name="ugc-contact.name"]').val(user.fullname); 
            $j('.ugc-form').find('input[name="ugc-contact.mail"]').val(user.email); 

            $j('.ugc-form').find('input[name="ugc-contact.name"]').closest('fieldset').hide(); 
        } 
    } 

    getAmetysUser(_getAmetysUserCb); 
}); 
</script> 

La logique décrite ci-dessus est assurée par ce morceau de code.

Il est notamment important d'ajouter aux "items" du formulaire, les champs du mixin UGC:

<xsl:with-param name="items" select="/ugc/mixin/metadataSet/*|/ugc/content-type/metadataSet/*[local-name() != 'dc']"/> 
Retour en haut