You are not logged in.
Bonjour,
Je me permet de relancer ce sujet car je n'ai toujours pas réussi à reprendre correctement une image dans mes pages. J'utilise le fichier commun.xsl dans la charte graphique pour construire une page standard. Dans les balises meta, je définis correctement le titre et le champ description, mais pas l'image. J'aimerais reprendre soit la première image d'un contenu, soit l'image qui sert d'illustration à ce contenu.
Voici le code que j'utilise :
<meta name="og:image">
<xsl:attribute name="content">
<xsl:choose>
<xsl:when test="/cms/page/pageContents/zone[@name = 'default']/zoneItem[1]/html/head/meta[@name='illustration/image;path']">
<xsl:value-of select="/cms/page/pageContents/zone[@name = 'default']/zoneItem[1]/html/head/meta[@name='illustration/image;path']" />
</xsl:when>
<xsl:otherwise><xsl:value-of select="/skins/actus/resources/img/og-image.png" /></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</meta>
suite à nos discussions, mais qui ne renvoie rien. Un élément serait il faux ou manquant ? Je me demande si le problème ne vient pas du fait que ce n'est pas une image comme indiqué dans vos échanges et que je tente de récupérer uniquement le chemin d'accès à cette illustration, ce que n'attends peut être pas la balise og:image. Faut il que je prenne du coup la première image dans mon contenu et non pas l'image d'illustration ? Si oui, quelle serait la valeur à lui donner en entrée ?
Merci !
Merci beaucoup pour votre aide, c'est parfait !
Bonjour,
Je souhaiterais surcharger le rendu d'un contenu de type actualité, mais je ne parviens pas à trouver le code source en regardant dans la doc, je trouve seulement le common.xsl et le contenu article :
Or, le contenu news prévoit par défaut le rendu de la date que j'aimerais garder, simplement j'aimerais supprimer l'image par défaut. J'aurais donc besoin du rendu par défaut pour le modifier. Où puis je le trouver ?
Merci
Oui oui, la grosse image de la première URL est une image insérée dans le contenu de l'article, mais elle est aussi utilisée en guise de métadonnée illustration. Le contenu est bien validé car dans les pages de rubrique, cf :
j'utilise une remontée de contenu qui va chercher les images d'illustration et cela fonctionne bien. Par contre, il s'agit d'une fonction de ce type :
<xsl:template match="content">
<xsl:variable name="type" select="html/head/meta[@name = 'illustration/image;type']/@content"/>
<xsl:variable name="file" select="html/head/meta[@name = 'illustration/image;path']/@content"/>
<xsl:variable name="url"><xsl:value-of select="$file"/><xsl:if test="$type = 'metadata'">?contentId=<xsl:value-of select="@id"/></xsl:if></xsl:variable>
<xsl:variable name="alt-text" select="html/head/meta[@name = 'illustration/alt-text']/@content"/>
<xsl:variable name="page-id" select="html/head/meta[@name = 'pages/page;id']/@content"/>
...
<img class="push_img" src="{resolver:resolveImage($type, $url, 200, 295)}" alt="{$alt-text}"/>
...
</xsl:template>
Fonction que je ne peux pas réutiliser dans le cas présent puisque je suis sur un gabarit de page général et pas sur une remontée de contenu, je n'ai donc pas de contenu sélectionné par défaut.
Je ne comprends pas le comportement de cette fonction.
<meta name="og:image">
<xsl:attribute name="content">
<xsl:choose>
<xsl:when test="/cms/page/pageContents/zone[@name = 'default']/zoneItem[1]/html/head/meta[@name='illustration/image;path']">
<xsl:value-of select="/cms/page/pageContents/zone[@name = 'default']/zoneItem[1]/html/head/meta[@name='illustration/image;path']/@content" />
</xsl:when>
<xsl:otherwise><xsl:value-of select="/skins/actus/resources/img/og-image.png" /></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</meta>
Normalement, il devrait me prendre le champ illustration du premier contenu de la zone défaut de ma page et l'utiliser comme paramètre lors d'un clic sur la fonction de partage sur les réseaux sociaux. Or, si je prends cet exemple :
Ca ne fonctionne pas et il me retourne l'image par défaut. Sur d'autres contenus, il ne retourne aucune image, ou alors une image en colonne de droite qui ne fait pas partie du contenu indiqué, cf :
En revanche, parfois cela fonctionne :
Je ne comprends pas ce résultat.
Je vous remercie, cela fonctionne mais par contre j'obtiens la première image de mon contenu alors que je pensais récupérer l'image insérée comme métadonnée (champ sous le titre lorsqu'on crée un article), ce que me retourne cette même fonction lorsque je crée mes pages de rubrique à partir d'une remontée de contenu utilisant la même fonction.
Curieux que dans un cas j'obtienne la première image du contenu, dans un second cas l'image utilisée comme métadonnée de l'article (qui n'apparait pas sur le contenu pour le cas de notre charte graphique).
Peut-on récupérer l'image d'illustration d'un article comme dans le cas des remontées de contenu ?
Merci de votre aide
Je viens d'essayer ca :
<meta name="og:image">
<xsl:attribute name="content">
<xsl:choose>
<xsl:when test="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[@name='illustration/image;path']">
<xsl:value-of select="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[@name='illustration/image;path']/@content" />
</xsl:when>
<xsl:otherwise><xsl:value-of select="/skins/actus/resources/img/og-image.png" /></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</meta>
Et j'obtiens une image totalement aléatoire. Parfois c'est la bonne, celle du contenu qui m'intéresse. Parfois c'est une image de la page qui n'a rien à voir ou parfois l'image par défaut. Ca semble bien être un problème d'identification du contenu sur la page qui m'empêche d'obtenir l'image qui m'intéresse. Est-il possible de sélectionner un contenu en particulier (en l'occurrence le premier de ma page) pour obtenir son image ?
Merci pour votre réponse. J'ai essayé ainsi :
<span>
<xsl:variable name="chemin" select="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[@name='illustration/image;path']/@content"/>
<p><xsl:value-of select="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[@name='illustration/image;path']/@content" /></p>
<xsl:variable name="format" select="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[@name='illustration/image;type']/@content"/>
<p><xsl:value-of select="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[@name='illustration/image;type']/@content" /></p>
<xsl:variable name="url"><xsl:value-of select="$chemin"/><xsl:if test="$format = 'metadata'">?contentId=<xsl:value-of select="@id"/></xsl:if></xsl:variable>
<xsl:variable name="maxWidth" select="'200'"/>
<xsl:variable name="maxHeight" select="'133'"/>
<img src="{resolver:resolveImage($url, $chemin, $maxWidth, $maxHeight)}"/>
</span>
Mais voici ce que j'obtiens en retour
:
illustration/image
metadata
et une image cassée.
Je pense que le problème vient de mon chemin d'accès. Je suis sur un gabarit de page et non pas sur un contenu en particulier quand je fais appel à cette fonction, peut être qu'il faut spécifier le contenu qui m'intéresse ? Mais de quelle manière ?
Bonjour,
J'aimerais récupérer l'image du contenu principal de ma page pour l'envoyer en tant que paramètre dans les méta descriptions du <head> de ma page pour les réseaux sociaux (twitter, Facebook). Avant d'en arriver là, j'essayais quelques tests de ce type mais sans résultat :
<span>
<xsl:variable name="image" select="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[@name='illustration']/@content"/>
<xsl:variable name="maxWidth" select="'200'"/>
<xsl:variable name="maxHeight" select="'133'"/>
<img src="{resolver:resolveBoundedImage($image/@type, $image/@path, $maxWidth, $maxHeight)}"/>
</span>
Pourtant il y a bien une image associée au contenu,
Et après idéalement, j'aimerais le placer ainsi dans les balises méta :
<meta name="og:description">
<xsl:attribute name="content">
<xsl:choose>
<xsl:when test="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[@name='illustration']">
<xsl:variable name="image" select="/cms/page/pageContents/zone[@name = 'default']/zoneItem/html/head/meta[@name='illustration']/@content"/>
<xsl:variable name="maxWidth" select="'200'"/>
<xsl:variable name="maxHeight" select="'133'"/>
<img src="{resolver:resolveBoundedImage($image/@type, $image/@path, $maxWidth, $maxHeight)}"/>
</xsl:when>
<xsl:otherwise><xsl:value-of select="/skins/actus/resources/img/og-image.png" /></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</meta>
D'où peut venir le problème ?
Merci d'avance,
Cordialement,
Bonjour,
J'ai plusieurs remarques à propos de la qualité des images qui sont traitées par Ametys. Lorsqu'on dépose une image dans un contenu, celle-ci semble parfois dégradée, mais c'est dans l'ensemble relativement rare et peu visible. Cependant, y a t-il déjà des bonnes pratiques pour éviter que la qualité ne soit dégradée et quels traitements effectue Ametys lorsqu'il stocke une image qu'un utilisateur lui dépose ?
D'autre part, et c'est la question la plus urgente à traiter, j'utilise dans plusieurs remontées de contenu la fonction suivante pour récupérer et afficher les images issues des contenus stockés dans Ametys : <img class="push_img" src="{resolver:resolveImage($type, $url, 302, 201)}" alt="{$alt-text}"/>
Et dans ce cas précis où l'image d'un contenu est récupérée par cette fonction, l'affichage proposé est systématiquement et nettement dégradé. Y a t-il une autre fonction que l'on peut utiliser pour empêcher cela ? Des bonnes pratiques ? Autre chose / idée ? C'est dommage car les photos stockées sont de qualité correcte en règle générale et de résolution bien supérieure mais dès qu'elles sont utilisées dans une remontée de contenu, elles deviennent légèrement floues et pixellisées.
Merci d'avance
Bonjour,
Je souhaiterais avoir accès au code source qui définit le rendu du service Insertion / Dernières publications pour avoir un paramétrage plus fin de l'apparence des newsletters (taille de l'image, des titres, des liens...)
En regardant dans l'éditeur de charte graphique, je trouve dans le répertoire stylesheets, un sous répertoire news qui semblerait correspondre. Est-ce bien celui-ci ? D'autre part, comme il est vide, où puis-je récupérer le contenu de ce fichier pour éditer les zones correspondantes ?
Merci
Bonjour,
J'utilise actuellement le service calendrier de l'agenda Ametys sur certaines pages, mais ce module remonte absolument toutes les actualités avec une date de début et de fin. J'ai donc voulu utiliser le système d'étiquettes qui normalement est prévu pour cela, mais il n'effectue pas de tri malgré tout.
Nous sommes en 3.5.1 et j'utilise le fichier suivant :
Merci
Oui, le problème ne se manifeste que dans une remontée de contenus où l'on mélange des contenus du site actuel avec ceux d'un autre site Ametys. Si on sépare les contenus dans des zones différentes avec deux remontées de contenus, plus de problème.
Pour la version d'Ametys, c'est donc la 3.5.1
Le problème semble se produire lorsque le premier contenu de la liste remontée change. Dans cette remontée de contenu, je remonte des contenus de mon site principal, et de mon site secondaire. Quand le premier lien est celui du site principal, il tolère mal ceci : <a target="_blank" href="http://www.monnomdedomaine2.fr{resolver:resolve('page', $page-id, false)}">
et quand c'est un lien vers mon site secondaire, il tolère mal dans le reste de la remontée de contenus des liens de type <a target="_blank" href="{resolver:resolve('page', $page-id, false)}"></a>
Ce qui est curieux, c'est que j'applique des traitements différents selon l'étiquette, mais ca ne résout pas le problème
Il génère ce type de lien dans le cas numéro 2 :
:parent.org.ametys.uitool.ToolsManager.getInstance().openTool('uitool-page', {id:'page://66375db2-9757-4ead-af70-9dff45ffd9c2'});
dans le cas numéro 1, il génère ceci : javascript:parent.org.ametys.uitool.ToolsManager.getInstance().openTool('uitool-page', {id:'page://66375db2-9757-4ead-af70-9dff45ffd9c2'});
sauf qu'il ne comprend pas la plupart du temps que le lien vient d'un autre site, et prend uniquement l'arborescence de la page qu'il associe au nom de domaine du site principal, et pas du site source.
Pour la version précise d'Ametys, où puis-je avoir cette information ?
L'erreur apparaît sur le site final ? en prévisualisation ? en version en ligne ?
L'erreur apparait dans ces 3 cas, dans le BO je n'ai pas vérifié mais il me semble qu'on ne voit que le lien javascript que génère la fonction {resolver:resolve('page', $page-id, false)} et pas l'URL du résultat de cette requête javascript.
Oui, une fois que l'erreur est là, elle est mise en cache et tous les visiteurs ont le problème.
La 3.5
J'utilise le service "remontée de contenu". Je lui ajoute un contexte de recherche, je précise le site que je veux atteindre, et je lui demande de sélectionner sur ce site tous les contenus qui portent une étiquette particulière. Ensuite, le xsl de la remontée de contenu se charge de l'affichage.
Dans ce XSL, cet élément pose problème : <a target="_blank" href="{resolver:resolve('page', $page-id, false)}"></a>
Tantôt il me retourne d'accès de la ressource (nom de domaine 1 étant mon site actuel)
tantôt il me retourne d'accès de la ressource (nom de domaine 2 étant le site d'où viennent les actus, ce qui est l'affichage souhaité).
Si je change pour ceci : <a target="_blank" href="http://www.monnomdedomaine2.fr{resolver:resolve('page', $page-id, false)}">
Il me retourne la plupart du temps : d'accès de la ressource, ce qui est correct.
Mais de temps à autre, pour une raison que je n'ai pas encore compris, il me retourne : /www.nomdedomaine2/chemin d'accès de la ressource, ce qui génère une 404 sur tous mes liens.
Bonjour,
Je rencontre un problème qui se produit de manière aléatoire. Je remonte une série de contenus d'un site géré par Ametys vers un autre. Lors de l'affichage de ces contenus, j'utilise ceci :
<a target="_blank" href="{resolver:resolve('page', $page-id, false)}"></a>
Problème, cette fonction me génère parfois les bons liens vers mon second site, parfois elle ne prend que le chemin d'accès au contenu et y ajoute le nom de domaine de mon premier site.
J'avais cru corriger ce bug en y insérant en brut l'URL de mon second site de cette manière :
<a target="_blank" href="http://www.monnomdedomaine.fr{resolver:resolve('page', $page-id, false)}">
Mais là encore, ca fonctionne la plupart du temps, mais de temps à autre, cette fonction me renvoie à la place ceci :
/www.monnomdedomaine.fr/{chemin-d-acces-a-la-ressource}
Existe-t-il une solution avec une fonction qui renverrait bien le nom de domaine associé au contenu ?
c'est bon, j'ai trouvé une solution à savoir
<xsl:variable name="rubriquemere" select="/cms/inputData/sitemap/page[@sitemap:in-path='true']" />
<xsl:variable name="title" select="$rubriquemere/@sitemap:title"/>
<xsl:if test="$title = 'xxx'">
...
</xsl:if>
Ce qui veut dire en l'occurence que je teste si la page courante a pour page mère xx, et si c'est le cas, j'applique le style voulu. J'espère que mes explications sont plus claires
Bonjour,
J'aimerais ajouter un élément graphique à mes pages pour signaler à l'internaute que la page courante qu'il visite est rattachée à telle rubrique précisement du site. Comment écrire ce test en XSL ?
Merci
j'ai trouvé entre temps la réponse, c'était simplement un problème de caractères spéciaux, à savoir le & devient &
Merci, effectivement ce code là marche. Dommage que nous n'ayons pas la main sur la balise <html>, on fera sans !
Bonjour,je souhaite ajouter sur mes templates un test conditionnel selon la version du navigateur de l'internaute. Le test ressemble à ca :
<!--[if lt IE 7 ]> <html lang="fr-FR" class="no-js lang-fr oldie ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="fr-FR" class="no-js lang-fr oldie ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="fr-FR" class="no-js lang-fr oldie ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="fr-FR" class="no-js lang-fr ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="fr-FR" class="no-js lang-fr"> <!--<![endif]-->
et dans le <head>
<!--[if (gt IE 9) | (IEMobile)]><!-->
<link href="/skins/{ametys:skin()}/resources/css/screen.css" rel="stylesheet" type="text/css" />
<!--<![endif]-->
<!--[if (lt IE 9) & (!IEMobile)]>
<link href="/skins/{ametys:skin()}/resources/css/screen-ie.css" rel="stylesheet" type="text/css" />
<link href="/skins/{ametys:skin()}/resources/css/screen-ie.css" rel="stylesheet" type="text/css" media="print"/>
<![endif]-->
<!--[if (lt IE 8) & (!IEMobile)]>
<link href="{ametys:skinURL('js/libs/icomoon/ie7.css')}" rel="stylesheet" type="text/css"/>
<script src="{ametys:skinURL('js/libs/icomoon/ie7.js')}"></script>
<![endif]-->
J'ai mis tout cela sur mon fichier principal commun.xsl mais ca ne marche pas. Est-ce qu'il faut modifier le docbook par défaut pour le test html ? Comment le faire ?
Merci