You are not logged in.
Bonjour,
Je cherche à modifier la taille de la miniature dans l'affichage par défaut du service de remonté de contenu. Quand je regarde dans [skin]/services/web/pages/services/filtered-contents/ j'ai bien un fichier list_3.3.xsl mais il n'impacte pas la vue par defaut.
Comment et dans quel fichier puis-je trouver le moyen de modifier la vue
Offline
Bonjour,
la remontée de contenu se contente de concaténer les vues de contenus.
Par exemple, par défaut c'est la vue résumé/abstract des contenus qui est utilisée (mais c'est le contributeur qui choisit).
Il faut donc modifier sur tous vos types de contenus la vue abstract.
Il se trouve que toutes les vues noyaux se basent sur des XSLs communes, il est donc possible d'ajuster en une seule fois la taille de toutes les vignettes des vues de tous les types de contenus (pourvu qu'ils utilisent ce système) : il s'agit d'avoir une XSL nommée stylesheets/content/common.xsl dans votre charte graphique.
La première ligne de ce fichier sera
<xsl:import href="plugin:web://stylesheets/content/common.xsl"/>
afin de continuer à avoir le comportement actuel.
Puis à l'intérieur copiez ceci (il s'agit du template xsl utilisé par toutes les vues du noyau pour le rendu de la vignette en mode abstract)
<!-- Illustration small size -->
<xsl:template name="common-content-body-image-smallsize">
<xsl:param name="image" select="metadata/illustration/image"/>
<xsl:param name="alternative" select="metadata/illustration/alt-text"/>
<xsl:param name="maxWidth" select="'100'"/>
<xsl:param name="maxHeight" select="'100'"/>
<xsl:param name="class" select="'small'"/>
<xsl:call-template name="common-content-body-image">
<xsl:with-param name="image" select="$image"/>
<xsl:with-param name="alternative" select="$alternative"/>
<xsl:with-param name="maxWidth" select="$maxWidth"/>
<xsl:with-param name="maxHeight" select="$maxHeight"/>
<xsl:with-param name="class" select="$class"/>
</xsl:call-template>
</xsl:template>
et modifiez ce qui vous intéresse (à savoir la valeur par défaut des max width et max height).
Maintenant, si votre charte n'utilise pas le mécanisme d'XSL centralisée, il faut juste éditer les vues abstract de chaque type de contenu 1 par 1.
Ce mécanisme d'XSL centralisée existe depuis la 3.3, mais une charte conçue en 3.2 et migrée en 3.3 ne l'utilise probablement pas...
Raphael Franchet
Expert Ametys
Offline
Ok merci,
Est-il possible d'avoir plusieurs tailles de vignettes ? Par exemple medium pour une remonté en page d'accueil (vue tabulaire 3*2) et small pour les remontés en liste habituelles ?
Offline
Dans ce template xsl, vous pouvez tester si le rendu concerne la page d'accueil via le AmetysXSLHelper
en gros vous faites:
<xsl:param name="maxWidth">
<xsl:choose>
<xsl:when test="ametys:template() = 'index'">100</xsl:when>
<xsl:otherwise>150</xsl:otherwise>
</xsl:choose>
</xsl:param>
Cela vous permet d'avoir des tailles MAX de vignettes différentes; mais attention une vignette 4/3 restera 4/3 et une 16/9 restera 16/9. L'image est retaillée en gardant le ratio.
Si vous avez besoin de deux images de format différentes, c'est plus compliqué : soit vous recoupez en css, soit vous ajoutez un champ à tous les types de contenus pour saisir 2 images au lieu d'1 seule...
Raphael Franchet
Expert Ametys
Offline
Ok merci !
C'est exactement ce que je voulais car j'ai mes css qui prendront le relais.
Offline
Autre question du même genre ...
Ci-joint un screenshot du rendu actuel.
J'aimerais placer le titre l'image et le texte.
Comme la hauteur de l'image ne sera pas fixe je peux difficilement utiliser le positionnement relatif.
Comment puis-je surcharger le html pour inverser les balises ?
Offline
la fonction pour joindre les images ne fonctionne pas sur le forum. pouvez-vous la poser sur un outil externe et proposer un lien ?
merci
Raphael Franchet
Expert Ametys
Offline
Oups je n'avais pas fait attention. J'ai ma réponse, merci : c'est dans news-abstract.xsl
<xsl:template name="common-content-body">
<div class="ametys-cms-content {$common-content-css-class-name} wrapper">
<!-- Image -->
<xsl:call-template name="common-content-body-image-smallsize"/>
<xsl:call-template name="common-content-body-title"/>
<xsl:call-template name="common-content-body-content"/>
</div>
</xsl:template>
Offline