Formulaire de proposition de contenu


Cette page ne doit être appliquée que si le script vous demande de passer la migration manuelle skin.20220127.UGC.form

Si le script de migration vous demande de passer cette migration c'est que vous avez surcharger un ou plusieurs templates noyau pour le rendu du formulaire de proposition de contenu (ex: pour publier une petite annonce)

Le XML d'entrée a été modifié et le helper XSL contenant les templates pour le rendu des champs, bouton et formulaire ont été réécrit.

Avant de faire la migration graphique, exécutez le script suivant pour savoir si le service "Proposition de contenu" est réellement utilisé:

let count = 0;
Repository.query("//element(*, ametys:zoneItem)[@ametys-internal:service='org.ametys.plugin.ugc.service.UGC']").forEach(function(zoneItem) {
    count++;
Ametys.console.log(`Found in site '${zoneItem.getZone().getPage().getSiteName()}' : ${zoneItem.getZone().getPage().getSitemapName()}/${zoneItem.getZone().getPage().getPathInSitemap()}`);
});
Ametys.console.log(`${count} UGC services found`);

Si le script remonte 0 résultat, il est sans doute préférable de simplement supprimer la surcharge du rendu du service. Pour cela supprimez le dossier services/ugc de vos chartes.

Sinon, le service va devoir être ré-intégré en évitant au maximum les surcharges des templates XSL du helper "service:web://pages/services/contenttype/helper/form_4.5.xsl"

Il est fortement déconseiller de surcharger (voir interdit) de surcharger ces templates notamment les templates "contenttype-form" et "contenttype-form-***" au risque de ne bénéficier d'aucune évolutions ou corrections.

Pour le rendu des champs du formulaire, si une surcharge avait été faite pour changer une classe css, il faut bannir cette surcharge et modifier plutôt la css pour s'assurer du bon rendu.

Si la charte comporte une surcharge des templates du type "contenttype-form-field-string", "contenttype-form-field-content", ... comparez les avec leur équivalent dans le form.xsl de la forme:

  • <xsl:template match="metadata[@type='string']" mode="contenttype-form-field">
  • <xsl:template match="metadata[@type='content']" mode="contenttype-form-field">

Si ils sont identiques à une classe CSS près, supprimer la surcharge et modifier la css de rendu.

Si il est nécessaire de surcharger le rendu d'un type de champ en particulier (ça peut souvent être le cas pour les champs de type file), le template à surcharger sera de la forme <xsl:template match="metadata[@type='file']" mode="contenttype-form-field"> au lieu de <xsl:template name="contenttype-form-field-file"> précédemment.

Vous pouvez vous inspirer de la charte Intranet:

  • dans le fichier services\web\pages\services\contenttype\helper\form.xsl le rendu des champs de type file est surchargé pour remplacer les inputs file par :
  • dans le fichier services\ugc\pages\services\ugc\form.xsl le rendu de la composite "illustrations" est surchargé pour ajouter un div englobant
<xsl:template match="metadata[@type='composite' and @name='illustrations']" mode="contenttype-form-field">
        <xsl:param name="fieldId" select="translate(@path, '/', '-')"/>
        <xsl:param name="fieldName" select="translate(@path, '/', '.')"/>
        <xsl:param name="values"/>
        <xsl:param name="contentValues"/>
        <xsl:param name="value" select="$values/*[local-name() = $fieldName]"/>
        <xsl:param name="errors" />
        <xsl:param name="uniqueId" />
        
        <div class="add-photos">
            <xsl:apply-templates select="metadata" mode="contenttype-form-field">
                <xsl:with-param name="values" select="$values" />
                <xsl:with-param name="contentValues" select="$contentValues" />
                <xsl:with-param name="errors" select="$errors" />
                <xsl:with-param name="uniqueId" select="$uniqueId"/>
            </xsl:apply-templates>
        </div>
    </xsl:template>

 

 

Retour en haut

UGC